Added
dbt Sync — status, results and history
GET /api/v1/deployments/{deploymentId}/dbt-sync(DbtSyncPublicController.listDbtSyncs) — sync run history, filterable bystatus/trigger, cursor-paginated. New schemas:DbtSyncRun,DbtSyncRunListResponse,DbtSyncRunPhase,DbtSyncRunStats,DbtSyncRunTriggerContext,DbtSyncRunsQueryStatus,DbtSyncRunsQueryTrigger.GET /api/v1/deployments/{deploymentId}/dbt-sync/{syncJobId}(getDbtSyncStatus) — poll a running sync. New schemas:DbtSyncStatusResponse,DbtSyncProgress.GET .../dbt-sync/{syncJobId}/result(getDbtSyncResult) andGET .../dbt-sync/{syncJobId}/logs(getDbtSyncLogs). New schemas:DbtSyncResultResponse,DbtSyncGeneratedFile,DbtSyncManifestStats,DbtSyncLogEntry,DbtSyncLogEntriesListResponse.DELETE .../dbt-sync/{syncJobId}(cancelDbtSync) — cancel a running sync. New schema:DbtSyncCancelResponse.
Data model — branch cleanup, staging environments and validation
DELETE /build/api/v1/deployments/{deploymentId}/branches(DataModelPublicController.removeBranch,branchNameas a query param since branch names contain slashes) — deletes a branch and its git ref, re-parenting any children onto the deleted branch’s own parent;removeOnUpstreamadditionally deletes the ref on the connected GitHub/GitLab remote. New schema:DataModelWriteResponse(shared with the existing file-write endpoints).PUT .../branches/staging-environment(setBranchStagingEnvironment) — enable or disable a branch’s always-on staging environment (<deploymentUrl>/dev-mode/{branchName}/cubejs-api/v1). New schemas:SetBranchStagingEnvironmentRequest,SetBranchStagingEnvironmentResponse.BranchResponse(fromlistBranches) reads the flag back via a newisStagingEnvironmentEnabled.GET .../data-model/validate(validateDataModel) — compiles the deploy branch, a named branch, or the caller’s dev-mode branch and reports compilation errors as a 200 response (valid: false), not a request error. New schemas:DataModelValidationResponse,DataModelValidationError,DataModelValidationResponseMode.
Deployment settings, versions and the spec endpoint
GET /api/v1/deployments/{deploymentId}/settings(DeploymentsPublicController.getDeploymentSettings) — every deployment setting in one payload (secrets excluded); writes go through the existingPUT /:deploymentId. New schema:DeploymentSettings(+ itscloudProvider/creationMethod/deployMode/releaseChannel/repoType/templateenums).GET /api/v1/deployments/{deploymentId}/versions(listDeploymentVersions) — the Cube versions this deployment can switch to (release-channel heads plus prior versions run before). New schemas:DeploymentVersion,DeploymentVersionsResponse,DeploymentVersionReleaseChannel.PUT /api/v1/deployments/{deploymentId}(updateDeployment) /UpdateDeploymentInputnow acceptscloudProvider,region,releaseChannel,releaseChannelVersion,releaseChannelVersionHold,template,templateVariables,defaultLaunchpadViewGroup, andlaunchpadTabs— the same settings surfaceGET .../settingsnow reads back.releaseChannelVersionmust be one of the versionsGET .../versionslists for the target channel.GET /api/v1/spec(OpenApiSpecPublicController.getSpec) — the full OpenAPI 3.1 document served by the build handling the request, for runtime discovery by clients and agents.
Reports
DELETE /api/v1/deployments/{deploymentId}/reports/{reportId}/connect-workbook(ReportsPublicController.disconnectReportFromWorkbook) — removes a single sheet+anchor placement of a report from a spreadsheet, leaving every other placement (in this workbook and others) alone. Addressed byplacementId, or byexternalWorkbookId+sheetName+anchorCell. New schema:DisconnectReportFromWorkbookInput.PUT .../reports/{reportId}/refreshnow takes a body: new schemaRefreshReportInput(placementId, orexternalWorkbookId+sheetName/sheetId/anchorCell), addressing the same way as disconnect.- Report placements are now individually addressable and trackable (new
ConnectReportToWorkbookInputHost/CreateReportInputHost/UpdateReportInputHostenums,"GOOGLE_SHEETS" | "EXCEL"):ConnectReportToWorkbookInputgainedplacementId,sheetId,sheetName,anchorCell,workbookNameandhost;CreateReportInputgainedhost,sheetIdandworkbookName;UpdateReportInputgainedhost,placementId,sheetIdandworkbookName.ReportPlacementgained the matchingid,host,sheetId,sheetName,anchorCell,workbookName, plusplacedAt/placedByUserIdandrefreshedAt/refreshedByUserId(newReportPlacementHostenum).ReportSnapshotgainedisSourceReportandpythonCode.
Cursor pagination on previously offset-only or unpaginated lists
first/after→items+pageInfocursor pagination added to: deployment env variables (GET .../env-vars), GitHub branches/installations/repositories (GitHubPublicController.*), user attributes (previouslyoffset/limit),GET /api/v1/regions/, report folders, data-model branches and files (listBranches/listFiles,BranchesListResponse/SourceTreeResponse), and deployment logs/pods (DeploymentLogsResponse/DeploymentPodsResponsegainpageInfo). Newly-paginated responses keep the legacydata/count/paginationfields, marked@deprecated.UserGroupsPublicController.listGroupsandUsersPublicController.getUsersalready hadfirst/after; what’s new on both is asearchquery param (case-insensitive substring match on group name / first name, username, email).DashboardFilterOperator/DashboardFilterInputOperatorgainedis_empty/is_not_empty.
Other new fields
- New
TimezoneSettingsschema, plustimezoneSettingsonAppConfigResponseandresolvedTimezone/deployBranchName/timezoneSettingsonAIEngineerSettings. - New
CspsConfigschema (customer-storage-provider config, mirrored on the existingCspsConfigInput). scopeDeploymentIdadded to the agent-space config schemas.measuresAxis/measuresPositionadded toPivotItems/PivotItemsInput(newPivotItemsMeasuresAxis/PivotItemsMeasuresPosition/PivotItemsInputMeasuresAxis/PivotItemsInputMeasuresPositionenums,"columns" | "rows"and"before" | "after").name/userCountadded toInheritedGroupPolicyDtoandResourceGroupPolicyDto.allowChatWorkspaceAuthoringadded toEmbedSessionSettings.refadded toStartDbtSyncInput.
Changed
- BREAKING (TypeScript):
DeploymentEnvironmentsListResponse.paginationandDeploymentEnvironmentTokensListResponse.paginationmoved from required topagination?: DeploymentsPagination | nullnow that both responses also carryitems/pageInfo. Code understrictNullChecksreadingres.pagination.currentPagewithout a null check no longer compiles. - BREAKING (TypeScript):
NotificationsPublicController.getRecipients’s cursor params were narrowed —first?: number | string | null→first?: number | nullandafter?: string | number | null→after?: string | null— cleaning up a hand-declared@OpenAPI({ parameters })that had merged positionally with the real cursor-param types. A caller passing a numericafteror a stringifiedfirst(both accepted, if oddly typed, before) no longer compiles. DashboardWidgetDtoType/DashboardWidgetInputTypeno longer advertiseTABS_CONTAINERin the type — replaced byPARENT,SPACER,DIVIDER,CONTAINER(aCONTAINERwithconfig.layout: 'tabs'is the current shape for a tabbed container). Existing stored or sentTABS_CONTAINERvalues are still healed server-side for backward compatibility (CUB-3634), so this narrows the advertised type rather than breaking existing integrations at runtime — new code should targetCONTAINER+layout.PUT /api/v1/deployments/{deploymentId}(updateDeployment) description clarified: writes are a partial merge (omitted fields are left alone,templateVariablesis merged key-by-key), andreleaseChannelVersionis validated againstGET .../versions.
Removed
- BREAKING:
POST /api/v1/deployments/{deploymentId}/workbooks/{workbookId}/dashboard/ai-widget-thread(WorkbooksPublicController.updatePublishedDashboardAiWidgetThread) and itsUpdatePublishedAiWidgetThreadInputschema (added in0.2.0). It persisted an AI-analysis thread id + checksum into the published dashboard config — the mechanism that caused read-only/anonymous viewers to hitWorkbookEdit/403s and let one viewer’s filter state clobber the shared config (CUB-3898). AI-analysis results are now cached server-side keyed by dashboard state, so no client-facing endpoint replaces it. This is a deliberate breaking removal; SDK consumers referencing the operation or schema should drop those references.
Supersedes0.2.1, which never reached npm because its publish job failed. Upgrading from0.2.0picks up both releases, so the0.2.1entries are repeated below under Also included from the unpublished 0.2.1.
Added
Build API — a new /build/api/v1 surface
POST /build/api/v1/deployments/(DeploymentsBuildPublicController.createDeployment) — creates a deployment. New schemas:CreateDeploymentInput,CreateDeploymentInputCloudProvider(cubecloud|aws|gcp),CreateDeploymentInputCreationMethod(upload|cubecloud|github|ssh),CreateDeploymentInputDeployMode(git|cli),CspsConfigInput.- Data-model file authoring:
GET/PUT/DELETE /build/api/v1/deployments/{deploymentId}/data-model/files(DataModelPublicController.listFiles/updateFiles/removeFiles) andPOST .../data-model/files/rename(renameFiles). Writes are restricted to dev-mode branches. New schemas:DataModelFileContent,DataModelFilePath,DataModelFileRename,UpdateDataModelFilesInput,RemoveDataModelFilesInput,RenameDataModelFilesInput,DataModelWriteResponse. - Chunked data-model uploads:
POST .../data-model/upload/start,POST .../data-model/upload/file,POST .../data-model/upload/finish, andGET .../data-model/file-hashes(UploadsPublicController.*). New schemas:StartUploadResponse,UploadFileBody,FinishUploadBody,FinishUploadResponse,UploadTransaction,FileHash,SourceTreeResponse. - Dev mode and branch operations:
POST/DELETE .../dev-mode(startDevMode/stopDevMode),GET/POST .../branches(listBranches/createBranch),POST .../commit,POST .../pull,POST .../merge,POST .../merge-to-default. The dev-mode endpoints return the real dev branch. New schemas:StartDevModeRequest,DevBranchResponse,BranchResponse,BranchesListResponse,CommitChangesRequest,PullRequest,PullResponse,MergeIntoParentBranchRequest,MergeToDefaultBranchRequest,MergeResponse. POST /build/api/v1/deployments/{deploymentId}/github/connect(GitHubDeploymentPublicController.connect) — connects a deployment to a GitHub repository. New schema:ConnectGitHubRequest.
Deployment management
PUT /api/v1/deployments/{deploymentId}(DeploymentsPublicController.updateDeployment) andDELETE /api/v1/deployments/{deploymentId}(deleteDeployment). New schemas:UpdateDeploymentInput,UpdateDeploymentInputCreationMethod,UpdateDeploymentInputDeployMode,DeploymentDeleteResponse.GET /api/v1/deployments/{deploymentId}/build-status(buildStatus) — current build/deploy state for a branch. New schema:BuildStatusResponse.GET /api/v1/deployments/{deploymentId}/logs(logs) — container logs, filterable by source and container. New schemas:DeploymentLogsResponse,DeploymentLogLine,DeploymentLogsQuerySource(production|dev),DeploymentLogsQueryContainer(INIT|MAIN|cubejs-server|vector|api-proxy).GET /api/v1/deployments/{deploymentId}/pods(pods). New schemas:DeploymentPodsResponse,DeploymentPod.GET/PUT /api/v1/deployments/{deploymentId}/env-vars(EnvVariablesPublicController.getEnvVariables/setEnvVariables). New schemas:EnvVariablesListResponse,EnvVariableItem,SetEnvVariablesInput.POST /api/v1/deployments/{deploymentId}/creation-step/advanceand.../creation-step/reset(advanceCreationStep/resetCreationStep) for driving the deployment setup wizard. New schema:AdvanceCreationStepInput.GET /api/v1/regions/(RegionsPublicController.listRegions) — regions available to the tenant. New schemas:RegionsListResponse,RegionResponse.
Users, attributes and tenant settings
- Console user administration:
POST/PUT/DELETE /api/v1/users/{id}andPOST /api/v1/users/(UsersAdminPublicController.createUser/updateUser/deleteUser). New schemas:UserCreateInput,UserUpdateInput. POST /api/v1/users/bulk(bulkUserAction) — activate, deactivate or delete many users in one call, with per-user failure reporting. New schemas:BulkUserActionInput,BulkUserActionInputAction(DEACTIVATE|ACTIVATE|DELETE),BulkUserActionPayload,BulkUserActionResponseAction,BulkUserActionFailure.- Tenant-level user attributes:
GET/POST /api/v1/user-attributes/andPUT /api/v1/user-attributes/{id}(UserAttributesPublicController.*). New schemas:UserAttribute,UserAttributesListResponse,UserAttributeCreateInput,UserAttributeUpdateInput,UserAttributeType/UserAttributeCreateInputType/GetUserAttributesQueryType(string|number|boolean|string_array|number_array). - Per-user attribute values:
GET /api/v1/user-attribute-values/{userId}andPOST /api/v1/user-attribute-values/(UserAttributeValuesPublicController.getUserAttributeValues/upsertUserAttributeValue). New schemas:UserAttributeValue,UserAttributeValueType,UserAttributeValueCreateInput. GET/PUT /api/v1/tenant/settings(TenantSettingsPublicController.getTenantSettings/updateTenantSettings) — audit log, maintenance window, support access, OIDC and AI/BI interface toggles. New schemas:TenantSettings,TenantSettingsInput.
OAuth, OIDC and GitHub integrations
- OAuth integration management:
GET/POST /api/v1/oauth-integrations/andGET/PUT/DELETE /api/v1/oauth-integrations/{id}(OAuthIntegrationsPublicController.*). New schemas:OAuthIntegration,CreateOAuthIntegrationInput,UpdateOAuthIntegrationInput. - Per-user OAuth tokens:
GET /api/v1/user-oauth-tokens/,GET/DELETE /api/v1/user-oauth-tokens/{integrationId}, andPOST /api/v1/user-oauth-tokens/{integrationId}/initiate(UserOAuthTokensPublicController.*). New schema:UserOAuthToken. - OIDC token configuration:
GET/POST /api/v1/oidc-token-configs/andGET/PUT/DELETE /api/v1/oidc-token-configs/{id}(OidcTokenConfigsPublicController.*). New schemas:OidcTokenConfig,CreateOidcTokenConfigInput,UpdateOidcTokenConfigInput. - GitHub app discovery:
GET /api/v1/github/status,GET /api/v1/github/installations,GET /api/v1/github/installations/{installationId}/repositories, andGET /api/v1/github/repositories/{owner}/{repo}/branches(GitHubPublicController.*). New schemas:GitHubConnectStatusResponse,GitHubInstallationsListResponse,GitHubInstallationResponse,GitHubReposListResponse,GitHubRepoResponse,GitHubBranchesListResponse,GitHubBranchResponse.
Embed tenants, groups and dashboard embedding
GET /api/v1/embed-tenants/(EmbedTenantAdminPublicController.listEmbedTenants) andGET /api/v1/embed-tenants/{embedTenantName}/users(listEmbedUsers). New schemas:EmbedTenantsPublicResponse,EmbedTenant,EmbedUsersPublicResponse,EmbedUser.- Embed group management:
POST /api/v1/embed-tenants/{embedTenantName}/groups(createGroup),GET/PATCH /api/v1/embed-tenants/{embedTenantName}/groups/{id}(getGroup/updateGroup), and membership viaGET/POST/DELETE .../groups/{id}/users(getGroupMembers/addGroupMembers/removeGroupMembers). New schemas:CreateEmbedGroupInput,UpdateEmbedGroupInput,EmbedGroupMemberInput,EmbedGroupMembersInput,EmbedGroupMembersMutationResponse. GET/PUT /api/v1/deployments/{deploymentId}/workbooks/{workbookId}/embed-access(DashboardEmbedAccessPublicController.getEmbedAccess/updateEmbedAccess) — grant or revoke dashboard access per embed tenant, or for all embed users. New schemas:EmbedAccessResponse,EmbedAccessTenantEntry,EmbedAccessAllEmbedUsers,UpdateEmbedAccessInput, and theread|noneaction enumsEmbedAccessTenantEntryAction,EmbedAccessAllEmbedUsersAction,UpdateEmbedAccessInputAction.PATCH /api/v1/embed/dashboard/{publicId}(EmbedPublicController.updateDashboardEmbedding) — enable or disable signed embedding for a dashboard. New schemas:UpdateDashboardEmbeddingInput,DashboardEmbeddingResponse.POST /api/v1/embed/dashboard/{publicId}/python-run(EmbedPublicController.postDashboardPythonRun) — runs a Python report on an embed surface with dashboard filters applied. New schemas:EmbedPythonFilteredRunInput,PythonAnalysisFilteredRun.- The embed session request (
GenerateSession) accepts asettingsobject. New schema:EmbedSessionSettings(showDashboardChat).
Workspace, workbooks and reports
POST /api/v1/deployments/{deploymentId}/workspace/bulk-deleteand.../workspace/bulk-move(WorkspacePublicController.bulkDeleteWorkspaceObjects/bulkMoveWorkspaceObjects) — delete or move folders, workbooks and reports in one call, with per-item failure reporting. New schemas:BulkDeleteWorkspaceObjectsInput,BulkDeleteWorkspaceObjectsPayload,BulkMoveWorkspaceObjectsInput,BulkMoveWorkspaceObjectsResponse,WorkspaceItemRef,WorkspaceItemRefInput,WorkspaceBulkFailure,BulkActionError, and theFOLDER|WORKBOOK|REPORTenumsWorkspaceItemRefType,WorkspaceItemRefInputType,WorkspaceBulkFailureType.PUT /api/v1/deployments/{deploymentId}/workbooks/by-slug/{slug}(WorkbooksPublicController.upsertWorkbookBySlug) andPUT /api/v1/deployments/{deploymentId}/reports/by-public-id/{publicId}(ReportsPublicController.upsertReportByPublicId) — create-or-update by stable external identifier.Folder,WorkbookandReportresponses now includefolderPath, the ancestor chain of the containing folder. New schema:WorkspaceFolderPathEntry.ReportSnapshotnow includesperiodComparisonsfor period-over-period measures. New schemas:PeriodComparison(measure,timeDimension,offset,outputs),PeriodComparisonOffset(amount,unit).UpdateReportInputnow acceptspublicId.PublishDashboardInputnow acceptsallowEmbed.
Dashboard apps
DashboardConfigandDashboardConfigInputnow carrykindandapp, so a dashboard can be an app of authored files rather than a widget document. New schemas:DashboardAppSource,DashboardAppSourceInput,DashboardAppManifest,DashboardAppManifestInput, and theCLASSIC|APPenumsDashboardConfigKind,DashboardConfigInputKind.
App configuration
AppConfigResponsenow includessheetsUi. New schema:SheetsUiSettings(showAppliedFilters).EmbedSettingsnow includesshowDashboardChat.AIEngineerSettingsnow includesagentsConfigCredentials.
Also included from the unpublished 0.2.1
POST /api/v1/deployments/{deploymentId}/dbt-syncoperation (DbtSyncPublicController.startDbtSync) — starts a dbt sync for a deployment, optionally on a specific branch. New schemas:StartDbtSyncInput(branchName),DbtSyncResponse(branchName,syncJobId,workflowId).PUT /api/v1/deployments/{deploymentId}/reports/{reportId}/connect-workbookoperation (ReportsPublicController.connectReportToWorkbook) — links a report to the caller’s own spreadsheet by recording its placement, and returns the updatedReport. Requires only read access to the report. New schema:ConnectReportToWorkbookInput(externalWorkbookId,resultLocation,endResultCell).- New
SecretsManageandDownloadDataRBAC actions, available across all policy action enums (RoleWithAccess.actions, the inherited/resource user & group policy actions, and the update-policy request bodies). AIEngineerSettingsnow includeschatThreadPolicies. New schemas:ChatThreadPolicy(actions,effect,resourceType,resources),ChatThreadPolicyEffect(allow|deny),ChatThreadPolicyResourceType.GET /api/v1/deployments/{deploymentId}/reportsaccepts a newsearchquery filter.Reportnow includescanEdit,canManage, andexternalWorkbookPlacements— a report can be placed in multiple spreadsheets. New schema:ReportPlacement(workbookId,resultLocation,endResultCell).ReportSnapshotnow includesfillMissingRows. New schema:FillMissingRows(member,excludedDimensions).CreatorModenow includesshowGeneratedSqlandshowSemanticSqltoggles.Dashboardnow includesrestrictDataDownloadanduseBoardDashboards.UpdatePublishedAiWidgetThreadInputaccepts an optionalchecksum.
Changed
- BREAKING: the
deleteEmbedTenantoperation moved fromDELETE /api/v1/embed-tenants/{embedTenantName}/toDELETE /api/v1/embed-tenants/{embedTenantName}— the trailing slash is gone, so the typed path key changed. deleteEmbedTenantanddeleteGroupnow document their204responses, and the embed-tenant path parameters carry descriptions.DashboardConfigInput.widgetsis now optional. (from the unpublished0.2.1)
Removed
- BREAKING: removed the
GET /api/v1/ai-engineer/active-regionoperation (AIEngineerPublicController.getMyActiveAgentRegion) and theActiveAgentRegionschema. UseGET /api/v1/regions/to discover regions.
Never published to npm. The publish job for this version failed, so0.2.1does not exist on the registry. Everything below shipped in0.3.0, which repeats these entries in its own section.
Added
POST /api/v1/deployments/{deploymentId}/dbt-syncoperation (DbtSyncPublicController.startDbtSync) — starts a dbt sync for a deployment, optionally on a specific branch. New schemas:StartDbtSyncInput(branchName),DbtSyncResponse(branchName,syncJobId,workflowId).PUT /api/v1/deployments/{deploymentId}/reports/{reportId}/connect-workbookoperation (ReportsPublicController.connectReportToWorkbook) — links a report to the caller’s own spreadsheet by recording its placement, and returns the updatedReport. Requires only read access to the report. New schema:ConnectReportToWorkbookInput(externalWorkbookId,resultLocation,endResultCell).- New
SecretsManageandDownloadDataRBAC actions, available across all policy action enums (RoleWithAccess.actions, the inherited/resource user & group policy actions, and the update-policy request bodies). AIEngineerSettingsnow includeschatThreadPolicies. New schemas:ChatThreadPolicy(actions,effect,resourceType,resources),ChatThreadPolicyEffect(allow|deny),ChatThreadPolicyResourceType.GET /api/v1/deployments/{deploymentId}/reportsaccepts a newsearchquery filter.Reportnow includescanEdit,canManage, andexternalWorkbookPlacements— a report can be placed in multiple spreadsheets. New schema:ReportPlacement(workbookId,resultLocation,endResultCell).ReportSnapshotnow includesfillMissingRows. New schema:FillMissingRows(member,excludedDimensions).CreatorModenow includesshowGeneratedSqlandshowSemanticSqltoggles.Dashboardnow includesrestrictDataDownloadanduseBoardDashboards.UpdatePublishedAiWidgetThreadInputaccepts an optionalchecksum.
Changed
DashboardConfigInput.widgetsis now optional.
Added
POST /api/v1/deployments/{deploymentId}/workbooks/{workbookId}/dashboard/ai-widget-threadoperation (WorkbooksPublicController.updatePublishedDashboardAiWidgetThread) — attaches an AI widget thread to a published dashboard and returns the updatedDashboard. New schema:UpdatePublishedAiWidgetThreadInput(threadId,widgetId).DELETE /api/v1/embed-tenants/{embedTenantName}/operation (EmbedTenantAdminPublicController.deleteEmbedTenant) for deleting an embed tenant.CubePlatformClientConfig.credentialsoption, forwarded to the underlyingfetchto control the credentials mode. Defaults to the browser’ssame-originbehaviour; set'omit'for token-only clients (e.g. signed embedding) that must never authenticate via a cookie.- Embed session requests (
GenerateSession) accepttenantGroupsandtenantGroupDefinitions— per-embed-tenant groups for sharing and organizing content within a single embed tenant (Creator Mode), namespaced separately from the globalgroups. NewembedTenantProfilefield with adisplayName. New schema:EmbedTenantProfile. AppConfigResponsenow includes anembeddingfield. New schema:EmbedSettings(locale).CreatorModenow includeslocalizedTitlesfor per-locale workspace titles. New schema:LocalizedValue(locale,value).GET /api/v1/deployments/{deploymentId}/reportsaccepts newfolderIdandexternalWorkbookIdquery filters.UpdateWorkbookInputacceptsslugandslugTakeover, and theWorkbookresponse now includesslug.
Changed
UserAttributeDefinitionDTOTypenow includes a"boolean"value, andUserAttributeInput.valueacceptsboolean.
Removed
- BREAKING: removed the
GET /api/v1/embed-tenants/{embedTenantName}/user-attributesandDELETE /api/v1/embed-tenants/{embedTenantName}/user-attributes/{id}operations, along with theUserAttribute,UserAttributesConnectionResponse, andUserAttributeDTOTypeschemas. - BREAKING: removed the
ephemeralTtlSecondsfield from the embed session request (GenerateSession).
Added
GET /api/v1/app-configoperation (AppThemePublicController.getAppConfig) returning the deployment’s app configuration —appTheme,applyThemeGlobally, andcreatorMode. New schemas:AppConfigResponse,AppTheme,CreatorMode.- Scheduled notifications can now carry dashboard
filtersandtimeGrainsthat are applied when the dashboard is run. Available onCreateNotificationInput,UpdateNotificationInput, and theNotificationresponse. New schemas:DashboardFilter,DashboardFilterInput,DashboardFilterOperator,DashboardFilterInputOperator,DashboardTimeGrain,DashboardTimeGrainInput. CreateNotificationInputacceptsdashboardPublicId(string) as an alternative to the numericdashboardId— supply exactly one.GET /notificationsaccepts new filter query parameters:dashboardPublicId, and recipient filtersrecipientUserId/recipientEmail(console user) orrecipientEmbedTenantName+recipientExternalId(embed user).POST /workbooks/{workbookId}/duplicateaccepts an optionalDuplicateWorkbookInputbody with asharedflag to clone a workbook from the shared workspace. New schema:DuplicateWorkbookInput.Dashboardnow includes afromSharedWorkspacefield.Workbooknow includes auserfield (ResourceOwner).InheritedUserPolicyDtoandResourceUserPolicyDtonow includeemail,firstName, andpicturefields.
Changed
CreateNotificationInput.dashboardIdis now optional; identify the target dashboard with eitherdashboardIdor the newdashboardPublicId.
Added
GET /api/v1/deployments/{deploymentId}/reportsnow supports cursor-based pagination via thefirstandafterquery parameters, and returns anitemsarray alongside apageInfocursor block — matching the folders and other list endpoints. (Cursor pagination is not available when sorting bylastViewedAt.)- The reports list now accepts
nameas asortByvalue, in addition tocreatedAt,updatedAt, andlastViewedAt. NotificationRecipientnow includes an optionalusernamefield.
Changed
- BREAKING: The reports list response type
ReportsFindAllResultis nowReportsListResponse.
Deprecated
- The
dataandcountfields on the reports list response are deprecated in favor ofitemsandpageInfo. They remain populated for backward compatibility.
Added
GET /api/v1/deployments/{deploymentId}/foldersnow supports cursor-based pagination via thefirstandafterquery parameters, and returns anitemsarray alongside apageInfocursor block — matching the other list endpoints.
Changed
- BREAKING: The folders list response type
FoldersFindAllResultis nowFoldersListResponse.
Deprecated
- The
dataandcountfields on the folders list response are deprecated in favor ofitemsandpageInfo. They remain populated for backward compatibility.
Added
createCubePlatformClient— the new name for the client factory.- Cube Platform-branded type and hook names:
CubePlatformClient,CubePlatformClientConfig,PlatformApiSchemas, and the react-query exportsCubePlatformApiProvider,useCubePlatformApi,useCubePlatformApiQuery,useCubePlatformApiSuspenseQuery,useCubePlatformApiMutation,useCubePlatformApiLazyQuery,useCubePlatformApiQueryOptions,CubePlatformApiQueryKey,UseCubePlatformApiLazyQueryResult.
Deprecated
- The former
CubeCloud*/ConsoleApiSchemasnames are deprecated in favor of theCubePlatform*/PlatformApiSchemasequivalents. All remain as aliases and will be removed in a future major version:createCubeCloudApiClient,CubeCloudApiClient,CubeCloudApiClientConfig,ConsoleApiSchemas,CubeCloudApiProvider,CubeCloudApiProviderProps,useCubeCloudApi,useCubeCloudApiQuery,useCubeCloudApiSuspenseQuery,useCubeCloudApiMutation,useCubeCloudApiLazyQuery,useCubeCloudApiQueryOptions,CubeCloudApiQueryKey,UseCubeCloudApiLazyQueryResult.