Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
35 changes: 29 additions & 6 deletions packages/app/src/cli/api/graphql/extension_specifications.ts
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,11 @@ export interface ExtensionSpecificationsQueryVariables {
apiKey: string
}

export interface RemoteSpecification {
/**
* Raw shape returned by the GraphQL extensionSpecifications query (Partners API).
* Has nested `options` and `features` matching the query structure.
*/
export interface RawRemoteSpecification {
name: string
externalName: string
identifier: string
Expand All @@ -40,8 +44,6 @@ export interface RemoteSpecification {
options: {
managementExperience: 'cli' | 'custom' | 'dashboard'
registrationLimit: number
uidIsClientProvided: boolean
uidStrategy?: 'single' | 'dynamic' | 'uuid'
}
features?: {
argo?: {
Expand All @@ -53,11 +55,32 @@ export interface RemoteSpecification {
} | null
}

export interface FlattenedRemoteSpecification extends RemoteSpecification {
surface?: string
/**
* Flattened remote specification used throughout the CLI.
* Options are flattened to top-level fields to align with ExtensionSpecification.
*/
export interface RemoteSpecification {
name: string
externalName: string
identifier: string
gated: boolean
externalIdentifier: string
experience: 'extension' | 'configuration' | 'deprecated'
managementExperience: 'cli' | 'custom' | 'dashboard'
registrationLimit: number
uidIsClientProvided: boolean
uidStrategy?: 'single' | 'dynamic' | 'uuid'
surface?: string
features?: {
argo?: {
surface: string
}
}
validationSchema?: {
jsonSchema: string
} | null
}

export interface ExtensionSpecificationsQuerySchema {
extensionSpecifications: RemoteSpecification[]
extensionSpecifications: RawRemoteSpecification[]
}
Loading
Loading