Skip to content

publisher

@fungi.computer/app-release


@fungi.computer/app-release / 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: Literal<["artifacts", "github"]>; repository: filter<filter<typeof String$>>>>; branch: Literal<["main"]>; }>

Canonical source repository resolved by the product publisher.


const teamAppPublisherRegistrationSchema: Struct<{ appId: refine<string & object, Schema<string, string, never>>>>; teamId: filter<filter<typeof String$>>>>; source: Struct<{ provider: Literal<["artifacts", "github"]>; repository: filter<filter<typeof String$>>>>; branch: Literal<["main"]>; }>; templateSeed: optionalWith<Struct<{ appId: refine<string & object, Schema<string, string, never>>>>; revision: refine<string & object, Schema<string, string, never>>>>; }>, { exact: true; }>; }>

Team-owned publication authority for one separately registered App.