Founder Feedback Plan - Authority Path and Persistent Exposure Model
Date: 2026-02-18 Status: Proposed architecture pivot for review Context: Founder feedback after live implementation walkthrough (Florida, 2026-02-18 10:55:58)
1. Problem Statement
Founder feedback identifies a mental-model mismatch in the current implementation:
- Risk Cluster drill-down should show Authority Paths with execution magnitude and ownership status, not a flattened exposure list.
- Authority Path is the durable object; Exposure is a time-bound issue on that path.
- Exposure requires temporal semantics (at minimum effective start date).
- Chains should function as the Authority Path inventory and drill into path details.
- Findings/Exposure views should be reorganized around cluster -> path -> exposure timeline.
This conflicts with current W1 docs that define Exposure as a non-persistent derived projection and explicitly exclude temporal persistence.
2. Multi-Role Analysis (Team Synthesis)
| Role | Key Conclusion | Architecture Impact |
|---|---|---|
| Architect | The durable investigation anchor must be Authority Path (current chain concept), not Exposure. | Promote path object as primary first-class runtime object for investigation and lifecycle. |
| CSO | CISO workflow is cluster-first, then path review, then issue history on a path. | Replace exposure-first list navigation with path-first drill-down under cluster context. |
| Product Owner | Exposure is an incident/finding over time, not the inventory row itself. | Define Exposure as persistent timeline records with open/close semantics. |
| Developer | Current computed exposure route is insufficient for historical reasoning and lifecycle state. | Add persistent storage, idempotent upsert logic, and lifecycle transitions. |
| Integrator | Path identity must be stable across sync cycles and connector refreshes. | Formalize stable path fingerprint strategy and path versioning rules. |
3. Proposed Concept Model (Revised)
Canonical concepts
-
Workload Executable artifact (Business Rule, Script Include, Scheduled Job, Flow, etc.).
-
Authority Path (external canonical) / Authority Topology (internal alias) Durable execution-authority route:
workload -> identity -> destination -> data_domain. -
Exposure Persistent, time-bound risk state on one Authority Path.
-
Risk Cluster Ephemeral grouping of active exposures and/or active paths by compound condition.
Temporal interpretation
- Path exists with no issues: zero exposures.
- Condition appears (for example owner departed): open Exposure A on that path.
- New condition appears later (for example sensitive domain reach): open Exposure B on same path.
- Risk Cluster groups active exposures across paths at query time.
4. Data Model Delta (Required)
4.1 Authority Path (durable)
Use existing execution_chains foundation, but product-surface as Authority Paths.
Minimum required fields:
path_id(stable deterministic id)composition_hash(normalized full-path hash for mutation/change detection)tenant_idworkload_ididentity_id(nullable for unknown binding)destination_id(nullable)data_domainpath_fingerprint(normalized deterministic hash)current_statesnapshot (execution_30d, ownership_status, egress_category, max_sensitivity)first_seen_atlast_seen_atstatus(active,removed)removed_at(nullable)sync_versioncreated_atupdated_at
4.2 Exposure (persistent)
Add a dedicated exposures collection.
Minimum required fields:
exposure_id(stable deterministic id per path + exposure_type + open interval)tenant_idpath_idexposure_type(maps to canonical finding types)severitystatus(active,resolved,acknowledged,false_positive)effective_from(required)effective_to(nullable)detected_at(first time our system observed the condition)last_evaluated_atresolution_reason(nullable)evidence_refsevidence_completenesssync_version
4.3 Relationship to findings
Keep findings as canonical issue engine for backward compatibility.
Mapping rule:
- A W1 finding for a path condition becomes an exposure record event/state.
- Exposure list and timeline read from
exposures. - Findings page can be retained as legacy diagnostic surface during transition.
- Rules may continue evaluating at entity level initially, but output must be path-bound (thin adapter maps entity condition to affected path set).
4.4 Merged Design Decisions (from both analyses)
- Path granularity
Primary record grain is one path per
(workload_id, identity_id, destination_id)withdata_domainas path metadata. - Exposure/finding transition
Transition model is additive: persistent
exposures+ backward-compatiblefindingsuntil UI/API migration is complete. - Temporal honesty for
effective_fromPhase 1 useseffective_from = detected_atunless historical reconstruction is available. Do not imply exact historical start without evidence. - Path lifecycle
Path disappearance is represented by
status=removedandremoved_at; history remains queryable for investigations and audits.
5. API Contract Delta (Required)
5.1 Cluster-first workflow
-
GET /api/v1/posture/risk-clustersReturns cluster summary built from active exposures and path state. -
GET /api/v1/risk-clusters/:cluster_key/authority-pathsReturns path rows with:- execution magnitude (30d)
- ownership status
- active exposure count
- latest exposure start date
5.2 Path inventory and detail
GET /api/v1/authority-paths(alias from/chainsduring migration)GET /api/v1/authority-paths/:idGET /api/v1/authority-paths/:id/exposuresReturns exposure timeline for the selected path.
5.3 Backward compatibility
- Keep
/api/v1/chainsas alias for one release window. - Keep
/api/v1/exposuresbut redefine as persistent exposure records, not computed projections.
6. UX / Navigation Delta
Target workflow:
- Homepage: Top Risk Clusters.
- Cluster click: Authority Path rows (not exposure rows).
- Row content: execution magnitude + ownership status + active exposures.
- Row expand: compact active exposure summary.
- Detail view: full path detail + exposure timeline.
Navigation adjustments:
- Promote
ChainstoAuthority Pathsin UI copy (route alias preserved). - Keep Findings page as legacy/diagnostic during transition.
- De-emphasize standalone exposure dashboard in default investigation flow.
7. Documentation Change Plan
Docs that require explicit scope update:
-
docs/product/wedges/w1-exposure/scope.mdRemove exclusion of temporal persistence/chains for revised scope. -
docs/product/wedges/w1-exposure/logic.mdAdd exposure lifecycle semantics and path-linked temporal states. -
docs/product/wedges/w1-exposure/ux.mdUpdate primary flow to cluster -> authority path -> exposure timeline. -
docs/architecture/01-data-model.mdAdd persistentExposureentity definition and Authority Path durability semantics. -
docs/architecture/03-database.mdAddexposurescollection schema and indexes. -
docs/architecture/04-api-layer.mdAdd authority-path and exposure timeline endpoints. -
docs/glossary.mdClarify distinction: Authority Path (durable) vs Exposure (time-bound record).
8. Implementation Plan (Phased)
Phase A - Decision lock (1 day)
- Approve concept model pivot and terminology.
- Create ADR: "Exposure Persistence and Authority Path Primacy".
Phase B - Storage and lifecycle foundation (2-3 days)
- Lock storage strategy for paths: adapt existing
execution_chainsvs introduce dedicatedauthority_pathscollection. - Add
exposurescollection and indexes. - Persist Authority Paths with explicit lifecycle (
active/removed) and deterministiccomposition_hash. - Implement exposure upsert/open/resolve lifecycle worker logic (idempotent keys).
- Add path fingerprint stability checks.
Phase C - API transition (2-3 days)
- Add cluster -> authority-path drilldown endpoint.
- Add authority-path detail + exposure timeline endpoints.
- Preserve aliases for old routes.
Phase D - UI transition (2-3 days)
- Convert cluster drilldown table to Authority Path rows.
- Add path detail page with exposure timeline.
- Re-label Chains as Authority Paths (copy-level migration first).
Phase E - Migration and validation (1-2 days)
- Backfill initial exposure records from current active findings.
- Validate open/close behavior across two sync cycles.
- Run founder walkthrough on revised flow.
- Validate
effective_fromsemantics are labeled honestly (detected_atbaseline unless reconstructed).
9. Risks and Mitigations
| Risk | Impact | Mitigation |
|---|---|---|
| Path identity churn due unstable fingerprinting | Exposure history fragmentation | Canonical fingerprint schema + migration utility + regression tests |
| Duplicate exposures from evaluator re-runs | Inflated counts and noisy clusters | Idempotent upsert key: tenant + path + exposure_type + active interval |
| Route and UI transition confusion | User trust loss | Route aliases + progressive relabeling + release note callouts |
| Scope expansion from original W1 | Delivery delay | Mark as W1.1 architecture revision with explicit cutline and staged rollout |
| Misleading exposure start dates | Trust erosion with CISO/founder | Use detected_at baseline initially; upgrade to reconstructed start dates only when evidence supports it |
10. Acceptance Criteria for This Pivot
- Clicking a Risk Cluster shows Authority Paths as primary rows.
- Each row shows execution magnitude and ownership status before detail click.
- Path detail displays exposure timeline with
effective_fromand status changes. - Exposure can be opened/resolved on the same path across time without losing history.
- Cluster aggregation is computed from active exposures and current path state.
- Removed paths and resolved exposures remain historically queryable.
11. Open Questions for Decision Lock
- If
RUNS_AStarget changes, is that a new path identity or a mutation event on existing path lineage? - Should clusters remain computed-only in W1.1, or do we also persist cluster snapshots for temporal reporting?
- What is the user-facing canonical term in product UI:
Authority Pathor shortenedAuth Path? - What is the exact auto-resolve policy per exposure type (for example ownership restored, egress removed, sensitivity downgraded)?
- Should path persistence be implemented by evolving
execution_chains, or by introducing a new canonicalauthority_pathscollection?
12. Recommendation
Adopt this as a W1 architecture revision (W1.1) rather than incremental patching of computed exposures.
Reason:
- It aligns directly with founder and CISO mental model.
- It matches long-term "system of record" vision.
- It avoids repeated semantic churn between findings, exposures, and chains.