Skip to content

Conversation

@tp
Copy link
Contributor

@tp tp commented Jul 8, 2025

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' login methods (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_compatibility module, and will then be converted by a client API call into a proper serverpod_auth_session one. 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

    • Introduced a Flutter package for backwards compatibility with Serverpod authentication, including session migration from legacy systems.
    • Added session migration endpoint and utilities for seamless transition of user sessions and passwords.
    • Provided a new extension for importing legacy sessions in Flutter clients.
    • Added a password-importing email account endpoint to integrate legacy password migration during login and registration.
  • Bug Fixes

    • Improved handling and migration of legacy passwords and sessions.
  • Documentation

    • Added README and changelog for the new Flutter compatibility package.
  • Tests

    • Added and updated integration tests for session and password migration, including Flutter client tests.
    • Added new tests verifying session migration and password backward compatibility.
  • Chores

    • Updated dependencies and scripts to support the new Flutter compatibility package.
    • Enhanced configuration and analysis options for new modules.

…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)
@coderabbitai
Copy link
Contributor

coderabbitai bot commented Jul 8, 2025

Important

Review skipped

Auto reviews are disabled on this repository.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

📝 Walkthrough

Walkthrough

The 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

Files / Paths Change Summary
modules/new_serverpod_auth/serverpod_auth_backwards_compatibility/serverpod_auth_backwards_compatibility_flutter/*
pubspec.yaml, .gitignore, .metadata, README.md, CHANGELOG.md, analysis_options.yaml, lib/serverpod_auth_backwards_compatibility_flutter.dart, lib/src/business/session_manager_legacy_import.dart
New Flutter package for backwards compatibility: project setup, documentation, analysis config, and implementation of a session import extension for legacy sessions.
modules/new_serverpod_auth/serverpod_auth_backwards_compatibility/serverpod_auth_backwards_compatibility_client/pubspec.yaml
templates/pubspecs/modules/new_serverpod_auth/serverpod_auth_backwards_compatibility/serverpod_auth_backwards_compatibility_client/pubspec.yaml
Added serverpod_auth_session_client dependency and local override.
modules/new_serverpod_auth/serverpod_auth_backwards_compatibility/serverpod_auth_backwards_compatibility_server/pubspec.yaml
templates/pubspecs/modules/new_serverpod_auth/serverpod_auth_backwards_compatibility/serverpod_auth_backwards_compatibility_server/pubspec.yaml
Added serverpod_auth_session_server dependency and local override.
modules/new_serverpod_auth/serverpod_auth_backwards_compatibility/serverpod_auth_backwards_compatibility_client/lib/serverpod_auth_backwards_compatibility_client.dart Reordered export statements.
modules/new_serverpod_auth/serverpod_auth_backwards_compatibility/serverpod_auth_backwards_compatibility_server/lib/src/business/auth_backwards_compatibility.dart Removed legacy authentication handler, added password import method for legacy accounts.
modules/new_serverpod_auth/serverpod_auth_backwards_compatibility/serverpod_auth_backwards_compatibility_server/lib/src/business/legacy_authentication_handler.dart Refactored legacy authentication handler: renamed, simplified, changed return type to LegacySession?.
modules/new_serverpod_auth/serverpod_auth_backwards_compatibility/serverpod_auth_backwards_compatibility_server/lib/src/endpoints/session_migration_endpoint.dart Added new endpoint for session migration from legacy to new format.
modules/new_serverpod_auth/serverpod_auth_backwards_compatibility/serverpod_auth_backwards_compatibility_server/lib/src/models/legacy_session.spy.yaml Removed lastUsed field from LegacySession.
modules/new_serverpod_auth/serverpod_auth_backwards_compatibility/serverpod_auth_backwards_compatibility_server/test/integration/test_tools/serverpod_test_tools.dart Added test endpoint and helpers for session migration.
modules/new_serverpod_auth/serverpod_auth_migration/serverpod_auth_migration_server/lib/serverpod_auth_migration_server.dart Changed exports: removed email migration exports, added user migration function export.
modules/new_serverpod_auth/serverpod_auth_migration/serverpod_auth_migration_server/lib/src/business/auth_migration_config.dart Removed userMigrationHook property, added importSessions boolean flag.
modules/new_serverpod_auth/serverpod_auth_migration/serverpod_auth_migration_server/lib/src/business/auth_migration_email.dart
lib/src/business/migrating_email_endpoint_base.dart
Deleted files: removed email migration helpers and endpoint base for migration.
modules/new_serverpod_auth/serverpod_auth_migration/serverpod_auth_migration_server/lib/src/business/auth_migrations.dart Refactored migration logic: removed legacy handler, updated batch migration to accept migration callback, improved transaction handling.
modules/new_serverpod_auth/serverpod_auth_migration/serverpod_auth_migration_server/lib/src/business/migrate_user.dart Migration logic now conditionally imports sessions based on config; removed migration hook invocation.
modules/new_serverpod_auth/serverpod_auth_migration/serverpod_auth_migration_server/lib/src/business/user_migration_function.dart Added new typedef for user migration callback.
modules/new_serverpod_auth/serverpod_auth_migration/serverpod_auth_migration_server/test/integration/auth_migration_email_test.dart Deleted: removed tests for email migration logic.
modules/new_serverpod_auth/serverpod_auth_migration/serverpod_auth_migration_server/test/integration/auth_migrations_test.dart Updated tests to use new migration API and callback pattern; removed global config usage.
modules/new_serverpod_auth/serverpod_auth_migration/serverpod_auth_migration_server/test/integration/password_backwards_compatibility_test.dart Added new test for password import backward compatibility.
modules/new_serverpod_auth/serverpod_auth_session/serverpod_auth_session_flutter/lib/serverpod_auth_session_flutter.dart Added export for serverpod_auth_session_client.
modules/new_serverpod_auth/serverpod_auth_session/serverpod_auth_session_flutter/lib/src/session_manager.dart Removed direct import of client package.
tests/serverpod_new_auth_test/serverpod_new_auth_test_flutter/pubspec.yaml Changed dependencies from local paths to fixed versions, added local overrides.
tests/serverpod_new_auth_test/serverpod_new_auth_test_flutter/test/backwards_compatibility_test.dart Simplified and refocused test logic for legacy password migration.
tests/serverpod_new_auth_test/serverpod_new_auth_test_flutter/test/session_manager_migration_test.dart Added new test for session manager migration from legacy to new system.
tests/serverpod_new_auth_test/serverpod_new_auth_test_server/lib/src/endpoints/email_account_backwards_compatibility_endpoint.dart Refactored migration endpoint: changed migration method signature, replaced session check with user identifier method.
tests/serverpod_new_auth_test/serverpod_new_auth_test_server/lib/src/endpoints/password_importing_email_account_endpoint.dart Added new endpoint for importing legacy passwords during login/registration.
tests/serverpod_new_auth_test/serverpod_new_auth_test_server/test/integration/test_tools/serverpod_test_tools.dart Added test endpoint for password importing, updated backwards compatibility endpoint and method signatures.
util/pub_get_all
util/run_tests_analyze
util/update_pubspecs
Added new Flutter backwards compatibility package to scripts for dependency management, analysis, and documentation copying.
templates/pubspecs/modules/new_serverpod_auth/serverpod_auth_backwards_compatibility/serverpod_auth_backwards_compatibility_flutter/pubspec.yaml Added new pubspec template for Flutter backwards compatibility client.

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
Loading
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
Loading

Assessment against linked issues

Objective Addressed Explanation
Split migration and legacy support into distinct packages (#3753)
Migration package only supports data migration and exposes a migration function (#3753)
Legacy support package provides ongoing lookups/imports for legacy sessions/passwords (#3753)
Remove dependencies on legacy code from migration package after migration is complete (#3753)
Add endpoints/utilities for importing legacy sessions/passwords as needed (#3753)

Assessment against linked issues: Out-of-scope changes

No 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.

❤️ Share
🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Explain this complex logic.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai explain this code block.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read src/utils.ts and explain its main purpose.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

Support

Need 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)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai generate docstrings to generate docstrings for this PR.
  • @coderabbitai generate sequence diagram to generate a sequence diagram of the changes in this PR.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

tp added 2 commits July 8, 2025 11:20
…module

This should be connected from the email endpoint's login method, to complete the import of any legacy passwords
@tp tp force-pushed the one-off-migration branch from a822536 to 4aa30c3 Compare July 8, 2025 09:41
@coderabbitai
Copy link
Contributor

coderabbitai bot commented Jul 8, 2025

✅ Actions performed

Full review triggered.

tp added 2 commits July 8, 2025 13:55
…ble authentication handler" as sessions will now be migrated
@tp tp force-pushed the one-off-migration branch from 88f0777 to 9206dc7 Compare July 8, 2025 11:55
@tp tp marked this pull request as ready for review July 8, 2025 12:04
@coderabbitai
Copy link
Contributor

coderabbitai bot commented Jul 8, 2025

✅ Actions performed

Full review triggered.

@tp
Copy link
Contributor Author

tp commented Jul 8, 2025

@coderabbitai full review

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Jul 8, 2025

✅ Actions performed

Full review triggered.

@tp tp requested a review from exaby73 July 8, 2025 13:56
@tp
Copy link
Contributor Author

tp commented Jul 9, 2025

@coderabbitai full review

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Jul 9, 2025

✅ Actions performed

Full review triggered.

Copy link
Contributor

@coderabbitai coderabbitai bot left a 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 path

Idiomatic 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

📥 Commits

Reviewing files that changed from the base of the PR and between eb299a7 and 9206dc7.

⛔ Files ignored due to path filters (28)
  • modules/new_serverpod_auth/serverpod_auth_backwards_compatibility/serverpod_auth_backwards_compatibility_client/lib/src/protocol/client.dart is excluded by !**/lib/src/protocol/**
  • modules/new_serverpod_auth/serverpod_auth_backwards_compatibility/serverpod_auth_backwards_compatibility_client/lib/src/protocol/protocol.dart is excluded by !**/lib/src/protocol/**
  • modules/new_serverpod_auth/serverpod_auth_backwards_compatibility/serverpod_auth_backwards_compatibility_server/lib/src/generated/endpoints.dart is excluded by !**/generated/**
  • modules/new_serverpod_auth/serverpod_auth_backwards_compatibility/serverpod_auth_backwards_compatibility_server/lib/src/generated/legacy_session.dart is excluded by !**/generated/**
  • modules/new_serverpod_auth/serverpod_auth_backwards_compatibility/serverpod_auth_backwards_compatibility_server/lib/src/generated/protocol.dart is excluded by !**/generated/**
  • modules/new_serverpod_auth/serverpod_auth_backwards_compatibility/serverpod_auth_backwards_compatibility_server/lib/src/generated/protocol.yaml is excluded by !**/generated/**
  • modules/new_serverpod_auth/serverpod_auth_backwards_compatibility/serverpod_auth_backwards_compatibility_server/migrations/20250705091451690/definition.json is excluded by !**/migrations/**
  • modules/new_serverpod_auth/serverpod_auth_backwards_compatibility/serverpod_auth_backwards_compatibility_server/migrations/20250705091451690/definition.sql is excluded by !**/migrations/**
  • modules/new_serverpod_auth/serverpod_auth_backwards_compatibility/serverpod_auth_backwards_compatibility_server/migrations/20250705091451690/definition_project.json is excluded by !**/migrations/**
  • modules/new_serverpod_auth/serverpod_auth_backwards_compatibility/serverpod_auth_backwards_compatibility_server/migrations/20250705091451690/migration.sql is excluded by !**/migrations/**
  • modules/new_serverpod_auth/serverpod_auth_backwards_compatibility/serverpod_auth_backwards_compatibility_server/migrations/20250705102555966/migration.json is excluded by !**/migrations/**
  • modules/new_serverpod_auth/serverpod_auth_backwards_compatibility/serverpod_auth_backwards_compatibility_server/migrations/20250708110241098/definition.json is excluded by !**/migrations/**
  • modules/new_serverpod_auth/serverpod_auth_backwards_compatibility/serverpod_auth_backwards_compatibility_server/migrations/20250708110241098/definition.sql is excluded by !**/migrations/**
  • modules/new_serverpod_auth/serverpod_auth_backwards_compatibility/serverpod_auth_backwards_compatibility_server/migrations/20250708110241098/definition_project.json is excluded by !**/migrations/**
  • modules/new_serverpod_auth/serverpod_auth_backwards_compatibility/serverpod_auth_backwards_compatibility_server/migrations/20250708110241098/migration.json is excluded by !**/migrations/**
  • modules/new_serverpod_auth/serverpod_auth_backwards_compatibility/serverpod_auth_backwards_compatibility_server/migrations/20250708110241098/migration.sql is excluded by !**/migrations/**
  • modules/new_serverpod_auth/serverpod_auth_backwards_compatibility/serverpod_auth_backwards_compatibility_server/migrations/migration_registry.txt is excluded by !**/migrations/**
  • tests/serverpod_new_auth_test/serverpod_new_auth_test_client/lib/src/protocol/client.dart is excluded by !**/lib/src/protocol/**
  • tests/serverpod_new_auth_test/serverpod_new_auth_test_client/lib/src/protocol/protocol.dart is excluded by !**/lib/src/protocol/**
  • tests/serverpod_new_auth_test/serverpod_new_auth_test_server/lib/src/generated/endpoints.dart is excluded by !**/generated/**
  • tests/serverpod_new_auth_test/serverpod_new_auth_test_server/lib/src/generated/protocol.dart is excluded by !**/generated/**
  • tests/serverpod_new_auth_test/serverpod_new_auth_test_server/lib/src/generated/protocol.yaml is excluded by !**/generated/**
  • tests/serverpod_new_auth_test/serverpod_new_auth_test_server/migrations/20250708110506342/definition.json is excluded by !**/migrations/**
  • tests/serverpod_new_auth_test/serverpod_new_auth_test_server/migrations/20250708110506342/definition.sql is excluded by !**/migrations/**
  • tests/serverpod_new_auth_test/serverpod_new_auth_test_server/migrations/20250708110506342/definition_project.json is excluded by !**/migrations/**
  • tests/serverpod_new_auth_test/serverpod_new_auth_test_server/migrations/20250708110506342/migration.json is excluded by !**/migrations/**
  • tests/serverpod_new_auth_test/serverpod_new_auth_test_server/migrations/20250708110506342/migration.sql is excluded by !**/migrations/**
  • tests/serverpod_new_auth_test/serverpod_new_auth_test_server/migrations/migration_registry.txt is 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_client dependency 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_server dependency 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_server properly 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_client dependency 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_client is 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 – LGTM

The added path ensures the new Flutter module participates in CI pub workflows 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 guidelines

templates/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_server is 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_flutter module to the CHANGELOG.md distribution list.


127-127: LGTM! Auto-generated file distribution.

This line correctly adds the new serverpod_auth_backwards_compatibility_flutter module 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.importSessions provides 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_client as 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.dart export to only the AuthMigrations class 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 UserMigrationFunction typedef 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 userMigrationHook with a simple boolean importSessions flag 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.migrateUsers method 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 invalidCredentials when 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 against migratedUsers.values.single is 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_flutter package, 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_client and serverpod_auth_session_flutter for session management
  • serverpod_auth_backwards_compatibility_client for client-side compatibility
  • shared_preferences for 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_server with alias new_email_account follows the established pattern and enables integration with the new email account system.


64-117: Well-implemented on-demand password migration method.

The importLegacyPasswordIfNeeded method 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 convertSession method 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 Scope objects
  • 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 legacyAuthenticationHandler to resolveLegacySession and the return type change to LegacySession? 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 LegacySession object after validation, which is cleaner than the previous approach of constructing an AuthenticationInfo object. 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 migrateUsers method with the explicit userMigration: null parameter, 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 migratedUsers variable, which is cleaner than the previous global configuration approach.


210-224: LGTM: Callback setup follows the new pattern.

The UserMigrationFunction is 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 userMigration parameter, 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 legacyStringGetter is 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 authSuccess is 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:

  1. Legacy password initially works
  2. Normal endpoint fails before migration
  3. Password-importing endpoint succeeds and migrates the password
  4. Normal endpoint then works after migration
  5. 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 _TestLegacyStorage class 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 login method 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 startRegistration method 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 TestEndpoints class correctly adds the new sessionMigration endpoint property, maintaining consistency with the existing test endpoint pattern.


114-120: Correct initialization of session migration endpoint.

The _InternalTestEndpoints class properly initializes the session migration endpoint with the required dispatch and serialization manager parameters.


122-160: Well-implemented session migration test endpoint.

The _SessionMigrationEndpoint class follows the standard pattern for test endpoints with proper parameter handling, session building, method dispatch, and resource cleanup. The convertSession method correctly handles the required sessionKey parameter and returns the appropriate AuthSuccess? 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 createLegacyUser method has been reformatted with better parameter alignment, improving readability without changing functionality.


38-49: Excellent simplification of user migration logic.

The method rename from migrateUserByEmail to migrateUser and the parameter change to legacyUserId better reflects the new migration approach. The simplified call to AuthMigrations.migrateUsers with userMigration: null aligns with the PR's objective of focusing on one-off migrations.


80-86: Improved session user identification.

The renamed sessionUserIdentifer method (from backwardsCompatibleAuthSessionCheck) 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_pubspecs script. 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 to isUserMigrated.

The optional Transaction parameter enables proper transaction handling when checking user migration status within existing database transactions.


32-44: Consistent transaction support in getNewAuthUserId.

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 migrateNextUserBatch to migrateUsers and the new signature with a callback function provide better flexibility and testability. The @visibleForTesting annotation on legacyUserId clearly 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.

Copy link
Collaborator

@exaby73 exaby73 left a 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

@tp tp merged commit 7dcd733 into serverpod:main Jul 10, 2025
73 checks passed
@github-actions github-actions bot locked and limited conversation to collaborators Jul 10, 2025
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Separate "migration" and "legacy support"

2 participants