Oxidaner opened a new issue, #1575: URL: https://github.com/apache/dubbo-admin/issues/1575
Parent: #1491 Phase 1 — resource and persistence foundation. This issue only builds and persists configuration; it does not make a business MCP endpoint callable. ### Scope - `MCPServerResource`: one editable **Draft** plus one currently effective **Published** snapshot. Editing the Draft must never be observable by MCP clients. - `MCPCredentialResource`: API Key stored as a high-entropy secret hash, with expiry and revoke. Credentials are stored separately from the server so that publishing an old Draft cannot resurrect a revoked credential. - Indexes and MCP-specific CAS on top of the existing `ResourceStore` (`expectedResourceVersion` semantics). - Repository layer with a memory store and a Gorm store. - Version conflict handling and the base for cascading delete. `MCPTool` is **not** stored as an independent resource — tools live inside the `MCPServerResource` aggregate and must never produce an independent transaction. ### Acceptance criteria - Draft/Published isolation: editing a Draft does not change what a client reads from the Published snapshot. - CAS: a publish carrying a stale `expectedResourceVersion` is rejected; concurrent publishes with the same stale version allow exactly one winner. - Credential lifecycle: secret is only stored hashed, expires, and can be revoked; a revoked credential stays revoked after any subsequent publish. - Cascading delete removes the dependent data of a deleted server without leaving orphans. - Multi-replica: with a shared database `ResourceStore`, revoking a credential on replica A is immediately effective on replica B. Multi-replica is explicitly **not** supported on the memory store. - Non-MCP resource regression tests keep passing (no behavior change to existing resources). ### PR PR-1 — protobuf/resource schema, memory/Gorm store, version conflict and cascading delete foundation. Dependency: none. Detailed design: [proposal §15 (line 1243)](https://github.com/Oxidaner/dubbo-admin/blob/213bd38dbcfbe0c5bac64c7c8b949651f1633ca9/docs/proposal/mcp-server-proposal.md?plain=1#L1243) — design PR #1541. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
