## Summary Implements feature branch `286-ui-copy-ia-localization-neutralization`. This change set: - aligns chooser, managed-environment landing, dashboard, shell, and workspace context copy to environment-first terminology - neutralizes the bounded policy and baseline helper copy called out by Spec 286 - adds focused feature, guard, and browser coverage plus the complete Spec 286 artifact set - records the discovered `Capture snapshot` modal issue as out-of-scope runtime debt in the Spec 286 close-out notes ## Validation - `export PATH="/bin:/usr/bin:/usr/local/bin:$PATH" && cd apps/platform && ./vendor/bin/sail artisan test --compact tests/Feature/Localization/EnvironmentContextTerminologyTest.php tests/Feature/Filament/EnvironmentContextSurfaceCopyTest.php tests/Feature/Filament/Localization/PolicyInventoryLocalizationTest.php tests/Feature/Guards/EnvironmentCopyNeutralizationGuardTest.php` - `export PATH="/bin:/usr/bin:/usr/local/bin:$PATH" && cd apps/platform && ./vendor/bin/sail artisan test --compact tests/Browser/Spec286EnvironmentCopyNeutralizationSmokeTest.php` - `export PATH="/bin:/usr/bin:/usr/local/bin:$PATH" && cd apps/platform && ./vendor/bin/sail bin pint --dirty --format agent` ## Notes - Target branch: `platform-dev` - Filament remains on v5 with Livewire v4. - Provider registration remains unchanged in `apps/platform/bootstrap/providers.php`. - No new destructive actions, asset strategy changes, or global-search posture changes are introduced in this slice. Co-authored-by: Ahmed Darrazi <ahmed.darrazi@live.de> Reviewed-on: #345
181 lines
5.2 KiB
YAML
181 lines
5.2 KiB
YAML
openapi: 3.1.0
|
|
info:
|
|
title: UI Copy, IA & Localization Neutralization Logical Contract
|
|
version: 0.1.0
|
|
summary: Logical view-model contract for environment-first operator copy on bounded workspace-first admin surfaces.
|
|
paths:
|
|
/admin/choose-tenant:
|
|
get:
|
|
summary: Environment chooser surface
|
|
operationId: getEnvironmentChooserSurface
|
|
responses:
|
|
'200':
|
|
description: Environment-first chooser contract
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/EnvironmentChooserSurface'
|
|
/admin/workspaces/{workspace}/managed-tenants:
|
|
get:
|
|
summary: Managed environments landing surface
|
|
operationId: getManagedEnvironmentLandingSurface
|
|
parameters:
|
|
- $ref: '#/components/parameters/Workspace'
|
|
responses:
|
|
'200':
|
|
description: Managed-environment registry contract
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ManagedEnvironmentLandingSurface'
|
|
/admin/workspaces/{workspace}/environments/{environment}:
|
|
get:
|
|
summary: Environment dashboard surface
|
|
operationId: getEnvironmentDashboardSurface
|
|
parameters:
|
|
- $ref: '#/components/parameters/Workspace'
|
|
- $ref: '#/components/parameters/Environment'
|
|
responses:
|
|
'200':
|
|
description: Environment dashboard heading and chip contract
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/EnvironmentDashboardSurface'
|
|
/__logical/shell/context-bar:
|
|
get:
|
|
summary: Shared shell/context-bar copy surface
|
|
operationId: getEnvironmentShellSurface
|
|
responses:
|
|
'200':
|
|
description: Environment-first shell label contract
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/EnvironmentShellSurface'
|
|
/__logical/policy/provider-helper-copy:
|
|
get:
|
|
summary: Pinned provider-helper copy surfaces
|
|
operationId: getPolicyProviderHelperSurface
|
|
responses:
|
|
'200':
|
|
description: Policy detail, versions restore, and baseline-compare helper-copy contract
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/PolicyProviderHelperSurface'
|
|
components:
|
|
parameters:
|
|
Workspace:
|
|
name: workspace
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
Environment:
|
|
name: environment
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
schemas:
|
|
EnvironmentChooserSurface:
|
|
type: object
|
|
required:
|
|
- title
|
|
- primaryActionLabel
|
|
- emptyStateLabel
|
|
- searchPlaceholder
|
|
properties:
|
|
title:
|
|
type: string
|
|
enum:
|
|
- Choose environment
|
|
- Umgebung auswählen
|
|
primaryActionLabel:
|
|
type: string
|
|
emptyStateLabel:
|
|
type: string
|
|
searchPlaceholder:
|
|
type: string
|
|
providerOwnedLabelsOutOfScope:
|
|
type: array
|
|
items:
|
|
type: string
|
|
default:
|
|
- Sign in with Microsoft
|
|
ManagedEnvironmentLandingSurface:
|
|
type: object
|
|
required:
|
|
- title
|
|
- openActionLabel
|
|
- registryBackLinkLabel
|
|
properties:
|
|
title:
|
|
type: string
|
|
enum:
|
|
- Managed environments
|
|
- Verwaltete Umgebungen
|
|
openActionLabel:
|
|
type: string
|
|
registryBackLinkLabel:
|
|
type: string
|
|
rowContextField:
|
|
type: string
|
|
enum:
|
|
- environment_label
|
|
EnvironmentDashboardSurface:
|
|
type: object
|
|
required:
|
|
- title
|
|
- scopeLabel
|
|
properties:
|
|
title:
|
|
type: string
|
|
enum:
|
|
- Environment dashboard
|
|
- Umgebungs-Dashboard
|
|
scopeLabel:
|
|
type: string
|
|
returnLabel:
|
|
type: string
|
|
helperCopy:
|
|
type: object
|
|
additionalProperties:
|
|
type: string
|
|
description: Neutral default copy for bounded restore/capture/baseline-compare entry surfaces. Provider detail remains secondary.
|
|
EnvironmentShellSurface:
|
|
type: object
|
|
required:
|
|
- scopeLabel
|
|
- returnLabel
|
|
properties:
|
|
scopeLabel:
|
|
type: string
|
|
returnLabel:
|
|
type: string
|
|
duplicateScopeSummaryForbidden:
|
|
type: boolean
|
|
const: true
|
|
PolicyProviderHelperSurface:
|
|
type: object
|
|
required:
|
|
- policyDetailSyncDescription
|
|
- viewPolicyCaptureSubheading
|
|
- versionsRestoreLabel
|
|
- versionsRestoreHeading
|
|
- baselineCompareRbacSummaryHeading
|
|
properties:
|
|
policyDetailSyncDescription:
|
|
type: string
|
|
viewPolicyCaptureSubheading:
|
|
type: string
|
|
versionsRestoreLabel:
|
|
type: string
|
|
versionsRestoreHeading:
|
|
type: string
|
|
baselineCompareRbacSummaryHeading:
|
|
type: string
|
|
providerDetailSecondaryOnly:
|
|
type: boolean
|
|
const: true |