trigger from receive settings
This commit is contained in:
@@ -62,6 +62,10 @@
|
||||
v-if="isReceiveSettingsMissing"
|
||||
:notification="receiveSettingsMissingNotification"
|
||||
/>
|
||||
<CommonModelNotification
|
||||
v-if="settingsExpiredNotification"
|
||||
:notification="settingsExpiredNotification"
|
||||
/>
|
||||
<CommonModelNotification
|
||||
v-if="expiredNotification"
|
||||
:notification="expiredNotification"
|
||||
@@ -209,6 +213,27 @@ const receiveLatestVersion = async () => {
|
||||
await store.receiveModel(props.modelCard.modelCardId, 'UpdateNotification')
|
||||
}
|
||||
|
||||
const settingsExpiredNotification = computed(() => {
|
||||
if (!props.modelCard.expired) return
|
||||
|
||||
const notification = {} as ModelCardNotification
|
||||
notification.dismissible = false
|
||||
notification.level = 'info'
|
||||
notification.text = 'Settings changed since last load'
|
||||
|
||||
const ctaType = props.modelCard.progress ? 'Restart' : 'Update'
|
||||
notification.cta = {
|
||||
name: ctaType,
|
||||
action: async () => {
|
||||
if (props.modelCard.progress) {
|
||||
await store.receiveModelCancel(props.modelCard.modelCardId)
|
||||
}
|
||||
await receiveCurrentVersion()
|
||||
}
|
||||
}
|
||||
return notification
|
||||
})
|
||||
|
||||
const expiredNotification = computed(() => {
|
||||
if (!props.modelCard.latestVersionId || props.modelCard.hasDismissedUpdateWarning)
|
||||
return
|
||||
|
||||
@@ -17,7 +17,7 @@ export interface IReceiveBinding extends IBinding<IReceiveBindingEvents> {
|
||||
export interface IReceiveBindingEvents
|
||||
extends IBindingSharedEvents,
|
||||
IModelCardSharedEvents {
|
||||
// See note oon timeout in bridge v2; we might not need this
|
||||
setModelsExpired: (modelCardIds: string[]) => void
|
||||
setModelReceiveResult: (args: {
|
||||
modelCardId: string
|
||||
bakedObjectIds: string[]
|
||||
|
||||
+417
-133
@@ -874,7 +874,7 @@ export type BlobMetadata = {
|
||||
streamId: Scalars['String']['output'];
|
||||
uploadError?: Maybe<Scalars['String']['output']>;
|
||||
uploadStatus: Scalars['Int']['output'];
|
||||
userId: Scalars['String']['output'];
|
||||
userId?: Maybe<Scalars['String']['output']>;
|
||||
};
|
||||
|
||||
export type BlobMetadataCollection = {
|
||||
@@ -1269,6 +1269,14 @@ export type CreateEmbedTokenReturn = {
|
||||
tokenMetadata: EmbedToken;
|
||||
};
|
||||
|
||||
export type CreateFromTemplateInput = {
|
||||
modelIds: Array<Scalars['String']['input']>;
|
||||
/** Override the template's name for this insight */
|
||||
name?: InputMaybe<Scalars['String']['input']>;
|
||||
projectId: Scalars['String']['input'];
|
||||
templateId: Scalars['String']['input'];
|
||||
};
|
||||
|
||||
export type CreateIssueInput = {
|
||||
assigneeId?: InputMaybe<Scalars['ID']['input']>;
|
||||
attachmentBlobIds?: InputMaybe<Array<Scalars['String']['input']>>;
|
||||
@@ -1530,6 +1538,17 @@ export type DashboardUpdateInput = {
|
||||
state?: InputMaybe<Scalars['String']['input']>;
|
||||
};
|
||||
|
||||
export type DataSourceColumn = {
|
||||
__typename?: 'DataSourceColumn';
|
||||
name: Scalars['String']['output'];
|
||||
type: Scalars['String']['output'];
|
||||
};
|
||||
|
||||
export type DataSourceRefInput = {
|
||||
alias: Scalars['String']['input'];
|
||||
dataSourceId: Scalars['String']['input'];
|
||||
};
|
||||
|
||||
export type DateIntervalFilter = {
|
||||
after?: InputMaybe<Scalars['DateTime']['input']>;
|
||||
before?: InputMaybe<Scalars['DateTime']['input']>;
|
||||
@@ -1625,6 +1644,26 @@ export type EmbedTokenCreateInput = {
|
||||
resourceIdString: Scalars['String']['input'];
|
||||
};
|
||||
|
||||
export type ExecuteQueryInput = {
|
||||
dataSources?: InputMaybe<Array<DataSourceRefInput>>;
|
||||
modelIds: Array<Scalars['String']['input']>;
|
||||
projectId: Scalars['String']['input'];
|
||||
query: Scalars['JSONObject']['input'];
|
||||
};
|
||||
|
||||
export type ExecuteQueryResult = {
|
||||
__typename?: 'ExecuteQueryResult';
|
||||
aggregate: ModelExecutionResult;
|
||||
perModel: Array<ModelExecutionResult>;
|
||||
};
|
||||
|
||||
export type ExecuteVersionQueryInput = {
|
||||
modelId: Scalars['String']['input'];
|
||||
projectId: Scalars['String']['input'];
|
||||
query: Scalars['JSONObject']['input'];
|
||||
versionId: Scalars['String']['input'];
|
||||
};
|
||||
|
||||
export type ExtendedViewerResources = {
|
||||
__typename?: 'ExtendedViewerResources';
|
||||
/** The groups of viewer resources themselves */
|
||||
@@ -1646,6 +1685,19 @@ export type ExtendedViewerResourcesRequest = {
|
||||
savedViewId?: Maybe<Scalars['ID']['output']>;
|
||||
};
|
||||
|
||||
export type ExternalDataSource = {
|
||||
__typename?: 'ExternalDataSource';
|
||||
columns: Array<DataSourceColumn>;
|
||||
createdAt: Scalars['DateTime']['output'];
|
||||
filename: Scalars['String']['output'];
|
||||
id: Scalars['String']['output'];
|
||||
name: Scalars['String']['output'];
|
||||
projectId?: Maybe<Scalars['String']['output']>;
|
||||
rowCount: Scalars['Int']['output'];
|
||||
updatedAt: Scalars['DateTime']['output'];
|
||||
workspaceId: Scalars['String']['output'];
|
||||
};
|
||||
|
||||
export type FileImportResultInput = {
|
||||
/** Duration of the file download before parsing started in seconds */
|
||||
downloadDurationSeconds: Scalars['Float']['input'];
|
||||
@@ -1812,6 +1864,277 @@ export type IngestionHistoryInput = {
|
||||
limit?: InputMaybe<Scalars['Int']['input']>;
|
||||
};
|
||||
|
||||
export type Insight = {
|
||||
__typename?: 'Insight';
|
||||
/**
|
||||
* Aggregate results across all tracked models (newest first).
|
||||
* Use limit=1 for KPI badge.
|
||||
*/
|
||||
aggregateResults: Array<InsightResult>;
|
||||
createdAt: Scalars['DateTime']['output'];
|
||||
createdBy: Scalars['String']['output'];
|
||||
customized: Scalars['Boolean']['output'];
|
||||
dataSources: Array<InsightDataSourceLink>;
|
||||
/** Version history (previous snapshots) */
|
||||
history: Array<InsightVersion>;
|
||||
id: Scalars['String']['output'];
|
||||
/** Latest result per model (excludes aggregate) */
|
||||
latestResults: Array<InsightResult>;
|
||||
metadata: Scalars['JSONObject']['output'];
|
||||
modelIds: Array<Scalars['String']['output']>;
|
||||
/** Historical results for a specific model (newest first) */
|
||||
modelResults: Array<InsightResult>;
|
||||
name: Scalars['String']['output'];
|
||||
projectId: Scalars['String']['output'];
|
||||
query: Scalars['JSONObject']['output'];
|
||||
/** The template this insight was created from (null if ad-hoc or template deleted) */
|
||||
template?: Maybe<InsightTemplate>;
|
||||
/** Which template version was snapshotted at creation/last sync */
|
||||
templateVersion?: Maybe<Scalars['Int']['output']>;
|
||||
trigger: Scalars['String']['output'];
|
||||
type: Scalars['String']['output'];
|
||||
updatedAt: Scalars['DateTime']['output'];
|
||||
updatedBy?: Maybe<Scalars['String']['output']>;
|
||||
version: Scalars['Int']['output'];
|
||||
/** Stored results for a specific version */
|
||||
versionResults: Array<InsightResult>;
|
||||
};
|
||||
|
||||
|
||||
export type InsightAggregateResultsArgs = {
|
||||
limit?: InputMaybe<Scalars['Int']['input']>;
|
||||
};
|
||||
|
||||
|
||||
export type InsightModelResultsArgs = {
|
||||
limit?: InputMaybe<Scalars['Int']['input']>;
|
||||
modelId: Scalars['String']['input'];
|
||||
};
|
||||
|
||||
|
||||
export type InsightVersionResultsArgs = {
|
||||
modelId: Scalars['String']['input'];
|
||||
versionId: Scalars['String']['input'];
|
||||
};
|
||||
|
||||
export type InsightCreateInput = {
|
||||
metadata?: InputMaybe<Scalars['JSONObject']['input']>;
|
||||
modelIds?: InputMaybe<Array<Scalars['String']['input']>>;
|
||||
name: Scalars['String']['input'];
|
||||
projectId: Scalars['String']['input'];
|
||||
query: Scalars['JSONObject']['input'];
|
||||
trigger?: InputMaybe<Scalars['String']['input']>;
|
||||
type?: InputMaybe<Scalars['String']['input']>;
|
||||
};
|
||||
|
||||
export type InsightDataSourceLink = {
|
||||
__typename?: 'InsightDataSourceLink';
|
||||
alias: Scalars['String']['output'];
|
||||
dataSource?: Maybe<ExternalDataSource>;
|
||||
dataSourceId: Scalars['String']['output'];
|
||||
insightId: Scalars['String']['output'];
|
||||
};
|
||||
|
||||
export type InsightMutations = {
|
||||
__typename?: 'InsightMutations';
|
||||
addModels: Insight;
|
||||
create: Insight;
|
||||
/** Create an insight by snapshotting a workspace template */
|
||||
createFromTemplate: Insight;
|
||||
delete: Scalars['Boolean']['output'];
|
||||
/** Execute a query ad-hoc against selected models (preview, no persistence) */
|
||||
executeQuery: ExecuteQueryResult;
|
||||
/** Execute a query against a single specific version of a model */
|
||||
executeVersionQuery: VersionQueryResult;
|
||||
linkDataSource: Scalars['Boolean']['output'];
|
||||
removeModel: Insight;
|
||||
/** Reset a customized insight back to its template's latest version */
|
||||
resetToTemplate: Insight;
|
||||
/** Rollback an insight to a previous version */
|
||||
rollbackInsight: Insight;
|
||||
update: Insight;
|
||||
};
|
||||
|
||||
|
||||
export type InsightMutationsAddModelsArgs = {
|
||||
insightId: Scalars['String']['input'];
|
||||
modelIds: Array<Scalars['String']['input']>;
|
||||
projectId: Scalars['String']['input'];
|
||||
};
|
||||
|
||||
|
||||
export type InsightMutationsCreateArgs = {
|
||||
input: InsightCreateInput;
|
||||
};
|
||||
|
||||
|
||||
export type InsightMutationsCreateFromTemplateArgs = {
|
||||
input: CreateFromTemplateInput;
|
||||
};
|
||||
|
||||
|
||||
export type InsightMutationsDeleteArgs = {
|
||||
id: Scalars['String']['input'];
|
||||
projectId: Scalars['String']['input'];
|
||||
};
|
||||
|
||||
|
||||
export type InsightMutationsExecuteQueryArgs = {
|
||||
input: ExecuteQueryInput;
|
||||
};
|
||||
|
||||
|
||||
export type InsightMutationsExecuteVersionQueryArgs = {
|
||||
input: ExecuteVersionQueryInput;
|
||||
};
|
||||
|
||||
|
||||
export type InsightMutationsLinkDataSourceArgs = {
|
||||
alias: Scalars['String']['input'];
|
||||
dataSourceId: Scalars['String']['input'];
|
||||
insightId: Scalars['String']['input'];
|
||||
projectId: Scalars['String']['input'];
|
||||
};
|
||||
|
||||
|
||||
export type InsightMutationsRemoveModelArgs = {
|
||||
insightId: Scalars['String']['input'];
|
||||
modelId: Scalars['String']['input'];
|
||||
projectId: Scalars['String']['input'];
|
||||
};
|
||||
|
||||
|
||||
export type InsightMutationsResetToTemplateArgs = {
|
||||
insightId: Scalars['String']['input'];
|
||||
projectId: Scalars['String']['input'];
|
||||
};
|
||||
|
||||
|
||||
export type InsightMutationsRollbackInsightArgs = {
|
||||
insightId: Scalars['String']['input'];
|
||||
projectId: Scalars['String']['input'];
|
||||
toVersion: Scalars['Int']['input'];
|
||||
};
|
||||
|
||||
|
||||
export type InsightMutationsUpdateArgs = {
|
||||
input: InsightUpdateInput;
|
||||
};
|
||||
|
||||
export type InsightResult = {
|
||||
__typename?: 'InsightResult';
|
||||
id: Scalars['String']['output'];
|
||||
insightId: Scalars['String']['output'];
|
||||
modelId?: Maybe<Scalars['String']['output']>;
|
||||
result: Scalars['JSONObject']['output'];
|
||||
summary: Scalars['JSONObject']['output'];
|
||||
timestamp: Scalars['DateTime']['output'];
|
||||
versionId?: Maybe<Scalars['String']['output']>;
|
||||
};
|
||||
|
||||
export type InsightTemplate = {
|
||||
__typename?: 'InsightTemplate';
|
||||
createdAt: Scalars['DateTime']['output'];
|
||||
createdBy: Scalars['String']['output'];
|
||||
description?: Maybe<Scalars['String']['output']>;
|
||||
/** Version history (previous snapshots) */
|
||||
history: Array<InsightTemplateVersion>;
|
||||
id: Scalars['String']['output'];
|
||||
metadata: Scalars['JSONObject']['output'];
|
||||
name: Scalars['String']['output'];
|
||||
query: Scalars['JSONObject']['output'];
|
||||
type: Scalars['String']['output'];
|
||||
updatedAt: Scalars['DateTime']['output'];
|
||||
updatedBy: Scalars['String']['output'];
|
||||
version: Scalars['Int']['output'];
|
||||
workspaceId: Scalars['String']['output'];
|
||||
};
|
||||
|
||||
export type InsightTemplateCreateInput = {
|
||||
description?: InputMaybe<Scalars['String']['input']>;
|
||||
metadata?: InputMaybe<Scalars['JSONObject']['input']>;
|
||||
name: Scalars['String']['input'];
|
||||
query: Scalars['JSONObject']['input'];
|
||||
type: Scalars['String']['input'];
|
||||
workspaceId: Scalars['String']['input'];
|
||||
};
|
||||
|
||||
export type InsightTemplateMutations = {
|
||||
__typename?: 'InsightTemplateMutations';
|
||||
create: InsightTemplate;
|
||||
delete: Scalars['Boolean']['output'];
|
||||
rollback: InsightTemplate;
|
||||
update: InsightTemplate;
|
||||
};
|
||||
|
||||
|
||||
export type InsightTemplateMutationsCreateArgs = {
|
||||
input: InsightTemplateCreateInput;
|
||||
};
|
||||
|
||||
|
||||
export type InsightTemplateMutationsDeleteArgs = {
|
||||
id: Scalars['String']['input'];
|
||||
workspaceId: Scalars['String']['input'];
|
||||
};
|
||||
|
||||
|
||||
export type InsightTemplateMutationsRollbackArgs = {
|
||||
id: Scalars['String']['input'];
|
||||
toVersion: Scalars['Int']['input'];
|
||||
workspaceId: Scalars['String']['input'];
|
||||
};
|
||||
|
||||
|
||||
export type InsightTemplateMutationsUpdateArgs = {
|
||||
input: InsightTemplateUpdateInput;
|
||||
};
|
||||
|
||||
export type InsightTemplateUpdateInput = {
|
||||
description?: InputMaybe<Scalars['String']['input']>;
|
||||
id: Scalars['String']['input'];
|
||||
metadata?: InputMaybe<Scalars['JSONObject']['input']>;
|
||||
name?: InputMaybe<Scalars['String']['input']>;
|
||||
/** If true, propagate changes to all non-customized insights using this template */
|
||||
propagateToInsights?: InputMaybe<Scalars['Boolean']['input']>;
|
||||
query?: InputMaybe<Scalars['JSONObject']['input']>;
|
||||
type?: InputMaybe<Scalars['String']['input']>;
|
||||
workspaceId: Scalars['String']['input'];
|
||||
};
|
||||
|
||||
export type InsightTemplateVersion = {
|
||||
__typename?: 'InsightTemplateVersion';
|
||||
metadata: Scalars['JSONObject']['output'];
|
||||
name: Scalars['String']['output'];
|
||||
query: Scalars['JSONObject']['output'];
|
||||
type: Scalars['String']['output'];
|
||||
updatedAt: Scalars['DateTime']['output'];
|
||||
updatedBy: Scalars['String']['output'];
|
||||
version: Scalars['Int']['output'];
|
||||
};
|
||||
|
||||
export type InsightUpdateInput = {
|
||||
id: Scalars['String']['input'];
|
||||
metadata?: InputMaybe<Scalars['JSONObject']['input']>;
|
||||
name?: InputMaybe<Scalars['String']['input']>;
|
||||
projectId: Scalars['String']['input'];
|
||||
query?: InputMaybe<Scalars['JSONObject']['input']>;
|
||||
trigger?: InputMaybe<Scalars['String']['input']>;
|
||||
type?: InputMaybe<Scalars['String']['input']>;
|
||||
};
|
||||
|
||||
export type InsightVersion = {
|
||||
__typename?: 'InsightVersion';
|
||||
customized: Scalars['Boolean']['output'];
|
||||
metadata: Scalars['JSONObject']['output'];
|
||||
name: Scalars['String']['output'];
|
||||
query: Scalars['JSONObject']['output'];
|
||||
type: Scalars['String']['output'];
|
||||
updatedAt: Scalars['DateTime']['output'];
|
||||
updatedBy?: Maybe<Scalars['String']['output']>;
|
||||
version: Scalars['Int']['output'];
|
||||
};
|
||||
|
||||
export type InvitableCollaboratorsFilter = {
|
||||
search?: InputMaybe<Scalars['String']['input']>;
|
||||
};
|
||||
@@ -2234,7 +2557,7 @@ export type LimitedWorkspace = {
|
||||
id: Scalars['ID']['output'];
|
||||
/**
|
||||
* Optional base64 encoded workspace logo image
|
||||
* @deprecated Use the `workspace.logoUrl` field instead. Will be removed after June 2025.
|
||||
* @deprecated Use the `workspace.logoUrl` field instead. Will be removed after June 2026.
|
||||
*/
|
||||
logo?: Maybe<Scalars['String']['output']>;
|
||||
/** URL for pulling the workspace logo image */
|
||||
@@ -2385,6 +2708,15 @@ export type ModelCollection = {
|
||||
totalCount: Scalars['Int']['output'];
|
||||
};
|
||||
|
||||
export type ModelExecutionResult = {
|
||||
__typename?: 'ModelExecutionResult';
|
||||
durationMs: Scalars['Int']['output'];
|
||||
modelId?: Maybe<Scalars['String']['output']>;
|
||||
result: Scalars['JSONObject']['output'];
|
||||
summary: Scalars['JSONObject']['output'];
|
||||
versionId?: Maybe<Scalars['String']['output']>;
|
||||
};
|
||||
|
||||
export type ModelIngestion = {
|
||||
__typename?: 'ModelIngestion';
|
||||
authorUser?: Maybe<LimitedUser>;
|
||||
@@ -2668,6 +3000,8 @@ export type Mutation = {
|
||||
commitsMove: Scalars['Boolean']['output'];
|
||||
dashboardMutations: DashboardMutations;
|
||||
fileUploadMutations: FileUploadMutations;
|
||||
insightMutations: InsightMutations;
|
||||
insightTemplateMutations: InsightTemplateMutations;
|
||||
/**
|
||||
* Delete a pending invite
|
||||
* Note: The required scope to invoke this is not given out to app or personal access tokens
|
||||
@@ -2710,30 +3044,8 @@ export type Mutation = {
|
||||
* @deprecated Part of the old API surface and will be removed in the future. Use ProjectMutations.create instead.
|
||||
*/
|
||||
streamCreate?: Maybe<Scalars['String']['output']>;
|
||||
/**
|
||||
* Deletes an existing stream.
|
||||
* @deprecated Part of the old API surface and will be removed in the future. Use ProjectMutations.delete instead. Field will be deleted on January 1st, 2026.
|
||||
*/
|
||||
streamDelete: Scalars['Boolean']['output'];
|
||||
/** @deprecated Part of the old API surface and will be removed in the future. */
|
||||
streamFavorite?: Maybe<Stream>;
|
||||
/**
|
||||
* Note: The required scope to invoke this is not given out to app or personal access tokens
|
||||
* @deprecated Part of the old API surface and will be removed in the future. Use ProjectInviteMutations.batchCreate instead. Field will be deleted on January 1st, 2026.
|
||||
*/
|
||||
streamInviteBatchCreate: Scalars['Boolean']['output'];
|
||||
/**
|
||||
* Cancel a pending stream invite. Can only be invoked by a stream owner.
|
||||
* Note: The required scope to invoke this is not given out to app or personal access tokens
|
||||
* @deprecated Part of the old API surface and will be removed in the future. Use ProjectInviteMutations.cancel instead. Field will be deleted on January 1st, 2026.
|
||||
*/
|
||||
streamInviteCancel: Scalars['Boolean']['output'];
|
||||
/**
|
||||
* Invite a new or registered user to the specified stream
|
||||
* Note: The required scope to invoke this is not given out to app or personal access tokens
|
||||
* @deprecated Part of the old API surface and will be removed in the future. Use ProjectInviteMutations.create instead. Field will be deleted on January 1st, 2026.
|
||||
*/
|
||||
streamInviteCreate: Scalars['Boolean']['output'];
|
||||
/**
|
||||
* Accept or decline a stream invite
|
||||
* @deprecated Part of the old API surface and will be removed in the future. Use ProjectInviteMutations.use instead.
|
||||
@@ -2744,23 +3056,11 @@ export type Mutation = {
|
||||
* @deprecated Part of the old API surface and will be removed in the future. Use ProjectMutations.leave instead.
|
||||
*/
|
||||
streamLeave: Scalars['Boolean']['output'];
|
||||
/**
|
||||
* Revokes the permissions of a user on a given stream.
|
||||
* @deprecated Part of the old API surface and will be removed in the future. Use ProjectMutations.updateRole instead. Field will be deleted on January 1st, 2026.
|
||||
*/
|
||||
streamRevokePermission?: Maybe<Scalars['Boolean']['output']>;
|
||||
/**
|
||||
* Updates an existing stream.
|
||||
* @deprecated Part of the old API surface and will be removed in the future. Use ProjectMutations.update instead.
|
||||
*/
|
||||
streamUpdate: Scalars['Boolean']['output'];
|
||||
/**
|
||||
* Update permissions of a user on a given stream.
|
||||
* @deprecated Part of the old API surface and will be removed in the future. Use ProjectMutations.updateRole instead. Field will be deleted on January 1st, 2026.
|
||||
*/
|
||||
streamUpdatePermission?: Maybe<Scalars['Boolean']['output']>;
|
||||
/** @deprecated Part of the old API surface and will be removed in the future. Use ProjectMutations.batchDelete instead. Field will be deleted on January 1st, 2026. */
|
||||
streamsDelete: Scalars['Boolean']['output'];
|
||||
/** Delete a user's account. */
|
||||
userDelete: Scalars['Boolean']['output'];
|
||||
userNotificationPreferencesUpdate?: Maybe<Scalars['Boolean']['output']>;
|
||||
@@ -2931,33 +3231,12 @@ export type MutationStreamCreateArgs = {
|
||||
};
|
||||
|
||||
|
||||
export type MutationStreamDeleteArgs = {
|
||||
id: Scalars['String']['input'];
|
||||
};
|
||||
|
||||
|
||||
export type MutationStreamFavoriteArgs = {
|
||||
favorited: Scalars['Boolean']['input'];
|
||||
streamId: Scalars['String']['input'];
|
||||
};
|
||||
|
||||
|
||||
export type MutationStreamInviteBatchCreateArgs = {
|
||||
input: Array<StreamInviteCreateInput>;
|
||||
};
|
||||
|
||||
|
||||
export type MutationStreamInviteCancelArgs = {
|
||||
inviteId: Scalars['String']['input'];
|
||||
streamId: Scalars['String']['input'];
|
||||
};
|
||||
|
||||
|
||||
export type MutationStreamInviteCreateArgs = {
|
||||
input: StreamInviteCreateInput;
|
||||
};
|
||||
|
||||
|
||||
export type MutationStreamInviteUseArgs = {
|
||||
accept: Scalars['Boolean']['input'];
|
||||
streamId: Scalars['String']['input'];
|
||||
@@ -2970,26 +3249,11 @@ export type MutationStreamLeaveArgs = {
|
||||
};
|
||||
|
||||
|
||||
export type MutationStreamRevokePermissionArgs = {
|
||||
permissionParams: StreamRevokePermissionInput;
|
||||
};
|
||||
|
||||
|
||||
export type MutationStreamUpdateArgs = {
|
||||
stream: StreamUpdateInput;
|
||||
};
|
||||
|
||||
|
||||
export type MutationStreamUpdatePermissionArgs = {
|
||||
permissionParams: StreamUpdatePermissionInput;
|
||||
};
|
||||
|
||||
|
||||
export type MutationStreamsDeleteArgs = {
|
||||
ids?: InputMaybe<Array<Scalars['String']['input']>>;
|
||||
};
|
||||
|
||||
|
||||
export type MutationUserDeleteArgs = {
|
||||
userConfirmation: UserDeleteInput;
|
||||
};
|
||||
@@ -3228,6 +3492,8 @@ export type Project = {
|
||||
allowPublicComments: Scalars['Boolean']['output'];
|
||||
/** List of allowed assignees for this issue */
|
||||
allowedIssueAssignees: IssueParticipantCollection;
|
||||
/** When the project was archived. Null if the project is active. */
|
||||
archivedAt?: Maybe<Scalars['DateTime']['output']>;
|
||||
/** Get a single automation by id. Error will be thrown if automation is not found or inaccessible. */
|
||||
automation: Automation;
|
||||
automations: AutomationCollection;
|
||||
@@ -4051,6 +4317,8 @@ export type ProjectMutations = {
|
||||
__typename?: 'ProjectMutations';
|
||||
/** Access request related mutations */
|
||||
accessRequestMutations: ProjectAccessRequestMutations;
|
||||
/** Archive an existing project. Only project owners can archive. */
|
||||
archive: Project;
|
||||
automationMutations: ProjectAutomationMutations;
|
||||
/** Batch delete projects */
|
||||
batchDelete: Scalars['Boolean']['output'];
|
||||
@@ -4071,6 +4339,8 @@ export type ProjectMutations = {
|
||||
/** @deprecated Part of the old API surface and will be removed in the future. Field will be deleted on October 1st, 2026. */
|
||||
revokeEmbedTokens: Scalars['Boolean']['output'];
|
||||
savedViewMutations: SavedViewMutations;
|
||||
/** Unarchive an archived project. Only project owners can unarchive. */
|
||||
unarchive: Project;
|
||||
/** Updates an existing project */
|
||||
update: Project;
|
||||
/** Update role for a collaborator */
|
||||
@@ -4078,6 +4348,11 @@ export type ProjectMutations = {
|
||||
};
|
||||
|
||||
|
||||
export type ProjectMutationsArchiveArgs = {
|
||||
id: Scalars['String']['input'];
|
||||
};
|
||||
|
||||
|
||||
export type ProjectMutationsAutomationMutationsArgs = {
|
||||
projectId: Scalars['ID']['input'];
|
||||
};
|
||||
@@ -4119,6 +4394,11 @@ export type ProjectMutationsRevokeEmbedTokensArgs = {
|
||||
};
|
||||
|
||||
|
||||
export type ProjectMutationsUnarchiveArgs = {
|
||||
id: Scalars['String']['input'];
|
||||
};
|
||||
|
||||
|
||||
export type ProjectMutationsUpdateArgs = {
|
||||
update: ProjectUpdateInput;
|
||||
};
|
||||
@@ -4158,6 +4438,7 @@ export type ProjectPermissionChecks = {
|
||||
__typename?: 'ProjectPermissionChecks';
|
||||
canAccessIssuesFeature: PermissionCheckResult;
|
||||
canAccessViewerTableFeature: PermissionCheckResult;
|
||||
canArchive: PermissionCheckResult;
|
||||
canBroadcastActivity: PermissionCheckResult;
|
||||
canCreateAutomation: PermissionCheckResult;
|
||||
/** @deprecated Comments were moved to issues. Use canCreateIssue instead. This check will be removed after 01 Jun 2026. */
|
||||
@@ -4188,6 +4469,7 @@ export type ProjectPermissionChecks = {
|
||||
canRequestRender: PermissionCheckResult;
|
||||
/** @deprecated Part of the old API surface and will be removed in the future. Use canRevoke on ShareToken. Field will be deleted on October 1st, 2026. */
|
||||
canRevokeEmbedTokens: PermissionCheckResult;
|
||||
canUnarchive: PermissionCheckResult;
|
||||
canUpdate: PermissionCheckResult;
|
||||
canUpdateAllowPublicComments: PermissionCheckResult;
|
||||
canUpdateRole: PermissionCheckResult;
|
||||
@@ -4358,6 +4640,13 @@ export enum ProjectVisibility {
|
||||
Workspace = 'WORKSPACE'
|
||||
}
|
||||
|
||||
export type PropagationResult = {
|
||||
__typename?: 'PropagationResult';
|
||||
failed: Scalars['Int']['output'];
|
||||
skipped: Scalars['Int']['output'];
|
||||
updated: Scalars['Int']['output'];
|
||||
};
|
||||
|
||||
export type Query = {
|
||||
__typename?: 'Query';
|
||||
/** Stare into the void. */
|
||||
@@ -4395,6 +4684,12 @@ export type Query = {
|
||||
* @deprecated Part of the old API surface and will be removed in the future.
|
||||
*/
|
||||
discoverableStreams?: Maybe<StreamCollection>;
|
||||
/** Get a single insight by ID */
|
||||
insight?: Maybe<Insight>;
|
||||
/** Get a single insight template by ID */
|
||||
insightTemplate?: Maybe<InsightTemplate>;
|
||||
/** List all insights tracking a specific model */
|
||||
modelInsights: Array<Insight>;
|
||||
/** Get the (limited) profile information of another server user */
|
||||
otherUser?: Maybe<LimitedUser>;
|
||||
permissions: RootPermissionChecks;
|
||||
@@ -4403,6 +4698,8 @@ export type Query = {
|
||||
* to see it, for example, if a project isn't public and the user doesn't have the appropriate rights.
|
||||
*/
|
||||
project: Project;
|
||||
/** List all insights for a project, optionally filtered by type */
|
||||
projectInsights: Array<Insight>;
|
||||
/**
|
||||
* Look for an invitation to a project, for the current user (authed or not). If token
|
||||
* isn't specified, the server will look for any valid invite.
|
||||
@@ -4432,11 +4729,6 @@ export type Query = {
|
||||
* @deprecated Part of the old API surface and will be removed in the future. Use Query.projectInvite instead.
|
||||
*/
|
||||
streamInvite?: Maybe<PendingStreamCollaborator>;
|
||||
/**
|
||||
* Get all invitations to streams that the active user has
|
||||
* @deprecated Part of the old API surface and will be removed in the future. Use User.projectInvites instead. Field will be deleted on January 1st, 2026.
|
||||
*/
|
||||
streamInvites: Array<PendingStreamCollaborator>;
|
||||
/**
|
||||
* Returns all streams that the active user is a collaborator on.
|
||||
* Pass in the `query` parameter to search by name, description or ID.
|
||||
@@ -4467,6 +4759,8 @@ export type Query = {
|
||||
validateWorkspaceSlug: Scalars['Boolean']['output'];
|
||||
workspace: Workspace;
|
||||
workspaceBySlug: Workspace;
|
||||
/** List templates for a workspace, optionally filtered by type */
|
||||
workspaceInsightTemplates: Array<InsightTemplate>;
|
||||
/**
|
||||
* Look for an invitation to a workspace, for the current user (authed or not).
|
||||
*
|
||||
@@ -4524,6 +4818,24 @@ export type QueryDiscoverableStreamsArgs = {
|
||||
};
|
||||
|
||||
|
||||
export type QueryInsightArgs = {
|
||||
id: Scalars['String']['input'];
|
||||
projectId: Scalars['String']['input'];
|
||||
};
|
||||
|
||||
|
||||
export type QueryInsightTemplateArgs = {
|
||||
id: Scalars['String']['input'];
|
||||
workspaceId: Scalars['String']['input'];
|
||||
};
|
||||
|
||||
|
||||
export type QueryModelInsightsArgs = {
|
||||
modelId: Scalars['String']['input'];
|
||||
projectId: Scalars['String']['input'];
|
||||
};
|
||||
|
||||
|
||||
export type QueryOtherUserArgs = {
|
||||
id: Scalars['String']['input'];
|
||||
};
|
||||
@@ -4534,6 +4846,12 @@ export type QueryProjectArgs = {
|
||||
};
|
||||
|
||||
|
||||
export type QueryProjectInsightsArgs = {
|
||||
projectId: Scalars['String']['input'];
|
||||
type?: InputMaybe<Scalars['String']['input']>;
|
||||
};
|
||||
|
||||
|
||||
export type QueryProjectInviteArgs = {
|
||||
projectId: Scalars['String']['input'];
|
||||
token?: InputMaybe<Scalars['String']['input']>;
|
||||
@@ -4628,6 +4946,12 @@ export type QueryWorkspaceBySlugArgs = {
|
||||
};
|
||||
|
||||
|
||||
export type QueryWorkspaceInsightTemplatesArgs = {
|
||||
type?: InputMaybe<Scalars['String']['input']>;
|
||||
workspaceId: Scalars['String']['input'];
|
||||
};
|
||||
|
||||
|
||||
export type QueryWorkspaceInviteArgs = {
|
||||
options?: InputMaybe<WorkspaceInviteLookupOptions>;
|
||||
token?: InputMaybe<Scalars['String']['input']>;
|
||||
@@ -5313,11 +5637,6 @@ export type StartFileImportInput = {
|
||||
|
||||
export type Stream = {
|
||||
__typename?: 'Stream';
|
||||
/**
|
||||
* All the recent activity on this stream in chronological order
|
||||
* @deprecated Part of the old API surface and will be removed in the future. Field will be deleted on January 1st, 2026.
|
||||
*/
|
||||
activity?: Maybe<ActivityCollection>;
|
||||
allowPublicComments: Scalars['Boolean']['output'];
|
||||
/** @deprecated Part of the old API surface and will be removed in the future. Use Project.blob instead. */
|
||||
blob?: Maybe<BlobMetadata>;
|
||||
@@ -5390,15 +5709,6 @@ export type Stream = {
|
||||
};
|
||||
|
||||
|
||||
export type StreamActivityArgs = {
|
||||
actionType?: InputMaybe<Scalars['String']['input']>;
|
||||
after?: InputMaybe<Scalars['DateTime']['input']>;
|
||||
before?: InputMaybe<Scalars['DateTime']['input']>;
|
||||
cursor?: InputMaybe<Scalars['DateTime']['input']>;
|
||||
limit?: Scalars['Int']['input'];
|
||||
};
|
||||
|
||||
|
||||
export type StreamBlobArgs = {
|
||||
id: Scalars['String']['input'];
|
||||
};
|
||||
@@ -5490,22 +5800,6 @@ export type StreamCreateInput = {
|
||||
withContributors?: InputMaybe<Array<Scalars['String']['input']>>;
|
||||
};
|
||||
|
||||
export type StreamInviteCreateInput = {
|
||||
email?: InputMaybe<Scalars['String']['input']>;
|
||||
message?: InputMaybe<Scalars['String']['input']>;
|
||||
/** Defaults to the contributor role, if not specified */
|
||||
role?: InputMaybe<Scalars['String']['input']>;
|
||||
/** Can only be specified if guest mode is on or if the user is an admin */
|
||||
serverRole?: InputMaybe<Scalars['String']['input']>;
|
||||
streamId: Scalars['String']['input'];
|
||||
userId?: InputMaybe<Scalars['String']['input']>;
|
||||
};
|
||||
|
||||
export type StreamRevokePermissionInput = {
|
||||
streamId: Scalars['String']['input'];
|
||||
userId: Scalars['String']['input'];
|
||||
};
|
||||
|
||||
export enum StreamRole {
|
||||
StreamContributor = 'STREAM_CONTRIBUTOR',
|
||||
StreamOwner = 'STREAM_OWNER',
|
||||
@@ -5526,12 +5820,6 @@ export type StreamUpdateInput = {
|
||||
name?: InputMaybe<Scalars['String']['input']>;
|
||||
};
|
||||
|
||||
export type StreamUpdatePermissionInput = {
|
||||
role: Scalars['String']['input'];
|
||||
streamId: Scalars['String']['input'];
|
||||
userId: Scalars['String']['input'];
|
||||
};
|
||||
|
||||
export type Subscription = {
|
||||
__typename?: 'Subscription';
|
||||
/** It's lonely in the void. */
|
||||
@@ -5644,7 +5932,7 @@ export type Subscription = {
|
||||
* Track support session changes for a specific workspace.
|
||||
* Fires when sessions are requested, approved, revoked, or expire.
|
||||
*/
|
||||
workspaceSupportSessionUpdated: WorkspaceSupportSessionUpdatedMessage;
|
||||
workspaceSupportSessionUpdated?: Maybe<WorkspaceSupportSessionUpdatedMessage>;
|
||||
/**
|
||||
* Track updates to a specific workspace.
|
||||
* Either slug or id must be set.
|
||||
@@ -5998,7 +6286,7 @@ export type User = {
|
||||
/**
|
||||
* Get commits authored by the user. If requested for another user, then only commits
|
||||
* from public streams will be returned.
|
||||
* @deprecated Part of the old API surface and will be removed in the future. Use User.versions instead. Field will be deleted on January 1st, 2026.
|
||||
* @deprecated Part of the old API surface and will be removed in the future. Use User.versions instead.
|
||||
*/
|
||||
commits?: Maybe<CommitCollection>;
|
||||
company?: Maybe<Scalars['String']['output']>;
|
||||
@@ -6017,12 +6305,6 @@ export type User = {
|
||||
* (3) The user does not have a valid SSO session for the given SSO provider
|
||||
*/
|
||||
expiredSsoSessions: Array<LimitedWorkspace>;
|
||||
/**
|
||||
* All the streams that a active user has favorited.
|
||||
* Note: You can't use this to retrieve another user's favorite streams.
|
||||
* @deprecated Part of the old API surface and will be removed in the future. Field will be deleted on January 1st, 2026.
|
||||
*/
|
||||
favoriteStreams: StreamCollection;
|
||||
/** Whether the user has a pending/active email verification token */
|
||||
hasPendingVerification?: Maybe<Scalars['Boolean']['output']>;
|
||||
id: Scalars['ID']['output'];
|
||||
@@ -6045,7 +6327,7 @@ export type User = {
|
||||
/**
|
||||
* Returns all streams that the user is a collaborator on. If requested for a user, who isn't the
|
||||
* authenticated user, then this will only return discoverable streams.
|
||||
* @deprecated Part of the old API surface and will be removed in the future. Use User.projects instead. Field will be deleted on January 1st, 2026.
|
||||
* @deprecated Part of the old API surface and will be removed in the future. Use User.projects instead.
|
||||
*/
|
||||
streams: UserStreamCollection;
|
||||
/**
|
||||
@@ -6108,16 +6390,6 @@ export type UserCommitsArgs = {
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* Full user type, should only be used in the context of admin operations or
|
||||
* when a user is reading/writing info about himself
|
||||
*/
|
||||
export type UserFavoriteStreamsArgs = {
|
||||
cursor?: InputMaybe<Scalars['String']['input']>;
|
||||
limit?: Scalars['Int']['input'];
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* Full user type, should only be used in the context of admin operations or
|
||||
* when a user is reading/writing info about himself
|
||||
@@ -6499,6 +6771,15 @@ export type VersionPermissionChecks = {
|
||||
canUpdate: PermissionCheckResult;
|
||||
};
|
||||
|
||||
export type VersionQueryResult = {
|
||||
__typename?: 'VersionQueryResult';
|
||||
createdAt: Scalars['DateTime']['output'];
|
||||
durationMs: Scalars['Int']['output'];
|
||||
result: Scalars['JSONObject']['output'];
|
||||
summary: Scalars['JSONObject']['output'];
|
||||
versionId: Scalars['String']['output'];
|
||||
};
|
||||
|
||||
/**
|
||||
* If only one is set, the other will be resolved automatically
|
||||
* If none are set, the view will be added to the end of the list
|
||||
@@ -6696,7 +6977,7 @@ export type Workspace = {
|
||||
issueLabels: IssueLabelCollection;
|
||||
/**
|
||||
* Logo image as base64-encoded string
|
||||
* @deprecated Use the `workspace.logoUrl` field instead. Will be removed after June 2025.
|
||||
* @deprecated Use the `workspace.logoUrl` field instead. Will be removed after June 2026.
|
||||
*/
|
||||
logo?: Maybe<Scalars['String']['output']>;
|
||||
/** URL for pulling the workspace logo image */
|
||||
@@ -6914,6 +7195,7 @@ export enum WorkspaceFeatureName {
|
||||
Presentation = 'presentation',
|
||||
/** @deprecated Use presentation instead. Value will be dropped after July 19, 2026. */
|
||||
Presentations = 'presentations',
|
||||
ProjectArchival = 'projectArchival',
|
||||
ProjectDashboards = 'projectDashboards',
|
||||
SavedViews = 'savedViews',
|
||||
ViewerTable = 'viewerTable',
|
||||
@@ -7464,6 +7746,8 @@ export type WorkspaceProjectMutationsUpdateRoleArgs = {
|
||||
};
|
||||
|
||||
export type WorkspaceProjectsFilter = {
|
||||
/** Include archived projects in results. Only respected for workspace admins; silently ignored for non-admins. */
|
||||
includeArchived?: InputMaybe<Scalars['Boolean']['input']>;
|
||||
/** Filter out projects by name */
|
||||
search?: InputMaybe<Scalars['String']['input']>;
|
||||
/** Only return workspace projects that the active user has an explicit project role in */
|
||||
|
||||
@@ -511,6 +511,15 @@ export const useHostAppStore = defineStore('hostAppStore', () => {
|
||||
})
|
||||
})
|
||||
|
||||
app.$receiveBinding?.on('setModelsExpired', (modelCardIds) => {
|
||||
documentModelStore.value.models
|
||||
.filter((m) => modelCardIds.includes(m.modelCardId))
|
||||
.forEach((model: IReceiverModelCard) => {
|
||||
model.error = undefined
|
||||
model.expired = true
|
||||
})
|
||||
})
|
||||
|
||||
const setModelSendResult = (args: {
|
||||
modelCardId: string
|
||||
versionId: string
|
||||
@@ -560,6 +569,7 @@ export const useHostAppStore = defineStore('hostAppStore', () => {
|
||||
|
||||
model.report = undefined
|
||||
model.error = undefined
|
||||
model.expired = false
|
||||
model.displayReceiveComplete = false
|
||||
model.hasDismissedUpdateWarning = true
|
||||
model.progress = { status: 'Starting to receive...' }
|
||||
|
||||
Reference in New Issue
Block a user