84 lines
4.2 KiB
YAML
84 lines
4.2 KiB
YAML
id: 1c-designer-sql-decoding-policy
|
|
status: active
|
|
summary: "The adapter is a SQL codec only: it decodes and encodes strictly by the live-SQL-derived, versioned configuration-storage specification. In an explicitly authorised test base it may write only verified configuration saved-state overlays. It never invents 1C structure, BSL, or integrity atoms, and never writes active configuration or application data."
|
|
|
|
scope:
|
|
default_base_id: upo_test
|
|
allowed_base_class: disposable_test
|
|
forbidden_base_class: [production, unclassified]
|
|
platform_mutation_authority:
|
|
application_data: 1c_enterprise_client
|
|
active_configuration: 1c_designer
|
|
metadata_saved_state: adapter_sql_only_with_verified_codec
|
|
adapter_role: specification_bound_sql_decoder_and_controlled_saved_state_writer
|
|
fundamental_rule: "Unknown, incomplete, or ambiguous structure returns explicit evidence and unsupported/partial/ambiguous; no guessed decoding or encoding is permitted."
|
|
|
|
credentials:
|
|
persistence: forbidden_in_repository
|
|
accepted_sources: [process_environment, operating_system_credential_store, interactive_session]
|
|
rules:
|
|
- "Do not put 1C user passwords, SQL passwords, tokens, or connection strings containing secrets in project files, reports, fixtures, or command examples."
|
|
- "Redact credentials from process reports and captured command lines."
|
|
|
|
experiment:
|
|
isolation: one_intended_change_per_run
|
|
required_phases:
|
|
- identify_public_1c_target
|
|
- capture_sql_before
|
|
- change_through_1c
|
|
- save_in_1c
|
|
- capture_sql_after
|
|
- diff_sql
|
|
- decode_semantic_rule
|
|
- verify_with_second_value_or_object
|
|
- rollback_through_1c
|
|
- verify_rollback_in_sql
|
|
target_selectors: [public_ref, kind_and_name, form_and_element_name, record_ref]
|
|
forbidden_selectors_for_callers: [sql_number, physical_table, internal_guid_only]
|
|
|
|
sql_observation:
|
|
adapter_access: sql_only
|
|
allowed: [SELECT, metadata_schema_inspection, ConfigSave_read, ConfigCASSave_read, application_table_read]
|
|
forbidden:
|
|
- direct_application_data_write
|
|
- direct_Config_write
|
|
- direct_ConfigCAS_write
|
|
- sql_identity_or_permission_change
|
|
- trigger_or_profiler_installation
|
|
rule: "For production and unclassified bases SQL is evidence only. In the explicitly authorised disposable base, SQL writes are limited to ConfigSave/ConfigCASSave after a proven lossless codec, exact preconditions, atomic paired-file update, backup, and readback verification."
|
|
|
|
saved_state_write:
|
|
allowed_base_id: upo_test
|
|
allowed_tables: [ConfigSave, ConfigCASSave]
|
|
forbidden_tables: [Config, ConfigCAS]
|
|
required:
|
|
- "Resolve the target by live public-name evidence; do not require callers to supply a physical selector."
|
|
- "Read and hash every target byte stream before writing."
|
|
- "Use an exact, unique edit anchor or a proven offset/path selector; otherwise return an ambiguity error."
|
|
- "For extension saved-state, update the changed payload and the matching __configinfo file-SHA1 reference atomically."
|
|
- "Preserve unproven service atoms byte-for-byte; never generate a value by guesswork or randomness."
|
|
- "Create rollback evidence and verify SQL readback after commit."
|
|
- "Return Configurator refresh guidance based on whether the object existed in saved-state before the write."
|
|
|
|
metadata_layers:
|
|
designer_save:
|
|
observe: [ConfigSave, ConfigCASSave]
|
|
apply_configuration: false
|
|
applied_configuration:
|
|
observe: [Config, ConfigCAS, physical_schema]
|
|
gate: explicit_experiment_requirement
|
|
extensions:
|
|
rule: "Capture the base and every extension as separate layers and record load order and ownership."
|
|
|
|
xml:
|
|
role: offline_schema_reference_only
|
|
runtime_source: forbidden
|
|
rule: "XML may name the intended property and validate a learned rule, but live before/after evidence must come from SQL."
|
|
|
|
promotion_gates:
|
|
- "The SQL diff is isolated from pre-existing Designer and configuration-check noise."
|
|
- "A stable public 1C property or value name is resolved without requiring callers to know GUIDs or SQL numbers."
|
|
- "The rule is reproduced with a second value or a second object of the same shape."
|
|
- "A regression fixture and decoder test are added."
|
|
- "Rollback through 1C restores the SQL evidence or the experiment documents an irreversible schema migration."
|