id: 1c-xml-decoding-reference-policy
status: active
summary: "XML exports are offline decoding evidence only; the running adapter is SQL-only."

offline_analysis:
  allowed: true
  purposes:
    - discover_metadata_kinds
    - enumerate_declared_properties
    - correlate_object_guids
    - infer_binary_config_paths
    - build_decoder_tests_and_fixtures
  layer_rule: "Base configuration and every extension must be analyzed as separate layers."
  output_rule: "Promote only generic, evidence-backed format rules and tests into the adapter; do not promote configuration-specific XML values as live answers."

runtime:
  source: sql_only
  configured_by: base_id
  settings:
    - server
    - database
    - user
    - password_or_password_env
  xml_mount_required: false
  xml_environment_variables_allowed: false
  rejected_payload_arguments:
    - xml_path
    - xml_root
    - meta_xml_path
    - form_xml_path
    - configuration_xml
    - configuration_xml_path
    - config_dump_info
    - config_dump_info_path
  rules:
    - "Runtime metadata and data answers must be derived from the selected base_id SQL connection."
    - "Runtime must not read Configuration.xml, ConfigDumpInfo.xml, form XML, extension XML, or an XML-derived object-value cache."
    - "XML-derived decoder rules must remain generic and must be verified against live SQL bytes."
    - "An XML export may differ from live extensions and therefore cannot establish the current runtime extension state."

writes:
  rule: "This policy does not broaden SQL write scope. Only the saved-state exceptions in sql-base-access-policy.yaml apply."
  allowed_tables:
    - ConfigSave
    - ConfigCASSave
