seed child contexts before their parents, each seeding on its own scope, and deny cyclic child declarations
rename the wiki to Scrinium
correct and dry the whole page set
document the general purpose resource locks
document the db context lock
Add the "Db context lock" page covering the server side lease that
serializes seeding and migrations of a db context across every
application instance: scope, claim/lease/renewal, owner death, the per
operation lease duration and where it is passed, and the read-only
denial. Link it from the sidebar, Home and the related pages.
Align the stale claims elsewhere: a migration start is denied by the
lock held by another owner (not by a queued or running operation), the
in-process guarantee is exclusive access while the cross instance one is
the lock, a dry run holds the lock while skipping exclusive access, the
seeding wait is bounded and throws on expiry, the dashboard pairs an
open operation with a live lease before reporting a migration running,
and Cancelled joins the reachable operation statuses.
state the one context per flow contract and per context seeding
document auto creation of new referred models on save
align operations pages to migration-driven index builds and real task enqueueing
add read-only access page and align docs to MODM-100
Genericize examples: no explicit references to consumer services
Present all examples with neutral domain types (the running Cat/Cats sample, plain
User/Order/Team) instead of naming or attributing the Etherna consumer services.
Document the rule in the wiki AGENTS.md. Library/driver references (Etherna.MongoDB.*,
Etherna.MongODM.*, the org repo) are unchanged.
Add Advanced & reference section; normalize internal links
- Execution contexts: ambient per-flow state, automatic wiring, opening one on background threads
- Exclusive access: RunWithExclusiveAccessAsync, lockout semantics, when to use it
- Best practices and pitfalls: scopes/captive dependencies, no-cache scans, atomic writes,
compare-by-Id, cross-context references, background-thread contexts — with real service examples
- Exceptions reference: the Mongodm* exceptions and what triggers each
- Complete the sidebar with all six sections
- Convert custom-text wiki links to unambiguous Markdown links and document the convention
Add Operations & maintenance section
- Migrations: DocumentMigration constructors, DocumentMigrationList, migration process
(drop/migrate/build under exclusive access), running via dashboard or TryStartMigrationAsync,
MigrationResult and the _db_ops log
- Database seeding: SeedAsync override, SeedDbContexts, once-only semantics
- Background tasks: ITaskRunner (dependency updates, migrations), Hangfire default, custom runner
- Admin dashboard: install/register, DashboardOptions, IDashboardAuthFilter access control
- Indexes: RepositoryOptions.IndexBuilders, common shapes (unique/sparse/TTL/geo), build/inspect