-
Notifications
You must be signed in to change notification settings - Fork 299
feat(auth2): Rewrite auth migration/backwards compatibility to focus on one-off migrations #3765
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
…ration` package By default migrate all users at once Take custom migration function directly instead of configuration (so that usually no configuration needs to be given)
|
Important Review skippedAuto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the You can disable this status message by setting the 📝 WalkthroughWalkthroughThe changes introduce a clear separation between migration and legacy support for Serverpod authentication. A new backwards compatibility Flutter package is added, migration logic is refactored and streamlined, and legacy session/password import mechanisms are implemented. Test suites and scripts are updated to reflect the new modular structure and workflows, aligning with the goal of decoupling migration from legacy support. Changes
Sequence Diagram(s)sequenceDiagram
participant LegacyClient as Legacy Client
participant FlutterCompat as BackwardsCompat Flutter
participant Server as Server
participant SessionMigration as SessionMigrationEndpoint
participant AuthCompat as AuthBackwardsCompatibility
Note over LegacyClient,FlutterCompat: Legacy session exists on client
LegacyClient->>FlutterCompat: Provide legacy session key
FlutterCompat->>Server: Call SessionMigrationEndpoint.convertSession(sessionKey)
Server->>SessionMigration: Forward request
SessionMigration->>AuthCompat: resolveLegacySession(sessionKey)
AuthCompat-->>SessionMigration: LegacySession or null
alt LegacySession found
SessionMigration->>AuthCompat: Delete legacy session, create new session
AuthCompat-->>SessionMigration: AuthSuccess
SessionMigration-->>Server: AuthSuccess
Server-->>FlutterCompat: AuthSuccess
FlutterCompat->>LegacyClient: Store new session info
else Not found
SessionMigration-->>Server: null
Server-->>FlutterCompat: null
end
sequenceDiagram
participant User as User
participant EmailEndpoint as PasswordImportingEmailAccountEndpoint
participant AuthCompat as AuthBackwardsCompatibility
participant EmailAccount as EmailAccountEndpoint
User->>EmailEndpoint: login(email, password)
EmailEndpoint->>AuthCompat: importLegacyPasswordIfNeeded(email, password)
AuthCompat-->>EmailEndpoint: (imports password if needed)
EmailEndpoint->>EmailAccount: login(email, password)
EmailAccount-->>EmailEndpoint: AuthSuccess or error
EmailEndpoint-->>User: AuthSuccess or error
Assessment against linked issues
Assessment against linked issues: Out-of-scope changesNo out-of-scope changes found. Possibly related PRs
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. 🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
SupportNeed help? Create a ticket on our support page for assistance with any issues or questions. Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. CodeRabbit Commands (Invoked using PR comments)
Other keywords and placeholders
CodeRabbit Configuration File (
|
…module This should be connected from the email endpoint's login method, to complete the import of any legacy passwords
…ion manager migration
✅ Actions performedFull review triggered. |
…ble authentication handler" as sessions will now be migrated
✅ Actions performedFull review triggered. |
|
@coderabbitai full review |
✅ Actions performedFull review triggered. |
|
@coderabbitai full review |
✅ Actions performedFull review triggered. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 0
🧹 Nitpick comments (3)
modules/new_serverpod_auth/serverpod_auth_backwards_compatibility/serverpod_auth_backwards_compatibility_flutter/lib/serverpod_auth_backwards_compatibility_flutter.dart (1)
1-1: Drop the leading./in the export pathIdiomatic Dart exports omit the
./prefix.-export './src/business/session_manager_legacy_import.dart'; +export 'src/business/session_manager_legacy_import.dart';modules/new_serverpod_auth/serverpod_auth_backwards_compatibility/serverpod_auth_backwards_compatibility_server/lib/src/endpoints/session_migration_endpoint.dart (1)
6-7: Minor typo in class documentation.There's a small typo in the class comment.
-/// Enpoint to convert legacy sessions. +/// Endpoint to convert legacy sessions.modules/new_serverpod_auth/serverpod_auth_migration/serverpod_auth_migration_server/lib/src/business/auth_migrations.dart (1)
85-93: Consider null-checking before callback invocation.While the current implementation is correct, consider making the null-check more explicit for better readability:
if (didCreate && userMigration != null) { await userMigration( session, oldUserId: migratedUser.oldUserId, newAuthUserId: migratedUser.newAuthUserId, transaction: transaction, ); }The current code is already correct, but this is just a style preference.
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
⛔ Files ignored due to path filters (28)
modules/new_serverpod_auth/serverpod_auth_backwards_compatibility/serverpod_auth_backwards_compatibility_client/lib/src/protocol/client.dartis excluded by!**/lib/src/protocol/**modules/new_serverpod_auth/serverpod_auth_backwards_compatibility/serverpod_auth_backwards_compatibility_client/lib/src/protocol/protocol.dartis excluded by!**/lib/src/protocol/**modules/new_serverpod_auth/serverpod_auth_backwards_compatibility/serverpod_auth_backwards_compatibility_server/lib/src/generated/endpoints.dartis excluded by!**/generated/**modules/new_serverpod_auth/serverpod_auth_backwards_compatibility/serverpod_auth_backwards_compatibility_server/lib/src/generated/legacy_session.dartis excluded by!**/generated/**modules/new_serverpod_auth/serverpod_auth_backwards_compatibility/serverpod_auth_backwards_compatibility_server/lib/src/generated/protocol.dartis excluded by!**/generated/**modules/new_serverpod_auth/serverpod_auth_backwards_compatibility/serverpod_auth_backwards_compatibility_server/lib/src/generated/protocol.yamlis excluded by!**/generated/**modules/new_serverpod_auth/serverpod_auth_backwards_compatibility/serverpod_auth_backwards_compatibility_server/migrations/20250705091451690/definition.jsonis excluded by!**/migrations/**modules/new_serverpod_auth/serverpod_auth_backwards_compatibility/serverpod_auth_backwards_compatibility_server/migrations/20250705091451690/definition.sqlis excluded by!**/migrations/**modules/new_serverpod_auth/serverpod_auth_backwards_compatibility/serverpod_auth_backwards_compatibility_server/migrations/20250705091451690/definition_project.jsonis excluded by!**/migrations/**modules/new_serverpod_auth/serverpod_auth_backwards_compatibility/serverpod_auth_backwards_compatibility_server/migrations/20250705091451690/migration.sqlis excluded by!**/migrations/**modules/new_serverpod_auth/serverpod_auth_backwards_compatibility/serverpod_auth_backwards_compatibility_server/migrations/20250705102555966/migration.jsonis excluded by!**/migrations/**modules/new_serverpod_auth/serverpod_auth_backwards_compatibility/serverpod_auth_backwards_compatibility_server/migrations/20250708110241098/definition.jsonis excluded by!**/migrations/**modules/new_serverpod_auth/serverpod_auth_backwards_compatibility/serverpod_auth_backwards_compatibility_server/migrations/20250708110241098/definition.sqlis excluded by!**/migrations/**modules/new_serverpod_auth/serverpod_auth_backwards_compatibility/serverpod_auth_backwards_compatibility_server/migrations/20250708110241098/definition_project.jsonis excluded by!**/migrations/**modules/new_serverpod_auth/serverpod_auth_backwards_compatibility/serverpod_auth_backwards_compatibility_server/migrations/20250708110241098/migration.jsonis excluded by!**/migrations/**modules/new_serverpod_auth/serverpod_auth_backwards_compatibility/serverpod_auth_backwards_compatibility_server/migrations/20250708110241098/migration.sqlis excluded by!**/migrations/**modules/new_serverpod_auth/serverpod_auth_backwards_compatibility/serverpod_auth_backwards_compatibility_server/migrations/migration_registry.txtis excluded by!**/migrations/**tests/serverpod_new_auth_test/serverpod_new_auth_test_client/lib/src/protocol/client.dartis excluded by!**/lib/src/protocol/**tests/serverpod_new_auth_test/serverpod_new_auth_test_client/lib/src/protocol/protocol.dartis excluded by!**/lib/src/protocol/**tests/serverpod_new_auth_test/serverpod_new_auth_test_server/lib/src/generated/endpoints.dartis excluded by!**/generated/**tests/serverpod_new_auth_test/serverpod_new_auth_test_server/lib/src/generated/protocol.dartis excluded by!**/generated/**tests/serverpod_new_auth_test/serverpod_new_auth_test_server/lib/src/generated/protocol.yamlis excluded by!**/generated/**tests/serverpod_new_auth_test/serverpod_new_auth_test_server/migrations/20250708110506342/definition.jsonis excluded by!**/migrations/**tests/serverpod_new_auth_test/serverpod_new_auth_test_server/migrations/20250708110506342/definition.sqlis excluded by!**/migrations/**tests/serverpod_new_auth_test/serverpod_new_auth_test_server/migrations/20250708110506342/definition_project.jsonis excluded by!**/migrations/**tests/serverpod_new_auth_test/serverpod_new_auth_test_server/migrations/20250708110506342/migration.jsonis excluded by!**/migrations/**tests/serverpod_new_auth_test/serverpod_new_auth_test_server/migrations/20250708110506342/migration.sqlis excluded by!**/migrations/**tests/serverpod_new_auth_test/serverpod_new_auth_test_server/migrations/migration_registry.txtis excluded by!**/migrations/**
📒 Files selected for processing (42)
modules/new_serverpod_auth/serverpod_auth_backwards_compatibility/serverpod_auth_backwards_compatibility_client/lib/serverpod_auth_backwards_compatibility_client.dart(1 hunks)modules/new_serverpod_auth/serverpod_auth_backwards_compatibility/serverpod_auth_backwards_compatibility_client/pubspec.yaml(1 hunks)modules/new_serverpod_auth/serverpod_auth_backwards_compatibility/serverpod_auth_backwards_compatibility_flutter/.gitignore(1 hunks)modules/new_serverpod_auth/serverpod_auth_backwards_compatibility/serverpod_auth_backwards_compatibility_flutter/.metadata(1 hunks)modules/new_serverpod_auth/serverpod_auth_backwards_compatibility/serverpod_auth_backwards_compatibility_flutter/CHANGELOG.md(1 hunks)modules/new_serverpod_auth/serverpod_auth_backwards_compatibility/serverpod_auth_backwards_compatibility_flutter/README.md(1 hunks)modules/new_serverpod_auth/serverpod_auth_backwards_compatibility/serverpod_auth_backwards_compatibility_flutter/analysis_options.yaml(1 hunks)modules/new_serverpod_auth/serverpod_auth_backwards_compatibility/serverpod_auth_backwards_compatibility_flutter/lib/serverpod_auth_backwards_compatibility_flutter.dart(1 hunks)modules/new_serverpod_auth/serverpod_auth_backwards_compatibility/serverpod_auth_backwards_compatibility_flutter/lib/src/business/session_manager_legacy_import.dart(1 hunks)modules/new_serverpod_auth/serverpod_auth_backwards_compatibility/serverpod_auth_backwards_compatibility_flutter/pubspec.yaml(1 hunks)modules/new_serverpod_auth/serverpod_auth_backwards_compatibility/serverpod_auth_backwards_compatibility_server/lib/src/business/auth_backwards_compatibility.dart(2 hunks)modules/new_serverpod_auth/serverpod_auth_backwards_compatibility/serverpod_auth_backwards_compatibility_server/lib/src/business/legacy_authentication_handler.dart(2 hunks)modules/new_serverpod_auth/serverpod_auth_backwards_compatibility/serverpod_auth_backwards_compatibility_server/lib/src/endpoints/session_migration_endpoint.dart(1 hunks)modules/new_serverpod_auth/serverpod_auth_backwards_compatibility/serverpod_auth_backwards_compatibility_server/lib/src/models/legacy_session.spy.yaml(0 hunks)modules/new_serverpod_auth/serverpod_auth_backwards_compatibility/serverpod_auth_backwards_compatibility_server/pubspec.yaml(2 hunks)modules/new_serverpod_auth/serverpod_auth_backwards_compatibility/serverpod_auth_backwards_compatibility_server/test/integration/test_tools/serverpod_test_tools.dart(2 hunks)modules/new_serverpod_auth/serverpod_auth_migration/serverpod_auth_migration_server/lib/serverpod_auth_migration_server.dart(1 hunks)modules/new_serverpod_auth/serverpod_auth_migration/serverpod_auth_migration_server/lib/src/business/auth_migration_config.dart(1 hunks)modules/new_serverpod_auth/serverpod_auth_migration/serverpod_auth_migration_server/lib/src/business/auth_migration_email.dart(0 hunks)modules/new_serverpod_auth/serverpod_auth_migration/serverpod_auth_migration_server/lib/src/business/auth_migrations.dart(4 hunks)modules/new_serverpod_auth/serverpod_auth_migration/serverpod_auth_migration_server/lib/src/business/migrate_user.dart(1 hunks)modules/new_serverpod_auth/serverpod_auth_migration/serverpod_auth_migration_server/lib/src/business/migrating_email_endpoint_base.dart(0 hunks)modules/new_serverpod_auth/serverpod_auth_migration/serverpod_auth_migration_server/lib/src/business/user_migration_function.dart(1 hunks)modules/new_serverpod_auth/serverpod_auth_migration/serverpod_auth_migration_server/test/integration/auth_migration_email_test.dart(0 hunks)modules/new_serverpod_auth/serverpod_auth_migration/serverpod_auth_migration_server/test/integration/auth_migrations_test.dart(7 hunks)modules/new_serverpod_auth/serverpod_auth_migration/serverpod_auth_migration_server/test/integration/password_backwards_compatibility_test.dart(1 hunks)modules/new_serverpod_auth/serverpod_auth_session/serverpod_auth_session_flutter/lib/serverpod_auth_session_flutter.dart(1 hunks)modules/new_serverpod_auth/serverpod_auth_session/serverpod_auth_session_flutter/lib/src/session_manager.dart(0 hunks)templates/pubspecs/modules/new_serverpod_auth/serverpod_auth_backwards_compatibility/serverpod_auth_backwards_compatibility_client/pubspec.yaml(1 hunks)templates/pubspecs/modules/new_serverpod_auth/serverpod_auth_backwards_compatibility/serverpod_auth_backwards_compatibility_flutter/pubspec.yaml(1 hunks)templates/pubspecs/modules/new_serverpod_auth/serverpod_auth_backwards_compatibility/serverpod_auth_backwards_compatibility_server/pubspec.yaml(2 hunks)templates/pubspecs/tests/serverpod_new_auth_test/serverpod_new_auth_test_client/pubspec.yaml(1 hunks)tests/serverpod_new_auth_test/serverpod_new_auth_test_client/pubspec.yaml(1 hunks)tests/serverpod_new_auth_test/serverpod_new_auth_test_flutter/pubspec.yaml(3 hunks)tests/serverpod_new_auth_test/serverpod_new_auth_test_flutter/test/backwards_compatibility_test.dart(3 hunks)tests/serverpod_new_auth_test/serverpod_new_auth_test_flutter/test/session_manager_migration_test.dart(1 hunks)tests/serverpod_new_auth_test/serverpod_new_auth_test_server/lib/src/endpoints/email_account_backwards_compatibility_endpoint.dart(3 hunks)tests/serverpod_new_auth_test/serverpod_new_auth_test_server/lib/src/endpoints/password_importing_email_account_endpoint.dart(1 hunks)tests/serverpod_new_auth_test/serverpod_new_auth_test_server/test/integration/test_tools/serverpod_test_tools.dart(5 hunks)util/pub_get_all(1 hunks)util/run_tests_analyze(1 hunks)util/update_pubspecs(2 hunks)
💤 Files with no reviewable changes (5)
- modules/new_serverpod_auth/serverpod_auth_session/serverpod_auth_session_flutter/lib/src/session_manager.dart
- modules/new_serverpod_auth/serverpod_auth_backwards_compatibility/serverpod_auth_backwards_compatibility_server/lib/src/models/legacy_session.spy.yaml
- modules/new_serverpod_auth/serverpod_auth_migration/serverpod_auth_migration_server/lib/src/business/migrating_email_endpoint_base.dart
- modules/new_serverpod_auth/serverpod_auth_migration/serverpod_auth_migration_server/test/integration/auth_migration_email_test.dart
- modules/new_serverpod_auth/serverpod_auth_migration/serverpod_auth_migration_server/lib/src/business/auth_migration_email.dart
🧰 Additional context used
🧠 Learnings (38)
📓 Common learnings
Learnt from: tp
PR: serverpod/serverpod#3747
File: tests/serverpod_new_auth_test/serverpod_new_auth_test_server/pubspec.yaml:37-38
Timestamp: 2025-07-02T16:09:27.702Z
Learning: In Serverpod migration testing, it's appropriate for test servers like serverpod_new_auth_test_server to include dependencies on both legacy packages (e.g., serverpod_auth_server) and new modular packages to enable comprehensive testing of migration paths from old to new authentication systems.
Learnt from: tp
PR: serverpod/serverpod#3666
File: modules/new_serverpod_auth/serverpod_auth_migration/serverpod_auth_migration_server/README.md:3-8
Timestamp: 2025-06-17T11:34:13.289Z
Learning: The README.md files in the serverpod_auth_migration module directories are auto-generated and get overwritten by utility scripts, so manual updates should be avoided until proper documentation is added during feature rollout.
Learnt from: tp
PR: serverpod/serverpod#3747
File: modules/new_serverpod_auth/serverpod_auth_migration/serverpod_auth_migration_server/lib/src/business/migrating_email_endpoint_base.dart:4-4
Timestamp: 2025-07-02T16:07:50.947Z
Learning: In Serverpod, tp prefers importing the full package (e.g., 'package:serverpod_auth_migration_server/serverpod_auth_migration_server.dart') as a baseline rather than using smaller local imports, even within the same package where it might be considered a "self-import".
Learnt from: tp
PR: serverpod/serverpod#3672
File: tests/serverpod_test_server/test_integration/test_tools/test_session_builder_test.dart:10-30
Timestamp: 2025-06-18T14:49:11.263Z
Learning: In Serverpod test files, tp prefers using nullable late variables for AuthenticationInfo in tests (e.g., `late AuthenticationInfo? authenticationInfo;`) rather than non-nullable ones to avoid using `!` operators and to get clearer error messages when authentication setup fails. This provides better diagnostics when `session.authenticated` returns null.
Learnt from: tp
PR: serverpod/serverpod#3721
File: util/pub_get_all:0-0
Timestamp: 2025-06-27T08:39:36.440Z
Learning: In the Serverpod project, `dart pub get` commands work fine on Flutter packages both locally and in CI environments, even when the package has `flutter: sdk: flutter` dependencies in pubspec.yaml. The technical constraint of Flutter SDK dependencies causing `dart pub` failures may not apply in all environments or recent Dart versions.
Learnt from: tp
PR: serverpod/serverpod#3666
File: modules/new_serverpod_auth/serverpod_auth_migration/serverpod_auth_migration_client/CHANGELOG.md:1-7
Timestamp: 2025-06-17T11:40:09.088Z
Learning: CHANGELOG.md files in the serverpod_auth_migration modules (client and server) are auto-generated and cannot be manually modified during the development process.
Learnt from: tp
PR: serverpod/serverpod#3651
File: tests/serverpod_new_auth_test/serverpod_new_auth_test_server/test/integration/email_account_endpoint_test.dart:1-1
Timestamp: 2025-06-19T11:00:17.085Z
Learning: In Serverpod applications, methods that rely on public asset storage (like setUserImage/removeUserImage) should be tested in E2E tests rather than withServerpod integration tests, as they require a full server environment with asset storage infrastructure to properly test image upload/download functionality.
Learnt from: exaby73
PR: serverpod/serverpod#3741
File: modules/serverpod_auth/serverpod_auth_server/analysis_options.yaml:14-16
Timestamp: 2025-07-01T13:01:27.054Z
Learning: In Serverpod, first-party packages like serverpod_auth_server can appropriately use blanket `invalid_use_of_internal_member: ignore` directives in their analysis_options.yaml since they use internal Database methods internally without exposing them in their public APIs to end users.
Learnt from: tp
PR: serverpod/serverpod#3651
File: modules/new_serverpod_auth/serverpod_auth_email_account/serverpod_auth_email_account_server/lib/src/business/email_accounts.dart:35-39
Timestamp: 2025-06-16T12:07:26.018Z
Learning: The `withServerpod` test helper runs tests within a transaction, which may require adapting database queries to accept transaction parameters for proper snapshot consistency during testing.
Learnt from: tp
PR: serverpod/serverpod#3666
File: modules/new_serverpod_auth/serverpod_auth_migration/serverpod_auth_migration_server/lib/src/business/auth_migration_email.dart:0-0
Timestamp: 2025-06-17T13:04:19.522Z
Learning: In serverpod_auth_migration profile image migration, the image must be fetched from the URL rather than just copying the URL because the database schema requires storing the storage bucket and relative path information in addition to the public URL. This storage information is necessary for proper cleanup when profiles are deleted. The fetch approach works fine in production but requires localhost exclusion in testing environments where no HTTP file server is running.
modules/new_serverpod_auth/serverpod_auth_backwards_compatibility/serverpod_auth_backwards_compatibility_flutter/analysis_options.yaml (8)
Learnt from: exaby73
PR: serverpod/serverpod#3741
File: modules/serverpod_auth/serverpod_auth_server/analysis_options.yaml:14-16
Timestamp: 2025-07-01T13:01:27.054Z
Learning: In Serverpod, first-party packages like serverpod_auth_server can appropriately use blanket `invalid_use_of_internal_member: ignore` directives in their analysis_options.yaml since they use internal Database methods internally without exposing them in their public APIs to end users.
Learnt from: tp
PR: serverpod/serverpod#3747
File: modules/new_serverpod_auth/serverpod_auth_migration/serverpod_auth_migration_server/lib/src/business/migrating_email_endpoint_base.dart:4-4
Timestamp: 2025-07-02T16:07:50.947Z
Learning: In Serverpod, tp prefers importing the full package (e.g., 'package:serverpod_auth_migration_server/serverpod_auth_migration_server.dart') as a baseline rather than using smaller local imports, even within the same package where it might be considered a "self-import".
Learnt from: tp
PR: serverpod/serverpod#3721
File: util/pub_get_all:0-0
Timestamp: 2025-06-27T08:39:36.440Z
Learning: In the Serverpod project, `dart pub get` commands work fine on Flutter packages both locally and in CI environments, even when the package has `flutter: sdk: flutter` dependencies in pubspec.yaml. The technical constraint of Flutter SDK dependencies causing `dart pub` failures may not apply in all environments or recent Dart versions.
Learnt from: tp
PR: serverpod/serverpod#3666
File: modules/new_serverpod_auth/serverpod_auth_migration/serverpod_auth_migration_client/CHANGELOG.md:1-7
Timestamp: 2025-06-17T11:40:09.088Z
Learning: CHANGELOG.md files in the serverpod_auth_migration modules (client and server) are auto-generated and cannot be manually modified during the development process.
Learnt from: tp
PR: serverpod/serverpod#3666
File: modules/new_serverpod_auth/serverpod_auth_migration/serverpod_auth_migration_server/README.md:3-8
Timestamp: 2025-06-17T11:34:13.289Z
Learning: The README.md files in the serverpod_auth_migration module directories are auto-generated and get overwritten by utility scripts, so manual updates should be avoided until proper documentation is added during feature rollout.
Learnt from: tp
PR: serverpod/serverpod#3672
File: tests/serverpod_test_server/test_integration/test_tools/test_session_builder_test.dart:10-30
Timestamp: 2025-06-18T14:49:11.263Z
Learning: In Serverpod test files, tp prefers using nullable late variables for AuthenticationInfo in tests (e.g., `late AuthenticationInfo? authenticationInfo;`) rather than non-nullable ones to avoid using `!` operators and to get clearer error messages when authentication setup fails. This provides better diagnostics when `session.authenticated` returns null.
Learnt from: tp
PR: serverpod/serverpod#3747
File: tests/serverpod_new_auth_test/serverpod_new_auth_test_server/pubspec.yaml:37-38
Timestamp: 2025-07-02T16:09:27.702Z
Learning: In Serverpod migration testing, it's appropriate for test servers like serverpod_new_auth_test_server to include dependencies on both legacy packages (e.g., serverpod_auth_server) and new modular packages to enable comprehensive testing of migration paths from old to new authentication systems.
Learnt from: tp
PR: serverpod/serverpod#3666
File: modules/new_serverpod_auth/serverpod_auth_migration/serverpod_auth_migration_client/CHANGELOG.md:1-7
Timestamp: 2025-06-17T11:44:37.288Z
Learning: Changes to README.md and CHANGELOG.md files made by the util/update_pubspecs script can be safely ignored during code review, as these files are auto-generated by copying from a single source rather than being manually authored.
modules/new_serverpod_auth/serverpod_auth_backwards_compatibility/serverpod_auth_backwards_compatibility_client/pubspec.yaml (12)
Learnt from: tp
PR: serverpod/serverpod#3747
File: tests/serverpod_new_auth_test/serverpod_new_auth_test_server/pubspec.yaml:37-38
Timestamp: 2025-07-02T16:09:27.702Z
Learning: In Serverpod migration testing, it's appropriate for test servers like serverpod_new_auth_test_server to include dependencies on both legacy packages (e.g., serverpod_auth_server) and new modular packages to enable comprehensive testing of migration paths from old to new authentication systems.
Learnt from: tp
PR: serverpod/serverpod#3747
File: modules/new_serverpod_auth/serverpod_auth_migration/serverpod_auth_migration_server/lib/src/business/migrating_email_endpoint_base.dart:4-4
Timestamp: 2025-07-02T16:07:50.947Z
Learning: In Serverpod, tp prefers importing the full package (e.g., 'package:serverpod_auth_migration_server/serverpod_auth_migration_server.dart') as a baseline rather than using smaller local imports, even within the same package where it might be considered a "self-import".
Learnt from: tp
PR: serverpod/serverpod#3666
File: modules/new_serverpod_auth/serverpod_auth_migration/serverpod_auth_migration_client/CHANGELOG.md:1-7
Timestamp: 2025-06-17T11:40:09.088Z
Learning: CHANGELOG.md files in the serverpod_auth_migration modules (client and server) are auto-generated and cannot be manually modified during the development process.
Learnt from: tp
PR: serverpod/serverpod#3666
File: modules/new_serverpod_auth/serverpod_auth_migration/serverpod_auth_migration_server/README.md:3-8
Timestamp: 2025-06-17T11:34:13.289Z
Learning: The README.md files in the serverpod_auth_migration module directories are auto-generated and get overwritten by utility scripts, so manual updates should be avoided until proper documentation is added during feature rollout.
Learnt from: tp
PR: serverpod/serverpod#3721
File: util/pub_get_all:0-0
Timestamp: 2025-06-27T08:39:36.440Z
Learning: In the Serverpod project, `dart pub get` commands work fine on Flutter packages both locally and in CI environments, even when the package has `flutter: sdk: flutter` dependencies in pubspec.yaml. The technical constraint of Flutter SDK dependencies causing `dart pub` failures may not apply in all environments or recent Dart versions.
Learnt from: exaby73
PR: serverpod/serverpod#3741
File: modules/serverpod_auth/serverpod_auth_server/analysis_options.yaml:14-16
Timestamp: 2025-07-01T13:01:27.054Z
Learning: In Serverpod, first-party packages like serverpod_auth_server can appropriately use blanket `invalid_use_of_internal_member: ignore` directives in their analysis_options.yaml since they use internal Database methods internally without exposing them in their public APIs to end users.
Learnt from: tp
PR: serverpod/serverpod#3666
File: modules/new_serverpod_auth/serverpod_auth_migration/serverpod_auth_migration_client/CHANGELOG.md:1-7
Timestamp: 2025-06-17T11:44:37.288Z
Learning: The util/update_pubspecs script automatically copies the root CHANGELOG.md to all packages/modules and README_subpackage.md to all modules as README.md. These file changes should be ignored during code review as they are auto-generated distribution of shared content, not manual authoring that requires review.
Learnt from: tp
PR: serverpod/serverpod#3721
File: modules/new_serverpod_auth/serverpod_auth_session/serverpod_auth_session_flutter/test/serverpod_auth_session_flutter_test.dart:1-7
Timestamp: 2025-06-27T07:44:09.048Z
Learning: In Serverpod packages, the `uuid` package is re-exported through a chain: `serverpod_auth_session_client` re-exports `serverpod_client`, which re-exports `serverpod_serialization`, which re-exports `uuid`. This means `Uuid` class is available in files that import `serverpod_auth_session_client` without needing a direct `uuid` package import.
Learnt from: tp
PR: serverpod/serverpod#3666
File: modules/new_serverpod_auth/serverpod_auth_migration/serverpod_auth_migration_client/CHANGELOG.md:1-7
Timestamp: 2025-06-17T11:44:37.288Z
Learning: Changes to README.md and CHANGELOG.md files made by the util/update_pubspecs script can be safely ignored during code review, as these files are auto-generated by copying from a single source rather than being manually authored.
Learnt from: tp
PR: serverpod/serverpod#3666
File: modules/new_serverpod_auth/serverpod_auth_migration/serverpod_auth_migration_server/config/passwords.yaml:12-15
Timestamp: 2025-06-17T13:07:46.465Z
Learning: Configuration keys in Serverpod that contain dots (like `serverpod_auth_email_account.passwordHashPepper`) need to be renamed to use underscores or other valid characters because the system needs to support overriding configuration keys and passwords via environment variables, and BASH environment variable names cannot contain dots.
Learnt from: tp
PR: serverpod/serverpod#3666
File: modules/new_serverpod_auth/serverpod_auth_email_account/serverpod_auth_email_account_server/lib/src/business/email_accounts_admin.dart:130-143
Timestamp: 2025-06-17T11:38:13.087Z
Learning: In serverpod_auth_email_account EmailAccountsAdmin, tp prefers relying on database unique constraint exceptions over application-level pre-insert checks for email uniqueness, especially in contexts with longer-running transactions where TOCTOU issues could still occur.
Learnt from: tp
PR: serverpod/serverpod#3651
File: tests/serverpod_new_auth_test/serverpod_new_auth_test_server/test/integration/email_account_endpoint_test.dart:1-1
Timestamp: 2025-06-19T11:00:17.085Z
Learning: In Serverpod applications, methods that rely on public asset storage (like setUserImage/removeUserImage) should be tested in E2E tests rather than withServerpod integration tests, as they require a full server environment with asset storage infrastructure to properly test image upload/download functionality.
util/pub_get_all (4)
Learnt from: tp
PR: serverpod/serverpod#3721
File: util/pub_get_all:0-0
Timestamp: 2025-06-27T08:39:36.440Z
Learning: In the Serverpod project, `dart pub get` commands work fine on Flutter packages both locally and in CI environments, even when the package has `flutter: sdk: flutter` dependencies in pubspec.yaml. The technical constraint of Flutter SDK dependencies causing `dart pub` failures may not apply in all environments or recent Dart versions.
Learnt from: tp
PR: serverpod/serverpod#3666
File: modules/new_serverpod_auth/serverpod_auth_migration/serverpod_auth_migration_client/CHANGELOG.md:1-7
Timestamp: 2025-06-17T11:44:37.288Z
Learning: The util/update_pubspecs script automatically copies the root CHANGELOG.md to all packages/modules and README_subpackage.md to all modules as README.md. These file changes should be ignored during code review as they are auto-generated distribution of shared content, not manual authoring that requires review.
Learnt from: tp
PR: serverpod/serverpod#3666
File: modules/new_serverpod_auth/serverpod_auth_migration/serverpod_auth_migration_client/CHANGELOG.md:1-7
Timestamp: 2025-06-17T11:44:37.288Z
Learning: Changes to README.md and CHANGELOG.md files made by the util/update_pubspecs script can be safely ignored during code review, as these files are auto-generated by copying from a single source rather than being manually authored.
Learnt from: tp
PR: serverpod/serverpod#3747
File: modules/new_serverpod_auth/serverpod_auth_migration/serverpod_auth_migration_server/lib/src/business/migrating_email_endpoint_base.dart:4-4
Timestamp: 2025-07-02T16:07:50.947Z
Learning: In Serverpod, tp prefers importing the full package (e.g., 'package:serverpod_auth_migration_server/serverpod_auth_migration_server.dart') as a baseline rather than using smaller local imports, even within the same package where it might be considered a "self-import".
modules/new_serverpod_auth/serverpod_auth_backwards_compatibility/serverpod_auth_backwards_compatibility_server/pubspec.yaml (13)
Learnt from: tp
PR: serverpod/serverpod#3747
File: tests/serverpod_new_auth_test/serverpod_new_auth_test_server/pubspec.yaml:37-38
Timestamp: 2025-07-02T16:09:27.702Z
Learning: In Serverpod migration testing, it's appropriate for test servers like serverpod_new_auth_test_server to include dependencies on both legacy packages (e.g., serverpod_auth_server) and new modular packages to enable comprehensive testing of migration paths from old to new authentication systems.
Learnt from: tp
PR: serverpod/serverpod#3747
File: modules/new_serverpod_auth/serverpod_auth_migration/serverpod_auth_migration_server/lib/src/business/migrating_email_endpoint_base.dart:4-4
Timestamp: 2025-07-02T16:07:50.947Z
Learning: In Serverpod, tp prefers importing the full package (e.g., 'package:serverpod_auth_migration_server/serverpod_auth_migration_server.dart') as a baseline rather than using smaller local imports, even within the same package where it might be considered a "self-import".
Learnt from: tp
PR: serverpod/serverpod#3666
File: modules/new_serverpod_auth/serverpod_auth_migration/serverpod_auth_migration_client/CHANGELOG.md:1-7
Timestamp: 2025-06-17T11:40:09.088Z
Learning: CHANGELOG.md files in the serverpod_auth_migration modules (client and server) are auto-generated and cannot be manually modified during the development process.
Learnt from: exaby73
PR: serverpod/serverpod#3741
File: modules/serverpod_auth/serverpod_auth_server/analysis_options.yaml:14-16
Timestamp: 2025-07-01T13:01:27.054Z
Learning: In Serverpod, first-party packages like serverpod_auth_server can appropriately use blanket `invalid_use_of_internal_member: ignore` directives in their analysis_options.yaml since they use internal Database methods internally without exposing them in their public APIs to end users.
Learnt from: tp
PR: serverpod/serverpod#3666
File: modules/new_serverpod_auth/serverpod_auth_migration/serverpod_auth_migration_server/README.md:3-8
Timestamp: 2025-06-17T11:34:13.289Z
Learning: The README.md files in the serverpod_auth_migration module directories are auto-generated and get overwritten by utility scripts, so manual updates should be avoided until proper documentation is added during feature rollout.
Learnt from: tp
PR: serverpod/serverpod#3721
File: modules/new_serverpod_auth/serverpod_auth_session/serverpod_auth_session_flutter/test/serverpod_auth_session_flutter_test.dart:1-7
Timestamp: 2025-06-27T07:44:09.048Z
Learning: In Serverpod packages, the `uuid` package is re-exported through a chain: `serverpod_auth_session_client` re-exports `serverpod_client`, which re-exports `serverpod_serialization`, which re-exports `uuid`. This means `Uuid` class is available in files that import `serverpod_auth_session_client` without needing a direct `uuid` package import.
Learnt from: tp
PR: serverpod/serverpod#3721
File: util/pub_get_all:0-0
Timestamp: 2025-06-27T08:39:36.440Z
Learning: In the Serverpod project, `dart pub get` commands work fine on Flutter packages both locally and in CI environments, even when the package has `flutter: sdk: flutter` dependencies in pubspec.yaml. The technical constraint of Flutter SDK dependencies causing `dart pub` failures may not apply in all environments or recent Dart versions.
Learnt from: tp
PR: serverpod/serverpod#3666
File: modules/new_serverpod_auth/serverpod_auth_migration/serverpod_auth_migration_client/CHANGELOG.md:1-7
Timestamp: 2025-06-17T11:44:37.288Z
Learning: Changes to README.md and CHANGELOG.md files made by the util/update_pubspecs script can be safely ignored during code review, as these files are auto-generated by copying from a single source rather than being manually authored.
Learnt from: tp
PR: serverpod/serverpod#3666
File: modules/new_serverpod_auth/serverpod_auth_migration/serverpod_auth_migration_client/CHANGELOG.md:1-7
Timestamp: 2025-06-17T11:44:37.288Z
Learning: The util/update_pubspecs script automatically copies the root CHANGELOG.md to all packages/modules and README_subpackage.md to all modules as README.md. These file changes should be ignored during code review as they are auto-generated distribution of shared content, not manual authoring that requires review.
Learnt from: tp
PR: serverpod/serverpod#3672
File: tests/serverpod_test_server/test_integration/test_tools/test_session_builder_test.dart:10-30
Timestamp: 2025-06-18T14:49:11.263Z
Learning: In Serverpod test files, tp prefers using nullable late variables for AuthenticationInfo in tests (e.g., `late AuthenticationInfo? authenticationInfo;`) rather than non-nullable ones to avoid using `!` operators and to get clearer error messages when authentication setup fails. This provides better diagnostics when `session.authenticated` returns null.
Learnt from: tp
PR: serverpod/serverpod#3666
File: modules/new_serverpod_auth/serverpod_auth_migration/serverpod_auth_migration_server/config/passwords.yaml:12-15
Timestamp: 2025-06-17T13:07:46.465Z
Learning: Configuration keys in Serverpod that contain dots (like `serverpod_auth_email_account.passwordHashPepper`) need to be renamed to use underscores or other valid characters because the system needs to support overriding configuration keys and passwords via environment variables, and BASH environment variable names cannot contain dots.
Learnt from: tp
PR: serverpod/serverpod#3651
File: modules/new_serverpod_auth/serverpod_auth_email_account/serverpod_auth_email_account_server/lib/src/business/email_accounts.dart:35-39
Timestamp: 2025-06-16T12:07:26.018Z
Learning: The `withServerpod` test helper runs tests within a transaction, which may require adapting database queries to accept transaction parameters for proper snapshot consistency during testing.
Learnt from: tp
PR: serverpod/serverpod#3651
File: tests/serverpod_new_auth_test/serverpod_new_auth_test_server/test/integration/email_account_endpoint_test.dart:1-1
Timestamp: 2025-06-19T11:00:17.085Z
Learning: In Serverpod applications, methods that rely on public asset storage (like setUserImage/removeUserImage) should be tested in E2E tests rather than withServerpod integration tests, as they require a full server environment with asset storage infrastructure to properly test image upload/download functionality.
modules/new_serverpod_auth/serverpod_auth_backwards_compatibility/serverpod_auth_backwards_compatibility_flutter/lib/serverpod_auth_backwards_compatibility_flutter.dart (8)
Learnt from: tp
PR: serverpod/serverpod#3747
File: modules/new_serverpod_auth/serverpod_auth_migration/serverpod_auth_migration_server/lib/src/business/migrating_email_endpoint_base.dart:4-4
Timestamp: 2025-07-02T16:07:50.947Z
Learning: In Serverpod, tp prefers importing the full package (e.g., 'package:serverpod_auth_migration_server/serverpod_auth_migration_server.dart') as a baseline rather than using smaller local imports, even within the same package where it might be considered a "self-import".
Learnt from: tp
PR: serverpod/serverpod#3747
File: tests/serverpod_new_auth_test/serverpod_new_auth_test_server/pubspec.yaml:37-38
Timestamp: 2025-07-02T16:09:27.702Z
Learning: In Serverpod migration testing, it's appropriate for test servers like serverpod_new_auth_test_server to include dependencies on both legacy packages (e.g., serverpod_auth_server) and new modular packages to enable comprehensive testing of migration paths from old to new authentication systems.
Learnt from: tp
PR: serverpod/serverpod#3721
File: modules/new_serverpod_auth/serverpod_auth_session/serverpod_auth_session_flutter/test/serverpod_auth_session_flutter_test.dart:1-7
Timestamp: 2025-06-27T07:44:09.048Z
Learning: In Serverpod packages, the `uuid` package is re-exported through a chain: `serverpod_auth_session_client` re-exports `serverpod_client`, which re-exports `serverpod_serialization`, which re-exports `uuid`. This means `Uuid` class is available in files that import `serverpod_auth_session_client` without needing a direct `uuid` package import.
Learnt from: tp
PR: serverpod/serverpod#3721
File: util/pub_get_all:0-0
Timestamp: 2025-06-27T08:39:36.440Z
Learning: In the Serverpod project, `dart pub get` commands work fine on Flutter packages both locally and in CI environments, even when the package has `flutter: sdk: flutter` dependencies in pubspec.yaml. The technical constraint of Flutter SDK dependencies causing `dart pub` failures may not apply in all environments or recent Dart versions.
Learnt from: exaby73
PR: serverpod/serverpod#3741
File: modules/serverpod_auth/serverpod_auth_server/analysis_options.yaml:14-16
Timestamp: 2025-07-01T13:01:27.054Z
Learning: In Serverpod, first-party packages like serverpod_auth_server can appropriately use blanket `invalid_use_of_internal_member: ignore` directives in their analysis_options.yaml since they use internal Database methods internally without exposing them in their public APIs to end users.
Learnt from: tp
PR: serverpod/serverpod#3666
File: modules/new_serverpod_auth/serverpod_auth_migration/serverpod_auth_migration_client/CHANGELOG.md:1-7
Timestamp: 2025-06-17T11:40:09.088Z
Learning: CHANGELOG.md files in the serverpod_auth_migration modules (client and server) are auto-generated and cannot be manually modified during the development process.
Learnt from: tp
PR: serverpod/serverpod#3666
File: modules/new_serverpod_auth/serverpod_auth_migration/serverpod_auth_migration_server/README.md:3-8
Timestamp: 2025-06-17T11:34:13.289Z
Learning: The README.md files in the serverpod_auth_migration module directories are auto-generated and get overwritten by utility scripts, so manual updates should be avoided until proper documentation is added during feature rollout.
Learnt from: tp
PR: serverpod/serverpod#3672
File: tests/serverpod_test_server/test_integration/test_tools/test_session_builder_test.dart:10-30
Timestamp: 2025-06-18T14:49:11.263Z
Learning: In Serverpod test files, tp prefers using nullable late variables for AuthenticationInfo in tests (e.g., `late AuthenticationInfo? authenticationInfo;`) rather than non-nullable ones to avoid using `!` operators and to get clearer error messages when authentication setup fails. This provides better diagnostics when `session.authenticated` returns null.
tests/serverpod_new_auth_test/serverpod_new_auth_test_client/pubspec.yaml (12)
Learnt from: tp
PR: serverpod/serverpod#3747
File: tests/serverpod_new_auth_test/serverpod_new_auth_test_server/pubspec.yaml:37-38
Timestamp: 2025-07-02T16:09:27.702Z
Learning: In Serverpod migration testing, it's appropriate for test servers like serverpod_new_auth_test_server to include dependencies on both legacy packages (e.g., serverpod_auth_server) and new modular packages to enable comprehensive testing of migration paths from old to new authentication systems.
Learnt from: tp
PR: serverpod/serverpod#3747
File: modules/new_serverpod_auth/serverpod_auth_migration/serverpod_auth_migration_server/lib/src/business/migrating_email_endpoint_base.dart:4-4
Timestamp: 2025-07-02T16:07:50.947Z
Learning: In Serverpod, tp prefers importing the full package (e.g., 'package:serverpod_auth_migration_server/serverpod_auth_migration_server.dart') as a baseline rather than using smaller local imports, even within the same package where it might be considered a "self-import".
Learnt from: tp
PR: serverpod/serverpod#3666
File: modules/new_serverpod_auth/serverpod_auth_migration/serverpod_auth_migration_client/CHANGELOG.md:1-7
Timestamp: 2025-06-17T11:40:09.088Z
Learning: CHANGELOG.md files in the serverpod_auth_migration modules (client and server) are auto-generated and cannot be manually modified during the development process.
Learnt from: exaby73
PR: serverpod/serverpod#3741
File: modules/serverpod_auth/serverpod_auth_server/analysis_options.yaml:14-16
Timestamp: 2025-07-01T13:01:27.054Z
Learning: In Serverpod, first-party packages like serverpod_auth_server can appropriately use blanket `invalid_use_of_internal_member: ignore` directives in their analysis_options.yaml since they use internal Database methods internally without exposing them in their public APIs to end users.
Learnt from: tp
PR: serverpod/serverpod#3721
File: modules/new_serverpod_auth/serverpod_auth_session/serverpod_auth_session_flutter/test/serverpod_auth_session_flutter_test.dart:1-7
Timestamp: 2025-06-27T07:44:09.048Z
Learning: In Serverpod packages, the `uuid` package is re-exported through a chain: `serverpod_auth_session_client` re-exports `serverpod_client`, which re-exports `serverpod_serialization`, which re-exports `uuid`. This means `Uuid` class is available in files that import `serverpod_auth_session_client` without needing a direct `uuid` package import.
Learnt from: tp
PR: serverpod/serverpod#3721
File: util/pub_get_all:0-0
Timestamp: 2025-06-27T08:39:36.440Z
Learning: In the Serverpod project, `dart pub get` commands work fine on Flutter packages both locally and in CI environments, even when the package has `flutter: sdk: flutter` dependencies in pubspec.yaml. The technical constraint of Flutter SDK dependencies causing `dart pub` failures may not apply in all environments or recent Dart versions.
Learnt from: tp
PR: serverpod/serverpod#3666
File: modules/new_serverpod_auth/serverpod_auth_migration/serverpod_auth_migration_server/README.md:3-8
Timestamp: 2025-06-17T11:34:13.289Z
Learning: The README.md files in the serverpod_auth_migration module directories are auto-generated and get overwritten by utility scripts, so manual updates should be avoided until proper documentation is added during feature rollout.
Learnt from: tp
PR: serverpod/serverpod#3666
File: modules/new_serverpod_auth/serverpod_auth_migration/serverpod_auth_migration_client/CHANGELOG.md:1-7
Timestamp: 2025-06-17T11:44:37.288Z
Learning: The util/update_pubspecs script automatically copies the root CHANGELOG.md to all packages/modules and README_subpackage.md to all modules as README.md. These file changes should be ignored during code review as they are auto-generated distribution of shared content, not manual authoring that requires review.
Learnt from: tp
PR: serverpod/serverpod#3666
File: modules/new_serverpod_auth/serverpod_auth_migration/serverpod_auth_migration_client/CHANGELOG.md:1-7
Timestamp: 2025-06-17T11:44:37.288Z
Learning: Changes to README.md and CHANGELOG.md files made by the util/update_pubspecs script can be safely ignored during code review, as these files are auto-generated by copying from a single source rather than being manually authored.
Learnt from: tp
PR: serverpod/serverpod#3672
File: tests/serverpod_test_server/test_integration/test_tools/test_session_builder_test.dart:10-30
Timestamp: 2025-06-18T14:49:11.263Z
Learning: In Serverpod test files, tp prefers using nullable late variables for AuthenticationInfo in tests (e.g., `late AuthenticationInfo? authenticationInfo;`) rather than non-nullable ones to avoid using `!` operators and to get clearer error messages when authentication setup fails. This provides better diagnostics when `session.authenticated` returns null.
Learnt from: tp
PR: serverpod/serverpod#3666
File: modules/new_serverpod_auth/serverpod_auth_migration/serverpod_auth_migration_server/config/passwords.yaml:12-15
Timestamp: 2025-06-17T13:07:46.465Z
Learning: Configuration keys in Serverpod that contain dots (like `serverpod_auth_email_account.passwordHashPepper`) need to be renamed to use underscores or other valid characters because the system needs to support overriding configuration keys and passwords via environment variables, and BASH environment variable names cannot contain dots.
Learnt from: tp
PR: serverpod/serverpod#3666
File: modules/new_serverpod_auth/serverpod_auth_email_account/serverpod_auth_email_account_server/lib/src/business/email_accounts_admin.dart:130-143
Timestamp: 2025-06-17T11:38:13.087Z
Learning: In serverpod_auth_email_account EmailAccountsAdmin, tp prefers relying on database unique constraint exceptions over application-level pre-insert checks for email uniqueness, especially in contexts with longer-running transactions where TOCTOU issues could still occur.
modules/new_serverpod_auth/serverpod_auth_backwards_compatibility/serverpod_auth_backwards_compatibility_flutter/README.md (12)
Learnt from: tp
PR: serverpod/serverpod#3666
File: modules/new_serverpod_auth/serverpod_auth_migration/serverpod_auth_migration_server/README.md:3-8
Timestamp: 2025-06-17T11:34:13.289Z
Learning: The README.md files in the serverpod_auth_migration module directories are auto-generated and get overwritten by utility scripts, so manual updates should be avoided until proper documentation is added during feature rollout.
Learnt from: tp
PR: serverpod/serverpod#3747
File: modules/new_serverpod_auth/serverpod_auth_migration/serverpod_auth_migration_server/lib/src/business/migrating_email_endpoint_base.dart:4-4
Timestamp: 2025-07-02T16:07:50.947Z
Learning: In Serverpod, tp prefers importing the full package (e.g., 'package:serverpod_auth_migration_server/serverpod_auth_migration_server.dart') as a baseline rather than using smaller local imports, even within the same package where it might be considered a "self-import".
Learnt from: tp
PR: serverpod/serverpod#3666
File: modules/new_serverpod_auth/serverpod_auth_migration/serverpod_auth_migration_client/CHANGELOG.md:1-7
Timestamp: 2025-06-17T11:40:09.088Z
Learning: CHANGELOG.md files in the serverpod_auth_migration modules (client and server) are auto-generated and cannot be manually modified during the development process.
Learnt from: tp
PR: serverpod/serverpod#3747
File: tests/serverpod_new_auth_test/serverpod_new_auth_test_server/pubspec.yaml:37-38
Timestamp: 2025-07-02T16:09:27.702Z
Learning: In Serverpod migration testing, it's appropriate for test servers like serverpod_new_auth_test_server to include dependencies on both legacy packages (e.g., serverpod_auth_server) and new modular packages to enable comprehensive testing of migration paths from old to new authentication systems.
Learnt from: tp
PR: serverpod/serverpod#3721
File: util/pub_get_all:0-0
Timestamp: 2025-06-27T08:39:36.440Z
Learning: In the Serverpod project, `dart pub get` commands work fine on Flutter packages both locally and in CI environments, even when the package has `flutter: sdk: flutter` dependencies in pubspec.yaml. The technical constraint of Flutter SDK dependencies causing `dart pub` failures may not apply in all environments or recent Dart versions.
Learnt from: tp
PR: serverpod/serverpod#3666
File: modules/new_serverpod_auth/serverpod_auth_migration/serverpod_auth_migration_client/CHANGELOG.md:1-7
Timestamp: 2025-06-17T11:44:37.288Z
Learning: The util/update_pubspecs script automatically copies the root CHANGELOG.md to all packages/modules and README_subpackage.md to all modules as README.md. These file changes should be ignored during code review as they are auto-generated distribution of shared content, not manual authoring that requires review.
Learnt from: tp
PR: serverpod/serverpod#3666
File: modules/new_serverpod_auth/serverpod_auth_migration/serverpod_auth_migration_client/CHANGELOG.md:1-7
Timestamp: 2025-06-17T11:44:37.288Z
Learning: Changes to README.md and CHANGELOG.md files made by the util/update_pubspecs script can be safely ignored during code review, as these files are auto-generated by copying from a single source rather than being manually authored.
Learnt from: exaby73
PR: serverpod/serverpod#3741
File: modules/serverpod_auth/serverpod_auth_server/analysis_options.yaml:14-16
Timestamp: 2025-07-01T13:01:27.054Z
Learning: In Serverpod, first-party packages like serverpod_auth_server can appropriately use blanket `invalid_use_of_internal_member: ignore` directives in their analysis_options.yaml since they use internal Database methods internally without exposing them in their public APIs to end users.
Learnt from: tp
PR: serverpod/serverpod#3651
File: modules/new_serverpod_auth/serverpod_auth_email_account/serverpod_auth_email_account_server/lib/src/business/email_accounts.dart:35-39
Timestamp: 2025-06-16T12:07:26.018Z
Learning: The `withServerpod` test helper runs tests within a transaction, which may require adapting database queries to accept transaction parameters for proper snapshot consistency during testing.
Learnt from: tp
PR: serverpod/serverpod#3721
File: modules/new_serverpod_auth/serverpod_auth_session/serverpod_auth_session_flutter/test/serverpod_auth_session_flutter_test.dart:1-7
Timestamp: 2025-06-27T07:44:09.048Z
Learning: In Serverpod packages, the `uuid` package is re-exported through a chain: `serverpod_auth_session_client` re-exports `serverpod_client`, which re-exports `serverpod_serialization`, which re-exports `uuid`. This means `Uuid` class is available in files that import `serverpod_auth_session_client` without needing a direct `uuid` package import.
Learnt from: tp
PR: serverpod/serverpod#3651
File: tests/serverpod_new_auth_test/serverpod_new_auth_test_server/test/integration/email_account_endpoint_test.dart:1-1
Timestamp: 2025-06-19T11:00:17.085Z
Learning: In Serverpod applications, methods that rely on public asset storage (like setUserImage/removeUserImage) should be tested in E2E tests rather than withServerpod integration tests, as they require a full server environment with asset storage infrastructure to properly test image upload/download functionality.
Learnt from: exaby73
PR: serverpod/serverpod#3619
File: packages/serverpod/test/server/command_line_args_test.dart:220-250
Timestamp: 2025-06-12T12:35:56.188Z
Learning: `CommandLineArgs` in Serverpod is intentionally designed so that if any CLI argument is invalid, the parser discards all parsed values and falls back to the built-in defaults, while emitting a log message. Maintainers consider this acceptable and do not plan to change it.
modules/new_serverpod_auth/serverpod_auth_backwards_compatibility/serverpod_auth_backwards_compatibility_flutter/.metadata (8)
Learnt from: tp
PR: serverpod/serverpod#3666
File: modules/new_serverpod_auth/serverpod_auth_migration/serverpod_auth_migration_client/CHANGELOG.md:1-7
Timestamp: 2025-06-17T11:40:09.088Z
Learning: CHANGELOG.md files in the serverpod_auth_migration modules (client and server) are auto-generated and cannot be manually modified during the development process.
Learnt from: tp
PR: serverpod/serverpod#3666
File: modules/new_serverpod_auth/serverpod_auth_migration/serverpod_auth_migration_server/README.md:3-8
Timestamp: 2025-06-17T11:34:13.289Z
Learning: The README.md files in the serverpod_auth_migration module directories are auto-generated and get overwritten by utility scripts, so manual updates should be avoided until proper documentation is added during feature rollout.
Learnt from: tp
PR: serverpod/serverpod#3721
File: util/pub_get_all:0-0
Timestamp: 2025-06-27T08:39:36.440Z
Learning: In the Serverpod project, `dart pub get` commands work fine on Flutter packages both locally and in CI environments, even when the package has `flutter: sdk: flutter` dependencies in pubspec.yaml. The technical constraint of Flutter SDK dependencies causing `dart pub` failures may not apply in all environments or recent Dart versions.
Learnt from: tp
PR: serverpod/serverpod#3747
File: modules/new_serverpod_auth/serverpod_auth_migration/serverpod_auth_migration_server/lib/src/business/migrating_email_endpoint_base.dart:4-4
Timestamp: 2025-07-02T16:07:50.947Z
Learning: In Serverpod, tp prefers importing the full package (e.g., 'package:serverpod_auth_migration_server/serverpod_auth_migration_server.dart') as a baseline rather than using smaller local imports, even within the same package where it might be considered a "self-import".
Learnt from: tp
PR: serverpod/serverpod#3666
File: modules/new_serverpod_auth/serverpod_auth_migration/serverpod_auth_migration_client/CHANGELOG.md:1-7
Timestamp: 2025-06-17T11:44:37.288Z
Learning: Changes to README.md and CHANGELOG.md files made by the util/update_pubspecs script can be safely ignored during code review, as these files are auto-generated by copying from a single source rather than being manually authored.
Learnt from: tp
PR: serverpod/serverpod#3666
File: modules/new_serverpod_auth/serverpod_auth_migration/serverpod_auth_migration_client/CHANGELOG.md:1-7
Timestamp: 2025-06-17T11:44:37.288Z
Learning: The util/update_pubspecs script automatically copies the root CHANGELOG.md to all packages/modules and README_subpackage.md to all modules as README.md. These file changes should be ignored during code review as they are auto-generated distribution of shared content, not manual authoring that requires review.
Learnt from: exaby73
PR: serverpod/serverpod#3741
File: modules/serverpod_auth/serverpod_auth_server/analysis_options.yaml:14-16
Timestamp: 2025-07-01T13:01:27.054Z
Learning: In Serverpod, first-party packages like serverpod_auth_server can appropriately use blanket `invalid_use_of_internal_member: ignore` directives in their analysis_options.yaml since they use internal Database methods internally without exposing them in their public APIs to end users.
Learnt from: tp
PR: serverpod/serverpod#3747
File: tests/serverpod_new_auth_test/serverpod_new_auth_test_server/pubspec.yaml:37-38
Timestamp: 2025-07-02T16:09:27.702Z
Learning: In Serverpod migration testing, it's appropriate for test servers like serverpod_new_auth_test_server to include dependencies on both legacy packages (e.g., serverpod_auth_server) and new modular packages to enable comprehensive testing of migration paths from old to new authentication systems.
templates/pubspecs/modules/new_serverpod_auth/serverpod_auth_backwards_compatibility/serverpod_auth_backwards_compatibility_server/pubspec.yaml (13)
Learnt from: tp
PR: serverpod/serverpod#3747
File: tests/serverpod_new_auth_test/serverpod_new_auth_test_server/pubspec.yaml:37-38
Timestamp: 2025-07-02T16:09:27.702Z
Learning: In Serverpod migration testing, it's appropriate for test servers like serverpod_new_auth_test_server to include dependencies on both legacy packages (e.g., serverpod_auth_server) and new modular packages to enable comprehensive testing of migration paths from old to new authentication systems.
Learnt from: tp
PR: serverpod/serverpod#3747
File: modules/new_serverpod_auth/serverpod_auth_migration/serverpod_auth_migration_server/lib/src/business/migrating_email_endpoint_base.dart:4-4
Timestamp: 2025-07-02T16:07:50.947Z
Learning: In Serverpod, tp prefers importing the full package (e.g., 'package:serverpod_auth_migration_server/serverpod_auth_migration_server.dart') as a baseline rather than using smaller local imports, even within the same package where it might be considered a "self-import".
Learnt from: tp
PR: serverpod/serverpod#3666
File: modules/new_serverpod_auth/serverpod_auth_migration/serverpod_auth_migration_client/CHANGELOG.md:1-7
Timestamp: 2025-06-17T11:40:09.088Z
Learning: CHANGELOG.md files in the serverpod_auth_migration modules (client and server) are auto-generated and cannot be manually modified during the development process.
Learnt from: tp
PR: serverpod/serverpod#3666
File: modules/new_serverpod_auth/serverpod_auth_migration/serverpod_auth_migration_server/README.md:3-8
Timestamp: 2025-06-17T11:34:13.289Z
Learning: The README.md files in the serverpod_auth_migration module directories are auto-generated and get overwritten by utility scripts, so manual updates should be avoided until proper documentation is added during feature rollout.
Learnt from: exaby73
PR: serverpod/serverpod#3741
File: modules/serverpod_auth/serverpod_auth_server/analysis_options.yaml:14-16
Timestamp: 2025-07-01T13:01:27.054Z
Learning: In Serverpod, first-party packages like serverpod_auth_server can appropriately use blanket `invalid_use_of_internal_member: ignore` directives in their analysis_options.yaml since they use internal Database methods internally without exposing them in their public APIs to end users.
Learnt from: tp
PR: serverpod/serverpod#3721
File: modules/new_serverpod_auth/serverpod_auth_session/serverpod_auth_session_flutter/test/serverpod_auth_session_flutter_test.dart:1-7
Timestamp: 2025-06-27T07:44:09.048Z
Learning: In Serverpod packages, the `uuid` package is re-exported through a chain: `serverpod_auth_session_client` re-exports `serverpod_client`, which re-exports `serverpod_serialization`, which re-exports `uuid`. This means `Uuid` class is available in files that import `serverpod_auth_session_client` without needing a direct `uuid` package import.
Learnt from: tp
PR: serverpod/serverpod#3721
File: util/pub_get_all:0-0
Timestamp: 2025-06-27T08:39:36.440Z
Learning: In the Serverpod project, `dart pub get` commands work fine on Flutter packages both locally and in CI environments, even when the package has `flutter: sdk: flutter` dependencies in pubspec.yaml. The technical constraint of Flutter SDK dependencies causing `dart pub` failures may not apply in all environments or recent Dart versions.
Learnt from: tp
PR: serverpod/serverpod#3666
File: modules/new_serverpod_auth/serverpod_auth_migration/serverpod_auth_migration_client/CHANGELOG.md:1-7
Timestamp: 2025-06-17T11:44:37.288Z
Learning: The util/update_pubspecs script automatically copies the root CHANGELOG.md to all packages/modules and README_subpackage.md to all modules as README.md. These file changes should be ignored during code review as they are auto-generated distribution of shared content, not manual authoring that requires review.
Learnt from: tp
PR: serverpod/serverpod#3666
File: modules/new_serverpod_auth/serverpod_auth_migration/serverpod_auth_migration_client/CHANGELOG.md:1-7
Timestamp: 2025-06-17T11:44:37.288Z
Learning: Changes to README.md and CHANGELOG.md files made by the util/update_pubspecs script can be safely ignored during code review, as these files are auto-generated by copying from a single source rather than being manually authored.
Learnt from: tp
PR: serverpod/serverpod#3666
File: modules/new_serverpod_auth/serverpod_auth_migration/serverpod_auth_migration_server/config/passwords.yaml:12-15
Timestamp: 2025-06-17T13:07:46.465Z
Learning: Configuration keys in Serverpod that contain dots (like `serverpod_auth_email_account.passwordHashPepper`) need to be renamed to use underscores or other valid characters because the system needs to support overriding configuration keys and passwords via environment variables, and BASH environment variable names cannot contain dots.
Learnt from: tp
PR: serverpod/serverpod#3672
File: tests/serverpod_test_server/test_integration/test_tools/test_session_builder_test.dart:10-30
Timestamp: 2025-06-18T14:49:11.263Z
Learning: In Serverpod test files, tp prefers using nullable late variables for AuthenticationInfo in tests (e.g., `late AuthenticationInfo? authenticationInfo;`) rather than non-nullable ones to avoid using `!` operators and to get clearer error messages when authentication setup fails. This provides better diagnostics when `session.authenticated` returns null.
Learnt from: tp
PR: serverpod/serverpod#3651
File: modules/new_serverpod_auth/serverpod_auth_email_account/serverpod_auth_email_account_server/lib/src/business/email_accounts.dart:35-39
Timestamp: 2025-06-16T12:07:26.018Z
Learning: The `withServerpod` test helper runs tests within a transaction, which may require adapting database queries to accept transaction parameters for proper snapshot consistency during testing.
Learnt from: tp
PR: serverpod/serverpod#3651
File: tests/serverpod_new_auth_test/serverpod_new_auth_test_server/test/integration/email_account_endpoint_test.dart:1-1
Timestamp: 2025-06-19T11:00:17.085Z
Learning: In Serverpod applications, methods that rely on public asset storage (like setUserImage/removeUserImage) should be tested in E2E tests rather than withServerpod integration tests, as they require a full server environment with asset storage infrastructure to properly test image upload/download functionality.
modules/new_serverpod_auth/serverpod_auth_session/serverpod_auth_session_flutter/lib/serverpod_auth_session_flutter.dart (7)
Learnt from: tp
PR: serverpod/serverpod#3747
File: modules/new_serverpod_auth/serverpod_auth_migration/serverpod_auth_migration_server/lib/src/business/migrating_email_endpoint_base.dart:4-4
Timestamp: 2025-07-02T16:07:50.947Z
Learning: In Serverpod, tp prefers importing the full package (e.g., 'package:serverpod_auth_migration_server/serverpod_auth_migration_server.dart') as a baseline rather than using smaller local imports, even within the same package where it might be considered a "self-import".
Learnt from: tp
PR: serverpod/serverpod#3721
File: modules/new_serverpod_auth/serverpod_auth_session/serverpod_auth_session_flutter/test/serverpod_auth_session_flutter_test.dart:1-7
Timestamp: 2025-06-27T07:44:09.048Z
Learning: In Serverpod packages, the `uuid` package is re-exported through a chain: `serverpod_auth_session_client` re-exports `serverpod_client`, which re-exports `serverpod_serialization`, which re-exports `uuid`. This means `Uuid` class is available in files that import `serverpod_auth_session_client` without needing a direct `uuid` package import.
Learnt from: tp
PR: serverpod/serverpod#3721
File: util/pub_get_all:0-0
Timestamp: 2025-06-27T08:39:36.440Z
Learning: In the Serverpod project, `dart pub get` commands work fine on Flutter packages both locally and in CI environments, even when the package has `flutter: sdk: flutter` dependencies in pubspec.yaml. The technical constraint of Flutter SDK dependencies causing `dart pub` failures may not apply in all environments or recent Dart versions.
Learnt from: tp
PR: serverpod/serverpod#3747
File: tests/serverpod_new_auth_test/serverpod_new_auth_test_server/pubspec.yaml:37-38
Timestamp: 2025-07-02T16:09:27.702Z
Learning: In Serverpod migration testing, it's appropriate for test servers like serverpod_new_auth_test_server to include dependencies on both legacy packages (e.g., serverpod_auth_server) and new modular packages to enable comprehensive testing of migration paths from old to new authentication systems.
Learnt from: exaby73
PR: serverpod/serverpod#3741
File: modules/serverpod_auth/serverpod_auth_server/analysis_options.yaml:14-16
Timestamp: 2025-07-01T13:01:27.054Z
Learning: In Serverpod, first-party packages like serverpod_auth_server can appropriately use blanket `invalid_use_of_internal_member: ignore` directives in their analysis_options.yaml since they use internal Database methods internally without exposing them in their public APIs to end users.
Learnt from: tp
PR: serverpod/serverpod#3672
File: tests/serverpod_test_server/test_integration/test_tools/test_session_builder_test.dart:10-30
Timestamp: 2025-06-18T14:49:11.263Z
Learning: In Serverpod test files, tp prefers using nullable late variables for AuthenticationInfo in tests (e.g., `late AuthenticationInfo? authenticationInfo;`) rather than non-nullable ones to avoid using `!` operators and to get clearer error messages when authentication setup fails. This provides better diagnostics when `session.authenticated` returns null.
Learnt from: tp
PR: serverpod/serverpod#3666
File: modules/new_serverpod_auth/serverpod_auth_migration/serverpod_auth_migration_client/CHANGELOG.md:1-7
Timestamp: 2025-06-17T11:40:09.088Z
Learning: CHANGELOG.md files in the serverpod_auth_migration modules (client and server) are auto-generated and cannot be manually modified during the development process.
modules/new_serverpod_auth/serverpod_auth_migration/serverpod_auth_migration_server/lib/src/business/migrate_user.dart (5)
Learnt from: tp
PR: serverpod/serverpod#3747
File: modules/new_serverpod_auth/serverpod_auth_migration/serverpod_auth_migration_server/lib/src/business/migrating_email_endpoint_base.dart:4-4
Timestamp: 2025-07-02T16:07:50.947Z
Learning: In Serverpod, tp prefers importing the full package (e.g., 'package:serverpod_auth_migration_server/serverpod_auth_migration_server.dart') as a baseline rather than using smaller local imports, even within the same package where it might be considered a "self-import".
Learnt from: tp
PR: serverpod/serverpod#3672
File: tests/serverpod_test_server/test_integration/test_tools/test_session_builder_test.dart:10-30
Timestamp: 2025-06-18T14:49:11.263Z
Learning: In Serverpod test files, tp prefers using nullable late variables for AuthenticationInfo in tests (e.g., `late AuthenticationInfo? authenticationInfo;`) rather than non-nullable ones to avoid using `!` operators and to get clearer error messages when authentication setup fails. This provides better diagnostics when `session.authenticated` returns null.
Learnt from: tp
PR: serverpod/serverpod#3747
File: tests/serverpod_new_auth_test/serverpod_new_auth_test_server/pubspec.yaml:37-38
Timestamp: 2025-07-02T16:09:27.702Z
Learning: In Serverpod migration testing, it's appropriate for test servers like serverpod_new_auth_test_server to include dependencies on both legacy packages (e.g., serverpod_auth_server) and new modular packages to enable comprehensive testing of migration paths from old to new authentication systems.
Learnt from: tp
PR: serverpod/serverpod#3666
File: modules/new_serverpod_auth/serverpod_auth_migration/serverpod_auth_migration_client/CHANGELOG.md:1-7
Timestamp: 2025-06-17T11:40:09.088Z
Learning: CHANGELOG.md files in the serverpod_auth_migration modules (client and server) are auto-generated and cannot be manually modified during the development process.
Learnt from: tp
PR: serverpod/serverpod#3666
File: modules/new_serverpod_auth/serverpod_auth_migration/serverpod_auth_migration_server/README.md:3-8
Timestamp: 2025-06-17T11:34:13.289Z
Learning: The README.md files in the serverpod_auth_migration module directories are auto-generated and get overwritten by utility scripts, so manual updates should be avoided until proper documentation is added during feature rollout.
modules/new_serverpod_auth/serverpod_auth_migration/serverpod_auth_migration_server/lib/serverpod_auth_migration_server.dart (6)
Learnt from: tp
PR: serverpod/serverpod#3747
File: modules/new_serverpod_auth/serverpod_auth_migration/serverpod_auth_migration_server/lib/src/business/migrating_email_endpoint_base.dart:4-4
Timestamp: 2025-07-02T16:07:50.947Z
Learning: In Serverpod, tp prefers importing the full package (e.g., 'package:serverpod_auth_migration_server/serverpod_auth_migration_server.dart') as a baseline rather than using smaller local imports, even within the same package where it might be considered a "self-import".
Learnt from: tp
PR: serverpod/serverpod#3747
File: tests/serverpod_new_auth_test/serverpod_new_auth_test_server/pubspec.yaml:37-38
Timestamp: 2025-07-02T16:09:27.702Z
Learning: In Serverpod migration testing, it's appropriate for test servers like serverpod_new_auth_test_server to include dependencies on both legacy packages (e.g., serverpod_auth_server) and new modular packages to enable comprehensive testing of migration paths from old to new authentication systems.
Learnt from: tp
PR: serverpod/serverpod#3666
File: modules/new_serverpod_auth/serverpod_auth_migration/serverpod_auth_migration_client/CHANGELOG.md:1-7
Timestamp: 2025-06-17T11:40:09.088Z
Learning: CHANGELOG.md files in the serverpod_auth_migration modules (client and server) are auto-generated and cannot be manually modified during the development process.
Learnt from: tp
PR: serverpod/serverpod#3666
File: modules/new_serverpod_auth/serverpod_auth_migration/serverpod_auth_migration_server/README.md:3-8
Timestamp: 2025-06-17T11:34:13.289Z
Learning: The README.md files in the serverpod_auth_migration module directories are auto-generated and get overwritten by utility scripts, so manual updates should be avoided until proper documentation is added during feature rollout.
Learnt from: exaby73
PR: serverpod/serverpod#3741
File: modules/serverpod_auth/serverpod_auth_server/analysis_options.yaml:14-16
Timestamp: 2025-07-01T13:01:27.054Z
Learning: In Serverpod, first-party packages like serverpod_auth_server can appropriately use blanket `invalid_use_of_internal_member: ignore` directives in their analysis_options.yaml since they use internal Database methods internally without exposing them in their public APIs to end users.
Learnt from: tp
PR: serverpod/serverpod#3721
File: modules/new_serverpod_auth/serverpod_auth_session/serverpod_auth_session_flutter/test/serverpod_auth_session_flutter_test.dart:1-7
Timestamp: 2025-06-27T07:44:09.048Z
Learning: In Serverpod packages, the `uuid` package is re-exported through a chain: `serverpod_auth_session_client` re-exports `serverpod_client`, which re-exports `serverpod_serialization`, which re-exports `uuid`. This means `Uuid` class is available in files that import `serverpod_auth_session_client` without needing a direct `uuid` package import.
modules/new_serverpod_auth/serverpod_auth_migration/serverpod_auth_migration_server/lib/src/business/auth_migration_config.dart (7)
Learnt from: tp
PR: serverpod/serverpod#3747
File: modules/new_serverpod_auth/serverpod_auth_migration/serverpod_auth_migration_server/lib/src/business/migrating_email_endpoint_base.dart:4-4
Timestamp: 2025-07-02T16:07:50.947Z
Learning: In Serverpod, tp prefers importing the full package (e.g., 'package:serverpod_auth_migration_server/serverpod_auth_migration_server.dart') as a baseline rather than using smaller local imports, even within the same package where it might be considered a "self-import".
Learnt from: tp
PR: serverpod/serverpod#3747
File: tests/serverpod_new_auth_test/serverpod_new_auth_test_server/pubspec.yaml:37-38
Timestamp: 2025-07-02T16:09:27.702Z
Learning: In Serverpod migration testing, it's appropriate for test servers like serverpod_new_auth_test_server to include dependencies on both legacy packages (e.g., serverpod_auth_server) and new modular packages to enable comprehensive testing of migration paths from old to new authentication systems.
Learnt from: tp
PR: serverpod/serverpod#3666
File: modules/new_serverpod_auth/serverpod_auth_migration/serverpod_auth_migration_server/README.md:3-8
Timestamp: 2025-06-17T11:34:13.289Z
Learning: The README.md files in the serverpod_auth_migration module directories are auto-generated and get overwritten by utility scripts, so manual updates should be avoided until proper documentation is added during feature rollout.
Learnt from: tp
PR: serverpod/serverpod#3666
File: modules/new_serverpod_auth/serverpod_auth_migration/serverpod_auth_migration_client/CHANGELOG.md:1-7
Timestamp: 2025-06-17T11:40:09.088Z
Learning: CHANGELOG.md files in the serverpod_auth_migration modules (client and server) are auto-generated and cannot be manually modified during the development process.
Learnt from: tp
PR: serverpod/serverpod#3672
File: tests/serverpod_test_server/test_integration/test_tools/test_session_builder_test.dart:10-30
Timestamp: 2025-06-18T14:49:11.263Z
Learning: In Serverpod test files, tp prefers using nullable late variables for AuthenticationInfo in tests (e.g., `late AuthenticationInfo? authenticationInfo;`) rather than non-nullable ones to avoid using `!` operators and to get clearer error messages when authentication setup fails. This provides better diagnostics when `session.authenticated` returns null.
Learnt from: tp
PR: serverpod/serverpod#3721
File: modules/new_serverpod_auth/serverpod_auth_session/serverpod_auth_session_flutter/test/serverpod_auth_session_flutter_test.dart:1-7
Timestamp: 2025-06-27T07:44:09.048Z
Learning: In Serverpod packages, the `uuid` package is re-exported through a chain: `serverpod_auth_session_client` re-exports `serverpod_client`, which re-exports `serverpod_serialization`, which re-exports `uuid`. This means `Uuid` class is available in files that import `serverpod_auth_session_client` without needing a direct `uuid` package import.
Learnt from: exaby73
PR: serverpod/serverpod#3741
File: modules/serverpod_auth/serverpod_auth_server/analysis_options.yaml:14-16
Timestamp: 2025-07-01T13:01:27.054Z
Learning: In Serverpod, first-party packages like serverpod_auth_server can appropriately use blanket `invalid_use_of_internal_member: ignore` directives in their analysis_options.yaml since they use internal Database methods internally without exposing them in their public APIs to end users.
modules/new_serverpod_auth/serverpod_auth_backwards_compatibility/serverpod_auth_backwards_compatibility_flutter/.gitignore (7)
Learnt from: tp
PR: serverpod/serverpod#3666
File: modules/new_serverpod_auth/serverpod_auth_migration/serverpod_auth_migration_client/CHANGELOG.md:1-7
Timestamp: 2025-06-17T11:44:37.288Z
Learning: Changes to README.md and CHANGELOG.md files made by the util/update_pubspecs script can be safely ignored during code review, as these files are auto-generated by copying from a single source rather than being manually authored.
Learnt from: tp
PR: serverpod/serverpod#3666
File: modules/new_serverpod_auth/serverpod_auth_migration/serverpod_auth_migration_client/CHANGELOG.md:1-7
Timestamp: 2025-06-17T11:40:09.088Z
Learning: CHANGELOG.md files in the serverpod_auth_migration modules (client and server) are auto-generated and cannot be manually modified during the development process.
Learnt from: tp
PR: serverpod/serverpod#3666
File: modules/new_serverpod_auth/serverpod_auth_migration/serverpod_auth_migration_client/CHANGELOG.md:1-7
Timestamp: 2025-06-17T11:44:37.288Z
Learning: The util/update_pubspecs script automatically copies the root CHANGELOG.md to all packages/modules and README_subpackage.md to all modules as README.md. These file changes should be ignored during code review as they are auto-generated distribution of shared content, not manual authoring that requires review.
Learnt from: tp
PR: serverpod/serverpod#3666
File: modules/new_serverpod_auth/serverpod_auth_migration/serverpod_auth_migration_server/README.md:3-8
Timestamp: 2025-06-17T11:34:13.289Z
Learning: The README.md files in the serverpod_auth_migration module directories are auto-generated and get overwritten by utility scripts, so manual updates should be avoided until proper documentation is added during feature rollout.
Learnt from: exaby73
PR: serverpod/serverpod#3741
File: modules/serverpod_auth/serverpod_auth_server/analysis_options.yaml:14-16
Timestamp: 2025-07-01T13:01:27.054Z
Learning: In Serverpod, first-party packages like serverpod_auth_server can appropriately use blanket `invalid_use_of_internal_member: ignore` directives in their analysis_options.yaml since they use internal Database methods internally without exposing them in their public APIs to end users.
Learnt from: tp
PR: serverpod/serverpod#3747
File: modules/new_serverpod_auth/serverpod_auth_migration/serverpod_auth_migration_server/lib/src/business/migrating_email_endpoint_base.dart:4-4
Timestamp: 2025-07-02T16:07:50.947Z
Learning: In Serverpod, tp prefers importing the full package (e.g., 'package:serverpod_auth_migration_server/serverpod_auth_migration_server.dart') as a baseline rather than using smaller local imports, even within the same package where it might be considered a "self-import".
Learnt from: tp
PR: serverpod/serverpod#3721
File: util/pub_get_all:0-0
Timestamp: 2025-06-27T08:39:36.440Z
Learning: In the Serverpod project, `dart pub get` commands work fine on Flutter packages both locally and in CI environments, even when the package has `flutter: sdk: flutter` dependencies in pubspec.yaml. The technical constraint of Flutter SDK dependencies causing `dart pub` failures may not apply in all environments or recent Dart versions.
templates/pubspecs/modules/new_serverpod_auth/serverpod_auth_backwards_compatibility/serverpod_auth_backwards_compatibility_client/pubspec.yaml (11)
Learnt from: tp
PR: serverpod/serverpod#3747
File: modules/new_serverpod_auth/serverpod_auth_migration/serverpod_auth_migration_server/lib/src/business/migrating_email_endpoint_base.dart:4-4
Timestamp: 2025-07-02T16:07:50.947Z
Learning: In Serverpod, tp prefers importing the full package (e.g., 'package:serverpod_auth_migration_server/serverpod_auth_migration_server.dart') as a baseline rather than using smaller local imports, even within the same package where it might be considered a "self-import".
Learnt from: tp
PR: serverpod/serverpod#3747
File: tests/serverpod_new_auth_test/serverpod_new_auth_test_server/pubspec.yaml:37-38
Timestamp: 2025-07-02T16:09:27.702Z
Learning: In Serverpod migration testing, it's appropriate for test servers like serverpod_new_auth_test_server to include dependencies on both legacy packages (e.g., serverpod_auth_server) and new modular packages to enable comprehensive testing of migration paths from old to new authentication systems.
Learnt from: tp
PR: serverpod/serverpod#3721
File: modules/new_serverpod_auth/serverpod_auth_session/serverpod_auth_session_flutter/test/serverpod_auth_session_flutter_test.dart:1-7
Timestamp: 2025-06-27T07:44:09.048Z
Learning: In Serverpod packages, the `uuid` package is re-exported through a chain: `serverpod_auth_session_client` re-exports `serverpod_client`, which re-exports `serverpod_serialization`, which re-exports `uuid`. This means `Uuid` class is available in files that import `serverpod_auth_session_client` without needing a direct `uuid` package import.
Learnt from: tp
PR: serverpod/serverpod#3666
File: modules/new_serverpod_auth/serverpod_auth_migration/serverpod_auth_migration_client/CHANGELOG.md:1-7
Timestamp: 2025-06-17T11:40:09.088Z
Learning: CHANGELOG.md files in the serverpod_auth_migration modules (client and server) are auto-generated and cannot be manually modified during the development process.
Learnt from: exaby73
PR: serverpod/serverpod#3741
File: modules/serverpod_auth/serverpod_auth_server/analysis_options.yaml:14-16
Timestamp: 2025-07-01T13:01:27.054Z
Learning: In Serverpod, first-party packages like serverpod_auth_server can appropriately use blanket `invalid_use_of_internal_member: ignore` directives in their analysis_options.yaml since they use internal Database methods internally without exposing them in their public APIs to end users.
Learnt from: tp
PR: serverpod/serverpod#3721
File: util/pub_get_all:0-0
Timestamp: 2025-06-27T08:39:36.440Z
Learning: In the Serverpod project, `dart pub get` commands work fine on Flutter packages both locally and in CI environments, even when the package has `flutter: sdk: flutter` dependencies in pubspec.yaml. The technical constraint of Flutter SDK dependencies causing `dart pub` failures may not apply in all environments or recent Dart versions.
Learnt from: tp
PR: serverpod/serverpod#3666
File: modules/new_serverpod_auth/serverpod_auth_migration/serverpod_auth_migration_server/README.md:3-8
Timestamp: 2025-06-17T11:34:13.289Z
Learning: The README.md files in the serverpod_auth_migration module directories are auto-generated and get overwritten by utility scripts, so manual updates should be avoided until proper documentation is added during feature rollout.
Learnt from: tp
PR: serverpod/serverpod#3666
File: modules/new_serverpod_auth/serverpod_auth_migration/serverpod_auth_migration_client/CHANGELOG.md:1-7
Timestamp: 2025-06-17T11:44:37.288Z
Learning: The util/update_pubspecs script automatically copies the root CHANGELOG.md to all packages/modules and README_subpackage.md to all modules as README.md. These file changes should be ignored during code review as they are auto-generated distribution of shared content, not manual authoring that requires review.
Learnt from: tp
PR: serverpod/serverpod#3666
File: modules/new_serverpod_auth/serverpod_auth_migration/serverpod_auth_migration_server/config/passwords.yaml:12-15
Timestamp: 2025-06-17T13:07:46.465Z
Learning: Configuration keys in Serverpod that contain dots (like `serverpod_auth_email_account.passwordHashPepper`) need to be renamed to use underscores or other valid characters because the system needs to support overriding configuration keys and passwords via environment variables, and BASH environment variable names cannot contain dots.
Learnt from: tp
PR: serverpod/serverpod#3666
File: modules/new_serverpod_auth/serverpod_auth_email_account/serverpod_auth_email_account_server/lib/src/business/email_accounts_admin.dart:130-143
Timestamp: 2025-06-17T11:38:13.087Z
Learning: In serverpod_auth_email_account EmailAccountsAdmin, tp prefers relying on database unique constraint exceptions over application-level pre-insert checks for email uniqueness, especially in contexts with longer-running transactions where TOCTOU issues could still occur.
Learnt from: tp
PR: serverpod/serverpod#3651
File: modules/new_serverpod_auth/serverpod_auth_email_account/serverpod_auth_email_account_server/lib/src/business/email_accounts.dart:35-39
Timestamp: 2025-06-16T12:07:26.018Z
Learning: The `withServerpod` test helper runs tests within a transaction, which may require adapting database queries to accept transaction parameters for proper snapshot consistency during testing.
util/update_pubspecs (7)
Learnt from: tp
PR: serverpod/serverpod#3666
File: modules/new_serverpod_auth/serverpod_auth_migration/serverpod_auth_migration_client/CHANGELOG.md:1-7
Timestamp: 2025-06-17T11:44:37.288Z
Learning: The util/update_pubspecs script automatically copies the root CHANGELOG.md to all packages/modules and README_subpackage.md to all modules as README.md. These file changes should be ignored during code review as they are auto-generated distribution of shared content, not manual authoring that requires review.
Learnt from: tp
PR: serverpod/serverpod#3666
File: modules/new_serverpod_auth/serverpod_auth_migration/serverpod_auth_migration_client/CHANGELOG.md:1-7
Timestamp: 2025-06-17T11:44:37.288Z
Learning: Changes to README.md and CHANGELOG.md files made by the util/update_pubspecs script can be safely ignored during code review, as these files are auto-generated by copying from a single source rather than being manually authored.
Learnt from: tp
PR: serverpod/serverpod#3666
File: modules/new_serverpod_auth/serverpod_auth_migration/serverpod_auth_migration_client/CHANGELOG.md:1-7
Timestamp: 2025-06-17T11:40:09.088Z
Learning: CHANGELOG.md files in the serverpod_auth_migration modules (client and server) are auto-generated and cannot be manually modified during the development process.
Learnt from: tp
PR: serverpod/serverpod#3666
File: modules/new_serverpod_auth/serverpod_auth_migration/serverpod_auth_migration_server/README.md:3-8
Timestamp: 2025-06-17T11:34:13.289Z
Learning: The README.md files in the serverpod_auth_migration module directories are auto-generated and get overwritten by utility scripts, so manual updates should be avoided until proper documentation is added during feature rollout.
Learnt from: tp
PR: serverpod/serverpod#3747
File: modules/new_serverpod_auth/serverpod_auth_migration/serverpod_auth_migration_server/lib/src/business/migrating_email_endpoint_base.dart:4-4
Timestamp: 2025-07-02T16:07:50.947Z
Learning: In Serverpod, tp prefers importing the full package (e.g., 'package:serverpod_auth_migration_server/serverpod_auth_migration_server.dart') as a baseline rather than using smaller local imports, even within the same package where it might be considered a "self-import".
Learnt from: tp
PR: serverpod/serverpod#3721
File: util/pub_get_all:0-0
Timestamp: 2025-06-27T08:39:36.440Z
Learning: In the Serverpod project, `dart pub get` commands work fine on Flutter packages both locally and in CI environments, even when the package has `flutter: sdk: flutter` dependencies in pubspec.yaml. The technical constraint of Flutter SDK dependencies causing `dart pub` failures may not apply in all environments or recent Dart versions.
Learnt from: tp
PR: serverpod/serverpod#3747
File: tests/serverpod_new_auth_test/serverpod_new_auth_test_server/pubspec.yaml:37-38
Timestamp: 2025-07-02T16:09:27.702Z
Learning: In Serverpod migration testing, it's appropriate for test servers like serverpod_new_auth_test_server to include dependencies on both legacy packages (e.g., serverpod_auth_server) and new modular packages to enable comprehensive testing of migration paths from old to new authentication systems.
util/run_tests_analyze (9)
Learnt from: tp
PR: serverpod/serverpod#3747
File: modules/new_serverpod_auth/serverpod_auth_migration/serverpod_auth_migration_server/lib/src/business/migrating_email_endpoint_base.dart:4-4
Timestamp: 2025-07-02T16:07:50.947Z
Learning: In Serverpod, tp prefers importing the full package (e.g., 'package:serverpod_auth_migration_server/serverpod_auth_migration_server.dart') as a baseline rather than using smaller local imports, even within the same package where it might be considered a "self-import".
Learnt from: tp
PR: serverpod/serverpod#3747
File: tests/serverpod_new_auth_test/serverpod_new_auth_test_server/pubspec.yaml:37-38
Timestamp: 2025-07-02T16:09:27.702Z
Learning: In Serverpod migration testing, it's appropriate for test servers like serverpod_new_auth_test_server to include dependencies on both legacy packages (e.g., serverpod_auth_server) and new modular packages to enable comprehensive testing of migration paths from old to new authentication systems.
Learnt from: tp
PR: serverpod/serverpod#3666
File: modules/new_serverpod_auth/serverpod_auth_migration/serverpod_auth_migration_client/CHANGELOG.md:1-7
Timestamp: 2025-06-17T11:44:37.288Z
Learning: Changes to README.md and CHANGELOG.md files made by the util/update_pubspecs script can be safely ignored during code review, as these files are auto-generated by copying from a single source rather than being manually authored.
Learnt from: tp
PR: serverpod/serverpod#3666
File: modules/new_serverpod_auth/serverpod_auth_migration/serverpod_auth_migration_client/CHANGELOG.md:1-7
Timestamp: 2025-06-17T11:40:09.088Z
Learning: CHANGELOG.md files in the serverpod_auth_migration modules (client and server) are auto-generated and cannot be manually modified during the development process.
Learnt from: tp
PR: serverpod/serverpod#3666
File: modules/new_serverpod_auth/serverpod_auth_migration/serverpod_auth_migration_client/CHANGELOG.md:1-7
Timestamp: 2025-06-17T11:44:37.288Z
Learning: The util/update_pubspecs script automatically copies the root CHANGELOG.md to all packages/modules and README_subpackage.md to all modules as README.md. These file changes should be ignored during code review as they are auto-generated distribution of shared content, not manual authoring that requires review.
Learnt from: exaby73
PR: serverpod/serverpod#3741
File: modules/serverpod_auth/serverpod_auth_server/analysis_options.yaml:14-16
Timestamp: 2025-07-01T13:01:27.054Z
Learning: In Serverpod, first-party packages like serverpod_auth_server can appropriately use blanket `invalid_use_of_internal_member: ignore` directives in their analysis_options.yaml since they use internal Database methods internally without exposing them in their public APIs to end users.
Learnt from: tp
PR: serverpod/serverpod#3666
File: modules/new_serverpod_auth/serverpod_auth_migration/serverpod_auth_migration_server/README.md:3-8
Timestamp: 2025-06-17T11:34:13.289Z
Learning: The README.md files in the serverpod_auth_migration module directories are auto-generated and get overwritten by utility scripts, so manual updates should be avoided until proper documentation is added during feature rollout.
Learnt from: tp
PR: serverpod/serverpod#3721
File: util/pub_get_all:0-0
Timestamp: 2025-06-27T08:39:36.440Z
Learning: In the Serverpod project, `dart pub get` commands work fine on Flutter packages both locally and in CI environments, even when the package has `flutter: sdk: flutter` dependencies in pubspec.yaml. The technical constraint of Flutter SDK dependencies causing `dart pub` failures may not apply in all environments or recent Dart versions.
Learnt from: tp
PR: serverpod/serverpod#3721
File: modules/new_serverpod_auth/serverpod_auth_session/serverpod_auth_session_flutter/test/serverpod_auth_session_flutter_test.dart:1-7
Timestamp: 2025-06-27T07:44:09.048Z
Learning: In Serverpod packages, the `uuid` package is re-exported through a chain: `serverpod_auth_session_client` re-exports `serverpod_client`, which re-exports `serverpod_serialization`, which re-exports `uuid`. This means `Uuid` class is available in files that import `serverpod_auth_session_client` without needing a direct `uuid` package import.
templates/pubspecs/tests/serverpod_new_auth_test/serverpod_new_auth_test_client/pubspec.yaml (12)
Learnt from: tp
PR: serverpod/serverpod#3747
File: tests/serverpod_new_auth_test/serverpod_new_auth_test_server/pubspec.yaml:37-38
Timestamp: 2025-07-02T16:09:27.702Z
Learning: In Serverpod migration testing, it's appropriate for test servers like serverpod_new_auth_test_server to include dependencies on both legacy packages (e.g., serverpod_auth_server) and new modular packages to enable comprehensive testing of migration paths from old to new authentication systems.
Learnt from: tp
PR: serverpod/serverpod#3747
File: modules/new_serverpod_auth/serverpod_auth_migration/serverpod_auth_migration_server/lib/src/business/migrating_email_endpoint_base.dart:4-4
Timestamp: 2025-07-02T16:07:50.947Z
Learning: In Serverpod, tp prefers importing the full package (e.g., 'package:serverpod_auth_migration_server/serverpod_auth_migration_server.dart') as a baseline rather than using smaller local imports, even within the same package where it might be considered a "self-import".
Learnt from: tp
PR: serverpod/serverpod#3666
File: modules/new_serverpod_auth/serverpod_auth_migration/serverpod_auth_migration_client/CHANGELOG.md:1-7
Timestamp: 2025-06-17T11:40:09.088Z
Learning: CHANGELOG.md files in the serverpod_auth_migration modules (client and server) are auto-generated and cannot be manually modified during the development process.
Learnt from: exaby73
PR: serverpod/serverpod#3741
File: modules/serverpod_auth/serverpod_auth_server/analysis_options.yaml:14-16
Timestamp: 2025-07-01T13:01:27.054Z
Learning: In Serverpod, first-party packages like serverpod_auth_server can appropriately use blanket `invalid_use_of_internal_member: ignore` directives in their analysis_options.yaml since they use internal Database methods internally without exposing them in their public APIs to end users.
Learnt from: tp
PR: serverpod/serverpod#3666
File: modules/new_serverpod_auth/serverpod_auth_migration/serverpod_auth_migration_server/README.md:3-8
Timestamp: 2025-06-17T11:34:13.289Z
Learning: The README.md files in the serverpod_auth_migration module directories are auto-generated and get overwritten by utility scripts, so manual updates should be avoided until proper documentation is added during feature rollout.
Learnt from: tp
PR: serverpod/serverpod#3721
File: util/pub_get_all:0-0
Timestamp: 2025-06-27T08:39:36.440Z
Learning: In the Serverpod project, `dart pub get` commands work fine on Flutter packages both locally and in CI environments, even when the package has `flutter: sdk: flutter` dependencies in pubspec.yaml. The technical constraint of Flutter SDK dependencies causing `dart pub` failures may not apply in all environments or recent Dart versions.
Learnt from: tp
PR: serverpod/serverpod#3721
File: modules/new_serverpod_auth/serverpod_auth_session/serverpod_auth_session_flutter/test/serverpod_auth_session_flutter_test.dart:1-7
Timestamp: 2025-06-27T07:44:09.048Z
Learning: In Serverpod packages, the `uuid` package is re-exported through a chain: `serverpod_auth_session_client` re-exports `serverpod_client`, which re-exports `serverpod_serialization`, which re-exports `uuid`. This means `Uuid` class is available in files that import `serverpod_auth_session_client` without needing a direct `uuid` package import.
Learnt from: tp
PR: serverpod/serverpod#3666
File: modules/new_serverpod_auth/serverpod_auth_migration/serverpod_auth_migration_client/CHANGELOG.md:1-7
Timestamp: 2025-06-17T11:44:37.288Z
Learning: The util/update_pubspecs script automatically copies the root CHANGELOG.md to all packages/modules and README_subpackage.md to all modules as README.md. These file changes should be ignored during code review as they are auto-generated distribution of shared content, not manual authoring that requires review.
Learnt from: tp
PR: serverpod/serverpod#3666
File: modules/new_serverpod_auth/serverpod_auth_migration/serverpod_auth_migration_client/CHANGELOG.md:1-7
Timestamp: 2025-06-17T11:44:37.288Z
Learning: Changes to README.md and CHANGELOG.md files made by the util/update_pubspecs script can be safely ignored during code review, as these files are auto-generated by copying from a single source rather than being manually authored.
Learnt from: tp
PR: serverpod/serverpod#3672
File: tests/serverpod_test_server/test_integration/test_tools/test_session_builder_test.dart:10-30
Timestamp: 2025-06-18T14:49:11.263Z
Learning: In Serverpod test files, tp prefers using nullable late variables for AuthenticationInfo in tests (e.g., `late AuthenticationInfo? authenticationInfo;`) rather than non-nullable ones to avoid using `!` operators and to get clearer error messages when authentication setup fails. This provides better diagnostics when `session.authenticated` returns null.
Learnt from: tp
PR: serverpod/serverpod#3666
File: modules/new_serverpod_auth/serverpod_auth_migration/serverpod_auth_migration_server/config/passwords.yaml:12-15
Timestamp: 2025-06-17T13:07:46.465Z
Learning: Configuration keys in Serverpod that contain dots (like `serverpod_auth_email_account.passwordHashPepper`) need to be renamed to use underscores or other valid characters because the system needs to support overriding configuration keys and passwords via environment variables, and BASH environment variable names cannot contain dots.
Learnt from: tp
PR: serverpod/serverpod#3666
File: modules/new_serverpod_auth/serverpod_auth_email_account/serverpod_auth_email_account_server/lib/src/business/email_accounts_admin.dart:130-143
Timestamp: 2025-06-17T11:38:13.087Z
Learning: In serverpod_auth_email_account EmailAccountsAdmin, tp prefers relying on database unique constraint exceptions over application-level pre-insert checks for email uniqueness, especially in contexts with longer-running transactions where TOCTOU issues could still occur.
tests/serverpod_new_auth_test/serverpod_new_auth_test_flutter/pubspec.yaml (13)
Learnt from: tp
PR: serverpod/serverpod#3747
File: modules/new_serverpod_auth/serverpod_auth_migration/serverpod_auth_migration_server/lib/src/business/migrating_email_endpoint_base.dart:4-4
Timestamp: 2025-07-02T16:07:50.947Z
Learning: In Serverpod, tp prefers importing the full package (e.g., 'package:serverpod_auth_migration_server/serverpod_auth_migration_server.dart') as a baseline rather than using smaller local imports, even within the same package where it might be considered a "self-import".
Learnt from: tp
PR: serverpod/serverpod#3721
File: util/pub_get_all:0-0
Timestamp: 2025-06-27T08:39:36.440Z
Learning: In the Serverpod project, `dart pub get` commands work fine on Flutter packages both locally and in CI environments, even when the package has `flutter: sdk: flutter` dependencies in pubspec.yaml. The technical constraint of Flutter SDK dependencies causing `dart pub` failures may not apply in all environments or recent Dart versions.
Learnt from: tp
PR: serverpod/serverpod#3747
File: tests/serverpod_new_auth_test/serverpod_new_auth_test_server/pubspec.yaml:37-38
Timestamp: 2025-07-02T16:09:27.702Z
Learning: In Serverpod migration testing, it's appropriate for test servers like serverpod_new_auth_test_server to include dependencies on both legacy packages (e.g., serverpod_auth_server) and new modular packages to enable comprehensive testing of migration paths from old to new authentication systems.
Learnt from: tp
PR: serverpod/serverpod#3666
File: modules/new_serverpod_auth/serverpod_auth_migration/serverpod_auth_migration_client/CHANGELOG.md:1-7
Timestamp: 2025-06-17T11:40:09.088Z
Learning: CHANGELOG.md files in the serverpod_auth_migration modules (client and server) are auto-generated and cannot be manually modified during the development process.
Learnt from: tp
PR: serverpod/serverpod#3666
File: modules/new_serverpod_auth/serverpod_auth_migration/serverpod_auth_migration_client/CHANGELOG.md:1-7
Timestamp: 2025-06-17T11:44:37.288Z
Learning: The util/update_pubspecs script automatically copies the root CHANGELOG.md to all packages/modules and README_subpackage.md to all modules as README.md. These file changes should be ignored during code review as they are auto-generated distribution of shared content, not manual authoring that requires review.
Learnt from: exaby73
PR: serverpod/serverpod#3741
File: modules/serverpod_auth/serverpod_auth_server/analysis_options.yaml:14-16
Timestamp: 2025-07-01T13:01:27.054Z
Learning: In Serverpod, first-party packages like serverpod_auth_server can appropriately use blanket `invalid_use_of_internal_member: ignore` directives in their analysis_options.yaml since they use internal Database methods internally without exposing them in their public APIs to end users.
Learnt from: tp
PR: serverpod/serverpod#3666
File: modules/new_serverpod_auth/serverpod_auth_migration/serverpod_auth_migration_client/CHANGELOG.md:1-7
Timestamp: 2025-06-17T11:44:37.288Z
Learning: Changes to README.md and CHANGELOG.md files made by the util/update_pubspecs script can be safely ignored during code review, as these files are auto-generated by copying from a single source rather than being manually authored.
Learnt from: tp
PR: serverpod/serverpod#3666
File: modules/new_serverpod_auth/serverpod_auth_migration/serverpod_auth_migration_server/README.md:3-8
Timestamp: 2025-06-17T11:34:13.289Z
Learning: The README.md files in the serverpod_auth_migration module directories are auto-generated and get overwritten by utility scripts, so manual updates should be avoided until proper documentation is added during feature rollout.
Learnt from: tp
PR: serverpod/serverpod#3672
File: tests/serverpod_test_server/test_integration/test_tools/test_session_builder_test.dart:10-30
Timestamp: 2025-06-18T14:49:11.263Z
Learning: In Serverpod test files, tp prefers using nullable late variables for AuthenticationInfo in tests (e.g., `late AuthenticationInfo? authenticationInfo;`) rather than non-nullable ones to avoid using `!` operators and to get clearer error messages when authentication setup fails. This provides better diagnostics when `session.authenticated` returns null.
Learnt from: tp
PR: serverpod/serverpod#3651
File: tests/serverpod_new_auth_test/serverpod_new_auth_test_server/test/integration/email_account_endpoint_test.dart:1-1
Timestamp: 2025-06-19T11:00:17.085Z
Learning: In Serverpod applications, methods that rely on public asset storage (like setUserImage/removeUserImage) should be tested in E2E tests rather than withServerpod integration tests, as they require a full server environment with asset storage infrastructure to properly test image upload/download functionality.
Learnt from: tp
PR: serverpod/serverpod#3721
File: modules/new_serverpod_auth/serverpod_auth_session/serverpod_auth_session_flutter/test/serverpod_auth_session_flutter_test.dart:1-7
Timestamp: 2025-06-27T07:44:09.048Z
Learning: In Serverpod packages, the `uuid` package is re-exported through a chain: `serverpod_auth_session_client` re-exports `serverpod_client`, which re-exports `serverpod_serialization`, which re-exports `uuid`. This means `Uuid` class is available in files that import `serverpod_auth_session_client` without needing a direct `uuid` package import.
Learnt from: tp
PR: serverpod/serverpod#3666
File: modules/new_serverpod_auth/serverpod_auth_migration/serverpod_auth_migration_server/config/passwords.yaml:12-15
Timestamp: 2025-06-17T13:07:46.465Z
Learning: Configuration keys in Serverpod that contain dots (like `serverpod_auth_email_account.passwordHashPepper`) need to be renamed to use underscores or other valid characters because the system needs to support overriding configuration keys and passwords via environment variables, and BASH environment variable names cannot contain dots.
Learnt from: tp
PR: serverpod/serverpod#3666
File: modules/new_serverpod_auth/serverpod_auth_email_account/serverpod_auth_email_account_server/lib/src/business/email_accounts_admin.dart:130-143
Timestamp: 2025-06-17T11:38:13.087Z
Learning: In serverpod_auth_email_account EmailAccountsAdmin, tp prefers relying on database unique constraint exceptions over application-level pre-insert checks for email uniqueness, especially in contexts with longer-running transactions where TOCTOU issues could still occur.
modules/new_serverpod_auth/serverpod_auth_backwards_compatibility/serverpod_auth_backwards_compatibility_server/lib/src/endpoints/session_migration_endpoint.dart (3)
Learnt from: tp
PR: serverpod/serverpod#3747
File: tests/serverpod_new_auth_test/serverpod_new_auth_test_server/pubspec.yaml:37-38
Timestamp: 2025-07-02T16:09:27.702Z
Learning: In Serverpod migration testing, it's appropriate for test servers like serverpod_new_auth_test_server to include dependencies on both legacy packages (e.g., serverpod_auth_server) and new modular packages to enable comprehensive testing of migration paths from old to new authentication systems.
Learnt from: tp
PR: serverpod/serverpod#3747
File: modules/new_serverpod_auth/serverpod_auth_migration/serverpod_auth_migration_server/lib/src/business/migrating_email_endpoint_base.dart:4-4
Timestamp: 2025-07-02T16:07:50.947Z
Learning: In Serverpod, tp prefers importing the full package (e.g., 'package:serverpod_auth_migration_server/serverpod_auth_migration_server.dart') as a baseline rather than using smaller local imports, even within the same package where it might be considered a "self-import".
Learnt from: tp
PR: serverpod/serverpod#3672
File: tests/serverpod_test_server/test_integration/test_tools/test_session_builder_test.dart:10-30
Timestamp: 2025-06-18T14:49:11.263Z
Learning: In Serverpod test files, tp prefers using nullable late variables for AuthenticationInfo in tests (e.g., `late AuthenticationInfo? authenticationInfo;`) rather than non-nullable ones to avoid using `!` operators and to get clearer error messages when authentication setup fails. This provides better diagnostics when `session.authenticated` returns null.
templates/pubspecs/modules/new_serverpod_auth/serverpod_auth_backwards_compatibility/serverpod_auth_backwards_compatibility_flutter/pubspec.yaml (9)
Learnt from: tp
PR: serverpod/serverpod#3747
File: modules/new_serverpod_auth/serverpod_auth_migration/serverpod_auth_migration_server/lib/src/business/migrating_email_endpoint_base.dart:4-4
Timestamp: 2025-07-02T16:07:50.947Z
Learning: In Serverpod, tp prefers importing the full package (e.g., 'package:serverpod_auth_migration_server/serverpod_auth_migration_server.dart') as a baseline rather than using smaller local imports, even within the same package where it might be considered a "self-import".
Learnt from: tp
PR: serverpod/serverpod#3721
File: util/pub_get_all:0-0
Timestamp: 2025-06-27T08:39:36.440Z
Learning: In the Serverpod project, `dart pub get` commands work fine on Flutter packages both locally and in CI environments, even when the package has `flutter: sdk: flutter` dependencies in pubspec.yaml. The technical constraint of Flutter SDK dependencies causing `dart pub` failures may not apply in all environments or recent Dart versions.
Learnt from: tp
PR: serverpod/serverpod#3747
File: tests/serverpod_new_auth_test/serverpod_new_auth_test_server/pubspec.yaml:37-38
Timestamp: 2025-07-02T16:09:27.702Z
Learning: In Serverpod migration testing, it's appropriate for test servers like serverpod_new_auth_test_server to include dependencies on both legacy packages (e.g., serverpod_auth_server) and new modular packages to enable comprehensive testing of migration paths from old to new authentication systems.
Learnt from: tp
PR: serverpod/serverpod#3666
File: modules/new_serverpod_auth/serverpod_auth_migration/serverpod_auth_migration_client/CHANGELOG.md:1-7
Timestamp: 2025-06-17T11:40:09.088Z
Learning: CHANGELOG.md files in the serverpod_auth_migration modules (client and server) are auto-generated and cannot be manually modified during the development process.
Learnt from: tp
PR: serverpod/serverpod#3666
File: modules/new_serverpod_auth/serverpod_auth_migration/serverpod_auth_migration_server/README.md:3-8
Timestamp: 2025-06-17T11:34:13.289Z
Learning: The README.md files in the serverpod_auth_migration module directories are auto-generated and get overwritten by utility scripts, so manual updates should be avoided until proper documentation is added during feature rollout.
Learnt from: exaby73
PR: serverpod/serverpod#3741
File: modules/serverpod_auth/serverpod_auth_server/analysis_options.yaml:14-16
Timestamp: 2025-07-01T13:01:27.054Z
Learning: In Serverpod, first-party packages like serverpod_auth_server can appropriately use blanket `invalid_use_of_internal_member: ignore` directives in their analysis_options.yaml since they use internal Database methods internally without exposing them in their public APIs to end users.
Learnt from: tp
PR: serverpod/serverpod#3721
File: modules/new_serverpod_auth/serverpod_auth_session/serverpod_auth_session_flutter/test/serverpod_auth_session_flutter_test.dart:1-7
Timestamp: 2025-06-27T07:44:09.048Z
Learning: In Serverpod packages, the `uuid` package is re-exported through a chain: `serverpod_auth_session_client` re-exports `serverpod_client`, which re-exports `serverpod_serialization`, which re-exports `uuid`. This means `Uuid` class is available in files that import `serverpod_auth_session_client` without needing a direct `uuid` package import.
Learnt from: tp
PR: serverpod/serverpod#3672
File: tests/serverpod_test_server/test_integration/test_tools/test_session_builder_test.dart:10-30
Timestamp: 2025-06-18T14:49:11.263Z
Learning: In Serverpod test files, tp prefers using nullable late variables for AuthenticationInfo in tests (e.g., `late AuthenticationInfo? authenticationInfo;`) rather than non-nullable ones to avoid using `!` operators and to get clearer error messages when authentication setup fails. This provides better diagnostics when `session.authenticated` returns null.
Learnt from: tp
PR: serverpod/serverpod#3666
File: modules/new_serverpod_auth/serverpod_auth_migration/serverpod_auth_migration_client/CHANGELOG.md:1-7
Timestamp: 2025-06-17T11:44:37.288Z
Learning: The util/update_pubspecs script automatically copies the root CHANGELOG.md to all packages/modules and README_subpackage.md to all modules as README.md. These file changes should be ignored during code review as they are auto-generated distribution of shared content, not manual authoring that requires review.
modules/new_serverpod_auth/serverpod_auth_backwards_compatibility/serverpod_auth_backwards_compatibility_server/lib/src/business/auth_backwards_compatibility.dart (7)
Learnt from: tp
PR: serverpod/serverpod#3747
File: tests/serverpod_new_auth_test/serverpod_new_auth_test_server/pubspec.yaml:37-38
Timestamp: 2025-07-02T16:09:27.702Z
Learning: In Serverpod migration testing, it's appropriate for test servers like serverpod_new_auth_test_server to include dependencies on both legacy packages (e.g., serverpod_auth_server) and new modular packages to enable comprehensive testing of migration paths from old to new authentication systems.
Learnt from: tp
PR: serverpod/serverpod#3747
File: modules/new_serverpod_auth/serverpod_auth_migration/serverpod_auth_migration_server/lib/src/business/migrating_email_endpoint_base.dart:4-4
Timestamp: 2025-07-02T16:07:50.947Z
Learning: In Serverpod, tp prefers importing the full package (e.g., 'package:serverpod_auth_migration_server/serverpod_auth_migration_server.dart') as a baseline rather than using smaller local imports, even within the same package where it might be considered a "self-import".
Learnt from: tp
PR: serverpod/serverpod#3672
File: tests/serverpod_test_server/test_integration/test_tools/test_session_builder_test.dart:10-30
Timestamp: 2025-06-18T14:49:11.263Z
Learning: In Serverpod test files, tp prefers using nullable late variables for AuthenticationInfo in tests (e.g., `late AuthenticationInfo? authenticationInfo;`) rather than non-nullable ones to avoid using `!` operators and to get clearer error messages when authentication setup fails. This provides better diagnostics when `session.authenticated` returns null.
Learnt from: exaby73
PR: serverpod/serverpod#3741
File: modules/serverpod_auth/serverpod_auth_server/analysis_options.yaml:14-16
Timestamp: 2025-07-01T13:01:27.054Z
Learning: In Serverpod, first-party packages like serverpod_auth_server can appropriately use blanket `invalid_use_of_internal_member: ignore` directives in their analysis_options.yaml since they use internal Database methods internally without exposing them in their public APIs to end users.
Learnt from: tp
PR: serverpod/serverpod#3666
File: modules/new_serverpod_auth/serverpod_auth_email_account/serverpod_auth_email_account_server/lib/src/business/email_accounts_admin.dart:130-143
Timestamp: 2025-06-17T11:38:13.087Z
Learning: In serverpod_auth_email_account EmailAccountsAdmin, tp prefers relying on database unique constraint exceptions over application-level pre-insert checks for email uniqueness, especially in contexts with longer-running transactions where TOCTOU issues could still occur.
Learnt from: tp
PR: serverpod/serverpod#3721
File: modules/new_serverpod_auth/serverpod_auth_session/serverpod_auth_session_flutter/test/serverpod_auth_session_flutter_test.dart:1-7
Timestamp: 2025-06-27T07:44:09.048Z
Learning: In Serverpod packages, the `uuid` package is re-exported through a chain: `serverpod_auth_session_client` re-exports `serverpod_client`, which re-exports `serverpod_serialization`, which re-exports `uuid`. This means `Uuid` class is available in files that import `serverpod_auth_session_client` without needing a direct `uuid` package import.
Learnt from: tp
PR: serverpod/serverpod#3666
File: modules/new_serverpod_auth/serverpod_auth_migration/serverpod_auth_migration_server/config/passwords.yaml:12-15
Timestamp: 2025-06-17T13:07:46.465Z
Learning: Configuration keys in Serverpod that contain dots (like `serverpod_auth_email_account.passwordHashPepper`) need to be renamed to use underscores or other valid characters because the system needs to support overriding configuration keys and passwords via environment variables, and BASH environment variable names cannot contain dots.
modules/new_serverpod_auth/serverpod_auth_migration/serverpod_auth_migration_server/lib/src/business/user_migration_function.dart (3)
Learnt from: tp
PR: serverpod/serverpod#3747
File: modules/new_serverpod_auth/serverpod_auth_migration/serverpod_auth_migration_server/lib/src/business/migrating_email_endpoint_base.dart:4-4
Timestamp: 2025-07-02T16:07:50.947Z
Learning: In Serverpod, tp prefers importing the full package (e.g., 'package:serverpod_auth_migration_server/serverpod_auth_migration_server.dart') as a baseline rather than using smaller local imports, even within the same package where it might be considered a "self-import".
Learnt from: tp
PR: serverpod/serverpod#3747
File: tests/serverpod_new_auth_test/serverpod_new_auth_test_server/pubspec.yaml:37-38
Timestamp: 2025-07-02T16:09:27.702Z
Learning: In Serverpod migration testing, it's appropriate for test servers like serverpod_new_auth_test_server to include dependencies on both legacy packages (e.g., serverpod_auth_server) and new modular packages to enable comprehensive testing of migration paths from old to new authentication systems.
Learnt from: tp
PR: serverpod/serverpod#3672
File: tests/serverpod_test_server/test_integration/test_tools/test_session_builder_test.dart:10-30
Timestamp: 2025-06-18T14:49:11.263Z
Learning: In Serverpod test files, tp prefers using nullable late variables for AuthenticationInfo in tests (e.g., `late AuthenticationInfo? authenticationInfo;`) rather than non-nullable ones to avoid using `!` operators and to get clearer error messages when authentication setup fails. This provides better diagnostics when `session.authenticated` returns null.
modules/new_serverpod_auth/serverpod_auth_migration/serverpod_auth_migration_server/test/integration/password_backwards_compatibility_test.dart (9)
Learnt from: tp
PR: serverpod/serverpod#3747
File: tests/serverpod_new_auth_test/serverpod_new_auth_test_server/pubspec.yaml:37-38
Timestamp: 2025-07-02T16:09:27.702Z
Learning: In Serverpod migration testing, it's appropriate for test servers like serverpod_new_auth_test_server to include dependencies on both legacy packages (e.g., serverpod_auth_server) and new modular packages to enable comprehensive testing of migration paths from old to new authentication systems.
Learnt from: tp
PR: serverpod/serverpod#3672
File: tests/serverpod_test_server/test_integration/test_tools/test_session_builder_test.dart:10-30
Timestamp: 2025-06-18T14:49:11.263Z
Learning: In Serverpod test files, tp prefers using nullable late variables for AuthenticationInfo in tests (e.g., `late AuthenticationInfo? authenticationInfo;`) rather than non-nullable ones to avoid using `!` operators and to get clearer error messages when authentication setup fails. This provides better diagnostics when `session.authenticated` returns null.
Learnt from: tp
PR: serverpod/serverpod#3747
File: modules/new_serverpod_auth/serverpod_auth_migration/serverpod_auth_migration_server/lib/src/business/migrating_email_endpoint_base.dart:4-4
Timestamp: 2025-07-02T16:07:50.947Z
Learning: In Serverpod, tp prefers importing the full package (e.g., 'package:serverpod_auth_migration_server/serverpod_auth_migration_server.dart') as a baseline rather than using smaller local imports, even within the same package where it might be considered a "self-import".
Learnt from: tp
PR: serverpod/serverpod#3651
File: tests/serverpod_new_auth_test/serverpod_new_auth_test_server/test/integration/email_account_endpoint_test.dart:1-1
Timestamp: 2025-06-19T11:00:17.085Z
Learning: In Serverpod applications, methods that rely on public asset storage (like setUserImage/removeUserImage) should be tested in E2E tests rather than withServerpod integration tests, as they require a full server environment with asset storage infrastructure to properly test image upload/download functionality.
Learnt from: tp
PR: serverpod/serverpod#3666
File: modules/new_serverpod_auth/serverpod_auth_migration/serverpod_auth_migration_server/README.md:3-8
Timestamp: 2025-06-17T11:34:13.289Z
Learning: The README.md files in the serverpod_auth_migration module directories are auto-generated and get overwritten by utility scripts, so manual updates should be avoided until proper documentation is added during feature rollout.
Learnt from: tp
PR: serverpod/serverpod#3651
File: modules/new_serverpod_auth/serverpod_auth_email_account/serverpod_auth_email_account_server/lib/src/business/email_accounts.dart:35-39
Timestamp: 2025-06-16T12:07:26.018Z
Learning: The `withServerpod` test helper runs tests within a transaction, which may require adapting database queries to accept transaction parameters for proper snapshot consistency during testing.
Learnt from: tp
PR: serverpod/serverpod#3666
File: modules/new_serverpod_auth/serverpod_auth_email_account/serverpod_auth_email_account_server/lib/src/business/email_accounts_admin.dart:130-143
Timestamp: 2025-06-17T11:38:13.087Z
Learning: In serverpod_auth_email_account EmailAccountsAdmin, tp prefers relying on database unique constraint exceptions over application-level pre-insert checks for email uniqueness, especially in contexts with longer-running transactions where TOCTOU issues could still occur.
Learnt from: exaby73
PR: serverpod/serverpod#3741
File: modules/serverpod_auth/serverpod_auth_server/analysis_options.yaml:14-16
Timestamp: 2025-07-01T13:01:27.054Z
Learning: In Serverpod, first-party packages like serverpod_auth_server can appropriately use blanket `invalid_use_of_internal_member: ignore` directives in their analysis_options.yaml since they use internal Database methods internally without exposing them in their public APIs to end users.
Learnt from: tp
PR: serverpod/serverpod#3721
File: modules/new_serverpod_auth/serverpod_auth_session/serverpod_auth_session_flutter/test/serverpod_auth_session_flutter_test.dart:1-7
Timestamp: 2025-06-27T07:44:09.048Z
Learning: In Serverpod packages, the `uuid` package is re-exported through a chain: `serverpod_auth_session_client` re-exports `serverpod_client`, which re-exports `serverpod_serialization`, which re-exports `uuid`. This means `Uuid` class is available in files that import `serverpod_auth_session_client` without needing a direct `uuid` package import.
modules/new_serverpod_auth/serverpod_auth_backwards_compatibility/serverpod_auth_backwards_compatibility_server/lib/src/business/legacy_authentication_handler.dart (3)
Learnt from: tp
PR: serverpod/serverpod#3672
File: tests/serverpod_test_server/test_integration/test_tools/test_session_builder_test.dart:10-30
Timestamp: 2025-06-18T14:49:11.263Z
Learning: In Serverpod test files, tp prefers using nullable late variables for AuthenticationInfo in tests (e.g., `late AuthenticationInfo? authenticationInfo;`) rather than non-nullable ones to avoid using `!` operators and to get clearer error messages when authentication setup fails. This provides better diagnostics when `session.authenticated` returns null.
Learnt from: tp
PR: serverpod/serverpod#3747
File: tests/serverpod_new_auth_test/serverpod_new_auth_test_server/pubspec.yaml:37-38
Timestamp: 2025-07-02T16:09:27.702Z
Learning: In Serverpod migration testing, it's appropriate for test servers like serverpod_new_auth_test_server to include dependencies on both legacy packages (e.g., serverpod_auth_server) and new modular packages to enable comprehensive testing of migration paths from old to new authentication systems.
Learnt from: tp
PR: serverpod/serverpod#3747
File: modules/new_serverpod_auth/serverpod_auth_migration/serverpod_auth_migration_server/lib/src/business/migrating_email_endpoint_base.dart:4-4
Timestamp: 2025-07-02T16:07:50.947Z
Learning: In Serverpod, tp prefers importing the full package (e.g., 'package:serverpod_auth_migration_server/serverpod_auth_migration_server.dart') as a baseline rather than using smaller local imports, even within the same package where it might be considered a "self-import".
modules/new_serverpod_auth/serverpod_auth_backwards_compatibility/serverpod_auth_backwards_compatibility_flutter/pubspec.yaml (10)
Learnt from: tp
PR: serverpod/serverpod#3747
File: modules/new_serverpod_auth/serverpod_auth_migration/serverpod_auth_migration_server/lib/src/business/migrating_email_endpoint_base.dart:4-4
Timestamp: 2025-07-02T16:07:50.947Z
Learning: In Serverpod, tp prefers importing the full package (e.g., 'package:serverpod_auth_migration_server/serverpod_auth_migration_server.dart') as a baseline rather than using smaller local imports, even within the same package where it might be considered a "self-import".
Learnt from: tp
PR: serverpod/serverpod#3721
File: util/pub_get_all:0-0
Timestamp: 2025-06-27T08:39:36.440Z
Learning: In the Serverpod project, `dart pub get` commands work fine on Flutter packages both locally and in CI environments, even when the package has `flutter: sdk: flutter` dependencies in pubspec.yaml. The technical constraint of Flutter SDK dependencies causing `dart pub` failures may not apply in all environments or recent Dart versions.
Learnt from: tp
PR: serverpod/serverpod#3747
File: tests/serverpod_new_auth_test/serverpod_new_auth_test_server/pubspec.yaml:37-38
Timestamp: 2025-07-02T16:09:27.702Z
Learning: In Serverpod migration testing, it's appropriate for test servers like serverpod_new_auth_test_server to include dependencies on both legacy packages (e.g., serverpod_auth_server) and new modular packages to enable comprehensive testing of migration paths from old to new authentication systems.
Learnt from: tp
PR: serverpod/serverpod#3666
File: modules/new_serverpod_auth/serverpod_auth_migration/serverpod_auth_migration_client/CHANGELOG.md:1-7
Timestamp: 2025-06-17T11:40:09.088Z
Learning: CHANGELOG.md files in the serverpod_auth_migration modules (client and server) are auto-generated and cannot be manually modified during the development process.
Learnt from: tp
PR: serverpod/serverpod#3666
File: modules/new_serverpod_auth/serverpod_auth_migration/serverpod_auth_migration_server/README.md:3-8
Timestamp: 2025-06-17T11:34:13.289Z
Learning: The README.md files in the serverpod_auth_migration module directories are auto-generated and get overwritten by utility scripts, so manual updates should be avoided until proper documentation is added during feature rollout.
Learnt from: exaby73
PR: serverpod/serverpod#3741
File: modules/serverpod_auth/serverpod_auth_server/analysis_options.yaml:14-16
Timestamp: 2025-07-01T13:01:27.054Z
Learning: In Serverpod, first-party packages like serverpod_auth_server can appropriately use blanket `invalid_use_of_internal_member: ignore` directives in their analysis_options.yaml since they use internal Database methods internally without exposing them in their public APIs to end users.
Learnt from: tp
PR: serverpod/serverpod#3666
File: modules/new_serverpod_auth/serverpod_auth_migration/serverpod_auth_migration_client/CHANGELOG.md:1-7
Timestamp: 2025-06-17T11:44:37.288Z
Learning: The util/update_pubspecs script automatically copies the root CHANGELOG.md to all packages/modules and README_subpackage.md to all modules as README.md. These file changes should be ignored during code review as they are auto-generated distribution of shared content, not manual authoring that requires review.
Learnt from: tp
PR: serverpod/serverpod#3721
File: modules/new_serverpod_auth/serverpod_auth_session/serverpod_auth_session_flutter/test/serverpod_auth_session_flutter_test.dart:1-7
Timestamp: 2025-06-27T07:44:09.048Z
Learning: In Serverpod packages, the `uuid` package is re-exported through a chain: `serverpod_auth_session_client` re-exports `serverpod_client`, which re-exports `serverpod_serialization`, which re-exports `uuid`. This means `Uuid` class is available in files that import `serverpod_auth_session_client` without needing a direct `uuid` package import.
Learnt from: tp
PR: serverpod/serverpod#3672
File: tests/serverpod_test_server/test_integration/test_tools/test_session_builder_test.dart:10-30
Timestamp: 2025-06-18T14:49:11.263Z
Learning: In Serverpod test files, tp prefers using nullable late variables for AuthenticationInfo in tests (e.g., `late AuthenticationInfo? authenticationInfo;`) rather than non-nullable ones to avoid using `!` operators and to get clearer error messages when authentication setup fails. This provides better diagnostics when `session.authenticated` returns null.
Learnt from: tp
PR: serverpod/serverpod#3666
File: modules/new_serverpod_auth/serverpod_auth_migration/serverpod_auth_migration_client/CHANGELOG.md:1-7
Timestamp: 2025-06-17T11:44:37.288Z
Learning: Changes to README.md and CHANGELOG.md files made by the util/update_pubspecs script can be safely ignored during code review, as these files are auto-generated by copying from a single source rather than being manually authored.
tests/serverpod_new_auth_test/serverpod_new_auth_test_flutter/test/session_manager_migration_test.dart (5)
Learnt from: tp
PR: serverpod/serverpod#3747
File: tests/serverpod_new_auth_test/serverpod_new_auth_test_server/pubspec.yaml:37-38
Timestamp: 2025-07-02T16:09:27.702Z
Learning: In Serverpod migration testing, it's appropriate for test servers like serverpod_new_auth_test_server to include dependencies on both legacy packages (e.g., serverpod_auth_server) and new modular packages to enable comprehensive testing of migration paths from old to new authentication systems.
Learnt from: tp
PR: serverpod/serverpod#3672
File: tests/serverpod_test_server/test_integration/test_tools/test_session_builder_test.dart:10-30
Timestamp: 2025-06-18T14:49:11.263Z
Learning: In Serverpod test files, tp prefers using nullable late variables for AuthenticationInfo in tests (e.g., `late AuthenticationInfo? authenticationInfo;`) rather than non-nullable ones to avoid using `!` operators and to get clearer error messages when authentication setup fails. This provides better diagnostics when `session.authenticated` returns null.
Learnt from: tp
PR: serverpod/serverpod#3747
File: modules/new_serverpod_auth/serverpod_auth_migration/serverpod_auth_migration_server/lib/src/business/migrating_email_endpoint_base.dart:4-4
Timestamp: 2025-07-02T16:07:50.947Z
Learning: In Serverpod, tp prefers importing the full package (e.g., 'package:serverpod_auth_migration_server/serverpod_auth_migration_server.dart') as a baseline rather than using smaller local imports, even within the same package where it might be considered a "self-import".
Learnt from: tp
PR: serverpod/serverpod#3651
File: tests/serverpod_new_auth_test/serverpod_new_auth_test_server/test/integration/email_account_endpoint_test.dart:1-1
Timestamp: 2025-06-19T11:00:17.085Z
Learning: In Serverpod applications, methods that rely on public asset storage (like setUserImage/removeUserImage) should be tested in E2E tests rather than withServerpod integration tests, as they require a full server environment with asset storage infrastructure to properly test image upload/download functionality.
Learnt from: tp
PR: serverpod/serverpod#3651
File: modules/new_serverpod_auth/serverpod_auth_email_account/serverpod_auth_email_account_server/lib/src/business/email_accounts.dart:35-39
Timestamp: 2025-06-16T12:07:26.018Z
Learning: The `withServerpod` test helper runs tests within a transaction, which may require adapting database queries to accept transaction parameters for proper snapshot consistency during testing.
modules/new_serverpod_auth/serverpod_auth_backwards_compatibility/serverpod_auth_backwards_compatibility_flutter/lib/src/business/session_manager_legacy_import.dart (3)
Learnt from: tp
PR: serverpod/serverpod#3747
File: modules/new_serverpod_auth/serverpod_auth_migration/serverpod_auth_migration_server/lib/src/business/migrating_email_endpoint_base.dart:4-4
Timestamp: 2025-07-02T16:07:50.947Z
Learning: In Serverpod, tp prefers importing the full package (e.g., 'package:serverpod_auth_migration_server/serverpod_auth_migration_server.dart') as a baseline rather than using smaller local imports, even within the same package where it might be considered a "self-import".
Learnt from: tp
PR: serverpod/serverpod#3672
File: tests/serverpod_test_server/test_integration/test_tools/test_session_builder_test.dart:10-30
Timestamp: 2025-06-18T14:49:11.263Z
Learning: In Serverpod test files, tp prefers using nullable late variables for AuthenticationInfo in tests (e.g., `late AuthenticationInfo? authenticationInfo;`) rather than non-nullable ones to avoid using `!` operators and to get clearer error messages when authentication setup fails. This provides better diagnostics when `session.authenticated` returns null.
Learnt from: tp
PR: serverpod/serverpod#3747
File: tests/serverpod_new_auth_test/serverpod_new_auth_test_server/pubspec.yaml:37-38
Timestamp: 2025-07-02T16:09:27.702Z
Learning: In Serverpod migration testing, it's appropriate for test servers like serverpod_new_auth_test_server to include dependencies on both legacy packages (e.g., serverpod_auth_server) and new modular packages to enable comprehensive testing of migration paths from old to new authentication systems.
modules/new_serverpod_auth/serverpod_auth_migration/serverpod_auth_migration_server/test/integration/auth_migrations_test.dart (11)
Learnt from: tp
PR: serverpod/serverpod#3747
File: tests/serverpod_new_auth_test/serverpod_new_auth_test_server/pubspec.yaml:37-38
Timestamp: 2025-07-02T16:09:27.702Z
Learning: In Serverpod migration testing, it's appropriate for test servers like serverpod_new_auth_test_server to include dependencies on both legacy packages (e.g., serverpod_auth_server) and new modular packages to enable comprehensive testing of migration paths from old to new authentication systems.
Learnt from: tp
PR: serverpod/serverpod#3672
File: tests/serverpod_test_server/test_integration/test_tools/test_session_builder_test.dart:10-30
Timestamp: 2025-06-18T14:49:11.263Z
Learning: In Serverpod test files, tp prefers using nullable late variables for AuthenticationInfo in tests (e.g., `late AuthenticationInfo? authenticationInfo;`) rather than non-nullable ones to avoid using `!` operators and to get clearer error messages when authentication setup fails. This provides better diagnostics when `session.authenticated` returns null.
Learnt from: tp
PR: serverpod/serverpod#3651
File: tests/serverpod_new_auth_test/serverpod_new_auth_test_server/test/integration/email_account_endpoint_test.dart:1-1
Timestamp: 2025-06-19T11:00:17.085Z
Learning: In Serverpod applications, methods that rely on public asset storage (like setUserImage/removeUserImage) should be tested in E2E tests rather than withServerpod integration tests, as they require a full server environment with asset storage infrastructure to properly test image upload/download functionality.
Learnt from: tp
PR: serverpod/serverpod#3747
File: modules/new_serverpod_auth/serverpod_auth_migration/serverpod_auth_migration_server/lib/src/business/migrating_email_endpoint_base.dart:4-4
Timestamp: 2025-07-02T16:07:50.947Z
Learning: In Serverpod, tp prefers importing the full package (e.g., 'package:serverpod_auth_migration_server/serverpod_auth_migration_server.dart') as a baseline rather than using smaller local imports, even within the same package where it might be considered a "self-import".
Learnt from: tp
PR: serverpod/serverpod#3666
File: modules/new_serverpod_auth/serverpod_auth_migration/serverpod_auth_migration_server/README.md:3-8
Timestamp: 2025-06-17T11:34:13.289Z
Learning: The README.md files in the serverpod_auth_migration module directories are auto-generated and get overwritten by utility scripts, so manual updates should be avoided until proper documentation is added during feature rollout.
Learnt from: tp
PR: serverpod/serverpod#3666
File: modules/new_serverpod_auth/serverpod_auth_migration/serverpod_auth_migration_client/CHANGELOG.md:1-7
Timestamp: 2025-06-17T11:40:09.088Z
Learning: CHANGELOG.md files in the serverpod_auth_migration modules (client and server) are auto-generated and cannot be manually modified during the development process.
Learnt from: tp
PR: serverpod/serverpod#3651
File: modules/new_serverpod_auth/serverpod_auth_email_account/serverpod_auth_email_account_server/lib/src/business/email_accounts.dart:35-39
Timestamp: 2025-06-16T12:07:26.018Z
Learning: The `withServerpod` test helper runs tests within a transaction, which may require adapting database queries to accept transaction parameters for proper snapshot consistency during testing.
Learnt from: tp
PR: serverpod/serverpod#3666
File: modules/new_serverpod_auth/serverpod_auth_migration/serverpod_auth_migration_server/lib/src/business/auth_migration_email.dart:0-0
Timestamp: 2025-06-17T13:04:19.522Z
Learning: In serverpod_auth_migration profile image migration, the image must be fetched from the URL rather than just copying the URL because the database schema requires storing the storage bucket and relative path information in addition to the public URL. This storage information is necessary for proper cleanup when profiles are deleted. The fetch approach works fine in production but requires localhost exclusion in testing environments where no HTTP file server is running.
Learnt from: tp
PR: serverpod/serverpod#3666
File: modules/new_serverpod_auth/serverpod_auth_migration/serverpod_auth_migration_server/test/integration/auth_migration_email_test.dart:0-0
Timestamp: 2025-06-20T12:49:16.373Z
Learning: In test files, when testing that an async method completes without error (especially when the test name/description mentions "completes without error"), use the pattern `await expectLater(asyncMethodCall(), completes)` instead of just `await asyncMethodCall()`. This makes the test intention explicit and provides better test failure messages. However, don't apply this pattern to setup calls or when testing side effects rather than completion behavior.
Learnt from: tp
PR: serverpod/serverpod#3666
File: modules/new_serverpod_auth/serverpod_auth_migration/serverpod_auth_migration_server/test/integration/auth_migration_email_test.dart:0-0
Timestamp: 2025-06-20T12:49:16.373Z
Learning: In test files, when testing that an async method completes without error (especially when the test name/description mentions "completes without error"), use the pattern `await expectLater(asyncMethodCall(), completes)` instead of just `await asyncMethodCall()`. This makes the test intention explicit and provides better test failure messages. However, don't apply this pattern to setup calls or when testing side effects rather than completion behavior. For tests that check both completion and side effects, consider splitting into separate tests or prioritize the primary assertion.
Learnt from: tp
PR: serverpod/serverpod#3666
File: modules/new_serverpod_auth/serverpod_auth_email_account/serverpod_auth_email_account_server/lib/src/business/email_accounts_admin.dart:130-143
Timestamp: 2025-06-17T11:38:13.087Z
Learning: In serverpod_auth_email_account EmailAccountsAdmin, tp prefers relying on database unique constraint exceptions over application-level pre-insert checks for email uniqueness, especially in contexts with longer-running transactions where TOCTOU issues could still occur.
modules/new_serverpod_auth/serverpod_auth_backwards_compatibility/serverpod_auth_backwards_compatibility_server/test/integration/test_tools/serverpod_test_tools.dart (10)
Learnt from: tp
PR: serverpod/serverpod#3747
File: tests/serverpod_new_auth_test/serverpod_new_auth_test_server/pubspec.yaml:37-38
Timestamp: 2025-07-02T16:09:27.702Z
Learning: In Serverpod migration testing, it's appropriate for test servers like serverpod_new_auth_test_server to include dependencies on both legacy packages (e.g., serverpod_auth_server) and new modular packages to enable comprehensive testing of migration paths from old to new authentication systems.
Learnt from: tp
PR: serverpod/serverpod#3672
File: tests/serverpod_test_server/test_integration/test_tools/test_session_builder_test.dart:10-30
Timestamp: 2025-06-18T14:49:11.263Z
Learning: In Serverpod test files, tp prefers using nullable late variables for AuthenticationInfo in tests (e.g., `late AuthenticationInfo? authenticationInfo;`) rather than non-nullable ones to avoid using `!` operators and to get clearer error messages when authentication setup fails. This provides better diagnostics when `session.authenticated` returns null.
Learnt from: tp
PR: serverpod/serverpod#3747
File: modules/new_serverpod_auth/serverpod_auth_migration/serverpod_auth_migration_server/lib/src/business/migrating_email_endpoint_base.dart:4-4
Timestamp: 2025-07-02T16:07:50.947Z
Learning: In Serverpod, tp prefers importing the full package (e.g., 'package:serverpod_auth_migration_server/serverpod_auth_migration_server.dart') as a baseline rather than using smaller local imports, even within the same package where it might be considered a "self-import".
Learnt from: tp
PR: serverpod/serverpod#3651
File: tests/serverpod_new_auth_test/serverpod_new_auth_test_server/test/integration/email_account_endpoint_test.dart:1-1
Timestamp: 2025-06-19T11:00:17.085Z
Learning: In Serverpod applications, methods that rely on public asset storage (like setUserImage/removeUserImage) should be tested in E2E tests rather than withServerpod integration tests, as they require a full server environment with asset storage infrastructure to properly test image upload/download functionality.
Learnt from: tp
PR: serverpod/serverpod#3651
File: modules/new_serverpod_auth/serverpod_auth_email_account/serverpod_auth_email_account_server/lib/src/business/email_accounts.dart:35-39
Timestamp: 2025-06-16T12:07:26.018Z
Learning: The `withServerpod` test helper runs tests within a transaction, which may require adapting database queries to accept transaction parameters for proper snapshot consistency during testing.
Learnt from: exaby73
PR: serverpod/serverpod#3741
File: modules/serverpod_auth/serverpod_auth_server/analysis_options.yaml:14-16
Timestamp: 2025-07-01T13:01:27.054Z
Learning: In Serverpod, first-party packages like serverpod_auth_server can appropriately use blanket `invalid_use_of_internal_member: ignore` directives in their analysis_options.yaml since they use internal Database methods internally without exposing them in their public APIs to end users.
Learnt from: tp
PR: serverpod/serverpod#3721
File: util/pub_get_all:0-0
Timestamp: 2025-06-27T08:39:36.440Z
Learning: In the Serverpod project, `dart pub get` commands work fine on Flutter packages both locally and in CI environments, even when the package has `flutter: sdk: flutter` dependencies in pubspec.yaml. The technical constraint of Flutter SDK dependencies causing `dart pub` failures may not apply in all environments or recent Dart versions.
Learnt from: tp
PR: serverpod/serverpod#3721
File: modules/new_serverpod_auth/serverpod_auth_session/serverpod_auth_session_flutter/test/serverpod_auth_session_flutter_test.dart:1-7
Timestamp: 2025-06-27T07:44:09.048Z
Learning: In Serverpod packages, the `uuid` package is re-exported through a chain: `serverpod_auth_session_client` re-exports `serverpod_client`, which re-exports `serverpod_serialization`, which re-exports `uuid`. This means `Uuid` class is available in files that import `serverpod_auth_session_client` without needing a direct `uuid` package import.
Learnt from: tp
PR: serverpod/serverpod#3651
File: tests/serverpod_new_auth_test/serverpod_new_auth_test_server/test/integration/email_account_endpoint_test.dart:1-1
Timestamp: 2025-06-19T10:25:15.101Z
Learning: Explicit tests for complex endpoint methods provide cleaner error reporting and better debugging experience compared to testing the same functionality only within setUp blocks or helper methods.
Learnt from: tp
PR: serverpod/serverpod#3651
File: tests/serverpod_new_auth_test/serverpod_new_auth_test_server/test/integration/email_account_endpoint_test.dart:1-1
Timestamp: 2025-06-19T10:25:15.101Z
Learning: When reviewing test coverage, consider that endpoint methods that simply forward to underlying service classes don't necessarily need their own tests if the underlying functionality is well-tested, especially when they get indirect testing through helper methods.
tests/serverpod_new_auth_test/serverpod_new_auth_test_flutter/test/backwards_compatibility_test.dart (6)
Learnt from: tp
PR: serverpod/serverpod#3747
File: tests/serverpod_new_auth_test/serverpod_new_auth_test_server/pubspec.yaml:37-38
Timestamp: 2025-07-02T16:09:27.702Z
Learning: In Serverpod migration testing, it's appropriate for test servers like serverpod_new_auth_test_server to include dependencies on both legacy packages (e.g., serverpod_auth_server) and new modular packages to enable comprehensive testing of migration paths from old to new authentication systems.
Learnt from: tp
PR: serverpod/serverpod#3672
File: tests/serverpod_test_server/test_integration/test_tools/test_session_builder_test.dart:10-30
Timestamp: 2025-06-18T14:49:11.263Z
Learning: In Serverpod test files, tp prefers using nullable late variables for AuthenticationInfo in tests (e.g., `late AuthenticationInfo? authenticationInfo;`) rather than non-nullable ones to avoid using `!` operators and to get clearer error messages when authentication setup fails. This provides better diagnostics when `session.authenticated` returns null.
Learnt from: tp
PR: serverpod/serverpod#3747
File: modules/new_serverpod_auth/serverpod_auth_migration/serverpod_auth_migration_server/lib/src/business/migrating_email_endpoint_base.dart:4-4
Timestamp: 2025-07-02T16:07:50.947Z
Learning: In Serverpod, tp prefers importing the full package (e.g., 'package:serverpod_auth_migration_server/serverpod_auth_migration_server.dart') as a baseline rather than using smaller local imports, even within the same package where it might be considered a "self-import".
Learnt from: tp
PR: serverpod/serverpod#3651
File: tests/serverpod_new_auth_test/serverpod_new_auth_test_server/test/integration/email_account_endpoint_test.dart:1-1
Timestamp: 2025-06-19T11:00:17.085Z
Learning: In Serverpod applications, methods that rely on public asset storage (like setUserImage/removeUserImage) should be tested in E2E tests rather than withServerpod integration tests, as they require a full server environment with asset storage infrastructure to properly test image upload/download functionality.
Learnt from: tp
PR: serverpod/serverpod#3721
File: util/pub_get_all:0-0
Timestamp: 2025-06-27T08:39:36.440Z
Learning: In the Serverpod project, `dart pub get` commands work fine on Flutter packages both locally and in CI environments, even when the package has `flutter: sdk: flutter` dependencies in pubspec.yaml. The technical constraint of Flutter SDK dependencies causing `dart pub` failures may not apply in all environments or recent Dart versions.
Learnt from: tp
PR: serverpod/serverpod#3651
File: modules/new_serverpod_auth/serverpod_auth_email_account/serverpod_auth_email_account_server/lib/src/business/email_accounts.dart:35-39
Timestamp: 2025-06-16T12:07:26.018Z
Learning: The `withServerpod` test helper runs tests within a transaction, which may require adapting database queries to accept transaction parameters for proper snapshot consistency during testing.
tests/serverpod_new_auth_test/serverpod_new_auth_test_server/lib/src/endpoints/password_importing_email_account_endpoint.dart (5)
Learnt from: tp
PR: serverpod/serverpod#3747
File: modules/new_serverpod_auth/serverpod_auth_migration/serverpod_auth_migration_server/lib/src/business/migrating_email_endpoint_base.dart:4-4
Timestamp: 2025-07-02T16:07:50.947Z
Learning: In Serverpod, tp prefers importing the full package (e.g., 'package:serverpod_auth_migration_server/serverpod_auth_migration_server.dart') as a baseline rather than using smaller local imports, even within the same package where it might be considered a "self-import".
Learnt from: tp
PR: serverpod/serverpod#3747
File: tests/serverpod_new_auth_test/serverpod_new_auth_test_server/pubspec.yaml:37-38
Timestamp: 2025-07-02T16:09:27.702Z
Learning: In Serverpod migration testing, it's appropriate for test servers like serverpod_new_auth_test_server to include dependencies on both legacy packages (e.g., serverpod_auth_server) and new modular packages to enable comprehensive testing of migration paths from old to new authentication systems.
Learnt from: tp
PR: serverpod/serverpod#3651
File: modules/new_serverpod_auth/serverpod_auth_email/serverpod_auth_email_server/lib/src/endpoints/email_account_endpoint.dart:37-49
Timestamp: 2025-06-16T12:08:40.049Z
Learning: In serverpod_auth_email_server, the startRegistration method intentionally does not propagate EmailAccountRequestResult failures to the caller to prevent information leakage about account existence. Only server-side logging is performed for admin monitoring purposes.
Learnt from: tp
PR: serverpod/serverpod#3672
File: tests/serverpod_test_server/test_integration/test_tools/test_session_builder_test.dart:10-30
Timestamp: 2025-06-18T14:49:11.263Z
Learning: In Serverpod test files, tp prefers using nullable late variables for AuthenticationInfo in tests (e.g., `late AuthenticationInfo? authenticationInfo;`) rather than non-nullable ones to avoid using `!` operators and to get clearer error messages when authentication setup fails. This provides better diagnostics when `session.authenticated` returns null.
Learnt from: tp
PR: serverpod/serverpod#3666
File: modules/new_serverpod_auth/serverpod_auth_email_account/serverpod_auth_email_account_server/lib/src/business/email_accounts_admin.dart:130-143
Timestamp: 2025-06-17T11:38:13.087Z
Learning: In serverpod_auth_email_account EmailAccountsAdmin, tp prefers relying on database unique constraint exceptions over application-level pre-insert checks for email uniqueness, especially in contexts with longer-running transactions where TOCTOU issues could still occur.
tests/serverpod_new_auth_test/serverpod_new_auth_test_server/lib/src/endpoints/email_account_backwards_compatibility_endpoint.dart (3)
Learnt from: tp
PR: serverpod/serverpod#3747
File: tests/serverpod_new_auth_test/serverpod_new_auth_test_server/pubspec.yaml:37-38
Timestamp: 2025-07-02T16:09:27.702Z
Learning: In Serverpod migration testing, it's appropriate for test servers like serverpod_new_auth_test_server to include dependencies on both legacy packages (e.g., serverpod_auth_server) and new modular packages to enable comprehensive testing of migration paths from old to new authentication systems.
Learnt from: tp
PR: serverpod/serverpod#3672
File: tests/serverpod_test_server/test_integration/test_tools/test_session_builder_test.dart:10-30
Timestamp: 2025-06-18T14:49:11.263Z
Learning: In Serverpod test files, tp prefers using nullable late variables for AuthenticationInfo in tests (e.g., `late AuthenticationInfo? authenticationInfo;`) rather than non-nullable ones to avoid using `!` operators and to get clearer error messages when authentication setup fails. This provides better diagnostics when `session.authenticated` returns null.
Learnt from: tp
PR: serverpod/serverpod#3747
File: modules/new_serverpod_auth/serverpod_auth_migration/serverpod_auth_migration_server/lib/src/business/migrating_email_endpoint_base.dart:4-4
Timestamp: 2025-07-02T16:07:50.947Z
Learning: In Serverpod, tp prefers importing the full package (e.g., 'package:serverpod_auth_migration_server/serverpod_auth_migration_server.dart') as a baseline rather than using smaller local imports, even within the same package where it might be considered a "self-import".
modules/new_serverpod_auth/serverpod_auth_backwards_compatibility/serverpod_auth_backwards_compatibility_flutter/CHANGELOG.md (9)
Learnt from: tp
PR: serverpod/serverpod#3666
File: modules/new_serverpod_auth/serverpod_auth_migration/serverpod_auth_migration_client/CHANGELOG.md:1-7
Timestamp: 2025-06-17T11:40:09.088Z
Learning: CHANGELOG.md files in the serverpod_auth_migration modules (client and server) are auto-generated and cannot be manually modified during the development process.
Learnt from: tp
PR: serverpod/serverpod#3666
File: modules/new_serverpod_auth/serverpod_auth_migration/serverpod_auth_migration_server/README.md:3-8
Timestamp: 2025-06-17T11:34:13.289Z
Learning: The README.md files in the serverpod_auth_migration module directories are auto-generated and get overwritten by utility scripts, so manual updates should be avoided until proper documentation is added during feature rollout.
Learnt from: tp
PR: serverpod/serverpod#3747
File: modules/new_serverpod_auth/serverpod_auth_migration/serverpod_auth_migration_server/lib/src/business/migrating_email_endpoint_base.dart:4-4
Timestamp: 2025-07-02T16:07:50.947Z
Learning: In Serverpod, tp prefers importing the full package (e.g., 'package:serverpod_auth_migration_server/serverpod_auth_migration_server.dart') as a baseline rather than using smaller local imports, even within the same package where it might be considered a "self-import".
Learnt from: tp
PR: serverpod/serverpod#3666
File: modules/new_serverpod_auth/serverpod_auth_migration/serverpod_auth_migration_client/CHANGELOG.md:1-7
Timestamp: 2025-06-17T11:44:37.288Z
Learning: Changes to README.md and CHANGELOG.md files made by the util/update_pubspecs script can be safely ignored during code review, as these files are auto-generated by copying from a single source rather than being manually authored.
Learnt from: exaby73
PR: serverpod/serverpod#3741
File: modules/serverpod_auth/serverpod_auth_server/analysis_options.yaml:14-16
Timestamp: 2025-07-01T13:01:27.054Z
Learning: In Serverpod, first-party packages like serverpod_auth_server can appropriately use blanket `invalid_use_of_internal_member: ignore` directives in their analysis_options.yaml since they use internal Database methods internally without exposing them in their public APIs to end users.
Learnt from: tp
PR: serverpod/serverpod#3747
File: tests/serverpod_new_auth_test/serverpod_new_auth_test_server/pubspec.yaml:37-38
Timestamp: 2025-07-02T16:09:27.702Z
Learning: In Serverpod migration testing, it's appropriate for test servers like serverpod_new_auth_test_server to include dependencies on both legacy packages (e.g., serverpod_auth_server) and new modular packages to enable comprehensive testing of migration paths from old to new authentication systems.
Learnt from: tp
PR: serverpod/serverpod#3666
File: modules/new_serverpod_auth/serverpod_auth_migration/serverpod_auth_migration_client/CHANGELOG.md:1-7
Timestamp: 2025-06-17T11:44:37.288Z
Learning: The util/update_pubspecs script automatically copies the root CHANGELOG.md to all packages/modules and README_subpackage.md to all modules as README.md. These file changes should be ignored during code review as they are auto-generated distribution of shared content, not manual authoring that requires review.
Learnt from: tp
PR: serverpod/serverpod#3721
File: util/pub_get_all:0-0
Timestamp: 2025-06-27T08:39:36.440Z
Learning: In the Serverpod project, `dart pub get` commands work fine on Flutter packages both locally and in CI environments, even when the package has `flutter: sdk: flutter` dependencies in pubspec.yaml. The technical constraint of Flutter SDK dependencies causing `dart pub` failures may not apply in all environments or recent Dart versions.
Learnt from: tp
PR: serverpod/serverpod#3672
File: tests/serverpod_test_server/test_integration/test_tools/test_session_builder_test.dart:10-30
Timestamp: 2025-06-18T14:49:11.263Z
Learning: In Serverpod test files, tp prefers using nullable late variables for AuthenticationInfo in tests (e.g., `late AuthenticationInfo? authenticationInfo;`) rather than non-nullable ones to avoid using `!` operators and to get clearer error messages when authentication setup fails. This provides better diagnostics when `session.authenticated` returns null.
modules/new_serverpod_auth/serverpod_auth_backwards_compatibility/serverpod_auth_backwards_compatibility_client/lib/serverpod_auth_backwards_compatibility_client.dart (8)
Learnt from: tp
PR: serverpod/serverpod#3747
File: modules/new_serverpod_auth/serverpod_auth_migration/serverpod_auth_migration_server/lib/src/business/migrating_email_endpoint_base.dart:4-4
Timestamp: 2025-07-02T16:07:50.947Z
Learning: In Serverpod, tp prefers importing the full package (e.g., 'package:serverpod_auth_migration_server/serverpod_auth_migration_server.dart') as a baseline rather than using smaller local imports, even within the same package where it might be considered a "self-import".
Learnt from: tp
PR: serverpod/serverpod#3747
File: tests/serverpod_new_auth_test/serverpod_new_auth_test_server/pubspec.yaml:37-38
Timestamp: 2025-07-02T16:09:27.702Z
Learning: In Serverpod migration testing, it's appropriate for test servers like serverpod_new_auth_test_server to include dependencies on both legacy packages (e.g., serverpod_auth_server) and new modular packages to enable comprehensive testing of migration paths from old to new authentication systems.
Learnt from: tp
PR: serverpod/serverpod#3721
File: modules/new_serverpod_auth/serverpod_auth_session/serverpod_auth_session_flutter/test/serverpod_auth_session_flutter_test.dart:1-7
Timestamp: 2025-06-27T07:44:09.048Z
Learning: In Serverpod packages, the `uuid` package is re-exported through a chain: `serverpod_auth_session_client` re-exports `serverpod_client`, which re-exports `serverpod_serialization`, which re-exports `uuid`. This means `Uuid` class is available in files that import `serverpod_auth_session_client` without needing a direct `uuid` package import.
Learnt from: tp
PR: serverpod/serverpod#3666
File: modules/new_serverpod_auth/serverpod_auth_migration/serverpod_auth_migration_client/CHANGELOG.md:1-7
Timestamp: 2025-06-17T11:40:09.088Z
Learning: CHANGELOG.md files in the serverpod_auth_migration modules (client and server) are auto-generated and cannot be manually modified during the development process.
Learnt from: exaby73
PR: serverpod/serverpod#3741
File: modules/serverpod_auth/serverpod_auth_server/analysis_options.yaml:14-16
Timestamp: 2025-07-01T13:01:27.054Z
Learning: In Serverpod, first-party packages like serverpod_auth_server can appropriately use blanket `invalid_use_of_internal_member: ignore` directives in their analysis_options.yaml since they use internal Database methods internally without exposing them in their public APIs to end users.
Learnt from: tp
PR: serverpod/serverpod#3666
File: modules/new_serverpod_auth/serverpod_auth_migration/serverpod_auth_migration_server/README.md:3-8
Timestamp: 2025-06-17T11:34:13.289Z
Learning: The README.md files in the serverpod_auth_migration module directories are auto-generated and get overwritten by utility scripts, so manual updates should be avoided until proper documentation is added during feature rollout.
Learnt from: tp
PR: serverpod/serverpod#3721
File: util/pub_get_all:0-0
Timestamp: 2025-06-27T08:39:36.440Z
Learning: In the Serverpod project, `dart pub get` commands work fine on Flutter packages both locally and in CI environments, even when the package has `flutter: sdk: flutter` dependencies in pubspec.yaml. The technical constraint of Flutter SDK dependencies causing `dart pub` failures may not apply in all environments or recent Dart versions.
Learnt from: tp
PR: serverpod/serverpod#3672
File: tests/serverpod_test_server/test_integration/test_tools/test_session_builder_test.dart:10-30
Timestamp: 2025-06-18T14:49:11.263Z
Learning: In Serverpod test files, tp prefers using nullable late variables for AuthenticationInfo in tests (e.g., `late AuthenticationInfo? authenticationInfo;`) rather than non-nullable ones to avoid using `!` operators and to get clearer error messages when authentication setup fails. This provides better diagnostics when `session.authenticated` returns null.
modules/new_serverpod_auth/serverpod_auth_migration/serverpod_auth_migration_server/lib/src/business/auth_migrations.dart (7)
Learnt from: tp
PR: serverpod/serverpod#3747
File: tests/serverpod_new_auth_test/serverpod_new_auth_test_server/pubspec.yaml:37-38
Timestamp: 2025-07-02T16:09:27.702Z
Learning: In Serverpod migration testing, it's appropriate for test servers like serverpod_new_auth_test_server to include dependencies on both legacy packages (e.g., serverpod_auth_server) and new modular packages to enable comprehensive testing of migration paths from old to new authentication systems.
Learnt from: tp
PR: serverpod/serverpod#3747
File: modules/new_serverpod_auth/serverpod_auth_migration/serverpod_auth_migration_server/lib/src/business/migrating_email_endpoint_base.dart:4-4
Timestamp: 2025-07-02T16:07:50.947Z
Learning: In Serverpod, tp prefers importing the full package (e.g., 'package:serverpod_auth_migration_server/serverpod_auth_migration_server.dart') as a baseline rather than using smaller local imports, even within the same package where it might be considered a "self-import".
Learnt from: tp
PR: serverpod/serverpod#3672
File: tests/serverpod_test_server/test_integration/test_tools/test_session_builder_test.dart:10-30
Timestamp: 2025-06-18T14:49:11.263Z
Learning: In Serverpod test files, tp prefers using nullable late variables for AuthenticationInfo in tests (e.g., `late AuthenticationInfo? authenticationInfo;`) rather than non-nullable ones to avoid using `!` operators and to get clearer error messages when authentication setup fails. This provides better diagnostics when `session.authenticated` returns null.
Learnt from: tp
PR: serverpod/serverpod#3721
File: modules/new_serverpod_auth/serverpod_auth_session/serverpod_auth_session_flutter/test/serverpod_auth_session_flutter_test.dart:1-7
Timestamp: 2025-06-27T07:44:09.048Z
Learning: In Serverpod packages, the `uuid` package is re-exported through a chain: `serverpod_auth_session_client` re-exports `serverpod_client`, which re-exports `serverpod_serialization`, which re-exports `uuid`. This means `Uuid` class is available in files that import `serverpod_auth_session_client` without needing a direct `uuid` package import.
Learnt from: tp
PR: serverpod/serverpod#3666
File: modules/new_serverpod_auth/serverpod_auth_migration/serverpod_auth_migration_server/README.md:3-8
Timestamp: 2025-06-17T11:34:13.289Z
Learning: The README.md files in the serverpod_auth_migration module directories are auto-generated and get overwritten by utility scripts, so manual updates should be avoided until proper documentation is added during feature rollout.
Learnt from: tp
PR: serverpod/serverpod#3666
File: modules/new_serverpod_auth/serverpod_auth_migration/serverpod_auth_migration_client/CHANGELOG.md:1-7
Timestamp: 2025-06-17T11:40:09.088Z
Learning: CHANGELOG.md files in the serverpod_auth_migration modules (client and server) are auto-generated and cannot be manually modified during the development process.
Learnt from: exaby73
PR: serverpod/serverpod#3741
File: modules/serverpod_auth/serverpod_auth_server/analysis_options.yaml:14-16
Timestamp: 2025-07-01T13:01:27.054Z
Learning: In Serverpod, first-party packages like serverpod_auth_server can appropriately use blanket `invalid_use_of_internal_member: ignore` directives in their analysis_options.yaml since they use internal Database methods internally without exposing them in their public APIs to end users.
tests/serverpod_new_auth_test/serverpod_new_auth_test_server/test/integration/test_tools/serverpod_test_tools.dart (5)
Learnt from: tp
PR: serverpod/serverpod#3747
File: tests/serverpod_new_auth_test/serverpod_new_auth_test_server/pubspec.yaml:37-38
Timestamp: 2025-07-02T16:09:27.702Z
Learning: In Serverpod migration testing, it's appropriate for test servers like serverpod_new_auth_test_server to include dependencies on both legacy packages (e.g., serverpod_auth_server) and new modular packages to enable comprehensive testing of migration paths from old to new authentication systems.
Learnt from: tp
PR: serverpod/serverpod#3672
File: tests/serverpod_test_server/test_integration/test_tools/test_session_builder_test.dart:10-30
Timestamp: 2025-06-18T14:49:11.263Z
Learning: In Serverpod test files, tp prefers using nullable late variables for AuthenticationInfo in tests (e.g., `late AuthenticationInfo? authenticationInfo;`) rather than non-nullable ones to avoid using `!` operators and to get clearer error messages when authentication setup fails. This provides better diagnostics when `session.authenticated` returns null.
Learnt from: tp
PR: serverpod/serverpod#3747
File: modules/new_serverpod_auth/serverpod_auth_migration/serverpod_auth_migration_server/lib/src/business/migrating_email_endpoint_base.dart:4-4
Timestamp: 2025-07-02T16:07:50.947Z
Learning: In Serverpod, tp prefers importing the full package (e.g., 'package:serverpod_auth_migration_server/serverpod_auth_migration_server.dart') as a baseline rather than using smaller local imports, even within the same package where it might be considered a "self-import".
Learnt from: tp
PR: serverpod/serverpod#3651
File: tests/serverpod_new_auth_test/serverpod_new_auth_test_server/test/integration/email_account_endpoint_test.dart:1-1
Timestamp: 2025-06-19T11:00:17.085Z
Learning: In Serverpod applications, methods that rely on public asset storage (like setUserImage/removeUserImage) should be tested in E2E tests rather than withServerpod integration tests, as they require a full server environment with asset storage infrastructure to properly test image upload/download functionality.
Learnt from: tp
PR: serverpod/serverpod#3651
File: tests/serverpod_new_auth_test/serverpod_new_auth_test_server/test/integration/email_account_endpoint_test.dart:1-1
Timestamp: 2025-06-19T10:25:15.101Z
Learning: Explicit tests for complex endpoint methods provide cleaner error reporting and better debugging experience compared to testing the same functionality only within setUp blocks or helper methods.
🪛 LanguageTool
modules/new_serverpod_auth/serverpod_auth_backwards_compatibility/serverpod_auth_backwards_compatibility_flutter/README.md
[grammar] ~4-~4: Use colons correctly
Context: ...e part of Serverpod. For documentation, visit: https://docs.serverpod.dev. ## What is Serverpod? Serverpod is an ...
(QB_NEW_EN_OTHER_ERROR_IDS_30)
[grammar] ~7-~7: Use commas correctly
Context: ...rverpod is an open-source, scalable app server, written in Dart for the Flutter communit...
(QB_NEW_EN_OTHER_ERROR_IDS_33)
[grammar] ~7-~7: Use correct spacing
Context: ...art for the Flutter community. Check it out! Serverpod.dev
(QB_NEW_EN_OTHER_ERROR_IDS_5)
modules/new_serverpod_auth/serverpod_auth_backwards_compatibility/serverpod_auth_backwards_compatibility_flutter/CHANGELOG.md
[grammar] ~4-~4: Use articles correctly
Context: ...mplate. - feat: Warns users about using outdated lock file. - fix: Updates UUID generato...
(QB_NEW_EN_OTHER_ERROR_IDS_11)
[grammar] ~9-~9: Use correct spacing
Context: ...Fixes getClassNameForObject method in subclasses. ## 2.9.0 - feat: Adds support for `HalfVec...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~12-~12: Correctly pair commas and coordinating conjunctions
Context: ... - feat: Adds support for HalfVector, SparseVector and Bit vector types in models and en...
(QB_NEW_EN_OTHER_ERROR_IDS_14)
[style] ~18-~18: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym.
Context: ...nment variables in the auth module. - feat(EXPERIMENTAL): Adds support for registe...
(ENGLISH_WORD_REPEAT_BEGINNING_RULE)
[grammar] ~24-~24: Use correct spacing
Context: ...ration formatting in human-readable log output. ## 2.8.0 - feat: Adds DatabaseUtils with...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~28-~28: Use articles correctly
Context: ...ons or savepoints. - feat: Adds support for Vector type, with database HNSW and...
(QB_NEW_EN_OTHER_ERROR_IDS_11)
[grammar] ~31-~31: Use correct spacing
Context: ...n failing to connect to database during startup. ## 2.7.0 - feat: Adds support for storing ...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~34-~34: Use articles correctly
Context: ...tup. ## 2.7.0 - feat: Adds support for storing String-representable user id in `Auth...
(QB_NEW_EN_OTHER_ERROR_IDS_11)
[grammar] ~34-~34: There might be a mistake here.
Context: ...for storing String-representable user id in AuthenticationInfo. - feat: Adds ...
(QB_NEW_EN_OTHER)
[grammar] ~41-~41: Use correct spacing
Context: ...th checks now respond with a 503 status code. ## 2.6.0 - feat: Adds support for endpoint...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~50-~50: Use correct spacing
Context: ... UuidValue as the type for model id fields. ## 2.5.1 - feat: Adds support for configu...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~55-~55: Use correct spacing
Context: ...e record parameters could only be named record. ## 2.5.0 - feat: Enables translations for ...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[style] ~62-~62: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym.
Context: ...ng a default value for Enum models. - feat(EXPERIMENTAL): Adds support for attachi...
(ENGLISH_WORD_REPEAT_BEGINNING_RULE)
[grammar] ~63-~63: Make sure you are using the right part of speech
Context: ...ata to diagnostic events. - fix: Always drains request bodies to prevent unexpected cl...
(QB_NEW_EN_OTHER_ERROR_IDS_21)
[grammar] ~69-~69: There might be a mistake here.
Context: ...enables support for models named "Record". - fix: Fixes issue where implicit relat...
(QB_NEW_EN_OTHER)
[style] ~73-~73: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym.
Context: ...ort for non-nullable Set in models. - fix(EXPERIMENTAL): Includes Uri path in dia...
(ENGLISH_WORD_REPEAT_BEGINNING_RULE)
[style] ~74-~74: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym.
Context: ...cludes Uri path in diagnostic events. - fix(EXPERIMENTAL): Reports diagnostic event...
(ENGLISH_WORD_REPEAT_BEGINNING_RULE)
[grammar] ~74-~74: Use correct spacing
Context: ...eption during database start and health checks. ## 2.4.0 - feat: Adds support for configur...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~78-~78: There might be a mistake here.
Context: ... support for Uri, BigInt, and Set type in endpoints and models. - feat: Adds s...
(QB_NEW_EN_OTHER)
[grammar] ~83-~83: There might be a mistake here.
Context: ... - feat: Allows configuration of server id via the SERVERPOD_SERVER_ID environm...
(QB_NEW_EN_OTHER)
[style] ~84-~84: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym.
Context: ...OD_SERVER_ID` environmental variable. - feat(EXPERIMENTAL): Adds support for excepti...
(ENGLISH_WORD_REPEAT_BEGINNING_RULE)
[style] ~85-~85: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym.
Context: ...iagnostic events to monitoring tools. - feat(EXPERIMENTAL): Adds API for submitting ...
(ENGLISH_WORD_REPEAT_BEGINNING_RULE)
[grammar] ~90-~90: Insert the missing word
Context: ...x: Fixes crash when generator processes model many(List) relations without generics...
(QB_NEW_EN_OTHER_ERROR_IDS_32)
[grammar] ~94-~94: There might be a problem here.
Context: ... issue with relative imports generating backwards slashes on Windows. - fix: Fixes crash in `crea...
(QB_NEW_EN_MERGED_MATCH)
[grammar] ~96-~96: Use correct spacing
Context: ...ming caused migrations that couldn’t be applied. ## 2.3.1 - fix: Resolved an issue where da...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~100-~100: Use correct spacing
Context: ... parsing for both endpoints and the web server. ## 2.3.0 - feat: Adds support for transact...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~105-~105: Use articles correctly
Context: ...dpoint definition placement anywhere in server's src directory. - feat: Adds support f...
(QB_NEW_EN_OTHER_ERROR_IDS_11)
[grammar] ~109-~109: Use correct spacing
Context: ...essage transmission guarantee in method streams. ## 2.2.2 - fix: Fixes possible import iss...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~112-~112: Use correct spacing
Context: ...he same model name is used in different modules. ## 2.2.1 - fix: Fixes an issue where inva...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[style] ~115-~115: Consider using a different verb for a more formal wording.
Context: ...in different modules. ## 2.2.1 - fix: Fixes an issue where invalid Dart import path...
(FIX_RESOLVE)
[grammar] ~115-~115: Use correct spacing
Context: ...Dart import paths would be generated on Windows. ## 2.2.0 - feat: Improves Serverpod start...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~131-~131: Use correct spacing
Context: ...laces null assert with error check in WebWidget. ## 2.1.5 - feat: EXPERIMENTAL. Adds testi...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~136-~136: Use correct spacing
Context: ...fix: Correctly handles errors in method streams. ## 2.1.4 - feat: Adds detailed reporting ...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~143-~143: Use correct spacing
Context: ...e if parameters passed to Serverpod are incorrect. ## 2.1.3 - fix: Includes Dockerfile for S...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~146-~146: Use correct spacing
Context: ... Includes Dockerfile for Serverpod Mini projects. ## 2.1.2 - fix: Supports updating full us...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[style] ~149-~149: It’s more common nowadays to write this noun as one word.
Context: ...## 2.1.2 - fix: Supports updating full user name in auth module. - fix: Adds missing tr...
(RECOMMENDED_COMPOUNDS)
[grammar] ~153-~153: Use correct spacing
Context: ...ing a user change name or image in auth module. ## 2.1.1 - fix: Posts revoked authenticat...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~157-~157: Use correct spacing
Context: ...or fromJson parameter in custom class serialization. ## 2.1.0 - feat: Adds DevTools extension....
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~164-~164: There might be a problem here.
Context: ...uble, bool, DateTime, UuidValue, Duration`, enums) - feat: Adds support for WASM compiled...
(QB_NEW_EN_MERGED_MATCH)
[grammar] ~165-~165: Use hyphens correctly
Context: ...tion`, enums) - feat: Adds support for WASM compiled web apps. - feat: Endpoint met...
(QB_NEW_EN_OTHER_ERROR_IDS_29)
[grammar] ~166-~166: Use articles correctly
Context: ...led web apps. - feat: Endpoint methods with @Deprecated annotation are now also a...
(QB_NEW_EN_OTHER_ERROR_IDS_11)
[grammar] ~174-~174: Use modal and auxiliary verbs correctly
Context: ...o register custom environment variables to loaded as passwords. - feat: Adds abil...
(QB_NEW_EN_OTHER_ERROR_IDS_24)
[grammar] ~177-~177: Use articles correctly
Context: ...endpoint methods. - feat: When sending a HTTP 400 Bad Request error message to the cl...
(QB_NEW_EN_OTHER_ERROR_IDS_11)
[grammar] ~177-~177: Use hyphens correctly
Context: ...rror message may now be included in the client side exception. - fix: Allows Serverpod...
(QB_NEW_EN_OTHER_ERROR_IDS_29)
[grammar] ~178-~178: Use hyphens correctly
Context: ...e client side exception. - fix: Allows Serverpod defined models to be encoded and decoded...
(QB_NEW_EN_OTHER_ERROR_IDS_29)
[grammar] ~180-~180: Use articles correctly
Context: ...on. - fix: Fixes top error handling on server's request handler to ensure proper error ...
(QB_NEW_EN_OTHER_ERROR_IDS_11)
[grammar] ~198-~198: Use proper capitalization
Context: ...ls on shutdown. - fix: Improvements to websocket lifecycle. - fix: Registers cloud stor...
(QB_NEW_EN_OTHER_ERROR_IDS_6)
[grammar] ~203-~203: Use correct spacing
Context: ...database is disabled. - chore: Updates dependencies. ## 2.0.2 - fix: Conditionally imports `Htt...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~207-~207: Use articles correctly
Context: ...tatusto improve compatibility. - fix: ImproveencodeForProtocolmethod forList` a...
(QB_NEW_EN_OTHER_ERROR_IDS_11)
[grammar] ~207-~207: Use correct spacing
Context: ...ethod for List and Map input object types. ## 2.0.1 - fix: Writes websocket errors to...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~211-~211: There might be a problem here.
Context: ...t errors to stderr. - fix: Adds missing web socket connection notification on stream close...
(QB_NEW_EN_MERGED_MATCH)
[grammar] ~213-~213: Use hyphens correctly
Context: ...ty of passwords. - fix: Allows usage of user related Google API calls in `onUserCreat...
(QB_NEW_EN_OTHER_ERROR_IDS_29)
[grammar] ~213-~213: Use articles correctly
Context: ... usage of user related Google API calls in onUserCreated callback. - fix: Dispos...
(QB_NEW_EN_OTHER_ERROR_IDS_11)
[grammar] ~218-~218: Use hyphens correctly
Context: ...ebsocket upgrade requests. - fix: Makes sign in buttons customizable. - fix: Exposes ...
(QB_NEW_EN_OTHER_ERROR_IDS_29)
[grammar] ~224-~224: Use hyphens correctly
Context: ... fix: Adds explicit exception types for client side exceptions. - fix: Correctly sets o...
(QB_NEW_EN_OTHER_ERROR_IDS_29)
[grammar] ~231-~231: Use prepositions correctly
Context: ... is called. - chore: Removes dependency to unsupported firebase_admin package. -...
(QB_NEW_EN_OTHER_ERROR_IDS_7)
[grammar] ~233-~233: Use correct spacing
Context: ...Dart version to 3.2.0. - chore: Updates dependencies. ## 2.0.0 - fix: BREAKING. Database delete ...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~238-~238: Use articles correctly
Context: ...s SerializationManager as a parameter from fromJson factory constructor. - fix: ...
(QB_NEW_EN_OTHER_ERROR_IDS_11)
[grammar] ~239-~239: There might be a problem here.
Context: ...` factory constructor. - fix: BREAKING. Remove allToJson method. - fix: BREAKING. Makes user name nulla...
(QB_NEW_EN_MERGED_MATCH)
[style] ~240-~240: It’s more common nowadays to write this noun as one word.
Context: ...llToJson method. - fix: BREAKING. Makes user name nullable in UserInfo. - fix: BREAKING...
(RECOMMENDED_COMPOUNDS)
[grammar] ~245-~245: Use articles correctly
Context: ...interface in database. - fix: BREAKING. Changes SerializableEntity mixin into `Serial...
(QB_NEW_EN_OTHER_ERROR_IDS_11)
[grammar] ~245-~245: Use articles correctly
Context: ...ING. Changes SerializableEntity mixin into SerializableModel interface. - fix: B...
(QB_NEW_EN_OTHER_ERROR_IDS_11)
[grammar] ~246-~246: Use hyphens correctly
Context: ... BREAKING. Removes support for implicit string to expression conversion. - fix: BREAKIN...
(QB_NEW_EN_OTHER_ERROR_IDS_29)
[grammar] ~248-~248: Ensure spelling is correct
Context: ...`. - fix: BREAKING. Move authentication implementaqtions from core to auth module. - fix: BREAKI...
(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)
[grammar] ~248-~248: Use articles correctly
Context: ...ntication implementaqtions from core to auth module. - fix: BREAKING. Removes `custo...
(QB_NEW_EN_OTHER_ERROR_IDS_11)
[grammar] ~256-~256: Use proper capitalization
Context: ...le. - feat: Adds client entitlements to MacOS after creating Flutter project. - fix: ...
(QB_NEW_EN_OTHER_ERROR_IDS_6)
[grammar] ~256-~256: Use articles correctly
Context: ...nt entitlements to MacOS after creating Flutter project. - fix: Improves server only fi...
(QB_NEW_EN_OTHER_ERROR_IDS_11)
[grammar] ~257-~257: Use hyphens correctly
Context: ...eating Flutter project. - fix: Improves server only field validation. - fix: Retrieves ...
(QB_NEW_EN_OTHER_ERROR_IDS_29)
[grammar] ~261-~261: Make sure to use plural and singular nouns correctly
Context: ...humbnails in isolates for auth and chat module. - fix: Improved logging in CLI. - fix:...
(QB_NEW_EN_OTHER_ERROR_IDS_10)
[grammar] ~269-~269: Ensure spelling is correct
Context: ...authentication. - fix: Gives error when enpoint classes have naming conflicts. - fix: R...
(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)
[grammar] ~270-~270: Use articles correctly
Context: ...nflicts. - fix: Run _storeSharedPrefs in logOut method to preserve state. - fi...
(QB_NEW_EN_OTHER_ERROR_IDS_11)
[grammar] ~274-~274: Use correct spacing
Context: ...- docs: Improved documentation for chat module. ## 1.2.7 - fix: Spelling fix in UserAuthen...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~278-~278: There might be a problem here.
Context: ...en web or template directory is missing (webserver). - fix: Removes server only fields fro...
(QB_NEW_EN_MERGED_MATCH)
[grammar] ~279-~279: Use hyphens correctly
Context: ... is missing (webserver). - fix: Removes server only fields from client protocol deseria...
(QB_NEW_EN_OTHER_ERROR_IDS_29)
[grammar] ~285-~285: Use correct spacing
Context: ...rate --watch` command. - chore: Updates dependencies. ## 1.2.6 - feat: Adds missing callbacks wh...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~289-~289: There might be a mistake here.
Context: ...thm for email authentication. [Security Advisories](https://github.com/serverpod/serverpod...
(QB_NEW_EN_OTHER)
[grammar] ~290-~290: There might be a mistake here.
Context: ... client certificate security. [Security Advisories](https://github.com/serverpod/serverpod...
(QB_NEW_EN_OTHER)
[grammar] ~292-~292: Use correct spacing
Context: ...xes issue with incorrect line breaks in CLI. ## 1.2.5 - fix: Custom classes respect nul...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~295-~295: Use correct spacing
Context: ... - fix: Custom classes respect nullable configuration. ## 1.2.4 - fix: Sets the correct output pa...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~301-~301: Use articles correctly
Context: ...ctly handles transaction parameters for delete method. - fix: Correctly resolves and v...
(QB_NEW_EN_OTHER_ERROR_IDS_11)
[grammar] ~302-~302: Use correct spacing
Context: ...d custom classes used as types in model fields. ## 1.2.3 - fix: Correctly cleans up health...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~309-~309: Use correct spacing
Context: ...r if non-string value is used as parent keyword. ## 1.2.2 - fix: Makes it possible to creat...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~318-~318: Make sure to use plural and singular nouns correctly
Context: ...s restrictive enum naming rules. - fix: Pins Dart and Busybox docker image versions ...
(QB_NEW_EN_OTHER_ERROR_IDS_10)
[grammar] ~322-~322: Use commas correctly
Context: ... fix: Adds placeholder for old postgres file, to aid users who are following old tutor...
(QB_NEW_EN_OTHER_ERROR_IDS_33)
[grammar] ~323-~323: Use correct spacing
Context: ...ves internal relation pointers in class representations. ## 1.2.1 - fix: Removes old generated fold...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~331-~331: There might be a problem here.
Context: ...: Bumps vm_service version to support latest version. ## 1.2.0 This is a summary of the new feat...
(QB_NEW_EN_MERGED_MATCH)
[grammar] ~334-~334: Use proper capitalization
Context: ...m/serverpod/serverpod/commits/main/) on Github. Instructions for updating from 1.1 of S...
(QB_NEW_EN_OTHER_ERROR_IDS_6)
[grammar] ~334-~334: Use the right verb tense
Context: ...ions for updating from 1.1 of Serverpod is available in our documentation [here](h...
(QB_NEW_EN_OTHER_ERROR_IDS_13)
[grammar] ~334-~334: Use correct spacing
Context: ...erpod is available in our documentation here. ### Main new features and fixes - feat: Add...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~336-~336: Use colons correctly
Context: ...-point-two). ### Main new features and fixes - feat: Adds official support for Windo...
(QB_NEW_EN_OTHER_ERROR_IDS_30)
[style] ~344-~344: Consider using “outdated” to strengthen your wording.
Context: ...ser to update Serverpod when running an old version of the CLI. - feat: Improves ex...
(OLD_VERSION)
[grammar] ~346-~346: Use hyphens correctly
Context: ...ent formats for different platforms and run-modes. - feat: Progress animations in CLI. - f...
(QB_NEW_EN_OTHER_ERROR_IDS_29)
[grammar] ~350-~350: Use articles correctly
Context: ...--quiet flags to control log level. - feat: Developer version of serverpod create...
(QB_NEW_EN_OTHER_ERROR_IDS_11)
[grammar] ~367-~367: Ensure spelling is correct
Context: ...rrectly resets error message state when and endpoint call was successful in templat...
(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)
[grammar] ~367-~367: Use articles correctly
Context: ...hen and endpoint call was successful in template project. - fix: Closes session when pro...
(QB_NEW_EN_OTHER_ERROR_IDS_11)
[grammar] ~371-~371: Use articles correctly
Context: ... API documentation. - chore: Updates to latest version of Flutter. - chore: Updates de...
(QB_NEW_EN_OTHER_ERROR_IDS_11)
[grammar] ~378-~378: Use correct spacing
Context: ...ts. - ci: Unit tests are now running on Windows. ### Database ORM - feat: Adds support for d...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~384-~384: Correctly pair commas and coordinating conjunctions
Context: ...ations. - feat: Support IN, NOT IN, BETWEEN and NOT BETWEEN query operations. - f...
(QB_NEW_EN_OTHER_ERROR_IDS_14)
[grammar] ~393-~393: Use correct spacing
Context: ...ves old Postgres generator (replaced by migrations). ### Model files (.spy.yaml) and code genera...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~397-~397: There might be a problem here.
Context: ...lidating model files. - feat: Validates field datatypes when running serverpod generate. - fe...
(QB_NEW_EN_MERGED_MATCH)
[grammar] ~407-~407: Use articles correctly
Context: ...y.yaml). - feat: Now loads model files from src/lib/modelsdirectory (oldprotoc...
(QB_NEW_EN_OTHER_ERROR_IDS_11)
[grammar] ~407-~407: Use articles correctly
Context: ... files from src/lib/models directory (old protocol directory is still supported...
(QB_NEW_EN_OTHER_ERROR_IDS_11)
[grammar] ~415-~415: Insert the missing word
Context: ...at have a table defined. - fix: Enforce that parent keyword is only used if a mode...
(QB_NEW_EN_OTHER_ERROR_IDS_32)
[grammar] ~416-~416: Make sure you are using the right part of speech
Context: ...if the referenced parent table does not exists. - fix: Report an error if the table na...
(QB_NEW_EN_OTHER_ERROR_IDS_21)
[grammar] ~421-~421: Use hyphens correctly
Context: ... fix: Parse the source location for all comma separated values in a field string. - fi...
(QB_NEW_EN_OTHER_ERROR_IDS_29)
[grammar] ~422-~422: There might be a problem here.
Context: ... fix: Restrict class names to now allow standard datatypes. - fix: Add automatic deprecated report...
(QB_NEW_EN_MERGED_MATCH)
[grammar] ~425-~425: There might be a problem here.
Context: ...ssues. - fix: Correctly validate deeply nested datatypes in protocols. - fix: Enum value restric...
(QB_NEW_EN_MERGED_MATCH)
[grammar] ~426-~426: Ensure subjects and verbs match
Context: ...otocols. - fix: Enum value restrictions matches default linting in Dart. - fix: Less re...
(QB_NEW_EN_OTHER_ERROR_IDS_8)
[grammar] ~435-~435: Use articles correctly
Context: .... - fix: Only return valid entries from analyzer. - fix: Reintroduces generation of `prot...
(QB_NEW_EN_OTHER_ERROR_IDS_11)
[grammar] ~437-~437: Use articles correctly
Context: ...neration of protocol.yaml. - fix: Use version command to check if a command exists. -...
(QB_NEW_EN_OTHER_ERROR_IDS_11)
[grammar] ~442-~442: Use hyphens correctly
Context: ...Map values. - fix: Restrict length of user defined Postgres identifier names. ### ...
(QB_NEW_EN_OTHER_ERROR_IDS_29)
[grammar] ~442-~442: Use correct spacing
Context: ...gth of user defined Postgres identifier names. ### Insights - feat: Insight endpoint metho...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~449-~449: Use correct spacing
Context: ...clude installed modules in all database definitions. ### Auth module - feat: Improves auth examp...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~454-~454: Use hyphens correctly
Context: ... with Apple button. - feat: Adds Google Sign in on the web. - feat: Allows min and ma...
(QB_NEW_EN_OTHER_ERROR_IDS_29)
[grammar] ~455-~455: Use articles correctly
Context: ...ax password lengths to be configured in auth module. - feat: Allows label and icon t...
(QB_NEW_EN_OTHER_ERROR_IDS_11)
[grammar] ~459-~459: Use hyphens correctly
Context: ...uth. - fix: Properly close barrier when sign in is complete in auth. - fix: Corrects ...
(QB_NEW_EN_OTHER_ERROR_IDS_29)
[grammar] ~460-~460: Use hyphens correctly
Context: ...mplete in auth. - fix: Corrects typo in sign in button. - fix: Require consent in ord...
(QB_NEW_EN_OTHER_ERROR_IDS_29)
[style] ~461-~461: Consider a more concise word here.
Context: ... sign in button. - fix: Require consent in order to generate refresh token for Google Signi...
(IN_ORDER_TO_PREMIUM)
[grammar] ~461-~461: Use articles correctly
Context: ...x: Require consent in order to generate refresh token for Google Signin. - fix: Throw d...
(QB_NEW_EN_OTHER_ERROR_IDS_11)
[grammar] ~461-~461: Ensure spelling is correct
Context: ...er to generate refresh token for Google Signin. - fix: Throw descriptive error if Goog...
(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)
[grammar] ~465-~465: Use correct spacing
Context: ...llows Firebase phone auth and logs auth errors. ### File storage - feat: Adds bulk file URL...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~468-~468: Use correct spacing
Context: ...ds bulk file URL lookup method for file storage. ### Chat module - fix: Adds missing return ...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~470-~470: Use colons correctly
Context: ...okup method for file storage. ### Chat module - fix: Adds missing return statement to...
(QB_NEW_EN_OTHER_ERROR_IDS_30)
[grammar] ~471-~471: Use correct spacing
Context: ...dds missing return statement to require authentication. ## 1.1.0 - feat: Lightweight run mode and ...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~478-~478: There might be a mistake here.
Context: ...nt. - feat: Adds serverOnly option to yaml-files, which is set to true will preven...
(QB_NEW_EN_OTHER)
[grammar] ~478-~478: There might be a mistake here.
Context: ...Adds serverOnly option to yaml-files, which is set to true will prevent the code to be...
(QB_NEW_EN_OTHER)
[grammar] ~478-~478: There might be a mistake here.
Context: ...` option to yaml-files, which is set to true will prevent the code to be generated f...
(QB_NEW_EN_OTHER)
[grammar] ~478-~478: There might be a mistake here.
Context: ...ch is set to true will prevent the code to be generated for the client. - feat: Suppo...
(QB_NEW_EN_OTHER)
[grammar] ~481-~481: There might be a problem here.
Context: ...s in Relic. - feat: Allows endpoints in sub directories. - feat: Support for GCP Cloud Storage....
(QB_NEW_EN_MERGED_MATCH)
[grammar] ~484-~484: Correctly pair commas and coordinating conjunctions
Context: ...tenance methods to Insights APIs (still experimental and API may change). - docs: Improved d...
(QB_NEW_EN_OTHER_ERROR_IDS_14)
[grammar] ~487-~487: Use hyphens correctly
Context: ...ng connectivity issues. - fix: Prevents self referencing table to cause `serverpod ge...
(QB_NEW_EN_OTHER_ERROR_IDS_29)
[grammar] ~487-~487: There might be a mistake here.
Context: ... - fix: Prevents self referencing table to cause serverpod generate to hang. - fix: Ad...
(QB_NEW_EN_OTHER)
[grammar] ~489-~489: Ensure spelling is correct
Context: ...ix: Don't print stack trace when Google signin disconnect fails. - fix: Return bool fr...
(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)
[grammar] ~490-~490: Use articles correctly
Context: ...ionManager.initialize()` to indicate if server was reached. - fix: Better recovery whe...
(QB_NEW_EN_OTHER_ERROR_IDS_11)
[grammar] ~491-~491: There might be a mistake here.
Context: ...ed. - fix: Better recovery when parsing yaml-files. - chore: Migrates Firebase to ne...
(QB_NEW_EN_OTHER)
[grammar] ~492-~492: Make sure to use plural and singular nouns correctly
Context: ...overy when parsing yaml-files. - chore: Migrates Firebase to new Flutter APIs. - chore: ...
(QB_NEW_EN_OTHER_ERROR_IDS_10)
[grammar] ~494-~494: Use correct spacing
Context: ...es dependencies. - chore: Refactors CLI tooling. ## 1.0.1 - Fixes import of generics in sub...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~500-~500: Use correct spacing
Context: ... - Replaces deprecated docker-compose with docker compose ## 1.0.0 - First stable release! :D - Fix...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~504-~504: Use correct spacing
Context: ...ncorrectly set database index on health metrics. ## 0.9.22 - Adds support for snake case in...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~513-~513: Use correct spacing
Context: .... Detailed migration instructions here: #567 ## 0.9.21 - Supports sub directories for p...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~516-~516: There might be a problem here.
Context: .../discussions/567) ## 0.9.21 - Supports sub directories for protocol class files. - Updates dep...
(QB_NEW_EN_MERGED_MATCH)
[grammar] ~522-~522: There might be a mistake here.
Context: ...tation for authentication. - Breaking changes: The active and suspendedUntil field...
(QB_NEW_EN_OTHER)
[grammar] ~522-~522: Use modal and auxiliary verbs correctly
Context: ...fields of UserInfo in the auth module has been removed. These fields need to be r...
(QB_NEW_EN_OTHER_ERROR_IDS_24)
[grammar] ~522-~522: Use correct spacing
Context: ...from the database for authentication to work. ## 0.9.20 - New serialization layer thanks...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~529-~529: There might be a mistake here.
Context: ...ch improved documentation. - Breaking changes: This version updates the Serverpod prot...
(QB_NEW_EN_OTHER)
[grammar] ~529-~529: Use correct spacing
Context: ...e detailed migration instructions here: #401 ## 0.9.19 - Adds support for storing and r...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~532-~532: Use correct spacing
Context: ...and reading binary ByteData to/from the database. ## 0.9.18 - Adds chat module to published ...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~535-~535: Use correct spacing
Context: ... 0.9.18 - Adds chat module to published packages. ## 0.9.17 - Reliability fix for FlutterCon...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~538-~538: Use correct spacing
Context: ...x for FlutterConnectivityMonitor on web platform. ## 0.9.16 - Changes default log level to `...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~542-~542: Use correct spacing
Context: ...tes template files with correct Flutter dependencies. ## 0.9.15 - Correctly sets 404 return code...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~546-~546: Use articles correctly
Context: ... server. - Templates are updated to use latest version of flutter_lints. - Adds connec...
(QB_NEW_EN_OTHER_ERROR_IDS_11)
[grammar] ~547-~547: Use articles correctly
Context: ...latest version of flutter_lints. - Adds connectivity monitor for streaming connections, whic...
(QB_NEW_EN_OTHER_ERROR_IDS_11)
[grammar] ~547-~547: Use correct spacing
Context: ...aming connections, which improves their reliability. ## 0.9.14 - Official support for Linux. - ...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~552-~552: Use correct spacing
Context: ... Windows. - Adds tests for command line tools. ## 0.9.13 - Updates download path for temp...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~555-~555: Use correct spacing
Context: ...13 - Updates download path for template files. ## 0.9.12 - Adds connecting state to str...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~560-~560: Use articles correctly
Context: ...omatically reconnect to the server when streaming connection is lost. - Automatically upg...
(QB_NEW_EN_OTHER_ERROR_IDS_11)
[grammar] ~561-~561: Use prepositions correctly
Context: ...aming connections when a user is signed it (serverpod_auth module). - Better err...
(QB_NEW_EN_OTHER_ERROR_IDS_7)
[grammar] ~565-~565: Use correct spacing
Context: ... ...` - Hides errors produced by health checks. ## 0.9.11 - Adds support for Map structure...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~572-~572: Use prepositions correctly
Context: ...es the serverpod run command in favor for continuous generation. - Updates depend...
(QB_NEW_EN_OTHER_ERROR_IDS_7)
[grammar] ~574-~574: Use articles correctly
Context: ...pendencies to latest versions. - Cleans up serverpod help command. ## 0.9.10 - ...
(QB_NEW_EN_OTHER_ERROR_IDS_11)
[grammar] ~574-~574: Use correct spacing
Context: ... versions. - Cleans up serverpod help command. ## 0.9.10 - Brings example code up-to-date...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~577-~577: Use articles correctly
Context: ...0 - Brings example code up-to-date with latest changes in Serverpod - Improved securit...
(QB_NEW_EN_OTHER_ERROR_IDS_11)
[grammar] ~577-~577: There might be a mistake here.
Context: ... code up-to-date with latest changes in Serverpod - Improved security for email sign in (...
(QB_NEW_EN_OTHER)
[grammar] ~578-~578: Use hyphens correctly
Context: ...Serverpod - Improved security for email sign in (limits sign in attempts based on a t...
(QB_NEW_EN_OTHER_ERROR_IDS_29)
[grammar] ~578-~578: Use hyphens correctly
Context: ...oved security for email sign in (limits sign in attempts based on a time period). - D...
(QB_NEW_EN_OTHER_ERROR_IDS_29)
[grammar] ~582-~582: Use hyphens correctly
Context: ...g changes__: Adds a new table for email sign in. Migration instructions here: [https:...
(QB_NEW_EN_OTHER_ERROR_IDS_29)
[grammar] ~582-~582: Use correct spacing
Context: ...l sign in. Migration instructions here: #246 ## 0.9.9 - Improved Terraform scripts for ...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~585-~585: Make sure you are using the right part of speech
Context: ...oved Terraform scripts for AWS will use less resources. Most notably, only uses one ...
(QB_NEW_EN_OTHER_ERROR_IDS_21)
[grammar] ~585-~585: Use the right pronoun
Context: ...s for AWS will use less resources. Most notably, only uses one load balancer which will ...
(QB_NEW_EN_OTHER_ERROR_IDS_9)
[grammar] ~585-~585: Use a comma after introductory words or phrases
Context: ...urces. Most notably, only uses one load balancer which will fit within AWS free tier. - ...
(QB_NEW_EN_OTHER_ERROR_IDS_19)
[grammar] ~585-~585: There might be a mistake here.
Context: ...one load balancer which will fit within AWS free tier. - Adds web server to Terrafo...
(QB_NEW_EN_OTHER)
[grammar] ~591-~591: Use correct spacing
Context: ...r logging. Migration instructions here: #190 ## 0.9.8 - Adds Terraform deployment scrip...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~595-~595: There might be a mistake here.
Context: ...fig files. Migration instructions here: [https://github.com//discussions/182](https://github.com/serverpod/serverpod...
(QB_NEW_EN_OTHER)
[grammar] ~596-~596: Use hyphens correctly
Context: ...rpod/serverpod/discussions/182) - Moves Redis enabled option to config file and turns ...
(QB_NEW_EN_OTHER_ERROR_IDS_29)
[grammar] ~597-~597: Use correct spacing
Context: ...rns it off by default. - serverpod run no longer manages the Docker containers as...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~597-~597: There might be a problem here.
Context: ... it caused an issue with restarting the server. ## 0.9.7 - serverpod create and serverpod generate is now working on ...
(QB_NEW_EN_MERGED_MATCH)
[grammar] ~600-~600: Use correct spacing
Context: ...s. Tested on a fresh install of Windows 10. ## 0.9.6 - Improved, but still experimenta...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~603-~603: There might be a mistake here.
Context: ...ows 10. ## 0.9.6 - Improved, but still experimental support for Windows. - Fixes issue with...
(QB_NEW_EN_OTHER)
[grammar] ~607-~607: There might be a problem here.
Context: ...s using Redis optional. - Much improved documentation. ## 0.9.5 - Adds serverpod run command and improves `s...
(QB_NEW_EN_MERGED_MATCH)
[grammar] ~613-~613: There might be a problem here.
Context: ...rpod run. - Automatic restarts through serverpod run`. ## 0.9.4 - Updates to documentation. - Makes it po...
(QB_NEW_EN_MERGED_MATCH)
[grammar] ~620-~620: There might be a problem here.
Context: ...aves/restores refresh tokens for Google sign in. ## 0.9.3 - Updates to documentation. ## 0.9.2 - ...
(QB_NEW_EN_MERGED_MATCH)
[grammar] ~624-~624: There might be a problem here.
Context: ...Google sign in. ## 0.9.3 - Updates to documentation. ## 0.9.2 - Adds serverpod_auth module for authenti...
(QB_NEW_EN_MERGED_MATCH)
[grammar] ~628-~628: There might be a problem here.
Context: ...r authentication with email, Apple, and Google. ## 0.9.1 - Fixes broken images in documentation. ...
(QB_NEW_EN_MERGED_MATCH)
[grammar] ~632-~632: There might be a problem here.
Context: ...le. ## 0.9.1 - Fixes broken images in documentation. ## 0.9.0 - Updates documentation and logos - Ready...
(QB_NEW_EN_MERGED_MATCH)
[grammar] ~636-~636: There might be a mistake here.
Context: ... ## 0.9.0 - Updates documentation and logos - Ready for 0.9 release! ## 0.8.12 - ...
(QB_NEW_EN_OTHER)
[grammar] ~637-~637: There might be a problem here.
Context: ...documentation and logos - Ready for 0.9 release! ## 0.8.12 - Updates default templates. ## 0.8.11 ...
(QB_NEW_EN_MERGED_MATCH)
[grammar] ~641-~641: There might be a problem here.
Context: ... release! ## 0.8.12 - Updates default templates. ## 0.8.11 - Improved ORM. - Support for Docker. - C...
(QB_NEW_EN_MERGED_MATCH)
[grammar] ~648-~648: There might be a problem here.
Context: ...rt for Docker. - Chat module. - Updated docs. ## 0.8.10 - Support for static file directories in ...
(QB_NEW_EN_MERGED_MATCH)
[grammar] ~657-~657: There might be a problem here.
Context: ...e. - Cloud storage support. - Adds auth module ## 0.8.6 - Adds documentation. - Generates SQL fil...
(QB_NEW_EN_MERGED_MATCH)
[grammar] ~662-~662: There might be a problem here.
Context: ...nerates SQL files for creating database tables. ## 0.8.5 - Fixes compilation in broken serverpod_c...
(QB_NEW_EN_MERGED_MATCH)
[grammar] ~666-~666: There might be a problem here.
Context: ...xes compilation in broken serverpod_cli package ## 0.8.4 - Updates template files and fixes `serve...
(QB_NEW_EN_MERGED_MATCH)
[grammar] ~670-~670: Use articles correctly
Context: ... ## 0.8.4 - Updates template files and fixes serverpod create command. - Adds CHAN...
(QB_NEW_EN_OTHER_ERROR_IDS_11)
[grammar] ~671-~671: There might be a problem here.
Context: ...ixes serverpod create command. - Adds CHANGELOG.md ## 0.8.3 - Initial working version.
(QB_NEW_EN_MERGED_MATCH)
🪛 markdownlint-cli2 (0.17.2)
modules/new_serverpod_auth/serverpod_auth_backwards_compatibility/serverpod_auth_backwards_compatibility_flutter/CHANGELOG.md
53-53: Unordered list indentation
Expected: 0; Actual: 1
(MD007, ul-indent)
54-54: Unordered list indentation
Expected: 0; Actual: 1
(MD007, ul-indent)
55-55: Unordered list indentation
Expected: 0; Actual: 1
(MD007, ul-indent)
112-112: Unordered list indentation
Expected: 0; Actual: 1
(MD007, ul-indent)
115-115: Unordered list indentation
Expected: 0; Actual: 1
(MD007, ul-indent)
118-118: Unordered list indentation
Expected: 0; Actual: 1
(MD007, ul-indent)
119-119: Unordered list indentation
Expected: 0; Actual: 1
(MD007, ul-indent)
120-120: Unordered list indentation
Expected: 0; Actual: 1
(MD007, ul-indent)
121-121: Unordered list indentation
Expected: 0; Actual: 1
(MD007, ul-indent)
122-122: Unordered list indentation
Expected: 0; Actual: 1
(MD007, ul-indent)
123-123: Unordered list indentation
Expected: 0; Actual: 1
(MD007, ul-indent)
124-124: Unordered list indentation
Expected: 0; Actual: 1
(MD007, ul-indent)
125-125: Unordered list indentation
Expected: 0; Actual: 1
(MD007, ul-indent)
126-126: Unordered list indentation
Expected: 0; Actual: 1
(MD007, ul-indent)
127-127: Unordered list indentation
Expected: 0; Actual: 1
(MD007, ul-indent)
128-128: Unordered list indentation
Expected: 0; Actual: 1
(MD007, ul-indent)
129-129: Unordered list indentation
Expected: 0; Actual: 1
(MD007, ul-indent)
130-130: Unordered list indentation
Expected: 0; Actual: 1
(MD007, ul-indent)
131-131: Unordered list indentation
Expected: 0; Actual: 1
(MD007, ul-indent)
134-134: Unordered list indentation
Expected: 0; Actual: 1
(MD007, ul-indent)
135-135: Unordered list indentation
Expected: 0; Actual: 1
(MD007, ul-indent)
136-136: Unordered list indentation
Expected: 0; Actual: 1
(MD007, ul-indent)
139-139: Unordered list indentation
Expected: 0; Actual: 1
(MD007, ul-indent)
140-140: Unordered list indentation
Expected: 0; Actual: 1
(MD007, ul-indent)
141-141: Unordered list indentation
Expected: 0; Actual: 1
(MD007, ul-indent)
142-142: Unordered list indentation
Expected: 0; Actual: 1
(MD007, ul-indent)
143-143: Unordered list indentation
Expected: 0; Actual: 1
(MD007, ul-indent)
146-146: Unordered list indentation
Expected: 0; Actual: 1
(MD007, ul-indent)
149-149: Unordered list indentation
Expected: 0; Actual: 1
(MD007, ul-indent)
150-150: Unordered list indentation
Expected: 0; Actual: 1
(MD007, ul-indent)
151-151: Unordered list indentation
Expected: 0; Actual: 1
(MD007, ul-indent)
152-152: Unordered list indentation
Expected: 0; Actual: 1
(MD007, ul-indent)
153-153: Unordered list indentation
Expected: 0; Actual: 1
(MD007, ul-indent)
156-156: Unordered list indentation
Expected: 0; Actual: 1
(MD007, ul-indent)
157-157: Unordered list indentation
Expected: 0; Actual: 1
(MD007, ul-indent)
160-160: Unordered list indentation
Expected: 0; Actual: 1
(MD007, ul-indent)
161-161: Unordered list indentation
Expected: 0; Actual: 1
(MD007, ul-indent)
162-162: Unordered list indentation
Expected: 0; Actual: 1
(MD007, ul-indent)
163-163: Unordered list indentation
Expected: 0; Actual: 1
(MD007, ul-indent)
164-164: Unordered list indentation
Expected: 0; Actual: 1
(MD007, ul-indent)
165-165: Unordered list indentation
Expected: 0; Actual: 1
(MD007, ul-indent)
166-166: Unordered list indentation
Expected: 0; Actual: 1
(MD007, ul-indent)
167-167: Unordered list indentation
Expected: 0; Actual: 1
(MD007, ul-indent)
168-168: Unordered list indentation
Expected: 0; Actual: 1
(MD007, ul-indent)
169-169: Unordered list indentation
Expected: 0; Actual: 1
(MD007, ul-indent)
170-170: Unordered list indentation
Expected: 0; Actual: 1
(MD007, ul-indent)
171-171: Unordered list indentation
Expected: 0; Actual: 1
(MD007, ul-indent)
172-172: Unordered list indentation
Expected: 0; Actual: 1
(MD007, ul-indent)
173-173: Unordered list indentation
Expected: 0; Actual: 1
(MD007, ul-indent)
174-174: Unordered list indentation
Expected: 0; Actual: 1
(MD007, ul-indent)
175-175: Unordered list indentation
Expected: 0; Actual: 1
(MD007, ul-indent)
176-176: Unordered list indentation
Expected: 0; Actual: 1
(MD007, ul-indent)
177-177: Unordered list indentation
Expected: 0; Actual: 1
(MD007, ul-indent)
178-178: Unordered list indentation
Expected: 0; Actual: 1
(MD007, ul-indent)
179-179: Unordered list indentation
Expected: 0; Actual: 1
(MD007, ul-indent)
180-180: Unordered list indentation
Expected: 0; Actual: 1
(MD007, ul-indent)
181-181: Unordered list indentation
Expected: 0; Actual: 1
(MD007, ul-indent)
182-182: Unordered list indentation
Expected: 0; Actual: 1
(MD007, ul-indent)
183-183: Unordered list indentation
Expected: 0; Actual: 1
(MD007, ul-indent)
184-184: Unordered list indentation
Expected: 0; Actual: 1
(MD007, ul-indent)
185-185: Unordered list indentation
Expected: 0; Actual: 1
(MD007, ul-indent)
186-186: Unordered list indentation
Expected: 0; Actual: 1
(MD007, ul-indent)
187-187: Unordered list indentation
Expected: 0; Actual: 1
(MD007, ul-indent)
188-188: Unordered list indentation
Expected: 0; Actual: 1
(MD007, ul-indent)
189-189: Unordered list indentation
Expected: 0; Actual: 1
(MD007, ul-indent)
190-190: Unordered list indentation
Expected: 0; Actual: 1
(MD007, ul-indent)
191-191: Unordered list indentation
Expected: 0; Actual: 1
(MD007, ul-indent)
192-192: Unordered list indentation
Expected: 0; Actual: 1
(MD007, ul-indent)
193-193: Unordered list indentation
Expected: 0; Actual: 1
(MD007, ul-indent)
194-194: Unordered list indentation
Expected: 0; Actual: 1
(MD007, ul-indent)
195-195: Unordered list indentation
Expected: 0; Actual: 1
(MD007, ul-indent)
196-196: Unordered list indentation
Expected: 0; Actual: 1
(MD007, ul-indent)
197-197: Unordered list indentation
Expected: 0; Actual: 1
(MD007, ul-indent)
198-198: Unordered list indentation
Expected: 0; Actual: 1
(MD007, ul-indent)
199-199: Unordered list indentation
Expected: 0; Actual: 1
(MD007, ul-indent)
200-200: Unordered list indentation
Expected: 0; Actual: 1
(MD007, ul-indent)
201-201: Unordered list indentation
Expected: 0; Actual: 1
(MD007, ul-indent)
202-202: Unordered list indentation
Expected: 0; Actual: 1
(MD007, ul-indent)
203-203: Unordered list indentation
Expected: 0; Actual: 1
(MD007, ul-indent)
🔇 Additional comments (67)
templates/pubspecs/tests/serverpod_new_auth_test/serverpod_new_auth_test_client/pubspec.yaml (1)
26-27: LGTM! Dependency override correctly added for session module integration.The addition of the
serverpod_auth_session_clientdependency override follows the established pattern for other auth modules and supports local development testing of the new session handling functionality.modules/new_serverpod_auth/serverpod_auth_backwards_compatibility/serverpod_auth_backwards_compatibility_server/pubspec.yaml (2)
18-18: LGTM! Session server dependency added correctly.The addition of
serverpod_auth_session_serverdependency is necessary for the backwards compatibility server to handle session migration and conversion.
32-33: LGTM! Dependency override correctly configured.The dependency override for
serverpod_auth_session_serverproperly points to the local development path, consistent with other auth module overrides.modules/new_serverpod_auth/serverpod_auth_backwards_compatibility/serverpod_auth_backwards_compatibility_client/lib/serverpod_auth_backwards_compatibility_client.dart (1)
1-4: LGTM! Export reordering improves consistency.The reordering of exports is a minor cosmetic change that doesn't affect functionality. The protocol export now appears after the serverpod_client export, which may improve consistency with other similar files.
modules/new_serverpod_auth/serverpod_auth_backwards_compatibility/serverpod_auth_backwards_compatibility_flutter/analysis_options.yaml (1)
1-5: LGTM! Standard Flutter analysis options configuration.The analysis options file correctly includes Flutter lints and provides appropriate documentation reference. This is a standard configuration for Flutter packages in the Serverpod ecosystem.
tests/serverpod_new_auth_test/serverpod_new_auth_test_client/pubspec.yaml (1)
27-28: LGTM! Dependency override correctly applied from template.The addition of the
serverpod_auth_session_clientdependency override correctly reflects the template modification and enables local testing of the new session handling functionality.modules/new_serverpod_auth/serverpod_auth_backwards_compatibility/serverpod_auth_backwards_compatibility_client/pubspec.yaml (1)
8-10: Dependency addition looks correct and consistent
serverpod_auth_session_clientis aligned with the other 2.9.1-pinned auth packages and the override path resolves correctly two levels up. No further action needed.Also applies to: 16-18
util/pub_get_all (1)
81-86: New Flutter path registered – LGTMThe added path ensures the new Flutter module participates in CI
pubworkflows and keeps the alphabetical grouping intact.modules/new_serverpod_auth/serverpod_auth_backwards_compatibility/serverpod_auth_backwards_compatibility_flutter/README.md (1)
1-10: Auto-generated README – skipping review as per project guidelinestemplates/pubspecs/modules/new_serverpod_auth/serverpod_auth_backwards_compatibility/serverpod_auth_backwards_compatibility_server/pubspec.yaml (1)
17-18: Server-side dependency wired up correctly
serverpod_auth_session_serveris now declared and overridden locally, mirroring the structure of sibling auth packages. Version placeholder and relative path are correct.Also applies to: 31-32
modules/new_serverpod_auth/serverpod_auth_backwards_compatibility/serverpod_auth_backwards_compatibility_flutter/.metadata (1)
1-10: LGTM! Standard Flutter metadata file.This is a standard Flutter project metadata file generated by the Flutter tools. The content is appropriate for a Flutter package module.
util/update_pubspecs (2)
69-69: LGTM! Auto-generated file distribution.This line correctly adds the new
serverpod_auth_backwards_compatibility_fluttermodule to the CHANGELOG.md distribution list.
127-127: LGTM! Auto-generated file distribution.This line correctly adds the new
serverpod_auth_backwards_compatibility_fluttermodule to the README.md distribution list.modules/new_serverpod_auth/serverpod_auth_session/serverpod_auth_session_flutter/lib/serverpod_auth_session_flutter.dart (1)
1-1: LGTM! Consistent export pattern.Adding the full package export aligns with the backwards compatibility objectives and follows the pattern of providing comprehensive access to the client package functionality.
modules/new_serverpod_auth/serverpod_auth_migration/serverpod_auth_migration_server/lib/src/business/migrate_user.dart (1)
60-67: LGTM! Improved configurability.Making session import conditional based on
AuthMigrations.config.importSessionsprovides better control over the migration process and aligns with the PR's goal of making migrations more manageable.templates/pubspecs/modules/new_serverpod_auth/serverpod_auth_backwards_compatibility/serverpod_auth_backwards_compatibility_client/pubspec.yaml (2)
9-9: LGTM! Consistent dependency addition.Adding
serverpod_auth_session_clientas a dependency is necessary for the backwards compatibility functionality and follows the established versioning pattern.
16-17: LGTM! Consistent dependency override.The dependency override correctly points to the local path for development, maintaining consistency with the existing dependency override pattern.
util/run_tests_analyze (1)
73-73: LGTM! Correctly adds the new Flutter module to the analysis pipeline.The addition of the new backwards compatibility Flutter module path is properly placed and follows the existing pattern of listing modules in server/flutter/client order.
modules/new_serverpod_auth/serverpod_auth_migration/serverpod_auth_migration_server/lib/serverpod_auth_migration_server.dart (1)
2-3: LGTM! API refactoring aligns with migration strategy changes.The changes properly reflect the shift from email-specific migration endpoints to a more generalized user migration function approach. Limiting the
auth_migrations.dartexport to only theAuthMigrationsclass improves API encapsulation.modules/new_serverpod_auth/serverpod_auth_backwards_compatibility/serverpod_auth_backwards_compatibility_flutter/.gitignore (1)
1-30: LGTM! Standard .gitignore file for Flutter module.The gitignore entries are appropriate and follow standard Flutter/Dart project conventions for excluding build artifacts, editor files, and temporary files.
modules/new_serverpod_auth/serverpod_auth_migration/serverpod_auth_migration_server/lib/src/business/user_migration_function.dart (1)
3-13: LGTM! Well-designed typedef for user migration callbacks.The
UserMigrationFunctiontypedef provides a clean API with:
- Clear parameter naming using required/optional named parameters
- Good documentation explaining the once-per-user behavior
- Proper transaction support for database operations
- Appropriate return type for async operations
modules/new_serverpod_auth/serverpod_auth_migration/serverpod_auth_migration_server/lib/src/business/auth_migration_config.dart (1)
9-19: LGTM! Configuration simplification aligns with migration strategy.The replacement of the callback-based
userMigrationHookwith a simple booleanimportSessionsflag simplifies the configuration and aligns with the PR's goal of moving away from continuous migration approaches. The documentation clearly explains the purpose and default behavior.modules/new_serverpod_auth/serverpod_auth_migration/serverpod_auth_migration_server/test/integration/password_backwards_compatibility_test.dart (4)
1-11: Import structure and test setup look good.The imports follow Serverpod conventions with appropriate aliasing for disambiguation between legacy and new auth modules. The test tools import is correctly referenced.
21-47: Proper migration tracking and transaction handling.The test correctly tracks migrated users and uses the updated
AuthMigrations.migrateUsersmethod with explicit transaction parameter. The assertion ensures no duplicate migrations occur.
53-72: Validates expected failure before password import.The test correctly verifies that login fails with
invalidCredentialswhen the password hasn't been imported yet, which is the expected behavior after user migration.
74-93: Validates successful login after password import.The test correctly verifies that after calling
importLegacyPasswordIfNeeded, the login succeeds and returns the expected migrated user ID. The assertion againstmigratedUsers.values.singleis appropriate.tests/serverpod_new_auth_test/serverpod_new_auth_test_flutter/pubspec.yaml (2)
15-20: Appropriate dependency versioning for backwards compatibility support.The changes correctly update dependencies to fixed versions (2.9.1) and include the new
serverpod_auth_backwards_compatibility_flutterpackage, which aligns with the introduction of backwards compatibility features.
30-31: Proper dependency overrides for local development.The dependency overrides correctly point to local paths for development while maintaining the fixed versions in dependencies. This follows the established Serverpod pattern for package management.
Also applies to: 36-37, 40-41, 52-53
templates/pubspecs/modules/new_serverpod_auth/serverpod_auth_backwards_compatibility/serverpod_auth_backwards_compatibility_flutter/pubspec.yaml (3)
1-6: Appropriate package metadata and environment constraints.The package name follows Serverpod naming conventions and the DART_VERSION placeholder will be correctly replaced by build scripts.
7-15: Well-structured dependencies for backwards compatibility.The dependencies are appropriate for a Flutter backwards compatibility module:
serverpod_auth_session_clientandserverpod_auth_session_flutterfor session managementserverpod_auth_backwards_compatibility_clientfor client-side compatibilityshared_preferencesfor local storage persistence
21-37: Proper dependency overrides for local development.The dependency overrides correctly point to local paths within the Serverpod repository structure, enabling development with local packages while maintaining published versions.
modules/new_serverpod_auth/serverpod_auth_backwards_compatibility/serverpod_auth_backwards_compatibility_server/lib/src/business/auth_backwards_compatibility.dart (2)
5-6: Appropriate import addition for email account integration.The import of
serverpod_auth_email_account_serverwith aliasnew_email_accountfollows the established pattern and enables integration with the new email account system.
64-117: Well-implemented on-demand password migration method.The
importLegacyPasswordIfNeededmethod provides a clean solution for migrating legacy passwords during login attempts. Key strengths:
- Uses proper transaction handling with
DatabaseUtil.runInTransactionOrSavepoint- Checks if account exists and lacks a password before attempting migration
- Validates against legacy password store before proceeding
- Atomically clears legacy password and sets new one
- Includes helpful comments explaining the flow
modules/new_serverpod_auth/serverpod_auth_backwards_compatibility/serverpod_auth_backwards_compatibility_server/lib/src/endpoints/session_migration_endpoint.dart (2)
1-5: Appropriate imports for session migration functionality.The imports correctly reference the legacy authentication handler, generated protocol, and new session server packages needed for the migration functionality.
8-39: Well-implemented session conversion with proper transaction handling.The
convertSessionmethod correctly:
- Resolves the legacy session using the updated helper function
- Returns null if no legacy session is found
- Uses proper transaction handling to ensure atomicity
- Deletes the legacy session before creating the new one
- Converts legacy scope names to proper
Scopeobjects- Returns the new session authentication result
modules/new_serverpod_auth/serverpod_auth_backwards_compatibility/serverpod_auth_backwards_compatibility_server/lib/src/business/legacy_authentication_handler.dart (2)
9-16: LGTM: Clean refactoring improves separation of concerns.The function rename from
legacyAuthenticationHandlertoresolveLegacySessionand the return type change toLegacySession?clearly separates legacy session resolution from authentication info creation. This aligns well with the PR objective of simplifying the migration approach.
25-35: LGTM: Simplified implementation is more focused.The implementation now directly returns the
LegacySessionobject after validation, which is cleaner than the previous approach of constructing anAuthenticationInfoobject. The session validation logic remains intact and correct.modules/new_serverpod_auth/serverpod_auth_migration/serverpod_auth_migration_server/test/integration/auth_migrations_test.dart (4)
56-67: LGTM: Test correctly uses the new migration API.The test properly uses the new
migrateUsersmethod with the explicituserMigration: nullparameter, which aligns with the API change from global configuration to explicit callback parameters.
93-106: LGTM: Migration callback implementation is correct.The explicit migration callback properly captures migrated user mappings in the local
migratedUsersvariable, which is cleaner than the previous global configuration approach.
210-224: LGTM: Callback setup follows the new pattern.The
UserMigrationFunctionis properly set up as a local variable and used consistently throughout the test. This demonstrates the correct usage pattern for the new API.
241-273: LGTM: Batch migration tests use consistent callback pattern.All the batch migration test calls consistently use the explicit
userMigrationparameter, demonstrating proper usage of the new API across different test scenarios.modules/new_serverpod_auth/serverpod_auth_backwards_compatibility/serverpod_auth_backwards_compatibility_flutter/pubspec.yaml (1)
1-38: LGTM: Well-structured Flutter package configuration.The pubspec properly configures a new Flutter package for backwards compatibility with consistent dependency versions (2.9.1 for Serverpod packages) and appropriate development overrides. The package name and description clearly indicate its purpose.
modules/new_serverpod_auth/serverpod_auth_backwards_compatibility/serverpod_auth_backwards_compatibility_flutter/lib/src/business/session_manager_legacy_import.dart (2)
7-42: LGTM: Well-designed extension for legacy session import.The extension provides a clean API for importing legacy sessions with proper null checks and early returns. The fallback to SharedPreferences when no custom
legacyStringGetteris provided is a good design choice that maintains flexibility while providing sensible defaults.
32-40: Good error handling pattern.The method properly handles the case where session conversion fails by returning early if
authSuccessis null, avoiding attempts to set invalid authentication state.tests/serverpod_new_auth_test/serverpod_new_auth_test_flutter/test/backwards_compatibility_test.dart (2)
9-35: LGTM: Clean test setup for password migration.The test setup properly creates a legacy user and migrates them, setting up the scenario for testing password import functionality. The API usage is correct and follows the expected pattern.
41-80: LGTM: Comprehensive password migration flow verification.The test effectively verifies the complete password migration flow:
- Legacy password initially works
- Normal endpoint fails before migration
- Password-importing endpoint succeeds and migrates the password
- Normal endpoint then works after migration
- Legacy password check returns false after migration
This demonstrates the one-off migration approach working correctly.
tests/serverpod_new_auth_test/serverpod_new_auth_test_flutter/test/session_manager_migration_test.dart (7)
1-11: Well-structured test imports and setup.The import structure properly separates legacy, new, and backwards compatibility packages with clear aliasing. The test utilities import is appropriate for the testing context.
13-35: Comprehensive migration test setup.The test properly creates a legacy user and session using the backwards compatibility test endpoint, establishing the necessary preconditions for migration testing.
38-65: Proper legacy session manager configuration.The test correctly sets up the legacy session manager with proper storage and authentication key management, then registers the signed-in user with the appropriate session details.
66-75: Effective verification of pre-migration state.The test appropriately verifies that the legacy session key is stored but doesn't authenticate on the server before migration, which aligns with the PR's objective of requiring one-off migrations.
77-90: Proper migration execution and verification.The test correctly triggers user migration and verifies that the new auth user ID exists while confirming the session hasn't been migrated yet, demonstrating the separation between user and session migration.
92-111: Excellent verification of post-migration functionality.The test properly initializes the new session manager, imports the legacy session using the backwards compatibility extension, and verifies that the migrated session correctly identifies the user. This thoroughly tests the complete migration flow.
115-142: Solid test storage implementation.The
_TestLegacyStorageclass provides a clean in-memory implementation of the legacy storage interface, which is appropriate for testing the migration functionality without external dependencies.tests/serverpod_new_auth_test/serverpod_new_auth_test_server/lib/src/endpoints/password_importing_email_account_endpoint.dart (3)
1-5: Proper import structure and aliasing.The imports are well-organized with appropriate package aliasing for the email account functionality, making the code more readable and avoiding naming conflicts.
6-25: Excellent implementation of legacy password import in login.The
loginmethod correctly implements the backwards compatibility pattern by importing legacy passwords before delegating to the parent implementation. The documentation is clear and the error handling delegation is appropriate.
27-45: Consistent pattern implementation in registration.The
startRegistrationmethod follows the same pattern as the login method, ensuring consistency in the legacy password import approach across all authentication flows.modules/new_serverpod_auth/serverpod_auth_backwards_compatibility/serverpod_auth_backwards_compatibility_server/test/integration/test_tools/serverpod_test_tools.dart (3)
104-106: Proper addition of session migration endpoint.The
TestEndpointsclass correctly adds the newsessionMigrationendpoint property, maintaining consistency with the existing test endpoint pattern.
114-120: Correct initialization of session migration endpoint.The
_InternalTestEndpointsclass properly initializes the session migration endpoint with the required dispatch and serialization manager parameters.
122-160: Well-implemented session migration test endpoint.The
_SessionMigrationEndpointclass follows the standard pattern for test endpoints with proper parameter handling, session building, method dispatch, and resource cleanup. TheconvertSessionmethod correctly handles the requiredsessionKeyparameter and returns the appropriateAuthSuccess?type.tests/serverpod_new_auth_test/serverpod_new_auth_test_server/lib/src/endpoints/email_account_backwards_compatibility_endpoint.dart (3)
14-22: Improved formatting in legacy user creation.The
createLegacyUsermethod has been reformatted with better parameter alignment, improving readability without changing functionality.
38-49: Excellent simplification of user migration logic.The method rename from
migrateUserByEmailtomigrateUserand the parameter change tolegacyUserIdbetter reflects the new migration approach. The simplified call toAuthMigrations.migrateUserswithuserMigration: nullaligns with the PR's objective of focusing on one-off migrations.
80-86: Improved session user identification.The renamed
sessionUserIdentifermethod (frombackwardsCompatibleAuthSessionCheck) now directly returns the user identifier from the session's authenticated user, which is cleaner and more straightforward. The comments appropriately clarify that both old and new session keys work post-migration due to the backwards compatible auth handler.modules/new_serverpod_auth/serverpod_auth_backwards_compatibility/serverpod_auth_backwards_compatibility_flutter/CHANGELOG.md (1)
1-676: Skipping review of auto-generated CHANGELOG.md file.Based on the context from retrieved learnings, CHANGELOG.md files are auto-generated and distributed across modules by the
util/update_pubspecsscript. Manual modifications to these files should be avoided.modules/new_serverpod_auth/serverpod_auth_migration/serverpod_auth_migration_server/lib/src/business/auth_migrations.dart (3)
17-29: Good addition of transaction support toisUserMigrated.The optional
Transactionparameter enables proper transaction handling when checking user migration status within existing database transactions.
32-44: Consistent transaction support ingetNewAuthUserId.Good to see the same transaction parameter pattern applied here for consistency across the migration utilities.
47-53: Well-designed refactoring of the migration method.The rename from
migrateNextUserBatchtomigrateUsersand the new signature with a callback function provide better flexibility and testability. The@visibleForTestingannotation onlegacyUserIdclearly indicates its intended use.tests/serverpod_new_auth_test/serverpod_new_auth_test_server/test/integration/test_tools/serverpod_test_tools.dart (1)
1-977: Skipping review of auto-generated test tools file.This file is automatically generated as indicated by the header comment. Any issues should be addressed in the source templates or generation logic rather than in this generated output.
exaby73
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Other than a nit on one of the tests, LGTM
To keep the overall migration (including the app's custom entities) manageable.
This implementation will require that clients also be updated in conjunction with the completion of the server migration. Backwards compatibility is still given for sessions, so that updated clients will continue to work against the updated server without needing a re-login.
This removes support for the "continuous" migration in the endpoints'
loginmethods (which might have proved untenable anyway, if too much related data would have to be copied per user).Upon migration legacy sessions are now imported into the
severpod_auth_backwards_compatibilitymodule, and will then be converted by a client API call into a properserverpod_auth_sessionone. This improves on the previous behavior where the re-mapped legacy session was kept around (and thus the backwards compatibility code would have to be kept running much longer; now it seems reasonable to delete those session after say 30 days, as the client has not been updated and seems unused).Closes #3753
Related docs PR: serverpod/serverpod_docs#302
Summary by CodeRabbit
New Features
Bug Fixes
Documentation
Tests
Chores