SIMON Master Console Rebuild
True command center for SIMON + WEB360
This rebuild gives you a cleaner production spine: interactive tree, live viewer, guarded editor, dynamic graphics, architecture map, and note storage. It is designed to sit beside your existing
console.php
and become the stronger replacement path.
Dashboard
Tree
Viewer
System Map
File Registry
Notes
Files
15,026
Folders
377
Scanned Size
3.79 GB
PHP Files
791
Editable Text Files
12,310
File viewer
guarded to /htdocs
/simon/simon_expected_schema.json
{ "manifest_version": "1.0.0", "source_workbook": "SIMON_BUG_Retrieval_Data_Dictionary_v2_5W1H_Stream.xlsx", "comparison_policy": { "table_resolution": "preferred_name_then_aliases", "column_case_sensitive": false, "type_matching": "family_based", "extra_columns": "reported_not_failed", "required_only_affects_severity": true }, "tables": [ { "worksheet": "Scan Runs", "preferred_table": "simon_scan_runs", "aliases": [ "scan_runs" ], "field_count": 19, "fields": [ { "name": "scan_id", "required": true, "expected_type": "UUID string", "category": "Identity", "description": "Unique identifier for one scanner execution. It binds progress, files, signals, findings, events, and errors to the same run.", "population_rule": "Create once and never reuse. The API should reject duplicates unless the request is explicitly idempotent.", "security": "Not sensitive, but do not expose sequential internal IDs publicly if BIGINT is used.", "evolution_path": "Current: UUID generated in app. Target: idempotency key and distributed scan support. Trigger: multiple agents or retryable uploads." }, { "name": "project_id", "required": true, "expected_type": "UUID or BIGINT", "category": "Identity", "description": "Identifies the SIMON project whose assets are being scanned.", "population_rule": "Require a valid active project. Never create a project silently unless onboarding explicitly allows it.", "security": "May reveal internal project structure; limit by user authorization.", "evolution_path": "Current: selected manually. Target: automatic source-to-project resolution with approval for ambiguous matches." }, { "name": "source_id", "required": true, "expected_type": "UUID or BIGINT", "category": "Identity", "description": "Links the run to the reusable source connection or root.", "population_rule": "Resolve before scan begins. Reuse across scans for historical comparisons.", "security": "Connection metadata may be sensitive; return only authorized fields.", "evolution_path": "Current: one source per run. Target: federated run with child source scans." }, { "name": "scan_type", "required": true, "expected_type": "ENUM / snake_case", "category": "Execution", "description": "Describes where the scan operates.", "population_rule": "Populate from controlled enum: local, remote, website, database, repository, api, cloud.", "security": "No direct secret content.", "evolution_path": "Current: local/remote. Target: repository, database, API, cloud connectors." }, { "name": "scan_mode", "required": true, "expected_type": "ENUM / snake_case", "category": "Execution", "description": "Defines the intended depth and analysis focus.", "population_rule": "Use controlled enum: full, changed_only, security, dependency, content, health.", "security": "Security scans may include sensitive indicators; apply stricter log redaction.", "evolution_path": "Current: full. Target: policy-driven profiles and scheduled incremental scans." }, { "name": "root_path", "required": false, "expected_type": "TEXT", "category": "Location", "description": "Canonical root folder or remote filesystem path.", "population_rule": "Normalize separators to forward slashes for storage; preserve original separately when platform-specific behavior matters.", "security": "May reveal host structure; redact in public exports.", "evolution_path": "Current: raw path. Target: canonical source URI with portable aliases." }, { "name": "root_url", "required": false, "expected_type": "VARCHAR(2048)", "category": "Location", "description": "Canonical website or API root.", "population_rule": "Lowercase scheme and hostname; preserve case-sensitive path; remove default port; trim trailing slash unless root.", "security": "Never embed credentials in URLs.", "evolution_path": "Current: entered manually. Target: verified ownership, redirect resolution, TLS inspection." }, { "name": "status", "required": true, "expected_type": "ENUM", "category": "Lifecycle", "description": "Current state of the scan.", "population_rule": "Allowed: queued, connecting, discovering, parsing, resolving, validating, saving, completed, partial, failed, cancelled.", "security": "Errors exposed to user should be sanitized.", "evolution_path": "Current: basic running/completed. Target: resumable phases and distributed workers." }, { "name": "phase", "required": true, "expected_type": "VARCHAR(100)", "category": "Lifecycle", "description": "Human-readable and machine-filterable current processing phase.", "population_rule": "Set whenever pipeline stage changes; use stable snake_case values.", "security": "No secret content.", "evolution_path": "Current: progress text. Target: structured stage timing and bottleneck analytics." }, { "name": "started_at", "required": true, "expected_type": "ISO 8601 UTC / DATETIME(6)", "category": "Timing", "description": "UTC time the scanner accepted the run.", "population_rule": "Set once at scan creation.", "security": "Operational metadata only.", "evolution_path": "Current: client time. Target: server-authoritative time with client_time retained for diagnostics." }, { "name": "completed_at", "required": false, "expected_type": "ISO 8601 UTC / DATETIME(6)", "category": "Timing", "description": "UTC terminal time.", "population_rule": "Set only for completed, partial, failed, or cancelled states.", "security": "Operational metadata only.", "evolution_path": "Current: end timestamp. Target: per-phase timings and critical path analysis." }, { "name": "duration_ms", "required": false, "expected_type": "BIGINT", "category": "Timing", "description": "Total elapsed milliseconds.", "population_rule": "Calculate, do not accept untrusted client value as authoritative.", "security": "No sensitive content.", "evolution_path": "Current: total only. Target: phase duration distribution and performance regression alerts." }, { "name": "files_total", "required": true, "expected_type": "INT", "category": "Progress", "description": "Total eligible files discovered for this run.", "population_rule": "Count eligible files after exclusion rules; retain discovered_total separately if needed.", "security": "May reveal project size; restrict externally.", "evolution_path": "Current: discovered count. Target: counts by type, status, parser, and source." }, { "name": "files_done", "required": true, "expected_type": "INT", "category": "Progress", "description": "Number of files whose processing reached a terminal file status.", "population_rule": "Increment after file result is committed or conclusively skipped.", "security": "No secret content.", "evolution_path": "Current: app progress. Target: durable progress checkpoints for resume." }, { "name": "percent_complete", "required": true, "expected_type": "DECIMAL(5,2)", "category": "Progress", "description": "Computed progress for display.", "population_rule": "Use formula or server calculation; if total is zero, use phase-based progress or 100 only after valid empty completion.", "security": "No sensitive content.", "evolution_path": "Current: file-count based. Target: weighted progress using file size and parser cost." }, { "name": "confidence", "required": true, "expected_type": "DECIMAL(5,4)", "category": "Quality", "description": "Aggregate confidence that extracted records correctly represent source.", "population_rule": "Calculate from validated extractions, parser certainty, and unresolved targets.", "security": "May indirectly reveal uncertainty, not secret.", "evolution_path": "Current: heuristic. Target: calibrated score based on validation outcomes." }, { "name": "ambiguity", "required": true, "expected_type": "DECIMAL(5,4)", "category": "Quality", "description": "Share or severity of unresolved or conflicting results.", "population_rule": "Calculate using count and severity weighting.", "security": "No direct sensitive content.", "evolution_path": "Current: manual heuristic. Target: measurable unresolved entity ratio." }, { "name": "completeness", "required": true, "expected_type": "DECIMAL(5,4)", "category": "Quality", "description": "Degree to which eligible content was successfully processed.", "population_rule": "Calculate as weighted completion of required pipeline steps.", "security": "No direct sensitive content.", "evolution_path": "Current: parsed/eligible. Target: coverage by entity type and required rule set." }, { "name": "risk", "required": true, "expected_type": "DECIMAL(5,4)", "category": "Quality", "description": "Aggregate operational or security risk for the run.", "population_rule": "Use a documented method combining severity, confidence, exposure, and asset criticality.", "security": "Risk evidence may be sensitive; restrict detail.", "evolution_path": "Current: max finding heuristic. Target: calibrated portfolio risk model." } ] }, { "worksheet": "Sources", "preferred_table": "simon_sources", "aliases": [ "sources" ], "field_count": 16, "fields": [ { "name": "source_id", "required": true, "expected_type": "UUID or BIGINT", "category": "Identity", "description": "Persistent identifier for a reusable connection or scan root.", "population_rule": "Create once; reuse for every scan of the same logical source.", "security": "Not sensitive by itself.", "evolution_path": "Current: manual connection. Target: centralized source registry and ownership graph." }, { "name": "source_name", "required": true, "expected_type": "VARCHAR(255)", "category": "Identity", "description": "Human-readable label shown in SIMON.", "population_rule": "Prefer descriptive names; prevent duplicates within same project where confusing.", "security": "May disclose internal environment names.", "evolution_path": "Current: user label. Target: naming templates and duplicate suggestions." }, { "name": "source_type", "required": true, "expected_type": "ENUM", "category": "Classification", "description": "Technical class of the source.", "population_rule": "Allowed: local_folder, website, sftp, ftp, git, api, database, cloud_storage, archive.", "security": "No secrets.", "evolution_path": "Current: local/remote. Target: modular connector registry." }, { "name": "provider", "required": false, "expected_type": "VARCHAR(100)", "category": "Classification", "description": "Vendor or platform serving the source.", "population_rule": "Store canonical provider name plus optional provider account reference.", "security": "May identify business vendors.", "evolution_path": "Current: free text. Target: provider registry with capability metadata." }, { "name": "host", "required": false, "expected_type": "VARCHAR(255)", "category": "Connection", "description": "Hostname or server address.", "population_rule": "Store hostname only; lowercase DNS names; preserve IP literal.", "security": "Host may be sensitive; restrict to authorized users.", "evolution_path": "Current: direct host. Target: environment aliases and certificate identity validation." }, { "name": "port", "required": false, "expected_type": "INT", "category": "Connection", "description": "Network port.", "population_rule": "Populate explicit configured port or protocol default: 22 SFTP, 21 FTP, 443 HTTPS, 3306 MariaDB.", "security": "Can aid infrastructure fingerprinting.", "evolution_path": "Current: stored port. Target: service discovery with approval." }, { "name": "base_path", "required": false, "expected_type": "TEXT", "category": "Connection", "description": "Root filesystem or repository path.", "population_rule": "Normalize safely and retain as connection boundary.", "security": "Sensitive infrastructure detail.", "evolution_path": "Current: manual. Target: permission-tested root and portable path aliases." }, { "name": "base_url", "required": false, "expected_type": "VARCHAR(2048)", "category": "Connection", "description": "Public or internal root URL.", "population_rule": "Normalize scheme/host and remove unnecessary trailing slash.", "security": "Never include URL credentials or tokens.", "evolution_path": "Current: manual. Target: ownership verification and canonical redirect resolution." }, { "name": "database_name", "required": false, "expected_type": "VARCHAR(255)", "category": "Database", "description": "Logical database selected for scanning or integration.", "population_rule": "Store database/schema name only, not credentials.", "security": "Database name can be sensitive.", "evolution_path": "Current: one database. Target: multi-schema discovery with authority controls." }, { "name": "username", "required": false, "expected_type": "VARCHAR(255)", "category": "Authentication", "description": "Connection account name.", "population_rule": "Store only if needed for operator visibility; otherwise keep in credential metadata.", "security": "Sensitive account identifier.", "evolution_path": "Current: settings field. Target: credential vault reference only." }, { "name": "credential_id", "required": false, "expected_type": "UUID or BIGINT", "category": "Authentication", "description": "Reference to encrypted credential storage.", "population_rule": "Store reference only; never duplicate secret value in Sources.", "security": "Highly sensitive linkage; restrict access.", "evolution_path": "Current: Keychain or encrypted DB. Target: rotation, expiry, audit, least privilege." }, { "name": "environment", "required": true, "expected_type": "ENUM", "category": "Environment", "description": "Operational stage represented by source.", "population_rule": "Allowed: development, staging, production, archive, unknown.", "security": "Production classification influences risk handling.", "evolution_path": "Current: manual. Target: automatic environment policy and promotion workflow." }, { "name": "connection_status", "required": true, "expected_type": "ENUM", "category": "Health", "description": "Latest known connectivity state.", "population_rule": "Allowed: unknown, connected, degraded, failed, expired, unauthorized.", "security": "Error details must be sanitized.", "evolution_path": "Current: simple connected/failed. Target: health history, latency, certificate, quota." }, { "name": "last_connected_at", "required": false, "expected_type": "ISO 8601 UTC / DATETIME(6)", "category": "Health", "description": "Last successful authenticated or verified connection.", "population_rule": "Update only after meaningful success.", "security": "Operational metadata.", "evolution_path": "Current: last success. Target: availability trend." }, { "name": "last_error", "required": false, "expected_type": "TEXT", "category": "Health", "description": "Sanitized latest connection failure.", "population_rule": "Store safe summary and error code; redact secrets and full connection strings.", "security": "Potentially sensitive; redact raw server traces.", "evolution_path": "Current: text error. Target: structured error taxonomy and remediation." }, { "name": "is_active", "required": true, "expected_type": "BOOLEAN", "category": "Lifecycle", "description": "Whether the source may be used for new scans.", "population_rule": "Default true; set false rather than deleting when historical records exist.", "security": "No secret content.", "evolution_path": "Current: active flag. Target: approval workflow and scheduled health checks." } ] }, { "worksheet": "Files", "preferred_table": "simon_files", "aliases": [ "files" ], "field_count": 30, "fields": [ { "name": "file_id", "required": true, "expected_type": "UUID or BIGINT", "category": "Identity", "description": "Persistent SIMON identifier for one logical file or directory.", "population_rule": "Reuse across scans when same logical object is confirmed; create new ID when identity is uncertain.", "security": "Not secret.", "evolution_path": "Current: per-scan record. Target: persistent lineage across rename, move, and restore." }, { "name": "parent_file_id", "required": false, "expected_type": "UUID or BIGINT", "category": "Hierarchy", "description": "Links the item to its containing directory node.", "population_rule": "Resolve to the persistent directory record within same source.", "security": "Path hierarchy may be sensitive.", "evolution_path": "Current: tree reconstruction. Target: graph plus logical package hierarchy." }, { "name": "name", "required": true, "expected_type": "VARCHAR(255)", "category": "Identity", "description": "Original leaf filename or directory name.", "population_rule": "Preserve exact source value.", "security": "May contain personal or project data.", "evolution_path": "Current: exact name. Target: Unicode normalization and collision detection." }, { "name": "extension", "required": false, "expected_type": "VARCHAR(30)", "category": "Identity", "description": "Lowercase filename extension without dot.", "population_rule": "Populate lowercase; blank/null for directories or extensionless files.", "security": "No direct secret.", "evolution_path": "Current: extension parser. Target: compound extensions such as tar.gz." }, { "name": "path", "required": true, "expected_type": "TEXT", "category": "Location", "description": "Canonical absolute or source-relative locator.", "population_rule": "Store canonical locator under source boundary.", "security": "Can reveal infrastructure; restrict exports.", "evolution_path": "Current: absolute path. Target: canonical source URI independent of machine." }, { "name": "relative_path", "required": true, "expected_type": "TEXT", "category": "Location", "description": "Portable path from source root.", "population_rule": "Always use forward slashes; no leading slash unless standard explicitly requires it.", "security": "Less sensitive than absolute path but still project structure.", "evolution_path": "Current: direct subtraction. Target: rename-aware lineage and package mapping." }, { "name": "public_url", "required": false, "expected_type": "VARCHAR(2048)", "category": "Location", "description": "Reachable URL mapped from the file when available.", "population_rule": "Populate only when mapping is validated or confidence is recorded.", "security": "Potentially public; still redact signed URLs.", "evolution_path": "Current: direct mapping. Target: route-aware canonical URL and environment aliases." }, { "name": "is_directory", "required": true, "expected_type": "BOOLEAN", "category": "Classification", "description": "Distinguishes directories from files.", "population_rule": "Set from authoritative metadata, not filename.", "security": "No direct secret.", "evolution_path": "Current: filesystem flag. Target: support symlink, package, archive member, virtual node." }, { "name": "file_type", "required": true, "expected_type": "VARCHAR(50)", "category": "Classification", "description": "Human-readable canonical class.", "population_rule": "Use canonical values such as Swift, PHP, HTML, JavaScript, JSON, SQL, Image, Video, Directory.", "security": "No direct secret.", "evolution_path": "Current: extension mapping. Target: confidence-ranked multi-signal classifier." }, { "name": "mime_type", "required": false, "expected_type": "VARCHAR(150)", "category": "Classification", "description": "Detected media type.", "population_rule": "Prefer content detection; retain declared MIME separately when conflicting.", "security": "No direct secret.", "evolution_path": "Current: extension/UTType. Target: authoritative content sniffing and mismatch finding." }, { "name": "size_bytes", "required": false, "expected_type": "BIGINT", "category": "Metadata", "description": "Exact source object size.", "population_rule": "Store raw bytes; null if unknown rather than zero.", "security": "May reveal system scale.", "evolution_path": "Current: file metadata. Target: compressed/uncompressed and transfer size." }, { "name": "created_at_source", "required": false, "expected_type": "DATETIME(6) UTC", "category": "Metadata", "description": "Source-reported creation time.", "population_rule": "Store source value and source timezone if not UTC; normalize to UTC.", "security": "Operational metadata.", "evolution_path": "Current: local creation date. Target: provenance with timestamp reliability score." }, { "name": "modified_at_source", "required": false, "expected_type": "DATETIME(6) UTC", "category": "Metadata", "description": "Source-reported last modification time.", "population_rule": "Normalize to UTC; retain precision supplied.", "security": "Operational metadata.", "evolution_path": "Current: modification date. Target: commit-aware and provider revision IDs." }, { "name": "first_seen_at", "required": true, "expected_type": "DATETIME(6) UTC", "category": "Lifecycle", "description": "First time SIMON discovered this logical file.", "population_rule": "Set once on first confirmed appearance.", "security": "Operational metadata.", "evolution_path": "Current: scan import time. Target: historical source discovery and lineage." }, { "name": "last_seen_at", "required": true, "expected_type": "DATETIME(6) UTC", "category": "Lifecycle", "description": "Most recent scan in which the file existed.", "population_rule": "Update after successful discovery confirmation.", "security": "Operational metadata.", "evolution_path": "Current: last scan. Target: absence tolerance and deletion confidence." }, { "name": "content_hash", "required": false, "expected_type": "CHAR(64)", "category": "Integrity", "description": "SHA-256 of exact file bytes.", "population_rule": "Calculate after successful read; lowercase hexadecimal.", "security": "Hash is not secret but can identify known content.", "evolution_path": "Current: missing. Target: streaming hash, signed provenance, Merkle project roots." }, { "name": "structure_hash", "required": false, "expected_type": "CHAR(64)", "category": "Integrity", "description": "Hash of normalized parsed structure, excluding irrelevant formatting where supported.", "population_rule": "Generate only for supported languages and record normalization version.", "security": "Can reveal similarity but not content directly.", "evolution_path": "Current: none. Target: semantic duplicate and refactor detection." }, { "name": "encoding", "required": false, "expected_type": "VARCHAR(30)", "category": "Content", "description": "Text character encoding used for parsing.", "population_rule": "Use canonical lowercase name such as utf-8.", "security": "No direct secret.", "evolution_path": "Current: assumed UTF-8. Target: confidence-based detection and safe transcoding." }, { "name": "line_count", "required": false, "expected_type": "INT", "category": "Content", "description": "Number of logical text lines.", "population_rule": "Count consistently, documenting trailing-newline policy.", "security": "May reveal scale.", "evolution_path": "Current: newline count. Target: code/comment/blank breakdown." }, { "name": "word_count", "required": false, "expected_type": "BIGINT", "category": "Content", "description": "Count of tokenized visible words or identifiers, depending on content policy.", "population_rule": "Use declared tokenizer version.", "security": "Content statistics only.", "evolution_path": "Current: simple split. Target: language-aware token metrics." }, { "name": "parser_name", "required": false, "expected_type": "VARCHAR(100)", "category": "Parsing", "description": "Parser implementation selected for the file.", "population_rule": "Record exact canonical parser ID.", "security": "No direct secret.", "evolution_path": "Current: regex/static parser. Target: AST parsers and versioned plugin system." }, { "name": "parser_version", "required": false, "expected_type": "VARCHAR(50)", "category": "Parsing", "description": "Version of parser/rule set used.", "population_rule": "Populate for every parsed file.", "security": "No direct secret.", "evolution_path": "Current: app version. Target: parser-specific version and migration jobs." }, { "name": "parse_status", "required": true, "expected_type": "ENUM", "category": "Parsing", "description": "Outcome of attempted processing.", "population_rule": "Allowed: pending, parsed, partial, unsupported, skipped, failed, encrypted.", "security": "Failure details may contain sensitive excerpts; redact.", "evolution_path": "Current: success/failure. Target: stage-specific parse diagnostics." }, { "name": "summary", "required": false, "expected_type": "TEXT", "category": "Analysis", "description": "Concise factual description of file contents.", "population_rule": "Generate from confirmed evidence; avoid claiming behavior not observed.", "security": "May summarize sensitive source; authorization required.", "evolution_path": "Current: manual/AI. Target: evidence-linked summaries refreshed only on semantic change." }, { "name": "purpose", "required": false, "expected_type": "TEXT", "category": "Analysis", "description": "Operational role the file appears to serve.", "population_rule": "Use controlled role tags plus natural-language explanation.", "security": "Potentially sensitive architecture detail.", "evolution_path": "Current: inferred text. Target: role ontology and owner confirmation." }, { "name": "status", "required": true, "expected_type": "ENUM", "category": "Lifecycle", "description": "Current existence and lifecycle classification.", "population_rule": "Allowed: active, missing, deleted, moved, renamed, duplicate, deprecated, generated, ignored.", "security": "No direct secret.", "evolution_path": "Current: active only. Target: lineage-aware rename/move detection and retention policy." }, { "name": "confidence", "required": true, "expected_type": "DECIMAL(5,4)", "category": "Quality", "description": "Confidence that metadata, type, parser output, and identity are correct.", "population_rule": "Weighted score with model version.", "security": "No direct secret.", "evolution_path": "Current: heuristic. Target: calibrated per-field confidence." }, { "name": "ambiguity", "required": true, "expected_type": "DECIMAL(5,4)", "category": "Quality", "description": "Unresolved identity, type, route, encoding, or parser uncertainty.", "population_rule": "Calculate from documented rules.", "security": "No direct secret.", "evolution_path": "Current: global estimate. Target: issue-linked ambiguity components." }, { "name": "completeness", "required": true, "expected_type": "DECIMAL(5,4)", "category": "Quality", "description": "Coverage of required file processing steps.", "population_rule": "Compute using file-type-specific required steps.", "security": "No direct secret.", "evolution_path": "Current: parse-based. Target: policy-based coverage matrix." }, { "name": "risk", "required": true, "expected_type": "DECIMAL(5,4)", "category": "Quality", "description": "File-level security, operational, and maintainability risk.", "population_rule": "Aggregate using severity, confidence, exposure, and criticality.", "security": "Risk details may expose vulnerabilities.", "evolution_path": "Current: heuristic. Target: risk decomposition and remediation impact forecast." } ] }, { "worksheet": "Signals", "preferred_table": "simon_signals", "aliases": [ "signals" ], "field_count": 19, "fields": [ { "name": "signal_id", "required": true, "expected_type": "UUID or BIGINT", "category": "Identity", "description": "Unique identifier for one extracted signal occurrence.", "population_rule": "Create for each occurrence; deduplicate only when exact occurrence identity is known.", "security": "Not secret by itself.", "evolution_path": "Current: transient signal. Target: persistent identity for unchanged source regions." }, { "name": "kind", "required": true, "expected_type": "ENUM / VARCHAR(50)", "category": "Identity", "description": "Canonical signal category.", "population_rule": "Populate from Signal Catalog only.", "security": "Sensitivity depends on kind.", "evolution_path": "Current: limited regex categories. Target: versioned signal ontology." }, { "name": "subtype", "required": false, "expected_type": "VARCHAR(100)", "category": "Identity", "description": "More precise classification within kind.", "population_rule": "Use controlled subtype registry when available; otherwise null.", "security": "Depends on subtype.", "evolution_path": "Current: optional text. Target: language-aware taxonomy." }, { "name": "name", "required": false, "expected_type": "VARCHAR(255)", "category": "Value", "description": "Symbol or concise display name.", "population_rule": "Preserve declared case where meaningful.", "security": "Could reveal architecture.", "evolution_path": "Current: parser name. Target: qualified identity resolution." }, { "name": "raw_value", "required": false, "expected_type": "LONGTEXT", "category": "Value", "description": "Exact captured source text or structured literal.", "population_rule": "Store only the minimum evidence required; redact when sensitive.", "security": "High risk for secrets and personal data; redact or encrypt.", "evolution_path": "Current: snippets. Target: evidence vault with access controls and retention." }, { "name": "normalized_value", "required": false, "expected_type": "TEXT", "category": "Value", "description": "Comparable canonical representation.", "population_rule": "Normalize URLs, paths, identifiers, emails, phone numbers, and whitespace according to kind.", "security": "Use redacted normalization for sensitive values.", "evolution_path": "Current: lowercase/trim. Target: kind-specific canonicalization service." }, { "name": "line_start", "required": false, "expected_type": "INT", "category": "Location", "description": "One-based starting source line.", "population_rule": "Populate when text location exists.", "security": "Can help locate sensitive code.", "evolution_path": "Current: regex line. Target: AST source ranges." }, { "name": "line_end", "required": false, "expected_type": "INT", "category": "Location", "description": "One-based ending source line.", "population_rule": "Set equal to line_start for single-line occurrence.", "security": "Same as line_start.", "evolution_path": "Current: basic. Target: exact multi-line source range." }, { "name": "column_start", "required": false, "expected_type": "INT", "category": "Location", "description": "One-based starting column.", "population_rule": "Use Unicode scalar or UTF-16 convention consistently and document it.", "security": "No direct secret.", "evolution_path": "Current: unavailable. Target: editor navigation accuracy." }, { "name": "column_end", "required": false, "expected_type": "INT", "category": "Location", "description": "One-based ending column.", "population_rule": "Use same coordinate convention as column_start.", "security": "No direct secret.", "evolution_path": "Current: unavailable. Target: precise selection/highlighting." }, { "name": "scope_name", "required": false, "expected_type": "VARCHAR(500)", "category": "Context", "description": "Nearest containing function, type, module, route, or configuration block.", "population_rule": "Use qualified scope when possible.", "security": "Can reveal architecture.", "evolution_path": "Current: file-level. Target: exact symbol graph linkage." }, { "name": "is_definition", "required": true, "expected_type": "BOOLEAN", "category": "Semantics", "description": "Whether occurrence creates/declares an entity.", "population_rule": "True for declarations, route definitions, table creation, config definitions.", "security": "No direct secret.", "evolution_path": "Current: regex cannot always tell. Target: AST-backed certainty." }, { "name": "is_reference", "required": true, "expected_type": "BOOLEAN", "category": "Semantics", "description": "Whether occurrence uses or points to another entity.", "population_rule": "True for calls, imports, links, queries, reads, or uses.", "security": "No direct secret.", "evolution_path": "Current: mixed. Target: resolved symbol references." }, { "name": "visibility", "required": false, "expected_type": "ENUM", "category": "Semantics", "description": "Declared access level or exposure.", "population_rule": "Canonical values: public, protected, internal, private, local, external, unknown.", "security": "Public exposure increases risk.", "evolution_path": "Current: inferred. Target: effective runtime exposure." }, { "name": "is_sensitive", "required": true, "expected_type": "BOOLEAN", "category": "Security", "description": "Whether content requires restricted handling.", "population_rule": "Set true for actual or possible secrets, personal data, private keys, or restricted infrastructure.", "security": "Controls redaction, encryption, export, and retention.", "evolution_path": "Current: keyword matching. Target: contextual classifier with confirmation workflow." }, { "name": "redacted_value", "required": false, "expected_type": "TEXT", "category": "Security", "description": "Safe display form for sensitive values.", "population_rule": "Keep enough characters for identification without reconstruction.", "security": "Safe-display field only.", "evolution_path": "Current: simple masks. Target: type-specific irreversible fingerprint plus last four." }, { "name": "confidence", "required": true, "expected_type": "DECIMAL(5,4)", "category": "Quality", "description": "Confidence extraction and classification are correct.", "population_rule": "Range 0-1; include rule version.", "security": "No direct secret.", "evolution_path": "Current: rule score. Target: calibrated by confirmed findings." }, { "name": "risk", "required": true, "expected_type": "DECIMAL(5,4)", "category": "Quality", "description": "Risk associated with this occurrence.", "population_rule": "Range 0-1 using risk model version.", "security": "Risk evidence may be restricted.", "evolution_path": "Current: static weights. Target: contextual exploitability and business impact." }, { "name": "parser_rule", "required": true, "expected_type": "VARCHAR(255)", "category": "Provenance", "description": "Exact rule or parser component that emitted the signal.", "population_rule": "Store stable rule ID and version.", "security": "No direct secret.", "evolution_path": "Current: implicit regex. Target: traceable versioned rules and regression tests." } ] }, { "worksheet": "Functions", "preferred_table": "simon_functions", "aliases": [ "functions" ], "field_count": 15, "fields": [ { "name": "function_id", "required": true, "expected_type": "UUID or BIGINT", "category": "Identity", "description": "Persistent identifier for a declared function or method.", "population_rule": "Reuse when qualified identity and lineage are confirmed; otherwise create a new version/link.", "security": "Architecture detail only.", "evolution_path": "Current: signal only. Target: persistent symbol graph and version history." }, { "name": "qualified_name", "required": true, "expected_type": "VARCHAR(1000)", "category": "Identity", "description": "Fully qualified symbol name.", "population_rule": "Build using language-specific canonical rules.", "security": "Can reveal internal architecture.", "evolution_path": "Current: file+name. Target: compiler-compatible symbol IDs." }, { "name": "parameters_json", "required": true, "expected_type": "JSON", "category": "Signature", "description": "Ordered parameter definitions including name, label, type, default, optionality, and annotations.", "population_rule": "Store structured JSON array.", "security": "May contain default literals; redact sensitive defaults.", "evolution_path": "Current: text parsing. Target: AST schema and compatibility diff." }, { "name": "return_type", "required": false, "expected_type": "VARCHAR(500)", "category": "Signature", "description": "Declared or inferred return type.", "population_rule": "Prefer declared type; mark inferred confidence separately.", "security": "No direct secret.", "evolution_path": "Current: declared text. Target: resolved type entity." }, { "name": "calls_json", "required": false, "expected_type": "JSON", "category": "Behavior", "description": "Functions, methods, commands, or callbacks invoked by the function.", "population_rule": "Store ordered or unique references with resolution status.", "security": "Architecture detail.", "evolution_path": "Current: regex names. Target: resolved call graph with dynamic-call uncertainty." }, { "name": "reads_json", "required": false, "expected_type": "JSON", "category": "Behavior", "description": "Variables, files, tables, endpoints, config, or state read.", "population_rule": "Store structured entity references and access type.", "security": "May expose sensitive data access.", "evolution_path": "Current: heuristic. Target: data lineage and permission validation." }, { "name": "writes_json", "required": false, "expected_type": "JSON", "category": "Behavior", "description": "Variables, files, tables, endpoints, or state modified.", "population_rule": "Store structured entity references and operation.", "security": "Can reveal sensitive write paths.", "evolution_path": "Current: heuristic. Target: mutation graph and rollback planning." }, { "name": "inputs_json", "required": false, "expected_type": "JSON", "category": "Behavior", "description": "External inputs entering the function.", "population_rule": "Store normalized input sources and trust boundaries.", "security": "May contain PII/credentials; references only.", "evolution_path": "Current: parameters. Target: taint tracking and validation coverage." }, { "name": "outputs_json", "required": false, "expected_type": "JSON", "category": "Behavior", "description": "Returned values, emitted events, responses, files, or UI effects.", "population_rule": "Store structured outputs.", "security": "Could contain sensitive response data.", "evolution_path": "Current: return type. Target: data contracts and consumer mapping." }, { "name": "side_effects_json", "required": false, "expected_type": "JSON", "category": "Behavior", "description": "Non-return effects such as network calls, database changes, file writes, notifications, or UI mutations.", "population_rule": "Classify effect, target, reversibility, and authority.", "security": "High-value security and authority metadata.", "evolution_path": "Current: inferred text. Target: enforceable authority policy and simulation." }, { "name": "error_paths_json", "required": false, "expected_type": "JSON", "category": "Errors", "description": "Possible thrown errors, failure returns, catch blocks, and fallback behaviors.", "population_rule": "Store code, condition, handling, retryability, and user impact.", "security": "Error text can leak internals; sanitize.", "evolution_path": "Current: catch extraction. Target: failure graph and resilience scoring." }, { "name": "authority_required", "required": true, "expected_type": "ENUM", "category": "Authority", "description": "Minimum authority required to invoke, modify, auto-fix, or schedule this behavior.", "population_rule": "Allowed: advisory, user, operator, admin, approval_required, autonomous.", "security": "Controls actions affecting data or infrastructure.", "evolution_path": "Current: manual. Target: policy engine based on effects and environment." }, { "name": "test_status", "required": true, "expected_type": "ENUM", "category": "Quality", "description": "Latest known test coverage/outcome.", "population_rule": "Allowed: unknown, untested, passing, failing, flaky, partial.", "security": "Test data may be sensitive.", "evolution_path": "Current: unknown. Target: linked test cases and coverage trends." }, { "name": "source_hash", "required": false, "expected_type": "CHAR(64)", "category": "Integrity", "description": "Hash of normalized function body or AST.", "population_rule": "Generate deterministic SHA-256 with normalizer version.", "security": "No direct secret.", "evolution_path": "Current: none. Target: semantic change detection and duplicate behavior detection." }, { "name": "risk_score", "required": true, "expected_type": "DECIMAL(5,4)", "category": "Quality", "description": "Operational and security risk of the function.", "population_rule": "Range 0-1 with model version.", "security": "Risk detail may be sensitive.", "evolution_path": "Current: heuristic. Target: outcome-calibrated risk and change impact forecast." } ] }, { "worksheet": "Relationships", "preferred_table": "simon_relationships", "aliases": [ "relationships", "graph_edges" ], "field_count": 13, "fields": [ { "name": "relationship_id", "required": true, "expected_type": "UUID or BIGINT", "category": "Identity", "description": "Unique identifier for one directional entity connection.", "population_rule": "Create one per from/type/to relationship occurrence or aggregate according to explicit policy.", "security": "Not secret.", "evolution_path": "Current: temporary map edges. Target: persistent temporal knowledge graph." }, { "name": "from_entity_type", "required": true, "expected_type": "VARCHAR(50)", "category": "Source", "description": "Canonical type of source entity.", "population_rule": "Allowed registry values: file, function, signal, route, endpoint, table, column, provider, credential, config, project.", "security": "No direct secret.", "evolution_path": "Current: file-to-file. Target: cross-domain entity graph." }, { "name": "from_entity_id", "required": true, "expected_type": "UUID or BIGINT", "category": "Source", "description": "Identifier of source entity.", "population_rule": "Populate only when entity exists; otherwise use raw source evidence field.", "security": "Could expose internal IDs.", "evolution_path": "Current: resolved IDs. Target: globally unique entity URIs." }, { "name": "relationship_type", "required": true, "expected_type": "ENUM / VARCHAR(100)", "category": "Relationship", "description": "Meaning of directional edge.", "population_rule": "Controlled values: calls, imports, includes, links_to, reads, writes, uses, depends_on, redirects_to, duplicates, configures, authenticates_with, hosted_on, contains.", "security": "Some types imply sensitive access.", "evolution_path": "Current: links/imports. Target: ontology with inverse and transitive rules." }, { "name": "to_entity_type", "required": false, "expected_type": "VARCHAR(50)", "category": "Target", "description": "Canonical type of resolved target entity.", "population_rule": "Use same entity registry as source.", "security": "No direct secret.", "evolution_path": "Current: known target types. Target: external entity registry." }, { "name": "to_entity_id", "required": false, "expected_type": "UUID or BIGINT", "category": "Target", "description": "Identifier of resolved target.", "population_rule": "Populate when resolution_status=resolved.", "security": "Could expose internal IDs.", "evolution_path": "Current: exact matches. Target: confidence-ranked candidate resolution." }, { "name": "raw_target", "required": false, "expected_type": "TEXT", "category": "Target", "description": "Original target string as written in source.", "population_rule": "Preserve minimal original evidence; redact secrets/query tokens.", "security": "May contain sensitive URL/query values.", "evolution_path": "Current: raw text. Target: evidence reference rather than duplicated source." }, { "name": "resolved_target", "required": false, "expected_type": "TEXT", "category": "Target", "description": "Canonical human-readable or URI target.", "population_rule": "Normalize based on entity type.", "security": "Architecture detail.", "evolution_path": "Current: name. Target: stable entity URI." }, { "name": "resolution_status", "required": true, "expected_type": "ENUM", "category": "Resolution", "description": "Outcome of target resolution.", "population_rule": "Allowed: resolved, external, missing, ambiguous, blocked, ignored.", "security": "Missing/blocked detail may be sensitive.", "evolution_path": "Current: resolved/missing. Target: candidate sets and human confirmation." }, { "name": "confidence", "required": true, "expected_type": "DECIMAL(5,4)", "category": "Quality", "description": "Confidence edge semantics and target are correct.", "population_rule": "Range 0-1.", "security": "No direct secret.", "evolution_path": "Current: heuristic. Target: confirmation-driven calibration." }, { "name": "risk", "required": true, "expected_type": "DECIMAL(5,4)", "category": "Quality", "description": "Risk created or represented by this connection.", "population_rule": "Range 0-1.", "security": "May reveal attack paths.", "evolution_path": "Current: static. Target: graph-path risk and blast-radius analysis." }, { "name": "first_seen_at", "required": true, "expected_type": "DATETIME(6) UTC", "category": "Lifecycle", "description": "First scan that discovered the relationship.", "population_rule": "Set once.", "security": "Operational metadata.", "evolution_path": "Current: no history. Target: relationship lineage." }, { "name": "last_seen_at", "required": true, "expected_type": "DATETIME(6) UTC", "category": "Lifecycle", "description": "Latest completed scan confirming relationship.", "population_rule": "Update after confirmation.", "security": "Operational metadata.", "evolution_path": "Current: latest only. Target: disappearance/impact tracking." } ] }, { "worksheet": "Endpoints", "preferred_table": "simon_endpoints", "aliases": [ "endpoints", "routes" ], "field_count": 17, "fields": [ { "name": "endpoint_id", "required": true, "expected_type": "UUID or BIGINT", "category": "Identity", "description": "Persistent identifier for one logical route, API, webhook, asset URL, redirect, or external endpoint.", "population_rule": "Resolve repeated appearances to same canonical endpoint.", "security": "Not secret.", "evolution_path": "Current: URL signal. Target: persistent endpoint inventory and version history." }, { "name": "endpoint_type", "required": true, "expected_type": "ENUM", "category": "Classification", "description": "Functional class of endpoint.", "population_rule": "Allowed: page, api, webhook, asset, redirect, external, callback, auth, healthcheck.", "security": "Auth/webhook routes require stricter handling.", "evolution_path": "Current: generic URL. Target: protocol-aware service catalog." }, { "name": "scheme", "required": false, "expected_type": "VARCHAR(20)", "category": "Address", "description": "Protocol scheme.", "population_rule": "Normalize lowercase.", "security": "Non-HTTPS production endpoint may raise finding.", "evolution_path": "Current: URL parse. Target: protocol policy enforcement." }, { "name": "host", "required": false, "expected_type": "VARCHAR(255)", "category": "Address", "description": "Canonical hostname.", "population_rule": "Lowercase DNS host; punycode normalization as policy requires.", "security": "Infrastructure information.", "evolution_path": "Current: parse. Target: DNS, certificate, ownership, and provider linkage." }, { "name": "port", "required": false, "expected_type": "INT", "category": "Address", "description": "Explicit effective port.", "population_rule": "Store explicit or effective port consistently.", "security": "Infrastructure detail.", "evolution_path": "Current: parse. Target: service discovery and firewall policy checks." }, { "name": "path", "required": true, "expected_type": "TEXT", "category": "Address", "description": "Canonical route path.", "population_rule": "Ensure leading slash for HTTP paths; normalize redundant segments without breaking case-sensitive routes.", "security": "Can reveal admin/private routes.", "evolution_path": "Current: raw route. Target: router-template matching and versioning." }, { "name": "http_method", "required": false, "expected_type": "VARCHAR(10)", "category": "Request", "description": "Supported or observed method.", "population_rule": "Controlled: GET, POST, PUT, PATCH, DELETE, HEAD, OPTIONS.", "security": "Method affects write risk.", "evolution_path": "Current: inferred fetch/form. Target: contract validation and unauthorized-method tests." }, { "name": "query_template", "required": false, "expected_type": "TEXT / JSON", "category": "Request", "description": "Parameter names and safe placeholders without secret values.", "population_rule": "Store keys and placeholder types; remove runtime values/tokens.", "security": "Never store tokens or signed query values.", "evolution_path": "Current: raw query. Target: typed request schema." }, { "name": "authentication_type", "required": true, "expected_type": "ENUM", "category": "Security", "description": "Required authentication mechanism.", "population_rule": "Allowed: none, session, api_key, bearer, basic, oauth2, signed_url, mTLS, unknown.", "security": "Security-critical metadata.", "evolution_path": "Current: inferred. Target: runtime auth test and permission scopes." }, { "name": "credential_reference", "required": false, "expected_type": "VARCHAR(255)", "category": "Security", "description": "Named credential or vault reference required to call endpoint.", "population_rule": "Store credential name/reference only.", "security": "Never store secret value.", "evolution_path": "Current: config key. Target: scoped credential dependency graph and rotation impact." }, { "name": "request_content_type", "required": false, "expected_type": "VARCHAR(150)", "category": "Contract", "description": "Expected request media type.", "population_rule": "Canonical MIME value.", "security": "Payload may be sensitive, but type is not.", "evolution_path": "Current: header inference. Target: full request schema validation." }, { "name": "response_content_type", "required": false, "expected_type": "VARCHAR(150)", "category": "Contract", "description": "Expected response media type.", "population_rule": "Canonical MIME value.", "security": "No direct secret.", "evolution_path": "Current: observed. Target: contract drift detection." }, { "name": "status_code", "required": false, "expected_type": "INT", "category": "Health", "description": "Latest validation HTTP status.", "population_rule": "Store integer and checked_at; do not overwrite historical tests in mature design.", "security": "Responses may expose private service state.", "evolution_path": "Current: latest only. Target: time-series availability and error patterns." }, { "name": "is_reachable", "required": false, "expected_type": "BOOLEAN", "category": "Health", "description": "Whether latest authorized check reached endpoint successfully under defined policy.", "population_rule": "True only when policy-defined success is met.", "security": "Testing private routes requires authority.", "evolution_path": "Current: status check. Target: synthetic monitoring and dependency alerts." }, { "name": "latency_ms", "required": false, "expected_type": "BIGINT", "category": "Health", "description": "Measured response time for latest check.", "population_rule": "Store milliseconds; null on no response.", "security": "Operational metadata.", "evolution_path": "Current: none. Target: percentile trends and regression alerts." }, { "name": "health_score", "required": true, "expected_type": "DECIMAL(5,4)", "category": "Quality", "description": "Composite availability, correctness, and latency score.", "population_rule": "Range 0-1 with scoring version.", "security": "No direct secret.", "evolution_path": "Current: binary. Target: historical SLO score." }, { "name": "risk_score", "required": true, "expected_type": "DECIMAL(5,4)", "category": "Quality", "description": "Security and operational risk of endpoint.", "population_rule": "Range 0-1.", "security": "Can reveal vulnerable surfaces.", "evolution_path": "Current: heuristic. Target: attack-path and business-impact model." } ] }, { "worksheet": "Configuration", "preferred_table": "simon_configuration", "aliases": [ "configuration", "configurations" ], "field_count": 14, "fields": [ { "name": "config_id", "required": true, "expected_type": "UUID or BIGINT", "category": "Identity", "description": "Persistent identifier for one logical configuration key in a project/environment/source scope.", "population_rule": "Resolve repeated occurrences to same logical config item; retain occurrence signals separately.", "security": "Not secret.", "evolution_path": "Current: variable signals. Target: centralized configuration registry with provenance." }, { "name": "config_key", "required": true, "expected_type": "VARCHAR(255)", "category": "Identity", "description": "Canonical configuration name.", "population_rule": "Preserve conventional case but also store normalized key for comparison.", "security": "Names can reveal services but not secret values.", "evolution_path": "Current: discovered key. Target: ownership, documentation, usage graph." }, { "name": "config_value_type", "required": true, "expected_type": "ENUM", "category": "Type", "description": "Expected data type or semantic type.", "population_rule": "Controlled values: string, integer, decimal, boolean, url, hostname, port, path, enum, json, credential_reference.", "security": "Credential_reference invokes secure handling.", "evolution_path": "Current: inferred. Target: schema registry and generated forms." }, { "name": "value_preview", "required": false, "expected_type": "TEXT", "category": "Value", "description": "Safe non-secret display value or masked representation.", "population_rule": "Store only if policy permits; secrets use irreversible mask/fingerprint.", "security": "Never expose plaintext secrets.", "evolution_path": "Current: app settings. Target: environment diff without secret leakage." }, { "name": "environment", "required": true, "expected_type": "ENUM", "category": "Scope", "description": "Environment where value applies.", "population_rule": "Allowed: development, staging, production, test, local, global, unknown.", "security": "Production config is highly sensitive.", "evolution_path": "Current: manual. Target: promotion workflow and drift detection." }, { "name": "source_type", "required": true, "expected_type": "ENUM", "category": "Provenance", "description": "Where the configuration is defined.", "population_rule": "Allowed: code, env, database, keychain, vault, settings, server, api, generated.", "security": "Vault/keychain details restricted.", "evolution_path": "Current: app storage/code. Target: centralized vault and source-of-truth policy." }, { "name": "is_required", "required": true, "expected_type": "BOOLEAN", "category": "Requirement", "description": "Whether system operation requires this configuration.", "population_rule": "Set by explicit contract where possible.", "security": "No direct secret.", "evolution_path": "Current: manual. Target: dependency-derived requirement and startup validation." }, { "name": "is_present", "required": true, "expected_type": "BOOLEAN", "category": "State", "description": "Whether a usable value/reference exists.", "population_rule": "True only when nonempty and accessible under current authority.", "security": "Presence of secret is safe; value is not.", "evolution_path": "Current: field filled. Target: permission-aware runtime verification." }, { "name": "is_valid", "required": true, "expected_type": "BOOLEAN", "category": "State", "description": "Whether value passes type, policy, reachability, or credential test.", "population_rule": "Set with validated_at and validation result.", "security": "Validation errors must be sanitized.", "evolution_path": "Current: format check. Target: live test and policy compliance." }, { "name": "is_sensitive", "required": true, "expected_type": "BOOLEAN", "category": "Security", "description": "Whether value is secret, personal, infrastructure-sensitive, or restricted.", "population_rule": "Set true for passwords, tokens, private keys, API keys, usernames where policy requires, and internal endpoints.", "security": "Controls encryption/redaction/export.", "evolution_path": "Current: keyword matching. Target: contextual detection and owner confirmation." }, { "name": "credential_id", "required": false, "expected_type": "UUID or BIGINT", "category": "Security", "description": "Reference to encrypted secret storage.", "population_rule": "Store only reference.", "security": "Highly sensitive linkage.", "evolution_path": "Current: proposed. Target: rotation, expiry, audit, scoped grants." }, { "name": "validation_rule", "required": false, "expected_type": "TEXT / JSON", "category": "Validation", "description": "Machine-readable validation and policy rule.", "population_rule": "Store rule ID plus parameters.", "security": "Rules may describe infrastructure constraints.", "evolution_path": "Current: inline checks. Target: central rule engine and generated UI validation." }, { "name": "last_verified_at", "required": false, "expected_type": "DATETIME(6) UTC", "category": "Validation", "description": "Last successful or attempted verification time.", "population_rule": "Update with verification status and evidence.", "security": "Operational metadata.", "evolution_path": "Current: test button. Target: scheduled validation and expiry alerts." }, { "name": "status", "required": true, "expected_type": "ENUM", "category": "Lifecycle", "description": "Lifecycle and readiness state.", "population_rule": "Allowed: active, missing, invalid, expired, deprecated, shadowed, duplicate, pending.", "security": "Status can reveal system readiness.", "evolution_path": "Current: active/missing. Target: environment drift and migration workflow." } ] }, { "worksheet": "Findings", "preferred_table": "simon_findings", "aliases": [ "findings" ], "field_count": 18, "fields": [ { "name": "finding_id", "required": true, "expected_type": "UUID or BIGINT", "category": "Identity", "description": "Unique identifier for one actionable observation.", "population_rule": "Create for distinct issue/evidence; merge duplicates through explicit fingerprinting.", "security": "Not secret.", "evolution_path": "Current: console messages. Target: full issue lifecycle and outcome learning." }, { "name": "finding_type", "required": true, "expected_type": "ENUM", "category": "Classification", "description": "Canonical issue category.", "population_rule": "Allowed: bug, security, missing, duplicate, broken_link, stub, architecture, performance, data_quality, compliance, configuration, dependency.", "security": "Some categories are highly sensitive.", "evolution_path": "Current: generic alerts. Target: extensible taxonomy with ownership." }, { "name": "severity", "required": true, "expected_type": "ENUM", "category": "Classification", "description": "Potential impact before considering confidence and exposure.", "population_rule": "Allowed: info, low, medium, high, critical.", "security": "Critical findings require restricted handling.", "evolution_path": "Current: static. Target: environment/business criticality-aware severity." }, { "name": "title", "required": true, "expected_type": "VARCHAR(255)", "category": "Content", "description": "Concise human-readable issue name.", "population_rule": "State the problem, not vague advice.", "security": "May reveal vulnerability summary.", "evolution_path": "Current: generated text. Target: consistent templates and localization." }, { "name": "description", "required": true, "expected_type": "TEXT", "category": "Content", "description": "Detailed factual explanation of what was found.", "population_rule": "Describe observed state, expected state, and scope.", "security": "Potentially sensitive architecture.", "evolution_path": "Current: free text. Target: structured observed/expected/impact fields." }, { "name": "evidence", "required": true, "expected_type": "TEXT / JSON", "category": "Evidence", "description": "Minimal source references proving the finding.", "population_rule": "Store entity IDs and line/range references; avoid duplicating large source snippets.", "security": "Evidence may contain secrets; redact.", "evolution_path": "Current: text excerpt. Target: immutable evidence bundle with access controls." }, { "name": "why_it_matters", "required": true, "expected_type": "TEXT", "category": "Impact", "description": "Operational, security, user, financial, or data consequence.", "population_rule": "Explain concrete effect and affected capability.", "security": "May reveal business impact.", "evolution_path": "Current: manual/AI. Target: impact graph and predicted downstream effects." }, { "name": "recommended_action", "required": true, "expected_type": "TEXT", "category": "Remediation", "description": "Specific corrective action.", "population_rule": "Provide implementable next step, prerequisite, validation, and rollback where material.", "security": "May mention sensitive components; restrict detail.", "evolution_path": "Current: suggestion. Target: generated patch plan and approval workflow." }, { "name": "auto_fix_available", "required": true, "expected_type": "BOOLEAN", "category": "Remediation", "description": "Whether a tested automated remediation exists.", "population_rule": "True only when patch is deterministic, reversible, and supported for this version.", "security": "Auto-fix may affect production; authority required.", "evolution_path": "Current: false. Target: staged fixes with preview, approval, validation, rollback." }, { "name": "authority_required", "required": true, "expected_type": "ENUM", "category": "Authority", "description": "Approval level required for remediation.", "population_rule": "Allowed: advisory, user, operator, admin, approval_required, autonomous.", "security": "Controls write access.", "evolution_path": "Current: manual. Target: policy-derived and auditable approvals." }, { "name": "status", "required": true, "expected_type": "ENUM", "category": "Lifecycle", "description": "Issue workflow state.", "population_rule": "Allowed: open, acknowledged, planned, fixing, fixed, verified, ignored, false_positive, regressed.", "security": "Issue notes can be sensitive.", "evolution_path": "Current: open/fixed. Target: SLA, ownership, recurrence, regression." }, { "name": "truth", "required": true, "expected_type": "BOOLEAN", "category": "Truth", "description": "Whether the finding is presently confirmed as fact.", "population_rule": "Set true only when evidence satisfies confirmation criteria.", "security": "No direct secret.", "evolution_path": "Current: heuristic. Target: evidence-based truth state with provenance." }, { "name": "make_false_json", "required": true, "expected_type": "JSON", "category": "Truth", "description": "Conditions or evidence that would disprove the finding.", "population_rule": "Store structured falsification criteria.", "security": "May describe security tests.", "evolution_path": "Current: absent. Target: automatic re-evaluation triggers." }, { "name": "make_true_json", "required": true, "expected_type": "JSON", "category": "Truth", "description": "Conditions or evidence that confirm the finding.", "population_rule": "Store structured confirmation criteria.", "security": "May describe security tests.", "evolution_path": "Current: absent. Target: executable validation checks." }, { "name": "confidence", "required": true, "expected_type": "DECIMAL(5,4)", "category": "Quality", "description": "Confidence evidence and classification are correct.", "population_rule": "Range 0-1.", "security": "No direct secret.", "evolution_path": "Current: rule weight. Target: confirmed false-positive learning." }, { "name": "risk", "required": true, "expected_type": "DECIMAL(5,4)", "category": "Quality", "description": "Contextual likelihood/impact score.", "population_rule": "Range 0-1 with model version.", "security": "Risk detail sensitive.", "evolution_path": "Current: heuristic. Target: graph-aware risk and remediation benefit." }, { "name": "created_at", "required": true, "expected_type": "DATETIME(6) UTC", "category": "Lifecycle", "description": "Time finding was first created.", "population_rule": "Set once.", "security": "Operational metadata.", "evolution_path": "Current: scan timestamp. Target: lifecycle analytics." }, { "name": "resolved_at", "required": false, "expected_type": "DATETIME(6) UTC", "category": "Lifecycle", "description": "Time issue entered verified/final resolution state.", "population_rule": "Set when fixed is verified or accepted false_positive/ignored by authority.", "security": "Operational metadata.", "evolution_path": "Current: optional. Target: reopen/regression history." } ] }, { "worksheet": "5W1H Events", "preferred_table": "simon_5w1h_events", "aliases": [ "simon_events", "events" ], "field_count": 25, "fields": [ { "name": "event_id", "required": true, "expected_type": "UUID or BIGINT", "category": "Identity", "description": "Unique identifier for one operational event.", "population_rule": "Create once for every meaningful state transition, scan action, finding action, connection result, or user command.", "security": "Not secret.", "evolution_path": "Current: app log line. Target: universal event ledger across SIMON." }, { "name": "who_type", "required": true, "expected_type": "ENUM", "category": "Who", "description": "Actor class responsible for event.", "population_rule": "Allowed: user, operator, admin, system, agent, provider, webhook, unknown.", "security": "User identity may be personal data.", "evolution_path": "Current: user/system. Target: signed actor identity and delegated authority." }, { "name": "who_id", "required": false, "expected_type": "VARCHAR(255)", "category": "Who", "description": "Stable actor identifier.", "population_rule": "Store stable ID, not display name.", "security": "Personal/service identity is sensitive.", "evolution_path": "Current: literal name. Target: identity registry and signed actions." }, { "name": "what_type", "required": true, "expected_type": "VARCHAR(100)", "category": "What", "description": "Entity or event class affected.", "population_rule": "Use controlled type such as file_scan, finding_created, connection_test, file_changed, endpoint_checked.", "security": "No direct secret.", "evolution_path": "Current: free text. Target: event ontology and schema per type." }, { "name": "what_action", "required": true, "expected_type": "VARCHAR(100)", "category": "What", "description": "Specific action performed.", "population_rule": "Controlled verbs: created, started, discovered, parsed, updated, failed, completed, verified, deleted, restored.", "security": "No direct secret.", "evolution_path": "Current: message. Target: state-machine event sourcing." }, { "name": "entity_type", "required": false, "expected_type": "VARCHAR(50)", "category": "What", "description": "Type of primary entity.", "population_rule": "Use global entity registry.", "security": "No direct secret.", "evolution_path": "Current: optional. Target: universal entity links." }, { "name": "entity_id", "required": false, "expected_type": "UUID or BIGINT", "category": "What", "description": "Primary entity identifier.", "population_rule": "Populate when available.", "security": "Could expose internal identifiers.", "evolution_path": "Current: none. Target: navigable audit trail." }, { "name": "summary", "required": true, "expected_type": "TEXT", "category": "What", "description": "Concise factual event description.", "population_rule": "Use safe, human-readable text without secrets.", "security": "May reveal project structure.", "evolution_path": "Current: log string. Target: template-driven localized summaries." }, { "name": "occurred_at", "required": true, "expected_type": "DATETIME(6) UTC", "category": "When", "description": "Authoritative event time.", "population_rule": "Normalize to UTC.", "security": "Operational metadata.", "evolution_path": "Current: local timestamp. Target: signed timestamp provenance." }, { "name": "duration_ms", "required": false, "expected_type": "BIGINT", "category": "When", "description": "Elapsed time for duration-bearing events.", "population_rule": "Populate only when event represents an operation.", "security": "Operational metadata.", "evolution_path": "Current: scan total. Target: per-event performance analysis." }, { "name": "source_type", "required": false, "expected_type": "VARCHAR(50)", "category": "Where", "description": "Environment/location class.", "population_rule": "Allowed: local_folder, website, database, repository, api, device, server, cloud.", "security": "Can expose infrastructure.", "evolution_path": "Current: path text. Target: source/location entity link." }, { "name": "host", "required": false, "expected_type": "VARCHAR(255)", "category": "Where", "description": "Device, service, or hostname where event occurred.", "population_rule": "Store safe canonical identifier.", "security": "Device/host identity can be sensitive.", "evolution_path": "Current: device name. Target: asset registry link." }, { "name": "path_or_url", "required": false, "expected_type": "TEXT", "category": "Where", "description": "Relevant path or URL.", "population_rule": "Store canonical locator; redact tokens and private details as policy requires.", "security": "Sensitive infrastructure or URLs.", "evolution_path": "Current: raw path. Target: source-relative URI plus access-controlled full locator." }, { "name": "trigger", "required": true, "expected_type": "VARCHAR(100)", "category": "Why", "description": "Immediate cause of event.", "population_rule": "Controlled values plus trigger reference.", "security": "No direct secret.", "evolution_path": "Current: manual. Target: causal chain and automation attribution." }, { "name": "objective", "required": false, "expected_type": "TEXT", "category": "Why", "description": "Intended business or technical outcome.", "population_rule": "Store concise objective.", "security": "May reveal business intent.", "evolution_path": "Current: free text. Target: objective registry and outcome scoring." }, { "name": "method", "required": true, "expected_type": "ENUM", "category": "How", "description": "Execution method or authority mode.", "population_rule": "Allowed: direct, scheduled, delegated, approval_based, autonomous, retry, recovery.", "security": "Autonomous actions need strong audit.", "evolution_path": "Current: direct. Target: delegated authority and policy evidence." }, { "name": "component", "required": true, "expected_type": "VARCHAR(100)", "category": "How", "description": "Software component executing action.", "population_rule": "Canonical component ID.", "security": "No direct secret.", "evolution_path": "Current: app name. Target: versioned component/service identity." }, { "name": "confidence", "required": true, "expected_type": "DECIMAL(5,4)", "category": "Health", "description": "Confidence event description and links are accurate.", "population_rule": "Range 0-1.", "security": "No direct secret.", "evolution_path": "Current: heuristic. Target: source-signed confidence and reconciliation." }, { "name": "ambiguity", "required": true, "expected_type": "DECIMAL(5,4)", "category": "Health", "description": "Uncertainty in actor, target, timing, or interpretation.", "population_rule": "Range 0-1.", "security": "No direct secret.", "evolution_path": "Current: manual. Target: unresolved-link-driven score." }, { "name": "completeness", "required": true, "expected_type": "DECIMAL(5,4)", "category": "Health", "description": "Coverage of required event fields and evidence.", "population_rule": "Range 0-1.", "security": "No direct secret.", "evolution_path": "Current: field presence. Target: type-specific event schema coverage." }, { "name": "risk", "required": true, "expected_type": "DECIMAL(5,4)", "category": "Health", "description": "Risk associated with event or action.", "population_rule": "Range 0-1.", "security": "High-risk event detail restricted.", "evolution_path": "Current: static. Target: action policy and outcome-aware score." }, { "name": "truth", "required": true, "expected_type": "BOOLEAN", "category": "Truth", "description": "Whether event statement is confirmed.", "population_rule": "True only after event and referenced state are successfully recorded or corroborated.", "security": "No direct secret.", "evolution_path": "Current: assumed. Target: reconciliation with source/runtime state." }, { "name": "make_false_json", "required": true, "expected_type": "JSON", "category": "Truth", "description": "Evidence that would invalidate event interpretation.", "population_rule": "Structured falsification criteria.", "security": "May reference sensitive checks.", "evolution_path": "Current: absent. Target: automated reconciliation." }, { "name": "make_true_json", "required": true, "expected_type": "JSON", "category": "Truth", "description": "Evidence confirming event interpretation.", "population_rule": "Structured confirmation criteria.", "security": "May reference sensitive checks.", "evolution_path": "Current: absent. Target: continuous event verification." }, { "name": "meta_json", "required": false, "expected_type": "JSON", "category": "Metadata", "description": "Extensible structured references and non-core attributes.", "population_rule": "Store scan_id, project_id, source_id, parser version, request ID, parent event, and schema-specific data.", "security": "May include sensitive metadata; enforce allowlist.", "evolution_path": "Current: arbitrary meta. Target: type-specific versioned schema." } ] }, { "worksheet": "Unified 5W1H Stream", "preferred_table": "simon_event_stream", "aliases": [ "event_stream", "simon_events" ], "field_count": 49, "fields": [ { "name": "schema_version", "required": true, "expected_type": "VARCHAR(20)", "category": "Envelope", "description": "Version of the unified event contract.", "population_rule": "Set by producer; reject unsupported major versions.", "security": "Public", "evolution_path": "Add backward-compatible minor versions; migrate on major change." }, { "name": "event_id", "required": true, "expected_type": "UUID", "category": "Envelope", "description": "Permanent ID for one event occurrence.", "population_rule": "Create once; retries reuse same event_id.", "security": "Internal", "evolution_path": "Evolve to globally unique event URI and signed provenance." }, { "name": "event_type", "required": true, "expected_type": "VARCHAR(100)", "category": "Envelope", "description": "Canonical event class.", "population_rule": "Use controlled event registry.", "security": "Internal", "evolution_path": "Expand through versioned event ontology." }, { "name": "event_action", "required": true, "expected_type": "VARCHAR(100)", "category": "Envelope", "description": "Specific action performed.", "population_rule": "Use stable past-tense or state-change verb.", "security": "Internal", "evolution_path": "Evolve to formal state machine." }, { "name": "occurred_at", "required": true, "expected_type": "DATETIME(6) / ISO 8601", "category": "Envelope", "description": "Authoritative event time.", "population_rule": "Normalize to UTC.", "security": "Internal", "evolution_path": "Add received_at, processed_at, and source_time." }, { "name": "received_at", "required": true, "expected_type": "DATETIME(6) / ISO 8601", "category": "Envelope", "description": "Time loader accepted event.", "population_rule": "Set at ingestion boundary.", "security": "Internal", "evolution_path": "Add queue latency and ingestion SLA." }, { "name": "producer_id", "required": true, "expected_type": "VARCHAR(150)", "category": "Envelope", "description": "Component or agent emitting event.", "population_rule": "Canonical component ID.", "security": "Internal", "evolution_path": "Evolve to signed service identity." }, { "name": "producer_version", "required": true, "expected_type": "VARCHAR(80)", "category": "Envelope", "description": "Build or module version.", "population_rule": "Populate exact release/build identifier.", "security": "Internal", "evolution_path": "Use to trigger reprocessing after parser upgrades." }, { "name": "project_id", "required": true, "expected_type": "UUID/BIGINT", "category": "Context", "description": "Parent SIMON project.", "population_rule": "Resolve before loading.", "security": "Confidential", "evolution_path": "Support multi-project federated events." }, { "name": "source_id", "required": false, "expected_type": "UUID/BIGINT", "category": "Context", "description": "Connection, root, site, repository, or database source.", "population_rule": "Resolve before scan-derived event.", "security": "Confidential", "evolution_path": "Support multi-source correlation." }, { "name": "scan_id", "required": false, "expected_type": "UUID/BIGINT", "category": "Context", "description": "Scan run producing event.", "population_rule": "Populate for scan-derived events.", "security": "Internal", "evolution_path": "Support child scans and distributed workers." }, { "name": "who_type", "required": true, "expected_type": "ENUM", "category": "Who", "description": "Actor class.", "population_rule": "user, operator, admin, system, agent, provider, webhook.", "security": "Personal/Internal", "evolution_path": "Add delegated identity and authority chain." }, { "name": "who_id", "required": false, "expected_type": "VARCHAR(255)", "category": "Who", "description": "Stable actor identifier.", "population_rule": "Use internal stable ID.", "security": "Personal/Internal", "evolution_path": "Signed identity and service accounts." }, { "name": "authority_level", "required": true, "expected_type": "ENUM", "category": "Who", "description": "Authority under which action occurred.", "population_rule": "advisory, user, operator, admin, approval_required, autonomous.", "security": "Restricted", "evolution_path": "Add delegated grants, expiry, approval evidence." }, { "name": "entity_type", "required": true, "expected_type": "VARCHAR(80)", "category": "What", "description": "Primary affected entity type.", "population_rule": "file, function, route, menu, tracker, finding, recommendation, change, config, endpoint, table, project.", "security": "Internal", "evolution_path": "Expand to universal entity ontology." }, { "name": "entity_id", "required": false, "expected_type": "UUID/BIGINT", "category": "What", "description": "Primary affected entity ID.", "population_rule": "Populate after entity resolution.", "security": "Internal", "evolution_path": "Evolve to global entity URI." }, { "name": "summary", "required": true, "expected_type": "TEXT", "category": "What", "description": "Human-readable factual event summary.", "population_rule": "Keep concise and evidence-based.", "security": "Confidential", "evolution_path": "Localized templates and evidence-linked summaries." }, { "name": "started_at", "required": false, "expected_type": "DATETIME(6)", "category": "When", "description": "Operation start when event spans time.", "population_rule": "Populate for duration-bearing events.", "security": "Internal", "evolution_path": "Add span/trace model." }, { "name": "completed_at", "required": false, "expected_type": "DATETIME(6)", "category": "When", "description": "Operation completion.", "population_rule": "Populate on completion/failure.", "security": "Internal", "evolution_path": "Add nested spans." }, { "name": "duration_ms", "required": false, "expected_type": "BIGINT", "category": "When", "description": "Measured elapsed time.", "population_rule": "Calculate, do not trust arbitrary payload.", "security": "Internal", "evolution_path": "Add percentiles and anomaly thresholds." }, { "name": "environment", "required": true, "expected_type": "ENUM", "category": "Where", "description": "Deployment environment.", "population_rule": "development, staging, production, test, local, unknown.", "security": "Confidential", "evolution_path": "Add region/tenant/branch dimension." }, { "name": "host", "required": false, "expected_type": "VARCHAR(255)", "category": "Where", "description": "Device/server/provider host.", "population_rule": "Canonical safe host ID.", "security": "Confidential", "evolution_path": "Link to asset registry and health." }, { "name": "path_or_url", "required": false, "expected_type": "TEXT", "category": "Where", "description": "Relevant path or URL.", "population_rule": "Canonicalize and redact tokens.", "security": "Confidential", "evolution_path": "Prefer entity URIs over repeated raw strings." }, { "name": "trigger", "required": true, "expected_type": "VARCHAR(100)", "category": "Why", "description": "Immediate cause.", "population_rule": "Controlled trigger vocabulary.", "security": "Internal", "evolution_path": "Add parent_event_id and causal graph." }, { "name": "objective", "required": false, "expected_type": "TEXT", "category": "Why", "description": "Intended outcome.", "population_rule": "Concise target outcome.", "security": "Confidential", "evolution_path": "Add measurable objectives and outcome score." }, { "name": "method", "required": true, "expected_type": "ENUM", "category": "How", "description": "Execution method.", "population_rule": "direct, scheduled, delegated, approval_based, autonomous, retry, recovery.", "security": "Internal", "evolution_path": "Add workflow_id and step_id." }, { "name": "parser_or_rule", "required": false, "expected_type": "VARCHAR(255)", "category": "How", "description": "Parser, rule, model, or validator used.", "population_rule": "Stable ID plus version.", "security": "Internal", "evolution_path": "Enable automatic reprocessing by version." }, { "name": "payload_format", "required": true, "expected_type": "ENUM", "category": "How", "description": "Format of nested event data.", "population_rule": "json, ndjson, multipart, batch_json.", "security": "Internal", "evolution_path": "Add compression and signature metadata." }, { "name": "confidence", "required": true, "expected_type": "DECIMAL(5,4)", "category": "Health", "description": "Confidence event interpretation is correct.", "population_rule": "0 to 1.", "security": "Internal", "evolution_path": "Calibrate using confirmations/false positives." }, { "name": "ambiguity", "required": true, "expected_type": "DECIMAL(5,4)", "category": "Health", "description": "Unresolved interpretation or entity uncertainty.", "population_rule": "0 to 1.", "security": "Internal", "evolution_path": "Link ambiguity to candidate records." }, { "name": "completeness", "required": true, "expected_type": "DECIMAL(5,4)", "category": "Health", "description": "Coverage of required fields and analysis outputs.", "population_rule": "0 to 1.", "security": "Internal", "evolution_path": "Type-specific completeness profiles." }, { "name": "risk", "required": true, "expected_type": "DECIMAL(5,4)", "category": "Health", "description": "Security/operational risk associated with event.", "population_rule": "0 to 1.", "security": "Restricted", "evolution_path": "Graph-aware blast radius and business impact." }, { "name": "truth_state", "required": true, "expected_type": "ENUM", "category": "Truth", "description": "Truth status of event.", "population_rule": "true, false, unknown, disputed, superseded.", "security": "Internal", "evolution_path": "Replace Boolean truth with explicit epistemic state." }, { "name": "make_true_json", "required": true, "expected_type": "JSON", "category": "Truth", "description": "Evidence/conditions that confirm event.", "population_rule": "Structured JSON array.", "security": "Restricted", "evolution_path": "Executable confirmation rules." }, { "name": "make_false_json", "required": true, "expected_type": "JSON", "category": "Truth", "description": "Evidence/conditions that disprove event.", "population_rule": "Structured JSON array.", "security": "Restricted", "evolution_path": "Executable falsification rules." }, { "name": "data_classification", "required": true, "expected_type": "ENUM", "category": "Data", "description": "Highest sensitivity of data involved.", "population_rule": "public, internal, confidential, restricted, secret.", "security": "Restricted", "evolution_path": "Policy-driven propagation through graph." }, { "name": "data_used_json", "required": false, "expected_type": "JSON", "category": "Data", "description": "Structured list of data read, written, transmitted, or derived.", "population_rule": "Use references, operations, validation, sensitivity, retention.", "security": "Restricted", "evolution_path": "Normalize into child data-usage table at scale." }, { "name": "details_json", "required": true, "expected_type": "JSON", "category": "Payload", "description": "Event-type-specific structured payload.", "population_rule": "Must conform to event_type schema.", "security": "Contextual", "evolution_path": "Version schemas independently." }, { "name": "relationships_json", "required": false, "expected_type": "JSON", "category": "Payload", "description": "Secondary entities and graph edges created/affected.", "population_rule": "Structured references and relation types.", "security": "Confidential", "evolution_path": "Promote to relationship stream/event child records." }, { "name": "recommendations_json", "required": false, "expected_type": "JSON", "category": "Payload", "description": "Recommendations generated by this event.", "population_rule": "Include priority, reason, evidence, authority, validation, rollback.", "security": "Restricted", "evolution_path": "Evolve to recommendation entity lifecycle events." }, { "name": "status", "required": true, "expected_type": "ENUM", "category": "Lifecycle", "description": "Ingestion/processing lifecycle.", "population_rule": "received, validated, rejected, queued, processed, partial, failed, replayed.", "security": "Internal", "evolution_path": "Exactly-once processing and replay." }, { "name": "idempotency_key", "required": true, "expected_type": "VARCHAR(255)", "category": "Lifecycle", "description": "Stable retry key.", "population_rule": "Usually event_id or deterministic operation key.", "security": "Internal", "evolution_path": "Support batch/chunk idempotency." }, { "name": "parent_event_id", "required": false, "expected_type": "UUID", "category": "Lifecycle", "description": "Direct causal or workflow parent.", "population_rule": "Populate when event was triggered by another event.", "security": "Internal", "evolution_path": "Build causal graph and trace tree." }, { "name": "correlation_id", "required": false, "expected_type": "VARCHAR(255)", "category": "Lifecycle", "description": "Groups events for same scan, request, workflow, or report.", "population_rule": "Reuse across related events.", "security": "Internal", "evolution_path": "Distributed tracing compatibility." }, { "name": "sequence_no", "required": false, "expected_type": "BIGINT", "category": "Lifecycle", "description": "Order within correlation stream.", "population_rule": "Monotonic integer per stream key.", "security": "Internal", "evolution_path": "Event sourcing and ordered replay." }, { "name": "retention_class", "required": true, "expected_type": "ENUM", "category": "Governance", "description": "Retention policy class.", "population_rule": "transient, operational, audit, historical, legal_hold.", "security": "Restricted", "evolution_path": "Automated archival and purge workflows." }, { "name": "owner_id", "required": false, "expected_type": "UUID/BIGINT", "category": "Governance", "description": "Responsible owner/steward.", "population_rule": "Resolve to owner entity.", "security": "Personal/Internal", "evolution_path": "Add escalation and SLA ownership." }, { "name": "validation_status", "required": true, "expected_type": "ENUM", "category": "Governance", "description": "Result of schema and business validation.", "population_rule": "unknown, valid, invalid, partial, quarantined.", "security": "Internal", "evolution_path": "Automated revalidation after schema/rule upgrades." }, { "name": "validation_errors_json", "required": false, "expected_type": "JSON", "category": "Governance", "description": "Structured loader/validator errors.", "population_rule": "Code, field, message, severity, retryability.", "security": "Restricted", "evolution_path": "Standard error catalog and remediation." } ] } ] }
Save file
Quick jump
open a path
Open