One operator context for cross-cutting persistence concerns: audit fields and fail-closed multi-tenancy in the MyBatis starter, set per request by the web starter. ArchGuard fix hints are now available in English.
Added
OperatorandOperatorContextinddk-core(com.ddk.core.context): who is acting and for which tenant, withrunAs/callAsthat restore the previous value andwrapto carry the operator to another thread- The web starter sets
OperatorContextfor each request when the application declares anOperatorResolverbean - The MyBatis starter fills
createByandupdateByfrom the operator (StringorLongfields), next tocreateTimeandupdateTime - Multi-tenancy in the MyBatis starter (
ddk.mybatis.tenant.enabled=true): every statement gets the tenant condition fromOperatorContext, and a statement without a tenant fails instead of reading all tenants;ignore-tablesand MyBatis-Plus's@InterceptorIgnoreare the exemptions - ArchGuard fix hints are available in English and Chinese. The language follows the JVM's default locale and can be set with the system property
ddk.archguard.language(enorzh)
Changed
- The reasons attached to the rules in
CommonArchRules(thebecauseclauses shown in reports) are now in English