---
id: ATS-PFM-MTD-004
scope: CAP-PFM-MTD-004
product_area: platform
module: metadata
revision: 2
status: proposed
source_sha:
  services-platform: ad3f6a6582843008ed0f5a17b131878d15829af1
  react-console: baf6dae382d6f41dce976c7f848667ccc37e076f
scenarios:
  - id: ATS-PFM-MTD-004-01
    title: Standard relabelling rejects additional changes
    level: api
    proves:
      - BR-CAP-PFM-MTD-004-01
    preconditions: A registered contact field exists.
    steps:
      - do: 'Try overriding its label together with visibility, requirement, type or display changes.'
        provenance: test
        source: >-
          services-platform:modules/metadata/tests/e2e/standard-field-label-overrides.e2e.spec.js#refuses a
          body making the field required as 400
    expected: Each request is rejected.
    negative: true
    data_needs: A registered contact field exists.
    bound_to:
      - >-
        services-platform:modules/metadata/tests/e2e/standard-field-label-overrides.e2e.spec.js#refuses a body
        hiding the field as 400
      - >-
        services-platform:modules/metadata/tests/e2e/standard-field-label-overrides.e2e.spec.js#refuses a body
        making the field required as 400
      - >-
        services-platform:modules/metadata/tests/e2e/standard-field-label-overrides.e2e.spec.js#refuses a body
        changing the field's data type as 400
      - >-
        services-platform:modules/metadata/tests/e2e/standard-field-label-overrides.e2e.spec.js#refuses a body
        changing the field's display as 400
      - TST-PFM-MTD-108
    provenance: test
    source: >-
      services-platform:modules/metadata/tests/e2e/standard-field-label-overrides.e2e.spec.js#refuses a body
      making the field required as 400
    category: validation
    assertions:
      - expect: Each request is rejected.
        provenance: test
        source: >-
          services-platform:modules/metadata/tests/e2e/standard-field-label-overrides.e2e.spec.js#refuses a
          body making the field required as 400
  - id: ATS-PFM-MTD-004-02
    title: Retired and nonstandard fields reject overrides
    level: api
    proves:
      - BR-CAP-PFM-MTD-004-02
    preconditions: A labelled standard field is subsequently retired.
    steps:
      - do: 'Try relabelling custom, undescribed, missing and retired keys.'
        provenance: test
        source: >-
          services-platform:modules/metadata/tests/integration/services/persistence/standard-field-label-overrides.integration.spec.js#refuses
          a new override on the retired field as a 404
    expected: Unavailable standard targets return not found and the existing retired-field override survives.
    negative: true
    data_needs: A labelled standard field is subsequently retired.
    bound_to:
      - >-
        services-platform:modules/metadata/tests/integration/services/persistence/standard-field-label-overrides.integration.spec.js#refuses
        a custom field key, which is no standard field
      - >-
        services-platform:modules/metadata/tests/integration/services/persistence/standard-field-label-overrides.integration.spec.js#refuses
        a column of the table the owner never described
      - >-
        services-platform:modules/metadata/tests/integration/services/persistence/standard-field-label-overrides.integration.spec.js#refuses
        a new override on the retired field as a 404
      - >-
        services-platform:modules/metadata/tests/integration/services/persistence/standard-field-label-overrides.integration.spec.js#leaves
        the override the tenant already had in place
      - TST-PFM-MTD-124
    provenance: test
    source: >-
      services-platform:modules/metadata/tests/integration/services/persistence/standard-field-label-overrides.integration.spec.js#refuses
      a new override on the retired field as a 404
    category: edge
    assertions:
      - expect: Unavailable standard targets return not found and the existing retired-field override survives.
        provenance: test
        source: >-
          services-platform:modules/metadata/tests/integration/services/persistence/standard-field-label-overrides.integration.spec.js#refuses
          a new override on the retired field as a 404
  - id: ATS-PFM-MTD-004-03
    title: Labels stay within their bounds
    level: api
    proves:
      - BR-CAP-PFM-MTD-004-03
    preconditions: Override creation is available.
    steps:
      - do: 'Submit empty, whitespace, maximum-length and oversized labels.'
        provenance: test
        source: >-
          services-platform:modules/metadata/tests/integration/services/persistence/standard-field-label-overrides.integration.spec.js#refuses
          a label one character longer than the longest allowed
    expected: 'Blank and oversized labels are rejected, while the exact maximum is accepted.'
    negative: true
    data_needs: Override creation is available.
    bound_to:
      - >-
        services-platform:modules/metadata/tests/integration/services/persistence/standard-field-label-overrides.integration.spec.js#refuses
        a label of nothing but spaces
      - >-
        services-platform:modules/metadata/tests/integration/services/persistence/standard-field-label-overrides.integration.spec.js#accepts
        a label of exactly the longest allowed
      - >-
        services-platform:modules/metadata/tests/integration/services/persistence/standard-field-label-overrides.integration.spec.js#refuses
        a label one character longer than the longest allowed
      - TST-PFM-MTD-124
    provenance: test
    source: >-
      services-platform:modules/metadata/tests/integration/services/persistence/standard-field-label-overrides.integration.spec.js#refuses
      a label one character longer than the longest allowed
    category: boundary
    assertions:
      - expect: 'Blank and oversized labels are rejected, while the exact maximum is accepted.'
        provenance: test
        source: >-
          services-platform:modules/metadata/tests/integration/services/persistence/standard-field-label-overrides.integration.spec.js#refuses
          a label one character longer than the longest allowed
  - id: ATS-PFM-MTD-004-04
    title: Each workspace retains its own terminology
    level: api
    proves:
      - BR-CAP-PFM-MTD-004-04
      - INV-DOM-PFM-MTD-001-05
    preconditions: Two workspaces can describe the same type.
    steps:
      - do: Set independent labels and inspect both descriptions and the original registration.
        provenance: test
        source: >-
          services-platform:modules/metadata/tests/e2e/standard-field-label-overrides.e2e.spec.js#shows the
          other tenant the owner's label on the same field
    expected: Each local view remains independent and the owning declaration is unchanged.
    negative: false
    data_needs: Two workspaces can describe the same type.
    bound_to:
      - >-
        services-platform:modules/metadata/tests/e2e/standard-field-label-overrides.e2e.spec.js#shows the
        other tenant the owner's label on the same field
      - >-
        services-platform:modules/metadata/tests/integration/services/persistence/standard-field-label-overrides.integration.spec.js#never
        touches the registered field it overrides
      - >-
        services-platform:modules/metadata/tests/integration/services/persistence/standard-field-label-overrides.integration.spec.js#leaves
        the first tenant's label in place when the other tenant sets its own
      - TST-PFM-MTD-108
      - TST-PFM-MTD-124
    provenance: test
    source: >-
      services-platform:modules/metadata/tests/e2e/standard-field-label-overrides.e2e.spec.js#shows the other
      tenant the owner's label on the same field
    category: invariant
    assertions:
      - expect: Each local view remains independent and the owning declaration is unchanged.
        provenance: test
        source: >-
          services-platform:modules/metadata/tests/e2e/standard-field-label-overrides.e2e.spec.js#shows the
          other tenant the owner's label on the same field
  - id: ATS-PFM-MTD-004-05
    title: Removing an absent override reports no change
    level: api
    proves:
      - BR-CAP-PFM-MTD-004-05
    preconditions: A live standard field lacks a local override.
    steps:
      - do: Request removal where no label override is stored.
        provenance: test
        source: >-
          services-platform:modules/metadata/tests/e2e/standard-field-label-overrides.e2e.spec.js#answers
          removed false for a field the tenant never overrode
    expected: The response returns the owner label and reports no removal.
    negative: false
    data_needs: A live standard field lacks a local override.
    bound_to:
      - >-
        services-platform:modules/metadata/tests/e2e/standard-field-label-overrides.e2e.spec.js#answers
        removed false for a field the tenant never overrode
      - TST-PFM-MTD-108
    provenance: test
    source: >-
      services-platform:modules/metadata/tests/e2e/standard-field-label-overrides.e2e.spec.js#answers removed
      false for a field the tenant never overrode
    category: transition
    assertions:
      - expect: The response returns the owner label and reports no removal.
        provenance: test
        source: >-
          services-platform:modules/metadata/tests/e2e/standard-field-label-overrides.e2e.spec.js#answers
          removed false for a field the tenant never overrode
  - id: ATS-PFM-MTD-004-06
    title: A replacement label retains authorship
    level: api
    proves:
      - BR-CAP-PFM-MTD-004-06
    preconditions: An override already exists.
    steps:
      - do: Set another label.
        provenance: test
        source: >-
          services-platform:modules/metadata/tests/integration/services/persistence/standard-field-label-overrides.integration.spec.js#bumps
          the version on a second set, keeping the creator
    expected: 'The label changes, the creator stays and the version advances.'
    negative: false
    data_needs: An override already exists.
    bound_to:
      - >-
        services-platform:modules/metadata/tests/integration/services/persistence/standard-field-label-overrides.integration.spec.js#bumps
        the version on a second set, keeping the creator
      - TST-PFM-MTD-124
    provenance: test
    source: >-
      services-platform:modules/metadata/tests/integration/services/persistence/standard-field-label-overrides.integration.spec.js#bumps
      the version on a second set, keeping the creator
    category: rule
    assertions:
      - expect: 'The label changes, the creator stays and the version advances.'
        provenance: test
        source: >-
          services-platform:modules/metadata/tests/integration/services/persistence/standard-field-label-overrides.integration.spec.js#bumps
          the version on a second set, keeping the creator
  - id: ATS-PFM-MTD-004-07
    title: Clearing a local label updates the description
    category: interaction
    level: api
    exercises:
      - CAP-PFM-MTD-004
      - CAP-PFM-MTD-002
    proves:
      - BR-CAP-PFM-MTD-004-04
      - BR-CAP-PFM-MTD-004-05
      - BR-CAP-PFM-MTD-002-01
    preconditions: A standard field has a workspace override.
    steps:
      - do: 'Read its description, remove the override and read it again from two workspaces.'
        provenance: proposed
        source: &ref_0
          - >-
            services-platform:modules/metadata/tests/e2e/standard-field-label-overrides.e2e.spec.js#shows the
            other tenant the owner's label on the same field
          - >-
            services-platform:modules/metadata/tests/e2e/standard-field-label-overrides.e2e.spec.js#answers
            removed false for a field the tenant never overrode
          - >-
            services-platform:modules/metadata/tests/integration/services/describe/describe-object.integration.spec.js#lists
            every standard field before every custom one, with nothing interleaved
    expected: Compare original and displayed labels before and after removal.
    negative: false
    data_needs: A standard field has a workspace override.
    bound_to: []
    provenance: proposed
    source: *ref_0
    assertions:
      - expect: Compare original and displayed labels before and after removal.
        provenance: proposed
        source: *ref_0
evidence:
  - >-
    services-platform at ad3f6a6582843008ed0f5a17b131878d15829af1: the label override specs named in each
    scenario.
  - >-
    Codex testing back-fill: pinned capability, domain object, state model and workflow obligations reviewed;
    existing bound test files and exact case titles checked.
coverage:
  rule: covered
  transition: covered
  validation: covered
  permission: 'gap: FND-PFM-MTD-066'
  edge: covered
  failure: 'gap: FND-PFM-MTD-066'
  boundary: covered
  concurrency: 'gap: FND-PFM-MTD-066'
  invariant: covered
  interaction: covered
coverage_obligations:
  - rule: BR-CAP-PFM-MTD-004-01
    scenarios:
      - ATS-PFM-MTD-004-01
    finding: null
    provenance: documented
    source: >-
      specs/platform/metadata/planning/capabilities/CAP-PFM-MTD-004-call-a-standard-field-by-the-workspace-s-own-name.md
  - rule: BR-CAP-PFM-MTD-004-02
    scenarios:
      - ATS-PFM-MTD-004-02
    finding: null
    provenance: documented
    source: >-
      specs/platform/metadata/planning/capabilities/CAP-PFM-MTD-004-call-a-standard-field-by-the-workspace-s-own-name.md
  - rule: BR-CAP-PFM-MTD-004-03
    scenarios:
      - ATS-PFM-MTD-004-03
    finding: null
    provenance: documented
    source: >-
      specs/platform/metadata/planning/capabilities/CAP-PFM-MTD-004-call-a-standard-field-by-the-workspace-s-own-name.md
  - rule: BR-CAP-PFM-MTD-004-04
    scenarios:
      - ATS-PFM-MTD-004-04
      - ATS-PFM-MTD-004-07
    finding: null
    provenance: documented
    source: >-
      specs/platform/metadata/planning/capabilities/CAP-PFM-MTD-004-call-a-standard-field-by-the-workspace-s-own-name.md
  - rule: BR-CAP-PFM-MTD-004-05
    scenarios:
      - ATS-PFM-MTD-004-05
      - ATS-PFM-MTD-004-07
    finding: null
    provenance: documented
    source: >-
      specs/platform/metadata/planning/capabilities/CAP-PFM-MTD-004-call-a-standard-field-by-the-workspace-s-own-name.md
  - rule: BR-CAP-PFM-MTD-004-06
    scenarios:
      - ATS-PFM-MTD-004-06
    finding: null
    provenance: documented
    source: >-
      specs/platform/metadata/planning/capabilities/CAP-PFM-MTD-004-call-a-standard-field-by-the-workspace-s-own-name.md
interactions:
  - with: CAP-PFM-MTD-002
    scenarios:
      - ATS-PFM-MTD-004-07
    finding: null
    provenance: proposed
    source: >-
      specs/platform/metadata/planning/capabilities/CAP-PFM-MTD-004-call-a-standard-field-by-the-workspace-s-own-name.md
---

# Use Workspace Labels for Standard Fields: Capability Test Specification

## Coverage

- Obligation 01: 1 scenario cite this obligation.
- Obligation 02: 1 scenario cite this obligation.
- Obligation 03: 1 scenario cite this obligation.
- Obligation 04: 2 scenarios cite this obligation.
- Obligation 05: 2 scenarios cite this obligation.
- Obligation 06: 1 scenario cite this obligation.

Category coverage identifies the kind of proof present. Detailed transition, permission and invariant obligations and unbound proposals remain in the coverage finding until their individual cases are accounted for.

## Interactions With Related Capabilities

The description reflects the removal without changing the owning declaration. The structured interaction rows identify the related capabilities exercised and any remaining gap. Cross-capability workflow seams remain subject to the detailed coverage audit.
