TenantAtlas/specs/171-operations-naming-consolidation/contracts/operation-naming-surface-contract.yaml
ahmido 1b88d28739 feat: consolidate operation naming surfaces (#202)
## Summary
- align operator-visible OperationRun terminology to canonical `Operations` / `Operation` labels across shared links, notifications, verification/onboarding surfaces, summary widgets, and monitoring/detail pages
- add the Spec 171 planning artifacts under `specs/171-operations-naming-consolidation/`
- close the remaining tenant dashboard and admin copy drift found during browser smoke validation

## Validation
- `export PATH="/bin:/usr/bin:/usr/local/bin:$PATH" && vendor/bin/sail artisan test --compact tests/Unit/Support/RelatedNavigationResolverTest.php tests/Unit/Support/References/RelatedContextReferenceAdapterTest.php tests/Feature/OpsUx/NotificationViewRunLinkTest.php tests/Feature/Guards/ActionSurfaceContractTest.php tests/Feature/Operations/TenantlessOperationRunViewerTest.php tests/Feature/Filament/BackupSetResolvedReferencePresentationTest.php tests/Feature/Filament/TenantVerificationReportWidgetTest.php tests/Feature/Onboarding/OnboardingVerificationTest.php tests/Feature/Onboarding/OnboardingVerificationClustersTest.php tests/Feature/Onboarding/OnboardingVerificationV1_5UxTest.php tests/Feature/Filament/BaselineCompareSummaryConsistencyTest.php tests/Feature/Filament/WorkspaceOverviewContentTest.php tests/Feature/Filament/RecentOperationsSummaryWidgetTest.php tests/Feature/Monitoring/OperationLifecycleAggregateVisibilityTest.php tests/Feature/System/Spec114/OpsTriageActionsTest.php tests/Feature/System/Spec114/OpsFailuresViewTest.php tests/Feature/System/Spec114/OpsStuckViewTest.php`
- `export PATH="/bin:/usr/bin:/usr/local/bin:$PATH" && vendor/bin/sail artisan test --compact tests/Browser/OnboardingDraftRefreshTest.php`
- `export PATH="/bin:/usr/bin:/usr/local/bin:$PATH" && vendor/bin/sail bin pint --dirty --format agent`

## Notes
- no schema or route renames
- Filament / Livewire surface behavior stays within the existing admin and tenant panels
- OperationRunResource remains excluded from global search

Co-authored-by: Ahmed Darrazi <ahmed.darrazi@live.de>
Reviewed-on: #202
2026-03-30 22:51:06 +00:00

153 lines
5.7 KiB
YAML

openapi: 3.1.0
info:
title: Operations Naming Consolidation Surface Contract
version: 1.0.0
summary: Visible naming contract for existing OperationRun references outside Spec 170.
paths:
/admin/operations:
get:
operationId: listAdminOperations
summary: Display the canonical admin-plane operations collection.
responses:
'200':
description: Admin operations surface rendered successfully.
'403':
description: Authenticated member lacks the required capability within an established scope.
'404':
description: Wrong plane, missing scope membership, or inaccessible workspace/tenant context.
x-visible-naming:
collectionLabel: Operations
collectionActionLabels:
- Open operations
- View in Operations
forbiddenCollectionLabels:
- Runs
- Open all runs
summaryPluralNoun: operations
unchangedBehavior:
- Existing route helper remains admin.operations.index.
- Existing workspace and tenant entitlement rules remain authoritative.
/admin/operations/{run}:
get:
operationId: viewAdminOperation
summary: Display one existing operation record in the admin plane.
parameters:
- name: run
in: path
required: true
schema:
type: integer
responses:
'200':
description: Admin operation detail rendered successfully.
'403':
description: Authenticated member lacks the required capability within an established scope.
'404':
description: Wrong plane, missing scope membership, or inaccessible operation record.
x-visible-naming:
singularLabel: Operation
actionLabel: Open operation
identifierPattern: Operation #{id}
identifierFieldLabel: Operation ID
forbiddenVisibleLabels:
- View run
- Run #{id}
- Run ID
unchangedBehavior:
- Existing route helper remains admin.operations.view.
- Existing authorization and scope checks remain unchanged.
/system/ops/runs/{run}:
get:
operationId: viewSystemOperation
summary: Display one existing operation record in the system plane when a shared surface targets platform detail.
parameters:
- name: run
in: path
required: true
schema:
type: integer
responses:
'200':
description: System operation detail rendered successfully.
'403':
description: Authenticated platform user lacks the required capability.
'404':
description: Wrong plane or inaccessible operation record.
x-visible-naming:
singularLabel: Operation
actionLabel: Open operation
identifierPattern: Operation #{id}
identifierFieldLabel: Operation ID
forbiddenVisibleLabels:
- View run
- Run #{id}
- Run ID
unchangedBehavior:
- System-plane interaction semantics remain owned by Spec 170.
- Existing route helper remains the system run-detail helper.
/admin/onboarding:
get:
operationId: renderWorkspaceOnboardingOperationReports
summary: Render workspace-context onboarding and verification surfaces that may link to an existing operation.
responses:
'200':
description: Workspace onboarding surface rendered successfully.
'403':
description: Authenticated workspace member lacks the required capability within an established scope.
'404':
description: Wrong plane, missing workspace membership, or inaccessible onboarding context.
x-embedded-surface-rules:
workflowActionsMayRemain:
- Start verification
requiredRecordActionLabel: Open operation
requiredIdentifierLabels:
- Operation ID
- Operation #{id}
forbiddenRecordLabels:
- View run
- Run ID
- Run #{id}
notes:
- Task verbs may remain task-oriented when the UI starts new work rather than naming an existing record.
- Existing onboarding routing and workspace entitlement semantics remain unchanged.
/admin/t/{tenant}:
get:
operationId: renderTenantEmbeddedOperationReports
summary: Render tenant-context embedded verification surfaces that may link to an existing operation.
parameters:
- name: tenant
in: path
required: true
schema:
type: string
responses:
'200':
description: Tenant-context surface rendered successfully.
'403':
description: Authenticated tenant member lacks the required capability.
'404':
description: Wrong plane, missing scope membership, or inaccessible tenant context.
x-embedded-surface-rules:
workflowActionsMayRemain:
- Start verification
requiredRecordActionLabel: Open operation
requiredIdentifierLabels:
- Operation ID
- Operation #{id}
forbiddenRecordLabels:
- View run
- Run ID
- Run #{id}
notes:
- Task verbs may remain task-oriented when the UI starts new work rather than naming an existing record.
x-summary-copy-rules:
appliesTo:
- workspace overviews
- admin monitoring lifecycle helper banners
- tenant recent-operations widgets
- onboarding bootstrap summaries
requiredPluralNoun: operations
forbiddenPluralNoun: runs
notes:
- Existing counts, route targets, and status semantics remain unchanged.
- Collection drill-ins may use panel-appropriate collection wording such as View in Operations.