709 lines
41 KiB
Plaintext
709 lines
41 KiB
Plaintext
workspace root: /d/pipeline/workspaces/0/sdlc_general
|
||
|
||
--- A1~A5: 4 个落点全部执行同一套四段式 spec 断言 ---
|
||
== spec(inline four-section): /d/pipeline/workspaces/0/sdlc_general/modules/world_sync/models/pbl_runtime_event.json
|
||
ok A1 json-is-object
|
||
ok A2 root-keys == {summary,fields,indexes,codes} (got ['codes', 'fields', 'indexes', 'summary'])
|
||
ok A2 summary non-empty array (got 1)
|
||
ok A2 fields is array
|
||
ok A2 indexes is array
|
||
ok A2 codes is array
|
||
ok A3 fields non-empty (inline column set, got 25)
|
||
info summary[0] table-level meta keys (not judged): ['comment']
|
||
ok A4[id] field keys subset whitelist (extra=[])
|
||
ok A4[id] field.name present
|
||
ok A4[tenant_id] field keys subset whitelist (extra=[])
|
||
ok A4[tenant_id] field.name present
|
||
ok A4[event_uid] field keys subset whitelist (extra=[])
|
||
ok A4[event_uid] field.name present
|
||
ok A4[event_code] field keys subset whitelist (extra=[])
|
||
ok A4[event_code] field.name present
|
||
ok A4[idem_key] field keys subset whitelist (extra=[])
|
||
ok A4[idem_key] field.name present
|
||
ok A4[world_id] field keys subset whitelist (extra=[])
|
||
ok A4[world_id] field.name present
|
||
ok A4[scene_id] field keys subset whitelist (extra=[])
|
||
ok A4[scene_id] field.name present
|
||
ok A4[session_id] field keys subset whitelist (extra=[])
|
||
ok A4[session_id] field.name present
|
||
ok A4[entity_id] field keys subset whitelist (extra=[])
|
||
ok A4[entity_id] field.name present
|
||
ok A4[actor_id] field keys subset whitelist (extra=[])
|
||
ok A4[actor_id] field.name present
|
||
ok A4[event_type] field keys subset whitelist (extra=[])
|
||
ok A4[event_type] field.name present
|
||
ok A4[payload] field keys subset whitelist (extra=[])
|
||
ok A4[payload] field.name present
|
||
ok A4[payload_json] field keys subset whitelist (extra=[])
|
||
ok A4[payload_json] field.name present
|
||
ok A4[causation_id] field keys subset whitelist (extra=[])
|
||
ok A4[causation_id] field.name present
|
||
ok A4[seq] field keys subset whitelist (extra=[])
|
||
ok A4[seq] field.name present
|
||
ok A4[seq_no] field keys subset whitelist (extra=[])
|
||
ok A4[seq_no] field.name present
|
||
ok A4[source] field keys subset whitelist (extra=[])
|
||
ok A4[source] field.name present
|
||
ok A4[state] field keys subset whitelist (extra=[])
|
||
ok A4[state] field.name present
|
||
ok A4[state_version] field keys subset whitelist (extra=[])
|
||
ok A4[state_version] field.name present
|
||
ok A4[tx_group] field keys subset whitelist (extra=[])
|
||
ok A4[tx_group] field.name present
|
||
ok A4[broadcast] field keys subset whitelist (extra=[])
|
||
ok A4[broadcast] field.name present
|
||
ok A4[created_by] field keys subset whitelist (extra=[])
|
||
ok A4[created_by] field.name present
|
||
ok A4[created_at] field keys subset whitelist (extra=[])
|
||
ok A4[created_at] field.name present
|
||
ok A4[updated_at] field keys subset whitelist (extra=[])
|
||
ok A4[updated_at] field.name present
|
||
ok A4[occurred_at] field keys subset whitelist (extra=[])
|
||
ok A4[occurred_at] field.name present
|
||
ok A4[uk_event_uid] index keys subset whitelist (extra=[])
|
||
ok A4[uk_tenant_idem] index keys subset whitelist (extra=[])
|
||
ok A4[ix_scene_created] index keys subset whitelist (extra=[])
|
||
ok A4[ix_tenant_session_seq] index keys subset whitelist (extra=[])
|
||
ok A4[ix_tenant_session_seqno] index keys subset whitelist (extra=[])
|
||
ok A4[ix_tenant_world_type] index keys subset whitelist (extra=[])
|
||
ok A4[ix_tx_group] index keys subset whitelist (extra=[])
|
||
ok A4[ix_created_at] index keys subset whitelist (extra=[])
|
||
ok A4[code:event_type] keys subset whitelist (extra=[])
|
||
ok A4[uk_event_uid] idxfield present in fields: tenant_id
|
||
ok A4[uk_event_uid] idxfield present in fields: event_uid
|
||
ok A4[uk_event_uid] idxfield present in fields: created_at
|
||
ok A4[uk_event_uid] idxtype unique|index ('unique')
|
||
ok A4[uk_tenant_idem] idxfield present in fields: tenant_id
|
||
ok A4[uk_tenant_idem] idxfield present in fields: idem_key
|
||
ok A4[uk_tenant_idem] idxfield present in fields: created_at
|
||
ok A4[uk_tenant_idem] idxtype unique|index ('unique')
|
||
ok A4[ix_scene_created] idxfield present in fields: scene_id
|
||
ok A4[ix_scene_created] idxfield present in fields: created_at
|
||
ok A4[ix_scene_created] idxtype unique|index ('index')
|
||
ok A4[ix_tenant_session_seq] idxfield present in fields: tenant_id
|
||
ok A4[ix_tenant_session_seq] idxfield present in fields: session_id
|
||
ok A4[ix_tenant_session_seq] idxfield present in fields: seq
|
||
ok A4[ix_tenant_session_seq] idxtype unique|index ('index')
|
||
ok A4[ix_tenant_session_seqno] idxfield present in fields: tenant_id
|
||
ok A4[ix_tenant_session_seqno] idxfield present in fields: session_id
|
||
ok A4[ix_tenant_session_seqno] idxfield present in fields: seq_no
|
||
ok A4[ix_tenant_session_seqno] idxtype unique|index ('index')
|
||
ok A4[ix_tenant_world_type] idxfield present in fields: tenant_id
|
||
ok A4[ix_tenant_world_type] idxfield present in fields: world_id
|
||
ok A4[ix_tenant_world_type] idxfield present in fields: event_type
|
||
ok A4[ix_tenant_world_type] idxtype unique|index ('index')
|
||
ok A4[ix_tx_group] idxfield present in fields: tx_group
|
||
ok A4[ix_tx_group] idxtype unique|index ('index')
|
||
ok A4[ix_created_at] idxfield present in fields: created_at
|
||
ok A4[ix_created_at] idxtype unique|index ('index')
|
||
ok A3[id] abstract type ('str')
|
||
ok A3[id] positive int length
|
||
ok A3[id] nullable in yes|no
|
||
ok A3[tenant_id] abstract type ('str')
|
||
ok A3[tenant_id] positive int length
|
||
ok A3[tenant_id] nullable in yes|no
|
||
ok A3[event_uid] abstract type ('str')
|
||
ok A3[event_uid] positive int length
|
||
ok A3[event_uid] nullable in yes|no
|
||
ok A3[event_code] abstract type ('str')
|
||
ok A3[event_code] positive int length
|
||
ok A3[event_code] nullable in yes|no
|
||
ok A3[idem_key] abstract type ('str')
|
||
ok A3[idem_key] positive int length
|
||
ok A3[idem_key] nullable in yes|no
|
||
ok A3[world_id] abstract type ('long')
|
||
ok A3[world_id] nullable in yes|no
|
||
ok A3[scene_id] abstract type ('long')
|
||
ok A3[scene_id] nullable in yes|no
|
||
ok A3[session_id] abstract type ('long')
|
||
ok A3[session_id] nullable in yes|no
|
||
ok A3[entity_id] abstract type ('str')
|
||
ok A3[entity_id] positive int length
|
||
ok A3[entity_id] nullable in yes|no
|
||
ok A3[actor_id] abstract type ('str')
|
||
ok A3[actor_id] positive int length
|
||
ok A3[actor_id] nullable in yes|no
|
||
ok A3[event_type] abstract type ('str')
|
||
ok A3[event_type] positive int length
|
||
ok A3[event_type] nullable in yes|no
|
||
ok A3[payload] abstract type ('text')
|
||
ok A3[payload] nullable in yes|no
|
||
ok A3[payload_json] abstract type ('text')
|
||
ok A3[payload_json] nullable in yes|no
|
||
ok A3[causation_id] abstract type ('str')
|
||
ok A3[causation_id] positive int length
|
||
ok A3[causation_id] nullable in yes|no
|
||
ok A3[seq] abstract type ('long')
|
||
ok A3[seq] nullable in yes|no
|
||
ok A3[seq_no] abstract type ('long')
|
||
ok A3[seq_no] nullable in yes|no
|
||
ok A3[source] abstract type ('str')
|
||
ok A3[source] positive int length
|
||
ok A3[source] nullable in yes|no
|
||
ok A3[state] abstract type ('str')
|
||
ok A3[state] positive int length
|
||
ok A3[state] nullable in yes|no
|
||
ok A3[state_version] abstract type ('long')
|
||
ok A3[state_version] nullable in yes|no
|
||
ok A3[tx_group] abstract type ('str')
|
||
ok A3[tx_group] positive int length
|
||
ok A3[tx_group] nullable in yes|no
|
||
ok A3[broadcast] abstract type ('short')
|
||
ok A3[broadcast] nullable in yes|no
|
||
ok A3[created_by] abstract type ('long')
|
||
ok A3[created_by] nullable in yes|no
|
||
ok A3[created_at] abstract type ('datetime')
|
||
ok A3[created_at] nullable in yes|no
|
||
ok A3[updated_at] abstract type ('datetime')
|
||
ok A3[updated_at] nullable in yes|no
|
||
ok A3[occurred_at] abstract type ('datetime')
|
||
ok A3[occurred_at] nullable in yes|no
|
||
ok A5 summary[0] is object
|
||
ok A5 summary[0].name non-empty
|
||
ok A5 summary[0].name == filename stem ('pbl_runtime_event' vs 'pbl_runtime_event')
|
||
== spec(inline four-section): /d/pipeline/workspaces/0/sdlc_general/apps/scense/pkgs/world_sync/models/pbl_runtime_event.json
|
||
ok A1 json-is-object
|
||
ok A2 root-keys == {summary,fields,indexes,codes} (got ['codes', 'fields', 'indexes', 'summary'])
|
||
ok A2 summary non-empty array (got 1)
|
||
ok A2 fields is array
|
||
ok A2 indexes is array
|
||
ok A2 codes is array
|
||
ok A3 fields non-empty (inline column set, got 25)
|
||
info summary[0] table-level meta keys (not judged): ['comment']
|
||
ok A4[id] field keys subset whitelist (extra=[])
|
||
ok A4[id] field.name present
|
||
ok A4[tenant_id] field keys subset whitelist (extra=[])
|
||
ok A4[tenant_id] field.name present
|
||
ok A4[event_uid] field keys subset whitelist (extra=[])
|
||
ok A4[event_uid] field.name present
|
||
ok A4[event_code] field keys subset whitelist (extra=[])
|
||
ok A4[event_code] field.name present
|
||
ok A4[idem_key] field keys subset whitelist (extra=[])
|
||
ok A4[idem_key] field.name present
|
||
ok A4[world_id] field keys subset whitelist (extra=[])
|
||
ok A4[world_id] field.name present
|
||
ok A4[scene_id] field keys subset whitelist (extra=[])
|
||
ok A4[scene_id] field.name present
|
||
ok A4[session_id] field keys subset whitelist (extra=[])
|
||
ok A4[session_id] field.name present
|
||
ok A4[entity_id] field keys subset whitelist (extra=[])
|
||
ok A4[entity_id] field.name present
|
||
ok A4[actor_id] field keys subset whitelist (extra=[])
|
||
ok A4[actor_id] field.name present
|
||
ok A4[event_type] field keys subset whitelist (extra=[])
|
||
ok A4[event_type] field.name present
|
||
ok A4[payload] field keys subset whitelist (extra=[])
|
||
ok A4[payload] field.name present
|
||
ok A4[payload_json] field keys subset whitelist (extra=[])
|
||
ok A4[payload_json] field.name present
|
||
ok A4[causation_id] field keys subset whitelist (extra=[])
|
||
ok A4[causation_id] field.name present
|
||
ok A4[seq] field keys subset whitelist (extra=[])
|
||
ok A4[seq] field.name present
|
||
ok A4[seq_no] field keys subset whitelist (extra=[])
|
||
ok A4[seq_no] field.name present
|
||
ok A4[source] field keys subset whitelist (extra=[])
|
||
ok A4[source] field.name present
|
||
ok A4[state] field keys subset whitelist (extra=[])
|
||
ok A4[state] field.name present
|
||
ok A4[state_version] field keys subset whitelist (extra=[])
|
||
ok A4[state_version] field.name present
|
||
ok A4[tx_group] field keys subset whitelist (extra=[])
|
||
ok A4[tx_group] field.name present
|
||
ok A4[broadcast] field keys subset whitelist (extra=[])
|
||
ok A4[broadcast] field.name present
|
||
ok A4[created_by] field keys subset whitelist (extra=[])
|
||
ok A4[created_by] field.name present
|
||
ok A4[created_at] field keys subset whitelist (extra=[])
|
||
ok A4[created_at] field.name present
|
||
ok A4[updated_at] field keys subset whitelist (extra=[])
|
||
ok A4[updated_at] field.name present
|
||
ok A4[occurred_at] field keys subset whitelist (extra=[])
|
||
ok A4[occurred_at] field.name present
|
||
ok A4[uk_event_uid] index keys subset whitelist (extra=[])
|
||
ok A4[uk_tenant_idem] index keys subset whitelist (extra=[])
|
||
ok A4[ix_scene_created] index keys subset whitelist (extra=[])
|
||
ok A4[ix_tenant_session_seq] index keys subset whitelist (extra=[])
|
||
ok A4[ix_tenant_session_seqno] index keys subset whitelist (extra=[])
|
||
ok A4[ix_tenant_world_type] index keys subset whitelist (extra=[])
|
||
ok A4[ix_tx_group] index keys subset whitelist (extra=[])
|
||
ok A4[ix_created_at] index keys subset whitelist (extra=[])
|
||
ok A4[code:event_type] keys subset whitelist (extra=[])
|
||
ok A4[uk_event_uid] idxfield present in fields: tenant_id
|
||
ok A4[uk_event_uid] idxfield present in fields: event_uid
|
||
ok A4[uk_event_uid] idxfield present in fields: created_at
|
||
ok A4[uk_event_uid] idxtype unique|index ('unique')
|
||
ok A4[uk_tenant_idem] idxfield present in fields: tenant_id
|
||
ok A4[uk_tenant_idem] idxfield present in fields: idem_key
|
||
ok A4[uk_tenant_idem] idxfield present in fields: created_at
|
||
ok A4[uk_tenant_idem] idxtype unique|index ('unique')
|
||
ok A4[ix_scene_created] idxfield present in fields: scene_id
|
||
ok A4[ix_scene_created] idxfield present in fields: created_at
|
||
ok A4[ix_scene_created] idxtype unique|index ('index')
|
||
ok A4[ix_tenant_session_seq] idxfield present in fields: tenant_id
|
||
ok A4[ix_tenant_session_seq] idxfield present in fields: session_id
|
||
ok A4[ix_tenant_session_seq] idxfield present in fields: seq
|
||
ok A4[ix_tenant_session_seq] idxtype unique|index ('index')
|
||
ok A4[ix_tenant_session_seqno] idxfield present in fields: tenant_id
|
||
ok A4[ix_tenant_session_seqno] idxfield present in fields: session_id
|
||
ok A4[ix_tenant_session_seqno] idxfield present in fields: seq_no
|
||
ok A4[ix_tenant_session_seqno] idxtype unique|index ('index')
|
||
ok A4[ix_tenant_world_type] idxfield present in fields: tenant_id
|
||
ok A4[ix_tenant_world_type] idxfield present in fields: world_id
|
||
ok A4[ix_tenant_world_type] idxfield present in fields: event_type
|
||
ok A4[ix_tenant_world_type] idxtype unique|index ('index')
|
||
ok A4[ix_tx_group] idxfield present in fields: tx_group
|
||
ok A4[ix_tx_group] idxtype unique|index ('index')
|
||
ok A4[ix_created_at] idxfield present in fields: created_at
|
||
ok A4[ix_created_at] idxtype unique|index ('index')
|
||
ok A3[id] abstract type ('str')
|
||
ok A3[id] positive int length
|
||
ok A3[id] nullable in yes|no
|
||
ok A3[tenant_id] abstract type ('str')
|
||
ok A3[tenant_id] positive int length
|
||
ok A3[tenant_id] nullable in yes|no
|
||
ok A3[event_uid] abstract type ('str')
|
||
ok A3[event_uid] positive int length
|
||
ok A3[event_uid] nullable in yes|no
|
||
ok A3[event_code] abstract type ('str')
|
||
ok A3[event_code] positive int length
|
||
ok A3[event_code] nullable in yes|no
|
||
ok A3[idem_key] abstract type ('str')
|
||
ok A3[idem_key] positive int length
|
||
ok A3[idem_key] nullable in yes|no
|
||
ok A3[world_id] abstract type ('long')
|
||
ok A3[world_id] nullable in yes|no
|
||
ok A3[scene_id] abstract type ('long')
|
||
ok A3[scene_id] nullable in yes|no
|
||
ok A3[session_id] abstract type ('long')
|
||
ok A3[session_id] nullable in yes|no
|
||
ok A3[entity_id] abstract type ('str')
|
||
ok A3[entity_id] positive int length
|
||
ok A3[entity_id] nullable in yes|no
|
||
ok A3[actor_id] abstract type ('str')
|
||
ok A3[actor_id] positive int length
|
||
ok A3[actor_id] nullable in yes|no
|
||
ok A3[event_type] abstract type ('str')
|
||
ok A3[event_type] positive int length
|
||
ok A3[event_type] nullable in yes|no
|
||
ok A3[payload] abstract type ('text')
|
||
ok A3[payload] nullable in yes|no
|
||
ok A3[payload_json] abstract type ('text')
|
||
ok A3[payload_json] nullable in yes|no
|
||
ok A3[causation_id] abstract type ('str')
|
||
ok A3[causation_id] positive int length
|
||
ok A3[causation_id] nullable in yes|no
|
||
ok A3[seq] abstract type ('long')
|
||
ok A3[seq] nullable in yes|no
|
||
ok A3[seq_no] abstract type ('long')
|
||
ok A3[seq_no] nullable in yes|no
|
||
ok A3[source] abstract type ('str')
|
||
ok A3[source] positive int length
|
||
ok A3[source] nullable in yes|no
|
||
ok A3[state] abstract type ('str')
|
||
ok A3[state] positive int length
|
||
ok A3[state] nullable in yes|no
|
||
ok A3[state_version] abstract type ('long')
|
||
ok A3[state_version] nullable in yes|no
|
||
ok A3[tx_group] abstract type ('str')
|
||
ok A3[tx_group] positive int length
|
||
ok A3[tx_group] nullable in yes|no
|
||
ok A3[broadcast] abstract type ('short')
|
||
ok A3[broadcast] nullable in yes|no
|
||
ok A3[created_by] abstract type ('long')
|
||
ok A3[created_by] nullable in yes|no
|
||
ok A3[created_at] abstract type ('datetime')
|
||
ok A3[created_at] nullable in yes|no
|
||
ok A3[updated_at] abstract type ('datetime')
|
||
ok A3[updated_at] nullable in yes|no
|
||
ok A3[occurred_at] abstract type ('datetime')
|
||
ok A3[occurred_at] nullable in yes|no
|
||
ok A5 summary[0] is object
|
||
ok A5 summary[0].name non-empty
|
||
ok A5 summary[0].name == filename stem ('pbl_runtime_event' vs 'pbl_runtime_event')
|
||
== spec(inline four-section): /d/pipeline/workspaces/0/sdlc_general/modules/world_sync/models/pbl_entity_state.json
|
||
ok A1 json-is-object
|
||
ok A2 root-keys == {summary,fields,indexes,codes} (got ['codes', 'fields', 'indexes', 'summary'])
|
||
ok A2 summary non-empty array (got 1)
|
||
ok A2 fields is array
|
||
ok A2 indexes is array
|
||
ok A2 codes is array
|
||
ok A3 fields non-empty (inline column set, got 10)
|
||
info summary[0] table-level meta keys (not judged): ['comment']
|
||
ok A4[tenant_id] field keys subset whitelist (extra=[])
|
||
ok A4[tenant_id] field.name present
|
||
ok A4[id] field keys subset whitelist (extra=[])
|
||
ok A4[id] field.name present
|
||
ok A4[session_id] field keys subset whitelist (extra=[])
|
||
ok A4[session_id] field.name present
|
||
ok A4[entity_id] field keys subset whitelist (extra=[])
|
||
ok A4[entity_id] field.name present
|
||
ok A4[state_json] field keys subset whitelist (extra=[])
|
||
ok A4[state_json] field.name present
|
||
ok A4[state_version] field keys subset whitelist (extra=[])
|
||
ok A4[state_version] field.name present
|
||
ok A4[checksum] field keys subset whitelist (extra=[])
|
||
ok A4[checksum] field.name present
|
||
ok A4[updated_by] field keys subset whitelist (extra=[])
|
||
ok A4[updated_by] field.name present
|
||
ok A4[created_at] field keys subset whitelist (extra=[])
|
||
ok A4[created_at] field.name present
|
||
ok A4[updated_at] field keys subset whitelist (extra=[])
|
||
ok A4[updated_at] field.name present
|
||
ok A4[uk_es] index keys subset whitelist (extra=[])
|
||
ok A4[uk_es] idxfield present in fields: tenant_id
|
||
ok A4[uk_es] idxfield present in fields: session_id
|
||
ok A4[uk_es] idxfield present in fields: entity_id
|
||
ok A4[uk_es] idxtype unique|index ('unique')
|
||
ok A3[tenant_id] abstract type ('str')
|
||
ok A3[tenant_id] positive int length
|
||
ok A3[tenant_id] nullable in yes|no
|
||
ok A3[id] abstract type ('str')
|
||
ok A3[id] positive int length
|
||
ok A3[id] nullable in yes|no
|
||
ok A3[session_id] abstract type ('long')
|
||
ok A3[session_id] nullable in yes|no
|
||
ok A3[entity_id] abstract type ('str')
|
||
ok A3[entity_id] positive int length
|
||
ok A3[entity_id] nullable in yes|no
|
||
ok A3[state_json] abstract type ('text')
|
||
ok A3[state_json] nullable in yes|no
|
||
ok A3[state_version] abstract type ('long')
|
||
ok A3[state_version] nullable in yes|no
|
||
ok A3[checksum] abstract type ('str')
|
||
ok A3[checksum] positive int length
|
||
ok A3[checksum] nullable in yes|no
|
||
ok A3[updated_by] abstract type ('str')
|
||
ok A3[updated_by] positive int length
|
||
ok A3[updated_by] nullable in yes|no
|
||
ok A3[created_at] abstract type ('datetime')
|
||
ok A3[created_at] nullable in yes|no
|
||
ok A3[updated_at] abstract type ('datetime')
|
||
ok A3[updated_at] nullable in yes|no
|
||
ok A5 summary[0] is object
|
||
ok A5 summary[0].name non-empty
|
||
ok A5 summary[0].name == filename stem ('pbl_entity_state' vs 'pbl_entity_state')
|
||
== spec(inline four-section): /d/pipeline/workspaces/0/sdlc_general/apps/scense/pkgs/world_sync/models/pbl_entity_state.json
|
||
ok A1 json-is-object
|
||
ok A2 root-keys == {summary,fields,indexes,codes} (got ['codes', 'fields', 'indexes', 'summary'])
|
||
ok A2 summary non-empty array (got 1)
|
||
ok A2 fields is array
|
||
ok A2 indexes is array
|
||
ok A2 codes is array
|
||
ok A3 fields non-empty (inline column set, got 10)
|
||
info summary[0] table-level meta keys (not judged): ['comment']
|
||
ok A4[tenant_id] field keys subset whitelist (extra=[])
|
||
ok A4[tenant_id] field.name present
|
||
ok A4[id] field keys subset whitelist (extra=[])
|
||
ok A4[id] field.name present
|
||
ok A4[session_id] field keys subset whitelist (extra=[])
|
||
ok A4[session_id] field.name present
|
||
ok A4[entity_id] field keys subset whitelist (extra=[])
|
||
ok A4[entity_id] field.name present
|
||
ok A4[state_json] field keys subset whitelist (extra=[])
|
||
ok A4[state_json] field.name present
|
||
ok A4[state_version] field keys subset whitelist (extra=[])
|
||
ok A4[state_version] field.name present
|
||
ok A4[checksum] field keys subset whitelist (extra=[])
|
||
ok A4[checksum] field.name present
|
||
ok A4[updated_by] field keys subset whitelist (extra=[])
|
||
ok A4[updated_by] field.name present
|
||
ok A4[created_at] field keys subset whitelist (extra=[])
|
||
ok A4[created_at] field.name present
|
||
ok A4[updated_at] field keys subset whitelist (extra=[])
|
||
ok A4[updated_at] field.name present
|
||
ok A4[uk_es] index keys subset whitelist (extra=[])
|
||
ok A4[uk_es] idxfield present in fields: tenant_id
|
||
ok A4[uk_es] idxfield present in fields: session_id
|
||
ok A4[uk_es] idxfield present in fields: entity_id
|
||
ok A4[uk_es] idxtype unique|index ('unique')
|
||
ok A3[tenant_id] abstract type ('str')
|
||
ok A3[tenant_id] positive int length
|
||
ok A3[tenant_id] nullable in yes|no
|
||
ok A3[id] abstract type ('str')
|
||
ok A3[id] positive int length
|
||
ok A3[id] nullable in yes|no
|
||
ok A3[session_id] abstract type ('long')
|
||
ok A3[session_id] nullable in yes|no
|
||
ok A3[entity_id] abstract type ('str')
|
||
ok A3[entity_id] positive int length
|
||
ok A3[entity_id] nullable in yes|no
|
||
ok A3[state_json] abstract type ('text')
|
||
ok A3[state_json] nullable in yes|no
|
||
ok A3[state_version] abstract type ('long')
|
||
ok A3[state_version] nullable in yes|no
|
||
ok A3[checksum] abstract type ('str')
|
||
ok A3[checksum] positive int length
|
||
ok A3[checksum] nullable in yes|no
|
||
ok A3[updated_by] abstract type ('str')
|
||
ok A3[updated_by] positive int length
|
||
ok A3[updated_by] nullable in yes|no
|
||
ok A3[created_at] abstract type ('datetime')
|
||
ok A3[created_at] nullable in yes|no
|
||
ok A3[updated_at] abstract type ('datetime')
|
||
ok A3[updated_at] nullable in yes|no
|
||
ok A5 summary[0] is object
|
||
ok A5 summary[0].name non-empty
|
||
ok A5 summary[0].name == filename stem ('pbl_entity_state' vs 'pbl_entity_state')
|
||
|
||
--- A7: 真源与镜像 sha256 两两相同 ---
|
||
pbl_runtime_event.json
|
||
src=910d80e1077f0297fbf2d4eb4f1c6ab879e1656567a686f9d67c648945e4d373
|
||
dst=910d80e1077f0297fbf2d4eb4f1c6ab879e1656567a686f9d67c648945e4d373
|
||
ok A7 sha256 equal: pbl_runtime_event.json
|
||
pbl_entity_state.json
|
||
src=3c83d007e5a0f88799f8ece35cc5a57063a88cb903110c2d913febdcddedda38
|
||
dst=3c83d007e5a0f88799f8ece35cc5a57063a88cb903110c2d913febdcddedda38
|
||
ok A7 sha256 equal: pbl_entity_state.json
|
||
|
||
--- A6: 权威真源(pbl_runtime_ext)上游体检,只登记不判定 ---
|
||
== authority(upstream audit): /d/pipeline/workspaces/0/sdlc_general/modules/pbl_runtime_ext/models/pbl_runtime_event.json
|
||
ok A6 root-is-object
|
||
ok A6 root-keys subset of four-section (got ['codes', 'fields', 'indexes', 'summary'])
|
||
ok A6 summary has exactly one record (got 1)
|
||
DEFECT A6 summary keys subset whitelist (got ['append_only', 'charset', 'collate', 'comment', 'ddl_source', 'engine', 'guards', 'module', 'name', 'partition', 'primary', 'tenant_scoped', 'title', 'write_paths'])
|
||
ok A6 summary.name non-empty
|
||
ok A6 summary.primary is non-empty array
|
||
ok A6 fields non-empty
|
||
DEFECT A6[id] field keys subset whitelist (got ['auto_increment', 'comment', 'ddl_type', 'name', 'nullable', 'title', 'type'])
|
||
ok A6[id] abstract type ('long')
|
||
ok A6[id] nullable in yes|no
|
||
DEFECT A6[tenant_id] field keys subset whitelist (got ['comment', 'ddl_type', 'default', 'length', 'name', 'nullable', 'title', 'type'])
|
||
ok A6[tenant_id] abstract type ('str')
|
||
ok A6[tenant_id] positive int length
|
||
ok A6[tenant_id] nullable in yes|no
|
||
DEFECT A6[event_uid] field keys subset whitelist (got ['comment', 'ddl_type', 'length', 'name', 'nullable', 'title', 'type'])
|
||
ok A6[event_uid] abstract type ('str')
|
||
ok A6[event_uid] positive int length
|
||
ok A6[event_uid] nullable in yes|no
|
||
DEFECT A6[event_code] field keys subset whitelist (got ['comment', 'ddl_type', 'default', 'length', 'name', 'nullable', 'title', 'type'])
|
||
ok A6[event_code] abstract type ('str')
|
||
ok A6[event_code] positive int length
|
||
ok A6[event_code] nullable in yes|no
|
||
DEFECT A6[idem_key] field keys subset whitelist (got ['comment', 'ddl_type', 'default', 'length', 'name', 'nullable', 'title', 'type'])
|
||
ok A6[idem_key] abstract type ('str')
|
||
ok A6[idem_key] positive int length
|
||
ok A6[idem_key] nullable in yes|no
|
||
DEFECT A6[world_id] field keys subset whitelist (got ['comment', 'ddl_type', 'default', 'name', 'nullable', 'title', 'type'])
|
||
ok A6[world_id] abstract type ('long')
|
||
ok A6[world_id] nullable in yes|no
|
||
DEFECT A6[scene_id] field keys subset whitelist (got ['comment', 'ddl_type', 'default', 'name', 'nullable', 'title', 'type'])
|
||
ok A6[scene_id] abstract type ('long')
|
||
ok A6[scene_id] nullable in yes|no
|
||
DEFECT A6[session_id] field keys subset whitelist (got ['comment', 'ddl_type', 'default', 'name', 'nullable', 'title', 'type'])
|
||
ok A6[session_id] abstract type ('long')
|
||
ok A6[session_id] nullable in yes|no
|
||
DEFECT A6[entity_id] field keys subset whitelist (got ['comment', 'ddl_type', 'default', 'length', 'name', 'nullable', 'title', 'type'])
|
||
ok A6[entity_id] abstract type ('str')
|
||
ok A6[entity_id] positive int length
|
||
ok A6[entity_id] nullable in yes|no
|
||
DEFECT A6[actor_id] field keys subset whitelist (got ['comment', 'ddl_type', 'default', 'length', 'name', 'nullable', 'title', 'type'])
|
||
ok A6[actor_id] abstract type ('str')
|
||
ok A6[actor_id] positive int length
|
||
ok A6[actor_id] nullable in yes|no
|
||
DEFECT A6[event_type] field keys subset whitelist (got ['comment', 'ddl_type', 'length', 'name', 'nullable', 'title', 'type'])
|
||
ok A6[event_type] abstract type ('str')
|
||
ok A6[event_type] positive int length
|
||
ok A6[event_type] nullable in yes|no
|
||
DEFECT A6[payload] field keys subset whitelist (got ['comment', 'ddl_type', 'name', 'nullable', 'title', 'type'])
|
||
ok A6[payload] abstract type ('text')
|
||
ok A6[payload] nullable in yes|no
|
||
DEFECT A6[payload_json] field keys subset whitelist (got ['comment', 'ddl_type', 'name', 'nullable', 'title', 'type'])
|
||
ok A6[payload_json] abstract type ('text')
|
||
ok A6[payload_json] nullable in yes|no
|
||
DEFECT A6[causation_id] field keys subset whitelist (got ['comment', 'ddl_type', 'default', 'length', 'name', 'nullable', 'title', 'type'])
|
||
ok A6[causation_id] abstract type ('str')
|
||
ok A6[causation_id] positive int length
|
||
ok A6[causation_id] nullable in yes|no
|
||
DEFECT A6[seq] field keys subset whitelist (got ['comment', 'ddl_type', 'default', 'name', 'nullable', 'title', 'type'])
|
||
ok A6[seq] abstract type ('long')
|
||
ok A6[seq] nullable in yes|no
|
||
DEFECT A6[seq_no] field keys subset whitelist (got ['comment', 'ddl_type', 'default', 'name', 'nullable', 'title', 'type'])
|
||
ok A6[seq_no] abstract type ('long')
|
||
ok A6[seq_no] nullable in yes|no
|
||
DEFECT A6[source] field keys subset whitelist (got ['comment', 'ddl_type', 'default', 'length', 'name', 'nullable', 'title', 'type'])
|
||
ok A6[source] abstract type ('str')
|
||
ok A6[source] positive int length
|
||
ok A6[source] nullable in yes|no
|
||
DEFECT A6[state] field keys subset whitelist (got ['comment', 'ddl_type', 'default', 'length', 'name', 'nullable', 'title', 'type'])
|
||
ok A6[state] abstract type ('str')
|
||
ok A6[state] positive int length
|
||
ok A6[state] nullable in yes|no
|
||
DEFECT A6[state_version] field keys subset whitelist (got ['comment', 'ddl_type', 'default', 'name', 'nullable', 'title', 'type'])
|
||
ok A6[state_version] abstract type ('long')
|
||
ok A6[state_version] nullable in yes|no
|
||
DEFECT A6[tx_group] field keys subset whitelist (got ['comment', 'ddl_type', 'default', 'length', 'name', 'nullable', 'title', 'type'])
|
||
ok A6[tx_group] abstract type ('str')
|
||
ok A6[tx_group] positive int length
|
||
ok A6[tx_group] nullable in yes|no
|
||
DEFECT A6[broadcast] field keys subset whitelist (got ['comment', 'ddl_type', 'default', 'name', 'nullable', 'title', 'type'])
|
||
ok A6[broadcast] abstract type ('short')
|
||
ok A6[broadcast] nullable in yes|no
|
||
DEFECT A6[created_by] field keys subset whitelist (got ['comment', 'ddl_type', 'default', 'name', 'nullable', 'title', 'type'])
|
||
ok A6[created_by] abstract type ('long')
|
||
ok A6[created_by] nullable in yes|no
|
||
DEFECT A6[created_at] field keys subset whitelist (got ['comment', 'ddl_type', 'default', 'name', 'nullable', 'title', 'type'])
|
||
ok A6[created_at] abstract type ('datetime')
|
||
ok A6[created_at] nullable in yes|no
|
||
DEFECT A6[updated_at] field keys subset whitelist (got ['comment', 'ddl_type', 'default', 'name', 'nullable', 'title', 'type'])
|
||
ok A6[updated_at] abstract type ('datetime')
|
||
ok A6[updated_at] nullable in yes|no
|
||
DEFECT A6[occurred_at] field keys subset whitelist (got ['comment', 'ddl_type', 'name', 'nullable', 'title', 'type'])
|
||
ok A6[occurred_at] abstract type ('datetime')
|
||
ok A6[occurred_at] nullable in yes|no
|
||
DEFECT A6[uk_event_uid] index keys subset whitelist (got ['comment', 'idxfields', 'idxtype', 'name'])
|
||
ok A6[uk_event_uid] idxfields non-empty array
|
||
ok A6[uk_event_uid] idxtype unique|index
|
||
ok A6[uk_event_uid] idxfield exists in fields: tenant_id
|
||
ok A6[uk_event_uid] idxfield exists in fields: event_uid
|
||
ok A6[uk_event_uid] idxfield exists in fields: created_at
|
||
DEFECT A6[uk_tenant_idem] index keys subset whitelist (got ['comment', 'idxfields', 'idxtype', 'name'])
|
||
ok A6[uk_tenant_idem] idxfields non-empty array
|
||
ok A6[uk_tenant_idem] idxtype unique|index
|
||
ok A6[uk_tenant_idem] idxfield exists in fields: tenant_id
|
||
ok A6[uk_tenant_idem] idxfield exists in fields: idem_key
|
||
ok A6[uk_tenant_idem] idxfield exists in fields: created_at
|
||
DEFECT A6[ix_scene_created] index keys subset whitelist (got ['comment', 'idxfields', 'idxtype', 'name'])
|
||
ok A6[ix_scene_created] idxfields non-empty array
|
||
ok A6[ix_scene_created] idxtype unique|index
|
||
ok A6[ix_scene_created] idxfield exists in fields: scene_id
|
||
ok A6[ix_scene_created] idxfield exists in fields: created_at
|
||
DEFECT A6[ix_tenant_session_seq] index keys subset whitelist (got ['comment', 'idxfields', 'idxtype', 'name'])
|
||
ok A6[ix_tenant_session_seq] idxfields non-empty array
|
||
ok A6[ix_tenant_session_seq] idxtype unique|index
|
||
ok A6[ix_tenant_session_seq] idxfield exists in fields: tenant_id
|
||
ok A6[ix_tenant_session_seq] idxfield exists in fields: session_id
|
||
ok A6[ix_tenant_session_seq] idxfield exists in fields: seq
|
||
DEFECT A6[ix_tenant_session_seqno] index keys subset whitelist (got ['comment', 'idxfields', 'idxtype', 'name'])
|
||
ok A6[ix_tenant_session_seqno] idxfields non-empty array
|
||
ok A6[ix_tenant_session_seqno] idxtype unique|index
|
||
ok A6[ix_tenant_session_seqno] idxfield exists in fields: tenant_id
|
||
ok A6[ix_tenant_session_seqno] idxfield exists in fields: session_id
|
||
ok A6[ix_tenant_session_seqno] idxfield exists in fields: seq_no
|
||
DEFECT A6[ix_tenant_world_type] index keys subset whitelist (got ['comment', 'idxfields', 'idxtype', 'name'])
|
||
ok A6[ix_tenant_world_type] idxfields non-empty array
|
||
ok A6[ix_tenant_world_type] idxtype unique|index
|
||
ok A6[ix_tenant_world_type] idxfield exists in fields: tenant_id
|
||
ok A6[ix_tenant_world_type] idxfield exists in fields: world_id
|
||
ok A6[ix_tenant_world_type] idxfield exists in fields: event_type
|
||
DEFECT A6[ix_tx_group] index keys subset whitelist (got ['comment', 'idxfields', 'idxtype', 'name'])
|
||
ok A6[ix_tx_group] idxfields non-empty array
|
||
ok A6[ix_tx_group] idxtype unique|index
|
||
ok A6[ix_tx_group] idxfield exists in fields: tx_group
|
||
DEFECT A6[ix_created_at] index keys subset whitelist (got ['comment', 'idxfields', 'idxtype', 'name'])
|
||
ok A6[ix_created_at] idxfields non-empty array
|
||
ok A6[ix_created_at] idxtype unique|index
|
||
ok A6[ix_created_at] idxfield exists in fields: created_at
|
||
DEFECT A6 code keys subset whitelist (got ['comment', 'cond', 'field', 'table', 'textfield', 'valuefield'])
|
||
ok A6 appcodes_kv cond uses parentid=
|
||
ok A6 codes.table has no dot notation
|
||
== authority(upstream audit): /d/pipeline/workspaces/0/sdlc_general/modules/pbl_runtime_ext/models/pbl_entity_state.json
|
||
ok A6 root-is-object
|
||
ok A6 root-keys subset of four-section (got ['codes', 'fields', 'indexes', 'summary'])
|
||
ok A6 summary has exactly one record (got 1)
|
||
DEFECT A6 summary keys subset whitelist (got ['charset', 'comment', 'engine', 'module', 'name', 'tenant_scoped'])
|
||
ok A6 summary.name non-empty
|
||
DEFECT A6 summary.primary is non-empty array
|
||
ok A6 fields non-empty
|
||
DEFECT A6[tenant_id] field keys subset whitelist (got ['comment', 'length', 'name', 'null', 'type'])
|
||
ok A6[tenant_id] abstract type ('str')
|
||
ok A6[tenant_id] positive int length
|
||
ok A6[tenant_id] nullable in yes|no
|
||
DEFECT A6[id] field keys subset whitelist (got ['auto_increment', 'comment', 'length', 'name', 'null', 'type', 'unsigned'])
|
||
ok A6[id] abstract type ('int')
|
||
ok A6[id] nullable in yes|no
|
||
DEFECT A6[session_id] field keys subset whitelist (got ['comment', 'name', 'null', 'type'])
|
||
DEFECT A6[session_id] abstract type ('bigint')
|
||
ok A6[session_id] nullable in yes|no
|
||
DEFECT A6[entity_id] field keys subset whitelist (got ['comment', 'length', 'name', 'null', 'type'])
|
||
ok A6[entity_id] abstract type ('str')
|
||
ok A6[entity_id] positive int length
|
||
ok A6[entity_id] nullable in yes|no
|
||
DEFECT A6[state_json] field keys subset whitelist (got ['comment', 'name', 'null', 'type'])
|
||
DEFECT A6[state_json] abstract type ('json')
|
||
ok A6[state_json] nullable in yes|no
|
||
DEFECT A6[state_version] field keys subset whitelist (got ['comment', 'name', 'null', 'type'])
|
||
DEFECT A6[state_version] abstract type ('bigint')
|
||
ok A6[state_version] nullable in yes|no
|
||
DEFECT A6[checksum] field keys subset whitelist (got ['comment', 'length', 'name', 'null', 'type'])
|
||
ok A6[checksum] abstract type ('str')
|
||
ok A6[checksum] positive int length
|
||
ok A6[checksum] nullable in yes|no
|
||
DEFECT A6[updated_by] field keys subset whitelist (got ['comment', 'length', 'name', 'null', 'type'])
|
||
ok A6[updated_by] abstract type ('str')
|
||
ok A6[updated_by] positive int length
|
||
ok A6[updated_by] nullable in yes|no
|
||
DEFECT A6[created_at] field keys subset whitelist (got ['comment', 'name', 'null', 'type'])
|
||
ok A6[created_at] abstract type ('datetime')
|
||
ok A6[created_at] nullable in yes|no
|
||
DEFECT A6[updated_at] field keys subset whitelist (got ['comment', 'name', 'null', 'type'])
|
||
ok A6[updated_at] abstract type ('datetime')
|
||
ok A6[updated_at] nullable in yes|no
|
||
DEFECT A6[uk_es] index keys subset whitelist (got ['fields', 'name', 'unique'])
|
||
DEFECT A6[uk_es] idxfields non-empty array
|
||
DEFECT A6[uk_es] idxtype unique|index
|
||
DEFECT A6[PRIMARY] index keys subset whitelist (got ['fields', 'name', 'unique'])
|
||
DEFECT A6[PRIMARY] idxfields non-empty array
|
||
DEFECT A6[PRIMARY] idxtype unique|index
|
||
|
||
judged assertions executed: 438
|
||
upstream audit checks executed: 186
|
||
UPSTREAM DEFECTS (56) -> 已登记,需冒泡 agent.pm / pbl_runtime_ext owner:
|
||
* A6 summary keys subset whitelist (got ['append_only', 'charset', 'collate', 'comment', 'ddl_source', 'engine', 'guards', 'module', 'name', 'partition', 'primary', 'tenant_scoped', 'title', 'write_paths'])
|
||
* A6[id] field keys subset whitelist (got ['auto_increment', 'comment', 'ddl_type', 'name', 'nullable', 'title', 'type'])
|
||
* A6[tenant_id] field keys subset whitelist (got ['comment', 'ddl_type', 'default', 'length', 'name', 'nullable', 'title', 'type'])
|
||
* A6[event_uid] field keys subset whitelist (got ['comment', 'ddl_type', 'length', 'name', 'nullable', 'title', 'type'])
|
||
* A6[event_code] field keys subset whitelist (got ['comment', 'ddl_type', 'default', 'length', 'name', 'nullable', 'title', 'type'])
|
||
* A6[idem_key] field keys subset whitelist (got ['comment', 'ddl_type', 'default', 'length', 'name', 'nullable', 'title', 'type'])
|
||
* A6[world_id] field keys subset whitelist (got ['comment', 'ddl_type', 'default', 'name', 'nullable', 'title', 'type'])
|
||
* A6[scene_id] field keys subset whitelist (got ['comment', 'ddl_type', 'default', 'name', 'nullable', 'title', 'type'])
|
||
* A6[session_id] field keys subset whitelist (got ['comment', 'ddl_type', 'default', 'name', 'nullable', 'title', 'type'])
|
||
* A6[entity_id] field keys subset whitelist (got ['comment', 'ddl_type', 'default', 'length', 'name', 'nullable', 'title', 'type'])
|
||
* A6[actor_id] field keys subset whitelist (got ['comment', 'ddl_type', 'default', 'length', 'name', 'nullable', 'title', 'type'])
|
||
* A6[event_type] field keys subset whitelist (got ['comment', 'ddl_type', 'length', 'name', 'nullable', 'title', 'type'])
|
||
* A6[payload] field keys subset whitelist (got ['comment', 'ddl_type', 'name', 'nullable', 'title', 'type'])
|
||
* A6[payload_json] field keys subset whitelist (got ['comment', 'ddl_type', 'name', 'nullable', 'title', 'type'])
|
||
* A6[causation_id] field keys subset whitelist (got ['comment', 'ddl_type', 'default', 'length', 'name', 'nullable', 'title', 'type'])
|
||
* A6[seq] field keys subset whitelist (got ['comment', 'ddl_type', 'default', 'name', 'nullable', 'title', 'type'])
|
||
* A6[seq_no] field keys subset whitelist (got ['comment', 'ddl_type', 'default', 'name', 'nullable', 'title', 'type'])
|
||
* A6[source] field keys subset whitelist (got ['comment', 'ddl_type', 'default', 'length', 'name', 'nullable', 'title', 'type'])
|
||
* A6[state] field keys subset whitelist (got ['comment', 'ddl_type', 'default', 'length', 'name', 'nullable', 'title', 'type'])
|
||
* A6[state_version] field keys subset whitelist (got ['comment', 'ddl_type', 'default', 'name', 'nullable', 'title', 'type'])
|
||
* A6[tx_group] field keys subset whitelist (got ['comment', 'ddl_type', 'default', 'length', 'name', 'nullable', 'title', 'type'])
|
||
* A6[broadcast] field keys subset whitelist (got ['comment', 'ddl_type', 'default', 'name', 'nullable', 'title', 'type'])
|
||
* A6[created_by] field keys subset whitelist (got ['comment', 'ddl_type', 'default', 'name', 'nullable', 'title', 'type'])
|
||
* A6[created_at] field keys subset whitelist (got ['comment', 'ddl_type', 'default', 'name', 'nullable', 'title', 'type'])
|
||
* A6[updated_at] field keys subset whitelist (got ['comment', 'ddl_type', 'default', 'name', 'nullable', 'title', 'type'])
|
||
* A6[occurred_at] field keys subset whitelist (got ['comment', 'ddl_type', 'name', 'nullable', 'title', 'type'])
|
||
* A6[uk_event_uid] index keys subset whitelist (got ['comment', 'idxfields', 'idxtype', 'name'])
|
||
* A6[uk_tenant_idem] index keys subset whitelist (got ['comment', 'idxfields', 'idxtype', 'name'])
|
||
* A6[ix_scene_created] index keys subset whitelist (got ['comment', 'idxfields', 'idxtype', 'name'])
|
||
* A6[ix_tenant_session_seq] index keys subset whitelist (got ['comment', 'idxfields', 'idxtype', 'name'])
|
||
* A6[ix_tenant_session_seqno] index keys subset whitelist (got ['comment', 'idxfields', 'idxtype', 'name'])
|
||
* A6[ix_tenant_world_type] index keys subset whitelist (got ['comment', 'idxfields', 'idxtype', 'name'])
|
||
* A6[ix_tx_group] index keys subset whitelist (got ['comment', 'idxfields', 'idxtype', 'name'])
|
||
* A6[ix_created_at] index keys subset whitelist (got ['comment', 'idxfields', 'idxtype', 'name'])
|
||
* A6 code keys subset whitelist (got ['comment', 'cond', 'field', 'table', 'textfield', 'valuefield'])
|
||
* A6 summary keys subset whitelist (got ['charset', 'comment', 'engine', 'module', 'name', 'tenant_scoped'])
|
||
* A6 summary.primary is non-empty array
|
||
* A6[tenant_id] field keys subset whitelist (got ['comment', 'length', 'name', 'null', 'type'])
|
||
* A6[id] field keys subset whitelist (got ['auto_increment', 'comment', 'length', 'name', 'null', 'type', 'unsigned'])
|
||
* A6[session_id] field keys subset whitelist (got ['comment', 'name', 'null', 'type'])
|
||
* A6[session_id] abstract type ('bigint')
|
||
* A6[entity_id] field keys subset whitelist (got ['comment', 'length', 'name', 'null', 'type'])
|
||
* A6[state_json] field keys subset whitelist (got ['comment', 'name', 'null', 'type'])
|
||
* A6[state_json] abstract type ('json')
|
||
* A6[state_version] field keys subset whitelist (got ['comment', 'name', 'null', 'type'])
|
||
* A6[state_version] abstract type ('bigint')
|
||
* A6[checksum] field keys subset whitelist (got ['comment', 'length', 'name', 'null', 'type'])
|
||
* A6[updated_by] field keys subset whitelist (got ['comment', 'length', 'name', 'null', 'type'])
|
||
* A6[created_at] field keys subset whitelist (got ['comment', 'name', 'null', 'type'])
|
||
* A6[updated_at] field keys subset whitelist (got ['comment', 'name', 'null', 'type'])
|
||
* A6[uk_es] index keys subset whitelist (got ['fields', 'name', 'unique'])
|
||
* A6[uk_es] idxfields non-empty array
|
||
* A6[uk_es] idxtype unique|index
|
||
* A6[PRIMARY] index keys subset whitelist (got ['fields', 'name', 'unique'])
|
||
* A6[PRIMARY] idxfields non-empty array
|
||
* A6[PRIMARY] idxtype unique|index
|
||
RESULT: PASS
|