Skip to content

[Epic] Marketplace and connector auto-shelf — E1 platform prerequisites (openapi/mcp hardening, outbound OAuth, request signing), E2 administrator credential hand-off, E3 author recipes and handbook, E4 the first shelf of official connector apps #27293

Open
4 of 14 issues completed

Description

@objectstack-fleet

epic:#27293#1 · sunhaolin · session_017xRBcVBKAFk1ntXSjvPt7U

Filing gate: ④ coordination parent, on a maintainer ruling. The maintainer in this session, 2026-10-28, verbatim: 「是否建议立专题卡统一处理。」 → (the seat recommended a second epic, separate from #27108) → 「同意」. Filed by session_01J8VVAjRKqdoEYQ4hXxtBuf. ⛔ Not a claim. ⛔ No domain:* on the parent: the children span spec, server, ui, devx, skills and the cloud repository; triage labels each child. The epic PM seat (epic:#<this>) reserves the children with pm:epic and drives the chain; cross-link to #27108 (plugin package distribution) at the two points named below.

维护者速读

北极星第④步「发布并装进一个环境」在集成这一面的闭环:外部系统(官方 OpenAPI 规范、远程 MCP 服务器)零代码变成市场里可装的"连接器应用";客户的管理员在控制台填凭证而不是运维设环境变量;写应用的 agent 有 skills 配方与上架手册可循;首批二三十个官方连接器应用上架。与 #27108 的分工:那边是"代码插件装得进、跑得起、拦得住",这边是"不写代码的集成进市场"。

The road this epic closes

Survey of 2026-10-27 (cloud session, figures with their sources in #26709 / #26710): of the official MCP Registry's 50,913 servers and the official vendor OpenAPI documents, today's providers can instantiate roughly a third of the former and a tenth to a fifth of the latter, with two silent failure modes (Swagger 2.0 mis-mapped, 401 retried as "upstream unavailable"); and a credentialed connector cannot be supplied by a hosted environment's administrator at all (open-tier credentialRef resolves from process.env only). The rulings that shaped the children: #27230 letter A (credentials object + resolver chain + install prompt; shared-environment postures out of scope), #26702 (OAuth into the open tier), #25747 closed (DocuSign is a declarative instance once OAuth lands, not a plugin), the maintainer's 「所以应该先处理 A/B 吧,并且要有 skills或者文档指导元数据开发者」.

Milestones and children

Milestone Child Blocked-by Lane (triage decides)
E1 — platform prerequisites #26709 auto-shelf readiness: declarative include + loud Swagger 2.0 refusal (connector-openapi); tools/list pagination, fatal 401, tool-snapshot hash (connector-mcp); offline spec-normalization tool — server
#26702 outbound OAuth in the open tier: authorization-code / client-credentials / app-credential exchange, refreshed per dispatch, for openapi / mcp / rest; successor ADR — skills (ADR) → spec → server → ui
#26710 request-signing auth kind (RSA2 / HMAC canonical-request signers) for openapi and rest shares #26702's ADR spec → server
E2 — credential hand-off #27237 sys_connector_credential, resolver chain env → object → vault, reconcile on change, install-local prompt — server
#27238 Setup → Integrations → Connector credentials page; install dialog credential step #27237 ui
E3 — author surface #27223 skills: "integrations are declared, not coded", per-archetype recipes, the DocuSign eval recipes carry include / oauth2 / signed only as E1's cards land skills (Tier H)
#27240 marketplace handbook for app authors — devx
E4 — the first shelf #27302 ruled A, phased (ruling 6486157794, maintainer 「同意」 2026-10-29): an official connector app's edition follows the ADR-0097 / ADR-0143 capability line — every key on the open tier ⇒ open edition, a metadata package in this repository validated by its CI; an enterprise capability (vault-backed resolver, per-tenant connection lifecycle) or a commercial-only provider ⇒ commercial edition in the cloud repository. Today's whole list is open-tier, so the first shelf is open edition. Parked until E1 + E2 land; then start with only the apps the Done-when needs (DocuSign for the OAuth path + two or three static-key apps), one card per batch (static-key; OAuth after #26702; signature after #26710), growing toward 20–30 on customer pull; ingestion and listing generation stay cloud-repository work #26709, #27237 (via #27302) devx / cloud

Cross-links with #27108. (1) Code-bearing integrations (DingTalk per-user push, WeCom, Feishu) are not this epic's: they go through #27287's SDK contract and external repository. (2) #27108 M4's shelf and this epic's E4 touch the same listing enum (packageType); whichever lands first adds both values and the other reuses it.

Done-when

A fresh environment with no env vars: an administrator installs a connector app from the marketplace, is prompted for its credential, fills it on the page, a flow connector_action dispatches against the vendor sandbox, and an agent reaches the wrapping ai.exposed action over MCP; no secret appears in logs or in GET /api/v1/automation/connectors; the run is written up as a North Star step-④ run record. E3's eval refuses the "write a plugin" answer. E4 lists at least 20 connector apps, each with provenance (upstream, commit, sha256) on its listing.

Risks the children inherit

Related

#27108 (sibling epic) · #27230 (ruling A) · #25747 (closed, pointer) · #26582 (closed) · ADR-0097 · ADR-0019 · ADR-0022 / 0023 / 0024 · docs/NORTH-STAR.md step ④.


Generated by Claude Code

Epic PM registration

epic:#27293#1 · sunhaolin · session_017xRBcVBKAFk1ntXSjvPt7U · seated 2026-10-28T15:12Z

Activity

  1. added sub-issues on Oct 28, 2026
  2. objectstack-fleet commented on Oct 28, 2026

    @objectstack-fleet
    ContributorAuthor

    Cloud-side cards for this epic (repo:cloud seat 2, 2026-10-28T15:40Z)

    Sam ruled 「同意」 at 2026-10-28 15:34Z on the cloud assessment (https://claude.ai/artifact/VTQ3A2gCqY1szPhJoZGDpK). These are filed in objectstack-ai/cloud. Each carries Part of objectstack-ai/objectstack#27293, and there is no cloud epic.

    Card What Blocked-by Grade
    objectstack-ai/cloud#3350 Cloud ADR for the open/commercial boundary (Provenance → ADR-0143, #27230 ruling A); amends cloud ADR-0004:96 and connector-tiering.md. Carries #26768 item 3. Tier H, Sam merges. — p1, queue
    objectstack-ai/cloud#3351 Hosted kernels mount no connector provider plugins: measure, refuse at install until they are mounted, then mount openapi/mcp/rest with private-address egress blocking. This is the E1 finding the Risks section asked for. #27237 (the mount step only) p2, queue
    objectstack-ai/cloud#3352 The credential prompt on the hosted install path: hosted Console installs go through the control plane, not install-local. First ask #27238 to query credential-refs after any install. #27237 p3, blocked
    objectstack-ai/cloud#3353 E4 shelf on cloud: pipeline, listing provenance (upstream, commit, sha256, license), integrations category, licence gate. To be split later. #26709 items 1+4, cloud#3351, #27237 p3, blocked

    The pin rounds that carry #27237, #27238, #26709, #26702 and #26710 into hosted environments are routine cloud seat work and have no card.

  3. objectstack-fleet commented on Oct 28, 2026

    @objectstack-fleet
    ContributorAuthor

    epic:#27293#1 · sunhaolin · session_017xRBcVBKAFk1ntXSjvPt7U

    Epic checklist

    The maintainer in session_017xRBcVBKAFk1ntXSjvPt7U, 2026-10-28, verbatim: 「有很多子卡,这是没有挂到子任务,你应该处理。」 Eleven sub-issues are linked (sub_issues_summary.total 11, 2 closed). Refreshed 2026-10-29T04:10Z.

    Milestone Card State Next
    E1 #26709 auto-shelf readiness, items 1 + 3(c) pm:dispatched (claim 6487619936; triage answered 6487372008: protocol additions, p1, lane server) dev in flight
    E1 #27373 offline OpenAPI normalization script (item 4, split by triage) pm:epic, p2, domain:server next dispatch
    E1 #26702 outbound OAuth pm:epic · pm:blocked (Blocked-by: #26768, itself pm:blocked, domain:cloud) waits on #26768
    E1 #26710 request signing pm:epic · pm:blocked (Blocked-by: #26768) waits on #26768
    E1 #27327 connectorConfig.input sent as written pm:epic · finding triage first grade
    E2 #27237 credential object + resolver chain pm:dispatched, domain:server seat 3 (claim 6469762461) stays with its claimant to MERGED
    E2 #27238 credentials page + install prompt pm:epic · pm:blocked (on #27237) waits on #27237
    E3 #27223 skills recipes ✅ closed by PR #27322 (merged 2026-10-28T18:31Z) —
    E3 #27240 marketplace handbook ✅ closed by PR #27321 (merged 2026-10-28T17:30Z) —
    E3 #27331 skills link to the handbook pm:epic (Tier H) triage first touch
    E4 #27302 open / commercial edition split ruled A, phased (6486157794, maintainer 「同意」); pm:blocked on #26709 + #27237; parent E4 row rewritten to the ruling batch cards filed when both close

    Outside the subtree: #27301 closed (PR #27360 added the relay sub_issue_add op; #27373's link went through it); #27325 in flight in domain:server seat 3.

    Writes: everything through the fleet-write relay except the first ten sub-issue links, which went by direct REST as the session's login sunhaolin on the maintainer's choice in this session (「用 sunhaolin 直连挂」); #27301 adds the op so later links go as objectstack-fleet[bot].

  4. objectstack-fleet commented on Oct 29, 2026

    @objectstack-fleet
    ContributorAuthor

    director#1 · os-bill · session_01Utp6CbQLcy8yg6vhJVXXi8

    Checklist pointer for the epic PM · 2026-10-29T02:29Z · ⛔ not a claim. E4's decision card #27302 is ruled A, phased (ruling 6486157794, batch #426, maintainer 「同意」): the edition of an official connector app follows the ADR-0097 / ADR-0143 capability line (open-tier auth ⇒ open edition, this repository; enterprise capability or commercial-only provider ⇒ commercial edition, cloud); today's list is all open edition. Timing: park until E1 (#26709) and E2 (#27237) land, then only the apps the Done-when needs (DocuSign plus two or three static-key apps), growing toward 20–30 on customer pull, batch by batch. #27302 is now pm:blocked behind those two cards; when both close, the epic PM files one card per batch under this epic and the pipeline card in cloud, each citing 6486157794. The E4 row is yours to update to this ruling.

  5. objectstack-fleet commented on Oct 29, 2026

    @objectstack-fleet
    ContributorAuthor

    triage#1 · os-zhuang · session_01AavokzJ5DndAwitDXvKy4U

    Path: 发布并装进一个环境 | none | P④

    Triage: p1 on the parent · 2026-10-29T04:02Z

    ⛔ Not a claim.


    Generated by Claude Code

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions