New A2 check: ContextWithTenantID/GetTenantIDContext must exist, old SetTenantIDInContext/GetTenantIDFromContext are NON-COMPLIANT. Fixed duplicate A9, renumbered to A1-A11.
X-Lerian-Ref: 0x1
Skills now explicitly check for old function names (WithMongoManager, GetMongoFromContext, GetKeyFromContext, etc.) and mark as NON-COMPLIANT. Both dev-multi-tenant and production-readiness-audit updated.
X-Lerian-Ref: 0x1
Remove Removed ENV vars section. Add MULTI_TENANT_TIMEOUT to examples and Config struct. Fix 12→13 canonical count in dev-multi-tenant. Replace cfg.MultiTenantEnvironment with cfg.EnvName.
X-Lerian-Ref: 0x1
Replace all remaining old function names. Final API: ContextWithPG, GetPGContext, ContextWithMB, GetMBContext, GetKeyContext. All variadic with optional module.
X-Lerian-Ref: 0x1
Replace invalid if-err-nil checks after tmcore.GetPG (which returns *gorm.DB, not (db, error)) with proper nil-guard pattern. Update import alias from core to tmcore in dev-implementation and dev-multi-tenant to match the canonical standard in multi-tenant.md. Add getDB repository helper pattern in dev-multi-tenant representative diff. Add nil-check guard in using-lib-commons consumer example.
X-Lerian-Ref: 0x1
Update TOC, section heading, canonical model, responsibility split
table, and checklist to explicitly state PostgreSQL only. MongoDB
excluded because Go driver cannot resize pools after creation.
X-Lerian-Ref: 0x1
- SettingsWatcher requirement now conditional on PostgreSQL (MongoDB exempt)
- Fix lib-commons version reference v3→v4 in SKILL.md
- Add MULTI_TENANT_CACHE_TTL_SEC to verification grep and .env.example gate
X-Lerian-Ref: 0x1
MongoDB driver does not support pool resize after mongo.Connect(),
so SettingsWatcher only applies to PostgreSQL. Add exclusion notes
in standards and skill definition.
X-Lerian-Ref: 0x1
- Add SettingsWatcher (MANDATORY) section to multi-tenant.md
- Mark MULTI_TENANT_CACHE_TTL_SEC and SETTINGS_CHECK_INTERVAL_SEC as required
- Add audit check A10 for SettingsWatcher compliance in dev-multi-tenant skill
- Update coverage table and agent section counts
- Include anti-rationalization table and bootstrap code pattern
X-Lerian-Ref: 0x1
This commit enhances the systemplane migration guide with stricter
standards, compliance checks, and mandatory policies to enforce
consistency and robustness across products.
The key changes include:
- Add a new file structure compliance audit (S9) to prevent monolithic
`systemplane.go` files and enforce a modular structure.
- Mandate test validation of configuration keys against a canonical
catalog to ensure consistent naming and tiering across services.
- Introduce a mandatory authorizer enforcement policy to prohibit no-op
authorizers and require real permission checking.
- Add appendices for canonical key naming, environment variable
conventions, and standard unit suffixes (`_ms`, `_bytes`) to serve as a
central reference.
- Add a decision tree for `KindSetting` vs. `KindConfig` to guide
developers on correct key classification.
Replace all plugin-only M2M semantics with targetServices-based logic
across multi-tenant.md and dev-multi-tenant SKILL.md.
- multi-tenant.md: update title, "When This Applies" table, narrative,
and env var descriptions
- SKILL.md: replace Gate 0 auto-detection with explicit user question
(has_m2m + target_services), update Gate 5.5 skip condition and label,
generalize description and all gate references
Ref: LerianStudio/tenant-manager#116
X-Lerian-Ref: 0x1
Replace custom RedisCredentialCache interface with lib-commons redis.Connection and valkey.GetKeyFromContext for Redis operations, matching the existing codebase patterns for Redis access and tenant key prefixing.
X-Lerian-Ref: 0x1
Remove M2M_CREDENTIAL_L1_CACHE_TTL_SEC and M2M_CREDENTIAL_CACHE_MODE env vars. L1 TTL is a fixed 30s constant, cache mode is auto-detected from Redis availability.
X-Lerian-Ref: 0x1