Files
cozystack/packages/core/platform
Andrei Kvapil 23b1f5d708 [mongodb] Unify users and databases configuration (#1923)
## What this PR does

Aligns MongoDB configuration with postgres and mysql patterns by
introducing a separate `databases` section.

**Before:**
```yaml
users:
  myuser:
    db: mydb
    roles:
      - name: readWrite
        db: mydb
      - name: dbAdmin
        db: mydb
```

**After:**
```yaml
users:
  myuser: {}

databases:
  mydb:
    roles:
      admin:
        - myuser
      readonly:
        - reader
```

Changes:
- Add separate `databases` section with `roles.admin` and
`roles.readonly`
- Simplify `users` to only contain optional password field
- All users authenticate via `admin` database (MongoDB production best
practice)
- `admin` role maps to `readWrite` + `dbAdmin` permissions
- `readonly` role maps to `read` permission

## Migration

Includes migration script (`migrations/24`) that automatically converts
existing MongoDB HelmReleases:
- Detects old format users (with `db` and `roles` fields)
- Converts `readWrite`/`dbAdmin` roles → `databases.{db}.roles.admin`
- Converts `read` role → `databases.{db}.roles.readonly`
- Preserves user passwords in new `users` format
- Skips HelmReleases that don't have old format

### Release note

```release-note
[mongodb] Unified users and databases configuration to match postgres and mysql patterns. Users now defined separately from databases, with role assignments in the databases section. Includes automatic migration for existing deployments.
```
2026-02-02 22:06:03 +01:00
..