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]

Reply via email to