Skip to content

publisher

TeamAppTemplateSeed = Readonly<{ appId: AppId; revision: SourceRevision; }>

Exact first-party platform seed from which a Team-owned App was forked.


AppSourceRepository = Schema.Schema.Type<typeof appSourceRepositorySchema>>

Parsed immutable source location used to build one App.


TeamAppPublisherRegistration = Schema.Schema.Type<typeof teamAppPublisherRegistrationSchema>>

Parsed Team ownership record for one App publisher.


TeamAppPublisherRegistrationRead = Readonly<{ kind: "found"; registration: TeamAppPublisherRegistration; }> | Readonly<{ kind: "absent"; }>

Result of reading the durable publisher registered for an App.


TeamAppPublisherRegistrationCreate = Readonly<{ kind: "created" | "existing"; registration: TeamAppPublisherRegistration; }> | Readonly<{ kind: "conflict"; }>

Idempotent result of registering one App publisher.


TeamAppPublicationAuthorization = Readonly<{ kind: "authorized"; registration: TeamAppPublisherRegistration; }> | Readonly<{ kind: "absent" | "denied"; }>

Team-scoped decision for publishing a registered App.


TeamAppPublisherRegistry = Readonly<{ read: Promise<TeamAppPublisherRegistrationRead>>; register: Promise<TeamAppPublisherRegistrationCreate>>; authorize: Promise<TeamAppPublicationAuthorization>>; }>

Durable App publisher facts; Team membership remains owned by Hub.

const appSourceRepositorySchema: Struct<{ provider: Literals<readonly ["artifacts", "github"]>; repository: String; branch: Literal<"main">>; }>

Canonical source repository resolved by the product publisher.


const teamAppPublisherRegistrationSchema: Struct<{ appId: refine<AppId, String>>; teamId: String; source: Struct<{ provider: Literals<readonly ["artifacts", "github"]>; repository: String; branch: Literal<"main">>; }>; templateSeed: optionalKey<Struct<{ appId: refine<AppId, String>>; revision: refine<SourceRevision, String>>; }>>; }>

Team-owned publication authority for one separately registered App.