Automated giteaflow PR from branch 429-exchange-teams-source-surface-catalog-adapter-strategy. Co-authored-by: Ahmed Darrazi <ahmed.darrazi@live.de> Reviewed-on: #496
146 lines
14 KiB
Markdown
146 lines
14 KiB
Markdown
# Tasks: Spec 429 - Exchange/Teams Source Surface Catalog & Adapter Strategy
|
|
|
|
**Input**: Design documents from `specs/429-exchange-teams-source-surface-catalog-adapter-strategy/`
|
|
**Prerequisites**: `spec.md`, `plan.md`, `checklists/requirements.md`
|
|
**Implementation Mode**: catalog/strategy only. Do not edit application runtime code.
|
|
|
|
## Test Governance Checklist
|
|
|
|
- [x] Lane assignment is named as docs/spec/catalog validation only.
|
|
- [x] New or changed tests are not added unless optional static JSON validation is introduced.
|
|
- [x] Shared helpers, factories, seeds, fixtures, and context defaults remain unchanged.
|
|
- [x] Planned validation commands cover the no-runtime catalog closure without pulling in unrelated lane cost.
|
|
- [x] Browser proof is explicitly `N/A - no rendered UI surface changed`.
|
|
- [x] Human Product Sanity and Product Surface implementation-report close-out are `N/A - no rendered UI surface changed`.
|
|
- [x] Any future runtime adapter, capture, evidence, or UI work is escalated to Spec 430 or later.
|
|
|
|
## Phase 1: Preflight
|
|
|
|
**Goal**: Prove the work starts from safe repo state and completed specs stay read-only.
|
|
|
|
- [x] T001 Capture current branch, HEAD, and `git status --short` in `specs/429-exchange-teams-source-surface-catalog-adapter-strategy/implementation-report.md`.
|
|
- [x] T002 Confirm completed Specs 414, 415, 417, 419, 420, 422, 426, and 427 are read-only context and are not edited.
|
|
- [x] T003 Confirm Spec 428 is a prepared fail-safe/no-op package and record why it is non-blocking for this catalog-only spec.
|
|
- [x] T004 Confirm the active implementation diff is limited to `specs/429-exchange-teams-source-surface-catalog-adapter-strategy/`.
|
|
- [x] T005 Confirm no files under `apps/platform/app/`, `apps/platform/config/`, `apps/platform/database/`, `apps/platform/resources/`, `apps/platform/routes/`, or `apps/platform/tests/` are changed.
|
|
- [x] T006 Confirm no runtime adapter, provider call, evidence, OperationRun, UI, report, Review Pack/PDF output, restore/apply, certification, customer claim, or `tenant_id` work is planned.
|
|
|
|
## Phase 2: Catalog Artifact Setup
|
|
|
|
**Goal**: Create the static catalog artifact surface for the documentation-only implementation.
|
|
|
|
- [x] T007 Create `specs/429-exchange-teams-source-surface-catalog-adapter-strategy/catalog/`.
|
|
- [x] T008 Create `specs/429-exchange-teams-source-surface-catalog-adapter-strategy/catalog/exchange-source-surface-catalog.md`.
|
|
- [x] T009 Create `specs/429-exchange-teams-source-surface-catalog-adapter-strategy/catalog/teams-source-surface-catalog.md`.
|
|
- [x] T010 Create `specs/429-exchange-teams-source-surface-catalog-adapter-strategy/catalog/exchange-teams-target-type-matrix.md`.
|
|
- [x] T011 Create `specs/429-exchange-teams-source-surface-catalog-adapter-strategy/catalog/cohort-plan.md`.
|
|
- [x] T012 Create `specs/429-exchange-teams-source-surface-catalog-adapter-strategy/catalog/adapter-strategy.md`.
|
|
|
|
## Phase 3: Source Reference Collection
|
|
|
|
**Goal**: Ground catalog decisions in official Microsoft documentation and current repo truth.
|
|
|
|
- [x] T013 [P] Record official Exchange Online PowerShell, app-only auth, cmdlet module, and Exchange Online Admin API references in `specs/429-exchange-teams-source-surface-catalog-adapter-strategy/catalog/exchange-source-surface-catalog.md`.
|
|
- [x] T014 [P] Record official Teams PowerShell, Teams policy, external/guest access, and Microsoft Graph Teams overview references in `specs/429-exchange-teams-source-surface-catalog-adapter-strategy/catalog/teams-source-surface-catalog.md`.
|
|
- [x] T015 [P] Record repo source evidence from `apps/platform/app/Services/TenantConfiguration/ResourceTypeRegistry.php`, `SupportedScopeResolver.php`, `CoverageSourceContractResolver.php`, and completed Specs 419, 420, 422, 426, 427, and 428 in `specs/429-exchange-teams-source-surface-catalog-adapter-strategy/catalog/exchange-teams-target-type-matrix.md`.
|
|
- [x] T016 [P] Record source authority rules and forbidden source-authority rules in `specs/429-exchange-teams-source-surface-catalog-adapter-strategy/catalog/adapter-strategy.md`.
|
|
|
|
## Phase 4: Exchange Source Surface Catalog
|
|
|
|
**Goal**: Catalog Exchange administration/configuration families without implementing adapters.
|
|
|
|
- [x] T017 [US1] Catalog mail flow and transport families in `specs/429-exchange-teams-source-surface-catalog-adapter-strategy/catalog/exchange-source-surface-catalog.md`.
|
|
- [x] T018 [US1] Catalog domains and connector families in `specs/429-exchange-teams-source-surface-catalog-adapter-strategy/catalog/exchange-source-surface-catalog.md`.
|
|
- [x] T019 [US1] Catalog organization, sharing, relationship, role assignment, mailbox plan, address book, and admin audit families in `specs/429-exchange-teams-source-surface-catalog-adapter-strategy/catalog/exchange-source-surface-catalog.md`.
|
|
- [x] T020 [US1] Catalog protection/hygiene families and classify Defender/Purview boundaries in `specs/429-exchange-teams-source-surface-catalog-adapter-strategy/catalog/exchange-source-surface-catalog.md`.
|
|
- [x] T021 [US1] Catalog recipient/mailbox boundary families and document per-mailbox explosion risk in `specs/429-exchange-teams-source-surface-catalog-adapter-strategy/catalog/exchange-source-surface-catalog.md`.
|
|
- [x] T022 [US1] For each Exchange family, record source surface class, adapter pattern, expected object shape, identity risk, permission risk, response-shape risk, redaction risk, customer/MSP value, and blocker reason in `specs/429-exchange-teams-source-surface-catalog-adapter-strategy/catalog/exchange-teams-target-type-matrix.md`.
|
|
|
|
## Phase 5: Teams Source Surface Catalog
|
|
|
|
**Goal**: Catalog Teams policy/configuration families without implementing adapters.
|
|
|
|
- [x] T023 [US1] Catalog app governance families in `specs/429-exchange-teams-source-surface-catalog-adapter-strategy/catalog/teams-source-surface-catalog.md`.
|
|
- [x] T024 [US1] Catalog meetings/events families in `specs/429-exchange-teams-source-surface-catalog-adapter-strategy/catalog/teams-source-surface-catalog.md`.
|
|
- [x] T025 [US1] Catalog messaging/channels families in `specs/429-exchange-teams-source-surface-catalog-adapter-strategy/catalog/teams-source-surface-catalog.md`.
|
|
- [x] T026 [US1] Catalog calling/voice families and license/complexity risks in `specs/429-exchange-teams-source-surface-catalog-adapter-strategy/catalog/teams-source-surface-catalog.md`.
|
|
- [x] T027 [US1] Catalog external/guest access families in `specs/429-exchange-teams-source-surface-catalog-adapter-strategy/catalog/teams-source-surface-catalog.md`.
|
|
- [x] T028 [US1] Catalog files/storage/integration boundaries and classify SharePoint/OneDrive overlap in `specs/429-exchange-teams-source-surface-catalog-adapter-strategy/catalog/teams-source-surface-catalog.md`.
|
|
- [x] T029 [US1] For each Teams family, record source surface class, adapter pattern, expected object shape, identity risk, permission risk, response-shape risk, redaction risk, customer/MSP value, and blocker reason in `specs/429-exchange-teams-source-surface-catalog-adapter-strategy/catalog/exchange-teams-target-type-matrix.md`.
|
|
|
|
## Phase 6: Target Type Matrix And Cohorts
|
|
|
|
**Goal**: Make later implementation bounded and reviewable.
|
|
|
|
- [x] T030 [US2] Ensure every row in `specs/429-exchange-teams-source-surface-catalog-adapter-strategy/catalog/exchange-teams-target-type-matrix.md` includes all fields required by FR-429-008.
|
|
- [x] T031 [US2] Validate documentation-only source surface, adapter pattern, status, risk, and complexity values against FR-429-009 through FR-429-013.
|
|
- [x] T032 [US2] Select Cohort 1 in `specs/429-exchange-teams-source-surface-catalog-adapter-strategy/catalog/cohort-plan.md` with both Exchange and Teams represented and roughly 12-20 candidates unless a narrower exception is documented.
|
|
- [x] T033 [US2] Define Cohort 2 in `specs/429-exchange-teams-source-surface-catalog-adapter-strategy/catalog/cohort-plan.md` with reasons each type is not Cohort 1.
|
|
- [x] T034 [US2] Define deferred, unsupported, and unknown backlogs in `specs/429-exchange-teams-source-surface-catalog-adapter-strategy/catalog/cohort-plan.md`.
|
|
- [x] T035 [US2] Add target type summary and Cohort 1 matrices to `specs/429-exchange-teams-source-surface-catalog-adapter-strategy/implementation-report.md`.
|
|
|
|
## Phase 7: Adapter Strategy
|
|
|
|
**Goal**: Turn catalog findings into an actionable Spec 430 implementation path.
|
|
|
|
- [x] T036 [US3] Document Graph-native contract path, Graph v1/beta handling, permissions, pagination, identity fields, response shape, redaction, and `GraphClientInterface` compatibility in `specs/429-exchange-teams-source-surface-catalog-adapter-strategy/catalog/adapter-strategy.md`.
|
|
- [x] T037 [US3] Document Exchange Online Admin API path, preview/focused-scope limitation, permissions/RBAC, POST-only behavior, response shape, and non-replacement boundary in `specs/429-exchange-teams-source-surface-catalog-adapter-strategy/catalog/adapter-strategy.md`.
|
|
- [x] T038 [US3] Document Exchange PowerShell adapter path, app-only/certificate auth feasibility, tenant consent, execution environment, module dependencies, throttling, error normalization, response serialization, redaction, and fake command-runner testability in `specs/429-exchange-teams-source-surface-catalog-adapter-strategy/catalog/adapter-strategy.md`.
|
|
- [x] T039 [US3] Document Teams PowerShell adapter path, policy/cmdlet boundaries, permission risks, execution environment, response serialization, redaction, and fake command-runner testability in `specs/429-exchange-teams-source-surface-catalog-adapter-strategy/catalog/adapter-strategy.md`.
|
|
- [x] T040 [US3] Document Security & Compliance/Purview, Defender, SharePoint/OneDrive, unsupported/manual, and unknown follow-up paths in `specs/429-exchange-teams-source-surface-catalog-adapter-strategy/catalog/adapter-strategy.md`.
|
|
- [x] T041 [US3] Define the first Spec 430 implementation slice, non-goals, stop conditions, and validation strategy in `specs/429-exchange-teams-source-surface-catalog-adapter-strategy/catalog/adapter-strategy.md`.
|
|
- [x] T042 [US3] Add adapter strategy matrix to `specs/429-exchange-teams-source-surface-catalog-adapter-strategy/implementation-report.md`.
|
|
|
|
## Phase 8: No Runtime / No Claim Proof
|
|
|
|
**Goal**: Prove the catalog did not become runtime support or product readiness.
|
|
|
|
- [x] T043 Confirm no application services, provider clients, migrations, models, jobs, commands, policies, routes, views, Filament/Livewire UI, tests, or runtime config consumed by the app changed.
|
|
- [x] T044 Confirm no runtime provider call, PowerShell execution, application-side documentation lookup, application-side direct HTTP request, provider SDK bypass, or Microsoft source-fetch code was added.
|
|
- [x] T045 Confirm no `TenantConfigurationResource`, `TenantConfigurationResourceEvidence`, OperationRun, coverage-level, compare/render, certification, restore, report, Review Pack, PDF, customer output, or `tenant_id` change was added.
|
|
- [x] T046 Confirm no claim was added for Exchange evidence readiness, Teams evidence readiness, content-backed Exchange/Teams, comparable/renderable Exchange/Teams, certification, full M365 readiness, customer-ready proof, or restore readiness.
|
|
- [x] T047 Add no-promotion and no-runtime matrices to `specs/429-exchange-teams-source-surface-catalog-adapter-strategy/implementation-report.md`.
|
|
|
|
## Phase 9: Validation And Checklist
|
|
|
|
**Goal**: Close the docs/catalog implementation with reviewable proof.
|
|
|
|
- [x] T048 Run `git diff --check`.
|
|
- [x] T049 Run `git diff --name-only` and confirm changed files are limited to `specs/429-exchange-teams-source-surface-catalog-adapter-strategy/`.
|
|
- [x] T050 Run `git status --short` and record final dirty state in `specs/429-exchange-teams-source-surface-catalog-adapter-strategy/implementation-report.md`.
|
|
- [x] T051 If `catalog/exchange-teams-target-types.json` is added, run `python3 -m json.tool specs/429-exchange-teams-source-surface-catalog-adapter-strategy/catalog/exchange-teams-target-types.json > /dev/null`. N/A - no JSON catalog was added.
|
|
- [x] T052 Review and, if needed, update `specs/429-exchange-teams-source-surface-catalog-adapter-strategy/checklists/requirements.md` after catalog artifacts and the implementation report are complete; record if no checklist changes are needed.
|
|
- [x] T053 Record browser status as `N/A - no rendered UI surface changed` in `specs/429-exchange-teams-source-surface-catalog-adapter-strategy/implementation-report.md`.
|
|
- [x] T054 Record Livewire v4 unchanged, provider registration unchanged under `apps/platform/bootstrap/providers.php`, global search unchanged, destructive/high-impact actions none, asset strategy none, deployment impact none, visible complexity neutral, and no completed-spec rewrite proof in `specs/429-exchange-teams-source-surface-catalog-adapter-strategy/implementation-report.md`.
|
|
|
|
## Dependencies & Execution Order
|
|
|
|
- Phase 1 must complete before any catalog artifact work.
|
|
- Phase 2 creates files required by Phases 3-7.
|
|
- Phase 3 source collection must precede final catalog classifications.
|
|
- Exchange and Teams catalog work in Phases 4 and 5 can run in parallel after Phase 3.
|
|
- Phase 6 depends on enough catalog rows to select Cohort 1 and Cohort 2.
|
|
- Phase 7 depends on target classifications and cohort decisions.
|
|
- Phases 8 and 9 close after catalog and adapter strategy are complete.
|
|
|
|
## Parallel Opportunities
|
|
- T013-T016 can run in parallel after catalog files exist.
|
|
- Exchange family tasks T017-T021 can run in parallel if merge coordination is explicit.
|
|
- Teams family tasks T023-T028 can run in parallel if merge coordination is explicit.
|
|
- No application-code task is parallelizable because no application-code task is allowed.
|
|
|
|
## Stop Conditions
|
|
|
|
Stop and amend or replace this spec if any of the following becomes true:
|
|
|
|
- runtime adapters, provider clients, provider calls, or PowerShell execution are required;
|
|
- application code, migrations, routes, views, tests, jobs, commands, policies, or runtime config need to change;
|
|
- evidence rows, OperationRuns, coverage-level promotion, compare/render, certification, restore, reports, Review Pack/PDF output, or customer claims are required;
|
|
- catalog terms need to become runtime enums/statuses/registries;
|
|
- `tenant_id`, legacy compatibility, fallback readers, dual writes, or Coverage v1 bridges appear;
|
|
- official source research cannot support a safe Cohort 1 decision.
|
|
|
|
## Recommended MVP Scope
|
|
|
|
Complete Phases 1-9 as a single docs/catalog package. Do not split before Cohort 1 and adapter strategy exist, because the value of Spec 429 is the combined map that makes Spec 430 safe.
|