Skip to content

feat(nexus-operations): add capability flag, guard component, and configurable table columns#3466

Merged
rossedfort merged 1 commit into
DT-4001-SANOfrom
DT-4006-standalone-nexus-capability-flag
May 27, 2026
Merged

feat(nexus-operations): add capability flag, guard component, and configurable table columns#3466
rossedfort merged 1 commit into
DT-4001-SANOfrom
DT-4006-standalone-nexus-capability-flag

Conversation

@rossedfort

Copy link
Copy Markdown
Contributor

Motivation

Phase 2 of Standalone Nexus Operations (DT-4006). Phase 1 (DT-4005) shipped the API integrations — types, services, stores, poller, route helpers, and filters. This phase ships the feature-gating infrastructure that Phase 3 (DT-4004) will consume when rendering the actual UI.

What changed

Capability type extension (src/lib/types/index.ts)

The standaloneNexusOperations capability flag does not yet exist in @temporalio/proto. The same pattern used for serverScaledDeployments is applied here — a NamespaceCapabilities intersection type that extends the proto ICapabilities with the custom field:

export type NamespaceCapabilities =
  NonNullable<
    NonNullable<DescribeNamespaceResponse['namespaceInfo']>['capabilities']
  > & {
    standaloneNexusOperations?: boolean | null;
  };

The guard component casts to this type when checking the flag, so the rest of the codebase remains unaffected until the proto ships.

Guard component (standalone-nexus-operations-guard.svelte)

Mirrors standalone-activities-guard.svelte. Gates on both the namespace capability flag (standaloneNexusOperations) and server version ≥ 1.31.0. Renders children when both conditions are true, fallback (if provided) otherwise.

Disabled state component (standalone-nexus-operations-disabled.svelte)

Shown by the route page when the guard renders the fallback. Displays an info alert and Dynamic Config instructions (global and per-namespace) explaining how to enable the feature.

i18n strings (src/lib/i18n/locales/en/standalone-nexus-operations.ts)

New namespace with the 4 strings required by the disabled component. Registered in src/lib/i18n/locales/en/index.ts alongside StandaloneActivities.

Configurable table columns (src/lib/stores/configurable-table-columns.ts)

All 8 atomic changes applied together (partial application causes pnpm check failures because ConfigurableTableType expands and all switch statements become non-exhaustive):

  • TABLE_TYPE.NEXUS_OPERATIONS = 'nexus-operations' added to the const map
  • NexusOperationHeaderLabels tuple and NexusOperationHeaderLabel type exported
  • DEFAULT_NEXUS_OPERATIONS_COLUMNS (6 default columns) and DEFAULT_AVAILABLE_NEXUS_OPERATIONS_COLUMNS (4 optional columns) exported/defined
  • persistedNexusOperationsTableColumns persist store added
  • configurableTableColumns derived store extended with the new persist store and 'nexus-operations' key in getTableColumns
  • availableNexusOperationColumns exported derived store for the column picker UI
  • getDefaultColumns and getPersistedColumns switches extended with TABLE_TYPE.NEXUS_OPERATIONS cases

Testing

  • pnpm check — zero new errors
  • pnpm lint — zero new errors in changed files
  • pnpm test -- --run — all 140 unit tests pass

…figurable table columns

Adds Phase 2 (DT-4006) infrastructure for standalone nexus operations:

- NamespaceCapabilities type with standaloneNexusOperations field in src/lib/types/index.ts
- Guard component that checks both capability flag and minimum server version (1.31.0)
- Disabled state component with Dynamic Config instructions
- i18n namespace for standalone-nexus-operations
- TABLE_TYPE.NEXUS_OPERATIONS, NexusOperationHeaderLabels, default/available column arrays,
  persistedNexusOperationsTableColumns store, configurableTableColumns derived store update,
  availableNexusOperationColumns export, and exhaustive switch cases in configurable-table-columns.ts
@rossedfort rossedfort requested a review from a team as a code owner May 27, 2026 19:48
@vercel

vercel Bot commented May 27, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
holocene Ready Ready Preview, Comment May 27, 2026 7:48pm

Request Review

@rossedfort rossedfort merged commit b4b70a2 into DT-4001-SANO May 27, 2026
5 checks passed
@rossedfort rossedfort deleted the DT-4006-standalone-nexus-capability-flag branch May 27, 2026 21:01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant