TenantAtlas/specs/061-provider-foundation/quickstart.md
ahmido a0ed9e24c5 feat: unify provider connection actions and notifications (#73)
## Summary
- introduce the Provider Connection Filament resource (list/create/edit) with DB-only controls, grouped action dropdowns, and badge-driven status/health rendering
- wire up the provider foundation stack (migrations, models, policies, providers, operations, badges, and audits) plus the required spec docs/checklists
- standardize Inventory Sync notifications so the job no longer writes its own DB rows; terminal notifications now flow exclusively through OperationRunCompleted while the start surface still shows the queued toast

## Testing
- ./vendor/bin/sail php ./vendor/bin/pint --dirty
- ./vendor/bin/sail artisan test tests/Unit/Badges/ProviderConnectionBadgesTest.php
- ./vendor/bin/sail artisan test tests/Feature/ProviderConnections tests/Feature/Filament/ProviderConnectionsDbOnlyTest.php
- ./vendor/bin/sail artisan test tests/Feature/Inventory/RunInventorySyncJobTest.php tests/Feature/Inventory/InventorySyncStartSurfaceTest.php

Co-authored-by: Ahmed Darrazi <ahmeddarrazi@MacBookPro.fritz.box>
Reviewed-on: #73
2026-01-25 01:01:37 +00:00

39 lines
1.6 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Quickstart: Provider Foundation v1
**Branch**: `061-provider-foundation`
**Date**: 2026-01-24
**Spec**: `/Users/ahmeddarrazi/Documents/projects/TenantAtlas/specs/061-provider-foundation/spec.md`
## Local setup
1. Start the app stack:
- `./vendor/bin/sail up -d`
2. Install dependencies (if needed):
- `./vendor/bin/sail composer install`
3. Run migrations:
- `./vendor/bin/sail artisan migrate`
## Manual QA (once implemented)
1. Select a Suite Tenant in the admin UI.
2. Create a Microsoft Provider Connection:
- Enter `entra_tenant_id` (GUID) and `display_name`
- Mark it as the default connection (or ensure exactly one default exists)
3. Attach credentials (Owner/Manager only):
- Enter `client_id` + `client_secret`
- Verify secrets are never shown again after saving
4. Run “Check connection” (Owner/Manager/Operator):
- Verify an `OperationRun` is created and visible in Monitoring → Operations
- Verify failures show a stable reason code + short sanitized message (no tokens/secrets/emails)
5. Start inventory collection and compliance snapshot:
- Re-start the same operation while its running → returns the existing active run
- Start a different operation while a run is active for the same scope → blocked as “scope busy” with a link to the active run
6. Confirm DB-only render:
- Provider Connections and Operations pages should load/poll without triggering outbound provider calls.
## Test run (once implemented)
- Run targeted tests:
- `./vendor/bin/sail artisan test tests/Feature`
- `./vendor/bin/sail artisan test tests/Unit`