39 lines
11 KiB
JSON
39 lines
11 KiB
JSON
{
|
|
"schema_version": 1,
|
|
"channel": "homelab-runtime",
|
|
"command_id": "HOMELAB-CLUSTER-KB-V1-GITEA-PUBLIC-OWNER-AUTH-CONTEXT-DISCOVERY-READ-ONLY-20260805T122500Z",
|
|
"status": "OK",
|
|
"rc": 0,
|
|
"host": "pve01",
|
|
"mode": "verify",
|
|
"component": "cluster-knowledge-base-error-system",
|
|
"started_at_utc": "2026-08-05T12:32:22Z",
|
|
"finished_at_utc": "2026-08-05T12:32:23Z",
|
|
"reference_register_checked": true,
|
|
"reference_sha256": "5763f2f8edc75fcf6f3951f8c95896d1cc112ceccb6cf5b64a383f540a4deb8e",
|
|
"error_register_checked": true,
|
|
"error_register_sha256": "24934a2c7fa5c26f6e828583c4aefac7f143b40c0171736ed7571e617d55ab83",
|
|
"command_sha256": "340bdfeb17194fa538ff7c7853899fad4e94107c866db42d2883250e322c3646",
|
|
"duplicate_failed_command_blocked": false,
|
|
"block_reason": null,
|
|
"execution_started": true,
|
|
"change_declared": false,
|
|
"result_contract_valid": true,
|
|
"result_contract_status": null,
|
|
"result_contract_error": null,
|
|
"command_rc": 0,
|
|
"changes_made": false,
|
|
"rollback_started": false,
|
|
"rollback_restored": null,
|
|
"mutation_outcome": "NO_MUTATION",
|
|
"sanitized": true,
|
|
"secrets_included": false,
|
|
"private_addresses_included": false,
|
|
"raw_evidence_retained_locally": true,
|
|
"raw_evidence_sha256": "76115dd10a58d162f41eae4b8367997a47b6abc9550004138f260e0551c2af1d",
|
|
"sanitized_output_sha256": "76115dd10a58d162f41eae4b8367997a47b6abc9550004138f260e0551c2af1d",
|
|
"output_truncated_in_json": false,
|
|
"full_sanitized_output_url": "https://git.gram1.ru/.well-known/homelab-runtime/latest.txt",
|
|
"output": "HOMELAB_RESULT_CONTRACT={\"changes_made\":false,\"command_id\":\"HOMELAB-CLUSTER-KB-V1-GITEA-PUBLIC-OWNER-AUTH-CONTEXT-DISCOVERY-READ-ONLY-20260805T122500Z\",\"command_rc\":0,\"mutation_outcome\":\"NO_MUTATION\",\"output_truncated_in_json\":false,\"rc\":0,\"rollback_restored\":null,\"rollback_started\":false,\"status\":\"OK\",\"version\":1}\n{\"auth_context\":{\"candidate_count\":1,\"candidate_sources\":[\"git_credentials_store\"],\"environment\":{\"accepted_candidate_count\":0,\"checked\":true,\"present_names\":[],\"values_emitted\":false},\"git_credential_fill\":{\"accepted_candidate_count\":0,\"available\":true,\"probe_count\":3,\"probes\":[{\"candidate_accepted\":false,\"duration_seconds\":0.002,\"fields_present\":[],\"interactive_disabled\":true,\"rc\":128,\"secret_field_present\":false,\"stderr_bytes\":142,\"stdout_bytes\":0,\"values_emitted\":false},{\"candidate_accepted\":false,\"duration_seconds\":0.002,\"fields_present\":[],\"interactive_disabled\":true,\"rc\":128,\"secret_field_present\":false,\"stderr_bytes\":142,\"stdout_bytes\":0,\"values_emitted\":false},{\"candidate_accepted\":false,\"duration_seconds\":0.002,\"fields_present\":[],\"interactive_disabled\":true,\"rc\":128,\"secret_field_present\":false,\"stderr_bytes\":142,\"stdout_bytes\":0,\"values_emitted\":false}]},\"git_credentials_store\":{\"accepted_candidate_count\":1,\"checked_path_count\":2,\"matching_entry_count\":1,\"readable_path_count\":1,\"values_emitted\":false},\"git_http_extraheader\":{\"accepted_candidate_count\":0,\"available\":true,\"probes\":[{\"authorization_entry_count\":0,\"duration_seconds\":0.001,\"entry_count\":0,\"matching_scope_count\":0,\"rc\":1,\"scope\":\"system\",\"stderr_bytes\":0,\"stdout_bytes\":0,\"values_emitted\":false},{\"authorization_entry_count\":0,\"duration_seconds\":0.001,\"entry_count\":0,\"matching_scope_count\":0,\"rc\":128,\"scope\":\"global\",\"stderr_bytes\":21,\"stdout_bytes\":0,\"values_emitted\":false}],\"scope_probe_count\":2},\"home_context_count\":1,\"home_paths_emitted\":false,\"netrc\":{\"accepted_candidate_count\":0,\"checked_path_count\":1,\"readable_path_count\":0,\"values_emitted\":false},\"secret_hashes_emitted\":false,\"secret_values_emitted\":false,\"tea_config\":{\"accepted_candidate_count\":0,\"checked_path_count\":3,\"exact_target_stanza_count\":0,\"readable_path_count\":0,\"values_emitted\":false}},\"authenticated_attempt_count\":1,\"authenticated_attempts\":[{\"authenticated\":true,\"authorization_value_emitted\":false,\"exact_repository_match_count\":1,\"probe_count\":3,\"probes\":[{\"body_emitted\":false,\"json_parse_ok\":true,\"kind\":\"authenticated_user\",\"login_verified\":true,\"ok\":true,\"status\":200},{\"body_emitted\":false,\"json_parse_ok\":true,\"kind\":\"user_organizations\",\"ok\":true,\"organization_count\":0,\"status\":200},{\"body_emitted\":false,\"exact_repository_match_count\":1,\"json_parse_ok\":true,\"kind\":\"repository_search\",\"ok\":true,\"status\":200}],\"source\":\"git_credentials_store\",\"verified_login\":\"homelab-admin\"}],\"authorization_header_sent\":true,\"authorization_values_emitted\":false,\"changes_made\":false,\"command_id\":\"HOMELAB-CLUSTER-KB-V1-GITEA-PUBLIC-OWNER-AUTH-CONTEXT-DISCOVERY-READ-ONLY-20260805T122500Z\",\"command_rc\":0,\"cookies_sent\":false,\"correction_of_previous_logic_gap\":{\"exact_fix\":\"validate public owner clues first, then inspect only exact local credential contexts without emitting values and use any available credential solely for bounded read-only Gitea GET APIs\",\"proven_gap\":\"the external endpoint is verified as Gitea but anonymous repository search returned no exact homelab-ops record\",\"regression_test\":\"never construct an owner; accept repository identity only from an exact API record; never emit credential values, secret hashes, response bodies or private addresses\"},\"credential_values_emitted\":false,\"credentials_sent\":true,\"dns\":{\"address_count\":1,\"addresses\":[{\"family\":4,\"scope\":\"private\",\"sha256\":\"bc517b4af3298846906234d3d697d3820b0b652ade1880c937c9d71cd802c834\"}],\"available\":true,\"duration_seconds\":0.001,\"error_count\":0,\"errors\":[],\"raw_addresses_emitted\":false},\"endpoint_probes\":[{\"address\":{\"family\":4,\"scope\":\"private\",\"sha256\":\"bc517b4af3298846906234d3d697d3820b0b652ade1880c937c9d71cd802c834\"},\"body_emitted\":false,\"ok\":true,\"status\":200,\"tls\":{\"certificate_bytes\":935,\"certificate_sha256\":\"3167a6916d6fad2e15d1c19af823f314e5e4abfc08e3ba20ee2cd79557897ff9\",\"cipher\":\"TLS_AES_256_GCM_SHA384\",\"san_dns_count\":1,\"san_dns_set_sha256\":\"92feea413ab6bd72fdd8b9102d872777d284d002a6be3e5323ca6e848105ee88\",\"target_san_present\":true,\"tls_version\":\"TLSv1.3\"},\"version_present\":true}],\"error_fingerprint\":\"03548fba8e07ff38da5615ce4d6f2604dac935eaf4c447223fe6dd0b83e161b2\",\"http_methods\":[\"GET\"],\"latest_exact_result_basis\":{\"capsule_sha256\":\"3450e3f33f36c085443e864aa18c219384721c4d87ac88e0bd00ad1b9faf7f95\",\"changes_made\":false,\"command_id\":\"HOMELAB-CLUSTER-KB-V1-EXTERNAL-DNS-TLS-GITEA-ROUTE-PROBE-READ-ONLY-20260805T120500Z\",\"command_rc\":0,\"control_plane_error\":null,\"error_fingerprint\":\"4386418883fecf6bcd72b7578656cc2670252b1407aee4cf799f68a2c4c81b18\",\"mutation_outcome\":\"NO_MUTATION\",\"next_action\":\"RUN_ONE_READ_ONLY_GITEA_PUBLIC_OWNER_AND_AUTH_CONTEXT_DISCOVERY\",\"output_complete\":true,\"output_sha256\":\"de264857bc353abb684c0721414f153afb1ca52fc770dff2beaeaa2c2708ec21\",\"output_truncated_in_json\":false,\"rc\":0,\"rollback_restored\":null,\"rollback_started\":false,\"root_cause_classification\":\"EXTERNAL_GITEA_ENDPOINT_VERIFIED_REPOSITORY_NOT_DISCOVERED_ANONYMOUSLY\",\"runner_document_rc\":0,\"runner_json_sha256\":\"79ed3c990d2fbebf2c26461964dfda29ba9e8d1eea58eec56db8e6ca5e860be5\",\"runner_rc\":0,\"runner_text_sha256\":\"f231992d227bf89b7571cdfd2b823a306dd5efcd224923370f5c97609206d6dd\",\"runner_wrapper_matches_document\":true,\"status\":\"OK\"},\"mutation_outcome\":\"NO_MUTATION\",\"network_requests_made\":true,\"next_action\":\"RUN_ONE_READ_ONLY_EXACT_GITEA_REPOSITORY_CONTENT_ANALYSIS\",\"output_truncated_in_json\":false,\"pre_command_known_error_gate\":{\"checked\":true,\"count\":27,\"ids\":[\"candidate-scan-limit-20260805\",\"runner-wrapper-mismatch-20260805\",\"gitea-owner-hardcoded-20260805\",\"gitea-git-auth-unavailable-20260805\",\"pvesh-adapter-context-unreadable-20260805\",\"gitea-process-self-match-20260805\",\"sanitize-non-string-attributeerror-20260805\",\"reader-path-env-misclassified-as-route-20260805\",\"reader-loopback-only-probe-20260805\",\"reader-capability-not-secret-20260805\",\"reader-systemd-unit-parsed-as-python-20260805\",\"reader-helper-contract-coverage-gap-20260805\",\"reader-capability-root-empty-suffix-404-20260805\",\"reader-generic-suffix-missed-exact-operation-20260805\",\"reader-feed-500-without-origin-20260805\",\"reader-sandbox-global-binding-undefined-20260805\",\"reader-negative-control-exception-polluted-classification-20260805\",\"reader-result-regex-candidate-not-proven-20260805\",\"reader-fake-dependency-contract-incomplete-20260805\",\"reader-manifest-alias-dataflow-gap-20260805\",\"reader-result-output-bound-after-compaction-20260805\",\"reader-result-reference-invalid-json-assumption-20260805\",\"reader-file-backed-feed-serves-manifest-only-20260805\",\"reader-exact-text-gitea-marker-context-unmapped-20260805\",\"reader-gitea-marker-detail-false-positive-pve-no-candidate-20260805\",\"reverse-proxy-runtime-not-host-visible-20260805\",\"external-gitea-repository-not-anonymous-20260805\"]},\"prevention_test\":{\"must_run_before_future_gitea_commands\":true,\"name\":\"gitea_public_owner_and_auth_context_preflight\",\"requirements\":[\"verify exact prior result identity and complete known-error register\",\"revalidate Gitea TLS SAN and version endpoint\",\"perform public exact-owner validation before reading credentials\",\"inspect only exact credential sources for git.gram1.ru\",\"disable interactive prompts and never call credential approve or reject\",\"send credentials only to the verified TLS endpoint and only with GET\",\"accept owner only from an exact homelab-ops API record\",\"emit no credential value, credential hash, response body, raw address or cookie\"]},\"private_addresses_emitted\":false,\"public_discovery\":{\"exact_repository_match_count\":0,\"html_owner_candidate_count\":0,\"probe_count\":3,\"probes\":[{\"body_emitted\":false,\"exact_repository_match_count\":0,\"json_parse_ok\":true,\"kind\":\"anonymous_repository_search\",\"ok\":true,\"status\":200},{\"body_emitted\":false,\"exact_repository_match_count\":0,\"json_parse_ok\":true,\"kind\":\"anonymous_repository_search\",\"ok\":true,\"status\":200},{\"body_emitted\":false,\"kind\":\"anonymous_explore_html\",\"ok\":true,\"owner_candidate_count\":0,\"status\":200}],\"response_bodies_emitted\":false,\"validated_owner_count\":0},\"raw_response_bodies_emitted\":false,\"rc\":0,\"read_only\":true,\"ready_for_exact_repository_content_analysis\":true,\"real_file_mutations_made\":false,\"regression_tests\":{\"checks\":{\"basic_header_created\":true,\"credential_parser\":true,\"exact_repository_record\":true,\"extraheader_scope_exact\":true,\"extraheader_scope_reject_other\":true,\"html_exact_owner\":true,\"http_method_read_only\":true,\"known_error_gate_complete\":true,\"latest_result_identity_complete\":true,\"reject_wrong_repository\":true,\"secret_not_in_safe_metadata\":true},\"passed\":true},\"repository_exact_match_count\":1,\"repository_matches\":[{\"archived\":false,\"default_branch\":\"main\",\"empty\":false,\"full_name\":\"homelab-admin/homelab-ops\",\"identity_safe\":true,\"mirror\":false,\"name\":\"homelab-ops\",\"owner\":\"homelab-admin\",\"private\":true}],\"result_projection\":{\"bytes\":8986,\"max_bytes\":30000,\"steps\":[]},\"rollback_restored\":null,\"rollback_started\":false,\"root_cause_classification\":\"AUTHENTICATED_GITEA_REPOSITORY_DISCOVERED_BY_EXACT_API_MATCH\",\"schema\":1,\"secret_hashes_emitted\":false,\"status\":\"OK\"}\n"
|
|
}
|