Content module | module | rename | QTI 1EdTech surface | Public Alpha module name for things students touch. | content-itd-001-module-boundary-and-alias-map |
content_item.content_id | field | rename | qti.artifact.artifact_id | | content-itd-002-shared-qti-truth-no-content-fork |
content_item.workspace_id | field | rename | platform.tenant.tenant_id | | content-axis-009-tenant-routing |
content_item.content_kind | field | restrict | View expression over qti.artifact.artifact_kind and qti.package_resource.resource_type, plus extension-only kind for QTI-anchored Content sidecars | | content-itd-003-content-kind-taxonomy |
content_item.expected_xp | field | extend | alpha.content_item_extension.expected_xp | | content-itd-015-expected-xp-content-config |
question | object | rename | qti.artifact where artifact_kind = item | | content-itd-003-content-kind-taxonomy |
test | object | rename | qti.artifact where artifact_kind = test | | content-itd-003-content-kind-taxonomy |
article | object | extend | alpha.content_item_extension | | content-itd-004-non-qti-media-extension |
video | object | extend | alpha.content_item_extension plus alpha.media_asset_extension | | content-itd-004-non-qti-media-extension |
audio | object | extend | alpha.content_item_extension plus alpha.media_asset_extension | | content-itd-004-non-qti-media-extension |
image | object | extend | alpha.content_item_extension plus alpha.media_asset_extension | | content-itd-004-non-qti-media-extension |
interactive | object | extend | alpha.content_item_extension | | content-itd-004-non-qti-media-extension |
media_asset | object | extend | alpha.media_asset_extension | | content-itd-004-non-qti-media-extension |
external_link | object | extend | alpha.external_link_extension | | content-itd-004-non-qti-media-extension |
script | object | extend | qti.artifact base identity plus alpha.content_item_extension content_kind_override=script | First-class script Content row; produced audio/video links to it with content_reference relationship_kind=source_script_for. | content-itd-004-non-qti-media-extension |
content_item.title | field | rename | qti.artifact.title | | content-itd-001-module-boundary-and-alias-map |
content_item.language | field | rename | qti.artifact.language | | content-itd-001-module-boundary-and-alias-map |
content_item.source_identifier | field | rename | qti.artifact.qti_identifier | | content-itd-001-module-boundary-and-alias-map |
content_item.latest_version_id | field | rename | qti.artifact.latest_version_id | | content-itd-007-versioned-authoring-and-student-view |
content_version.version_id | field | rename | qti.artifact_version.artifact_version_id | | content-itd-007-versioned-authoring-and-student-view |
content_version.version_number | field | rename | qti.artifact_version.version_number | | content-itd-007-versioned-authoring-and-student-view |
content_version.student_view | field | rename | qti.artifact_version.delivery_json | | content-itd-007-versioned-authoring-and-student-view |
content_version.editing_draft | field | rename | qti.artifact_version.authoring_json | | content-itd-007-versioned-authoring-and-student-view |
content_version.canonical_xml | field | rename | qti.artifact_version.canonical_xml | | content-itd-007-versioned-authoring-and-student-view |
media_asset.media_id | field | rename | qti.package_file.package_file_id | | content-itd-004-non-qti-media-extension |
media_asset.media_kind | field | extend | alpha.media_asset_extension.media_kind | | content-itd-004-non-qti-media-extension |
media_asset.media_type | field | rename | qti.package_file.media_type | | content-itd-004-non-qti-media-extension |
media_asset.byte_length | field | rename | qti.package_file.byte_length | | content-itd-004-non-qti-media-extension |
external_link.external_url | field | extend | alpha.external_link_extension.external_url | | content-itd-004-non-qti-media-extension |
answer_slot.identifier | field | rename | qti.variable_declaration.identifier where variable_kind = response | | content-itd-008-answer-slots-not-student-answers |
answer_slot.cardinality | field | rename | qti.variable_declaration.cardinality | | content-itd-008-answer-slots-not-student-answers |
answer_slot.base_type | field | rename | qti.variable_declaration.base_type | | content-itd-008-answer-slots-not-student-answers |
answer_key.correct_response | field | restrict | qti.variable_declaration.correct_response | Teacher/authorized read only, never a student answer. | content-itd-008-answer-slots-not-student-answers |
assessment_component.component_role | field | rename + restrict | qti.component.element_name mapped to test/section/part/question/question_ref/distractor/rubric/preauthored_feedback | | content-itd-008-answer-slots-not-student-answers |
assessment_component.display_text | field | rename + restrict | qti.component.text_value | | content-itd-008-answer-slots-not-student-answers |
assessment_test.test_type | field | extend | alpha.assessment_test_extension.test_type | | content-itd-006-typed-content-and-test-fields |
assessment_test.is_mastery_gate | field | extend | alpha.assessment_test_extension.is_mastery_gate | | content-itd-006-typed-content-and-test-fields |
assessment_test.test_family_id | field | extend | alpha.assessment_test_extension.test_family_id | Optional opaque adapter join key under the current API/database contract; no lexical grammar is enforced. It should remain stable across content versions, forms, and retakes and must not contain secrets. | content-itd-010-external-test-family-identity |
content_item.subject_id | field | extend | alpha.content_item_extension.subject_id | | content-itd-006-typed-content-and-test-fields |
content_item.target_grade_id | field | extend | alpha.content_item_extension.target_grade_id | | content-itd-006-typed-content-and-test-fields |
content_curriculum_link.curriculum_node_id | field | extend | alpha.content_curriculum_link.curriculum_node_id referencing curriculum.node | | content-itd-005-curriculum-links-are-relationships |
content_ref.content_id | reference-contract-field | rename | qti.artifact.artifact_id | | content-itd-016-uniform-content-reference-contract |
content_ref.content_version_id | reference-contract-field | rename | qti.artifact_version.artifact_version_id | | content-itd-016-uniform-content-reference-contract |
content_ref.content_kind | reference-contract-field | restrict | View expression over qti.artifact.artifact_kind and qti.package_resource.resource_type plus extension sidecar kind | | content-itd-016-uniform-content-reference-contract |
content_reference.parent_content_id | reference-contract-field | extend | alpha.content_reference.parent_content_artifact_id -> alpha.content_reference_view.parent_content_id | The parent half of content_ref is three flat columns: id, optional version id, and kind. | content-itd-016-uniform-content-reference-contract |
content_reference.parent_version_id | reference-contract-field | extend | alpha.content_reference.parent_content_version_id -> alpha.content_reference_view.parent_version_id | Nullable exact-version member of the parent content_ref shape. | content-itd-016-uniform-content-reference-contract |
content_reference.parent_content_kind | reference-contract-field | extend | alpha.content_reference.parent_content_kind | Governed twelve-kind discriminator in the parent content_ref shape. | content-itd-016-uniform-content-reference-contract |
content_reference.referenced_content_id | reference-contract-field | extend | alpha.content_reference.referenced_content_artifact_id -> alpha.content_reference_view.referenced_content_id | The referenced half of content_ref is three flat columns: id, optional version id, and kind. | content-itd-016-uniform-content-reference-contract |
content_reference.referenced_version_id | reference-contract-field | extend | alpha.content_reference.referenced_content_version_id -> alpha.content_reference_view.referenced_version_id | Nullable exact-version member of the referenced content_ref shape. | content-itd-016-uniform-content-reference-contract |
content_reference.referenced_content_kind | reference-contract-field | derive | alpha.content_reference_view.referenced_content_kind derived from referenced qti.artifact + alpha.content_item_extension | Read-only governed twelve-kind discriminator; no alpha.content_reference table column exists. | content-itd-016-uniform-content-reference-contract |
content_reference.relationship_kind | field | extend | alpha.content_reference.relationship_kind | | content-itd-016-uniform-content-reference-contract |
content_item.source_record_id | field | extend | alpha.content_item_extension.source_record_id | | content-itd-018-source-shaped-production-ingest |
content_item.source_activity_ref | field | extend | alpha.content_item_extension.source_activity_ref | | content-itd-018-source-shaped-production-ingest |
catalog_facet.subject | catalog-facet | extend | alpha.content_catalog_facet_assignment value/ref for subject | | content-itd-014-catalog-facets-sidecar |
catalog_facet.grade_band | catalog-facet | extend | alpha.content_catalog_facet_assignment value/ref for grade_band | | content-itd-014-catalog-facets-sidecar |
catalog_facet.language | catalog-facet | extend | alpha.content_catalog_facet_assignment value/ref for language | | content-itd-014-catalog-facets-sidecar |
catalog_facet.accessibility_profile | catalog-facet | extend | alpha.content_catalog_facet_assignment value/ref for accessibility_profile | | content-itd-014-catalog-facets-sidecar |
catalog_facet.rights_license | catalog-facet | extend | alpha.content_catalog_facet_assignment value/ref for rights_license | | content-itd-014-catalog-facets-sidecar |
catalog_facet.provenance | catalog-facet | extend | alpha.content_catalog_facet_assignment value/ref for provenance | | content-itd-014-catalog-facets-sidecar |
catalog_facet.quality_rating | catalog-facet | extend | alpha.content_catalog_facet_assignment value/ref for quality_rating | | content-itd-014-catalog-facets-sidecar |
catalog_facet.kc_refs | catalog-facet | extend | alpha.content_catalog_facet_assignment value/ref for kc_refs | | content-itd-014-catalog-facets-sidecar |
catalog_facet.standards_framework_refs | catalog-facet | extend | alpha.content_catalog_facet_assignment value/ref for standards_framework_refs | | content-itd-014-catalog-facets-sidecar |
catalog_facet.content_kind | catalog-facet | extend | alpha.content_catalog_facet_assignment value/ref for content_kind | | content-itd-014-catalog-facets-sidecar |
catalog_facet.expected_xp_band | catalog-facet | extend | alpha.content_catalog_facet_assignment value/ref for expected_xp_band | | content-itd-014-catalog-facets-sidecar |
catalog_facet.modality | catalog-facet | extend | alpha.content_catalog_facet_assignment value/ref for modality | | content-itd-014-catalog-facets-sidecar |
content_item.subtype | field | extend | alpha.content_item_extension.subtype | | content-itd-019-governed-subtypes-within-ten-kinds |
content_item.dok | field | extend | alpha.content_item_extension.dok | | content-itd-020-test-spec-and-test-bank |
decodable.phonics_constraint | field | extend | alpha.decodable_extension.phonics_constraint | | content-itd-019-governed-subtypes-within-ten-kinds |
content_reference.form_index | reference-contract-field | extend | alpha.content_reference.form_index where relationship_kind = bank_member | | content-itd-020-test-spec-and-test-bank |
test.assessment_role | field | extend | alpha.assessment_test_extension.assessment_role | | content-itd-020-test-spec-and-test-bank |
test_spec | object | extend | qti.artifact where artifact_kind = test, assessment_role = spec, plus alpha.test_spec_extension | | content-itd-020-test-spec-and-test-bank |
test_spec.kc_coverage | field | extend | alpha.test_spec_extension.kc_coverage | | content-itd-020-test-spec-and-test-bank |
test_spec.passing_rule | field | extend | alpha.test_spec_extension.passing_rule | | content-itd-020-test-spec-and-test-bank |
test_spec.min_forms | field | extend | alpha.test_spec_extension.min_forms | | content-itd-020-test-spec-and-test-bank |
test_spec.max_item_overlap | field | extend | alpha.test_spec_extension.max_item_overlap | | content-itd-020-test-spec-and-test-bank |
test_bank | object | extend | qti.artifact where artifact_kind = test, assessment_role = bank, plus alpha.test_bank_extension | | content-itd-020-test-spec-and-test-bank |
test_bank.spec_id | field | extend | alpha.test_bank_extension.spec_id | | content-itd-020-test-spec-and-test-bank |
content_effectiveness.validated_by_count | read-dependency-field | restrict | Results-owned alpha.content_effectiveness.data ->> 'validated_by_count' | | content-itd-009-content-effectiveness-derived-rollup |
content_effectiveness.failed_by_count | read-dependency-field | restrict | Results-owned alpha.content_effectiveness.data ->> 'failed_by_count' | | content-itd-009-content-effectiveness-derived-rollup |
content_effectiveness.effectiveness_rate | read-dependency-field | restrict | Results-owned alpha.content_effectiveness.data ->> 'effectiveness_rate' | | content-itd-009-content-effectiveness-derived-rollup |
content_effectiveness.last_recomputed_at | read-dependency-field | restrict | Results-owned alpha.content_effectiveness.data ->> 'last_recomputed_at' | | content-itd-009-content-effectiveness-derived-rollup |
content_html_body_contract | object | extend | Virtual Content value-space over qti.artifact_version authoring_json/delivery_json; no Alpha table | Owns stored tb-* HTML semantics while QTI, Curriculum, renderers, Events, and Results retain their named seams. | content-itd-021-tb-markup-body-contract |
content_html_body_contract.html | field | extend | qti.artifact_version.authoring_json/delivery_json HTML projection | No new Content storage table. | content-itd-021-tb-markup-body-contract |
content_html_body_contract.tb_markup_token | field | extend | Content-owned value-space inside the version HTML body | Dictionary contract only; no standalone token table. | content-itd-021-tb-markup-body-contract |
content_html_body_contract.catalog_idref | field | extend | Content HTML body data-catalog-idref attribute | Stored only inside the immutable version body, including TimeBack import versions. | content-itd-021-tb-markup-body-contract |
content_html_body_contract.catalog_entry_id | field | extend | Content HTML body local catalog entry id | Local to one immutable version body, including TimeBack import versions. | content-itd-021-tb-markup-body-contract |
content_html_body_contract.qti_xml_ref | field | extend | Reference from Content HTML catalog to QTI-owned XML/scoring | Reference only; QTI remains the storage owner. | content-itd-021-tb-markup-body-contract |
content_html_body_contract.renderer_ref | field | extend | Curriculum course_component_member.renderer_ref | Cross-module reference; renderer selection is not stored on Content. | content-itd-021-tb-markup-body-contract |
content_html_body_contract.renderer_message | field | extend | Sanctioned renderer integration runtime protocol | Runtime protocol only; not Content storage. | content-itd-021-tb-markup-body-contract |
content_html_body_contract.progress_event_contract | field | extend | Events/Results learner-progress seam consumed by renderers | No renderer-private or Content progress store. | content-itd-021-tb-markup-body-contract |
interactive_composition | object | extend | Content publicInteractiveComposition aggregate over active alpha.interactive_composition rows | Public API aggregate over the Content-owned extend-only sidecar; exact physical rows live only in the generated Physical DDL section. | content-itd-022-interactive-composition |
interactive_composition.content_id | field | extend | publicInteractiveComposition.content_id from active alpha.interactive_composition.content_artifact_id rows | Base Content identity; no copied artifact fields. | content-itd-022-interactive-composition |
interactive_composition.version_id | field | extend | publicInteractiveComposition.version_id from active alpha.interactive_composition.content_version_id rows | | content-itd-022-interactive-composition |
interactive_composition.composition_type | field | extend | publicInteractiveComposition.composition_type from active alpha.interactive_composition rows | | content-itd-022-interactive-composition |
interactive_composition.media_asset_ref | field | extend | publicInteractiveComposition media_asset_ref built from active alpha.interactive_composition.media_package_file_id rows | Reference only; media bytes remain upstream. | content-itd-022-interactive-composition |
interactive_composition.duration_seconds | field | extend | publicInteractiveComposition.duration_seconds from active alpha.interactive_composition rows | | content-itd-022-interactive-composition |
interactive_composition.segments | field | extend | publicInteractiveComposition segments aggregate from active row sequence/segment/question-reference fields | API aggregate only; row fields remain in exact Physical DDL. | content-itd-022-interactive-composition |
interactive_composition.cues | field | extend | publicInteractiveComposition cues aggregate from active row timestamp/question-reference fields | API aggregate only; referenced questions remain independent QTI-backed Content rows. | content-itd-022-interactive-composition |
interactive_composition.validation_contract | field | derive | publicInteractiveComposition derived validation contract from composition_type and content-itd-022 | Read-only derived projection; no physical JSON validation-contract column. | content-itd-022-interactive-composition |
interactive_composition.updated_at | field | derive | publicInteractiveComposition latest active row created_at or parent Content updated_at | Read-only aggregate timestamp; not learner state. | content-itd-022-interactive-composition |
content_item | object | restrict | QTI assessment-item and assessment-test identities feed public question, test, test_spec, and test_bank rows. QTI assessmentStimulus contributes question anatomy only and is filtered from public content_item rows. Articles, videos, audio, images, interactives, media assets, external links, and scripts are anchored to QTI/Common-Cartridge-compatible resource rows where one exists; Alpha stores only new classification and lifecycle facts in sidecars. diagram and decodable are governed subtype values. QTI sections and course/unit/chapter/lesson containers route to Curriculum. | The catalog row for one student-touchable thing, across versions. | content-itd-001-module-boundary-and-alias-map |
content_item.usage_scope | field | extend | alpha.content_item_extension.usage_scope | | content-itd-020-test-spec-and-test-bank |
content_item.source_system | field | extend | source_system | | content-itd-001-module-boundary-and-alias-map |
content_item.status | field | extend | status | | content-itd-007-versioned-authoring-and-student-view |
content_item.created_at | field | rename | qti.artifact.created_at | | content-axis-007-eventing-model |
content_item.updated_at | field | extend | updated_at | | content-axis-007-eventing-model |
content_item.retired_at | field | extend | retired_at | | content-axis-011-privacy-retention |
content_version | object | restrict | QTI-backed versions alias qti.artifact_version. Non-QTI authoring and TimeBack source ingest use the same append-only version target while keeping QTI-owned fields in QTI base rows. | One immutable exact edition of a content item. | content-itd-007-versioned-authoring-and-student-view |
content_version.content_id | field | rename | qti.artifact_version.artifact_id | | content-itd-007-versioned-authoring-and-student-view |
content_version.content_hash | field | rename + extend | qti.artifact_version.xml_hash | | content-axis-004-concurrency-model |
content_version.supersedes_version_id | field | rename | qti.artifact_version.supersedes_version_id | | content-itd-007-versioned-authoring-and-student-view |
content_version.etag | field | extend | etag | | content-axis-004-concurrency-model |
content_version.created_at | field | rename | qti.artifact_version.created_at | | content-itd-007-versioned-authoring-and-student-view |
content_version.created_by | field | rename | qti.artifact_version.created_by | | content-axis-011-privacy-retention |
media_asset.content_id | field | extend | content_id | | content-itd-004-non-qti-media-extension |
media_asset.version_id | field | extend | version_id | | content-itd-007-versioned-authoring-and-student-view |
media_asset.content_hash | field | rename | qti.package_file.content_hash | | content-itd-004-non-qti-media-extension |
media_asset.storage_path | field | rename | qti.package_file.package_path | | content-itd-004-non-qti-media-extension |
media_asset.delivery_url | field | extend | delivery_url | | content-itd-004-non-qti-media-extension |
media_asset.metadata | field | rename | qti.package_file.metadata | | content-axis-011-privacy-retention |
media_asset.created_at | field | rename | qti.package_file.created_at | | content-itd-004-non-qti-media-extension |
external_link.content_id | field | extend | content_id | | content-itd-004-non-qti-media-extension |
external_link.display_url | field | extend | display_url | | content-itd-004-non-qti-media-extension |
external_link.open_policy | field | extend | open_policy | | content-itd-004-non-qti-media-extension |
external_link.last_validated_at | field | extend | last_validated_at | | content-axis-010-conformance-evidence |
decodable | object | extend | QTI/Common Cartridge can store the article resource, but the phonics constraint set is an Alpha-owned fact needed to render and discover decodable text. | Phonics-constraint sidecar for content_item rows where content_kind='article' and subtype='decodable'. | content-itd-019-governed-subtypes-within-ten-kinds |
decodable.content_id | field | extend | content_id | | content-itd-019-governed-subtypes-within-ten-kinds |
decodable.constraint_set_id | field | extend | constraint_set_id | | content-itd-019-governed-subtypes-within-ten-kinds |
decodable.policy_version | field | extend | policy_version | | content-itd-019-governed-subtypes-within-ten-kinds |
decodable.updated_at | field | extend | updated_at | | content-axis-007-eventing-model |
test.content_id | field | rename | qti.artifact.artifact_id | | content-itd-020-test-spec-and-test-bank |
test.test_type | field | extend | alpha.assessment_test_extension.test_type | | content-itd-006-typed-content-and-test-fields |
assessment_test | object | extend | QTI stores the assessment test XML; Alpha adds the typed fields teachers and LLMs need without parsing names or producer URLs. content-itd-020 adds first-class public test_spec/test_bank kinds with role-specific sidecars over this same QTI shape. | Typed Alpha fields for QTI-backed test, test_spec, and test_bank rows. | content-itd-019-governed-subtypes-within-ten-kinds |
assessment_test.content_id | field | extend | content_id | | content-itd-006-typed-content-and-test-fields |
assessment_test.assessment_role | field | extend | assessment_role | | content-itd-019-governed-subtypes-within-ten-kinds |
test_spec.spec_id | field | extend | alpha.test_spec_extension.spec_id | | content-itd-020-test-spec-and-test-bank |
test_spec.assessment_role | field | extend | assessment_role | | content-itd-019-governed-subtypes-within-ten-kinds |
test_spec.item_type_mix | field | extend | alpha.test_spec_extension.item_type_mix | | content-itd-020-test-spec-and-test-bank |
test_spec.difficulty_constraints | field | extend | alpha.test_spec_extension.difficulty_constraints | | content-itd-020-test-spec-and-test-bank |
test_spec.enemy_item_rule | field | extend | alpha.test_spec_extension.enemy_item_rule | | content-itd-020-test-spec-and-test-bank |
test_spec.updated_at | field | extend | updated_at | | content-axis-007-eventing-model |
test_bank.bank_id | field | extend | alpha.test_bank_extension.bank_id | | content-itd-020-test-spec-and-test-bank |
test_bank.assessment_role | field | extend | assessment_role | | content-itd-019-governed-subtypes-within-ten-kinds |
test_bank.membership_rule | field | extend | alpha.test_bank_extension.membership_rule | | content-itd-020-test-spec-and-test-bank |
test_bank.updated_at | field | extend | updated_at | | content-axis-007-eventing-model |
content_curriculum_link | object | extend | CASE/Content supplies curriculum node identity; Alpha Content owns only the coverage relationship. | A real relationship from Content to the shared curriculum graph. | content-itd-005-curriculum-links-are-relationships |
content_curriculum_link.content_curriculum_link_id | field | extend | content_curriculum_link_id | | content-itd-005-curriculum-links-are-relationships |
content_curriculum_link.content_id | field | extend | content_id | | content-itd-005-curriculum-links-are-relationships |
content_curriculum_link.version_id | field | extend | version_id | | content-itd-007-versioned-authoring-and-student-view |
content_curriculum_link.link_kind | field | extend | link_kind | | content-itd-005-curriculum-links-are-relationships |
content_curriculum_link.active_from | field | extend | active_from | | content-itd-005-curriculum-links-are-relationships |
content_curriculum_link.active_until | field | extend | active_until | | content-axis-011-privacy-retention |
content_catalog_facet | object | extend | QTI metadata is not used as Alpha extension storage. The facet sidecar follows the tag-vs-column rule: governed, low-cardinality discovery dimensions can live here until they deserve real columns. | Governed catalog-facet definition for discovery metadata. | content-itd-014-catalog-facets-sidecar |
content_catalog_facet.facet_key | field | extend | facet_key | | content-itd-014-catalog-facets-sidecar |
content_catalog_facet.label | field | extend | label | | content-itd-014-catalog-facets-sidecar |
content_catalog_facet.value_type | field | extend | value_type | | content-itd-014-catalog-facets-sidecar |
content_catalog_facet.grain | field | extend | grain | | content-itd-014-catalog-facets-sidecar |
content_catalog_facet.allowed_values | field | extend | allowed_values | | content-itd-014-catalog-facets-sidecar |
content_catalog_facet.status | field | extend | status | | content-itd-014-catalog-facets-sidecar |
content_catalog_facet.updated_at | field | extend | updated_at | | content-axis-007-eventing-model |
content_catalog_facet_assignment | object | extend | The assignment table is the Content-specific case of the governed tag registry. Relationships remain real columns; discovery-only facets live here until promotion. | Assignment of one governed catalog facet value to Content. | content-itd-014-catalog-facets-sidecar |
content_catalog_facet_assignment.facet_assignment_id | field | extend | facet_assignment_id | | content-itd-014-catalog-facets-sidecar |
content_catalog_facet_assignment.facet_key | field | extend | facet_key | | content-itd-014-catalog-facets-sidecar |
content_catalog_facet_assignment.content_id | field | extend | content_id | | content-itd-014-catalog-facets-sidecar |
content_catalog_facet_assignment.version_id | field | extend | version_id | | content-itd-014-catalog-facets-sidecar |
content_catalog_facet_assignment.media_id | field | extend | media_id | | content-itd-014-catalog-facets-sidecar |
content_catalog_facet_assignment.facet_value | field | extend | facet_value | | content-itd-014-catalog-facets-sidecar |
content_catalog_facet_assignment.provenance | field | extend | provenance | | content-itd-014-catalog-facets-sidecar |
content_catalog_facet_assignment.retired_at | field | extend | retired_at | | content-itd-014-catalog-facets-sidecar |
content_ref | object | extend | Content exposes one reference shape so Curriculum course_component_member.target_ref and catalog/LOR workflows can point at any Content kind without special-casing. | The one reference shape for every Content kind. | content-itd-016-uniform-content-reference-contract |
content_reference | object | extend | QTI package resources can depend on other resources, but Alpha pins one relationship row shape for every Content kind so renderers and Common Cartridge export do not special-case question, test, test_spec, test_bank, article, video, audio, image, interactive, media_asset, external_link, or script. | A stored relationship from one Content row to another using the uniform content_ref contract. | content-itd-016-uniform-content-reference-contract |
content_reference.content_reference_id | field | extend | content_reference_id | | content-itd-016-uniform-content-reference-contract |
content_reference.display_order | field | extend | display_order | | content-itd-016-uniform-content-reference-contract |
content_reference.usage_scope | field | extend | alpha.content_reference.usage_scope | | content-itd-020-test-spec-and-test-bank |
content_reference.referenced_usage_scope | field | derive | alpha.content_reference_view.referenced_usage_scope | | content-itd-020-test-spec-and-test-bank |
content_reference.created_at | field | extend | created_at | | content-itd-016-uniform-content-reference-contract |
content_reference.retired_at | field | extend | retired_at | | content-itd-016-uniform-content-reference-contract |
answer_slot | object | restrict | Only QTI response declarations are exposed as answer slots; outcome/template/context declarations are internal unless used by scoring_plan provenance. | QTI response declaration exposed in plain language. | content-itd-008-answer-slots-not-student-answers |
answer_slot.answer_slot_id | field | rename | qti.variable_declaration.variable_declaration_id | | content-itd-008-answer-slots-not-student-answers |
answer_slot.content_id | field | extend | content_id | | content-itd-008-answer-slots-not-student-answers |
answer_slot.version_id | field | rename | qti.variable_declaration.artifact_version_id | | content-itd-008-answer-slots-not-student-answers |
answer_slot.source_trace | field | rename | qti.variable_declaration.source_trace | | content-itd-008-answer-slots-not-student-answers |
answer_key | object | restrict | QTI correct_response is preserved but restricted to authorized reads. It is not exposed to ordinary student content reads. | Teacher-only correct response and mapping for an answer slot. | content-itd-008-answer-slots-not-student-answers |
answer_key.answer_slot_id | field | extend | answer_slot_id | | content-itd-008-answer-slots-not-student-answers |
answer_key.mapping | field | restrict | qti.variable_declaration.mapping | | content-itd-008-answer-slots-not-student-answers |
answer_key.required_scope | field | extend | required_scope | | content-axis-006-auth-shape |
assessment_component | object | restrict | QTI component elements remain the source. Alpha publishes school-language component_role values for the parts of the blank assessment that apps need to render or audit. | Sections, parts, choices, rubrics, and pre-authored feedback from the QTI component tree. | content-itd-008-answer-slots-not-student-answers |
assessment_component.assessment_component_id | field | rename | qti.component.component_id | | content-itd-008-answer-slots-not-student-answers |
assessment_component.content_id | field | extend | content_id | | content-itd-008-answer-slots-not-student-answers |
assessment_component.version_id | field | rename | qti.component.artifact_version_id | | content-itd-008-answer-slots-not-student-answers |
assessment_component.parent_assessment_component_id | field | rename | qti.component.parent_component_id | | content-itd-008-answer-slots-not-student-answers |
assessment_component.ordinal | field | rename | qti.component.ordinal | | content-itd-008-answer-slots-not-student-answers |
assessment_component.element_name | field | rename | qti.component.element_name | | content-itd-008-answer-slots-not-student-answers |
assessment_component.qti_identifier | field | rename | qti.component.qti_identifier | | content-itd-008-answer-slots-not-student-answers |
assessment_component.response_identifier | field | extend | response_identifier | | content-itd-008-answer-slots-not-student-answers |
assessment_component.outcome_identifier | field | extend | outcome_identifier | | content-itd-008-answer-slots-not-student-answers |
assessment_component.feedback_identifier | field | extend | feedback_identifier | | content-itd-008-answer-slots-not-student-answers |
assessment_component.show_hide | field | extend | show_hide | | content-itd-008-answer-slots-not-student-answers |
assessment_component.source_trace | field | rename | qti.component.source_trace | | content-itd-008-answer-slots-not-student-answers |
scoring_plan | object | restrict | QTI processing rules remain the source. Alpha exposes enough provenance to explain the blank scoring plan without becoming Results. | QTI processing provenance for scoring a content version. | content-itd-008-answer-slots-not-student-answers |
scoring_plan.scoring_plan_id | field | rename | qti.processing_rule.processing_rule_id | | content-itd-008-answer-slots-not-student-answers |
scoring_plan.content_id | field | extend | content_id | | content-itd-008-answer-slots-not-student-answers |
scoring_plan.version_id | field | rename | qti.processing_rule.artifact_version_id | | content-itd-008-answer-slots-not-student-answers |
scoring_plan.parent_scoring_plan_id | field | rename | qti.processing_rule.parent_processing_rule_id | | content-itd-008-answer-slots-not-student-answers |
scoring_plan.rule_scope | field | rename | qti.processing_rule.rule_scope | | content-itd-008-answer-slots-not-student-answers |
scoring_plan.rule_name | field | rename | qti.processing_rule.rule_name | | content-itd-008-answer-slots-not-student-answers |
scoring_plan.sequence_number | field | rename | qti.processing_rule.sequence_number | | content-itd-008-answer-slots-not-student-answers |
scoring_plan.operands | field | rename | qti.processing_rule.operands | | content-itd-008-answer-slots-not-student-answers |
scoring_plan.source_trace | field | rename | qti.processing_rule.source_trace | | content-itd-008-answer-slots-not-student-answers |
content_effectiveness | object | derive | Content-effectiveness fields are derived from settled Results evidence. Content exposes them beside the content item as a read dependency, not as Content-owned storage. | Results-owned derived effectiveness read for one content item. | content-itd-009-content-effectiveness-derived-rollup |
content_effectiveness.content_id | read-dependency-field | derive | alpha.content_effectiveness.data ->> 'content_id' | | content-itd-009-content-effectiveness-derived-rollup |
content_effectiveness.content_version_id | read-dependency-field | derive | alpha.content_effectiveness.data ->> 'content_version_id' | | content-itd-009-content-effectiveness-derived-rollup |
content_effectiveness.kc_id | read-dependency-field | derive | alpha.content_effectiveness.data ->> 'kc_id' | | content-itd-009-content-effectiveness-derived-rollup |
content_effectiveness.subject_id | read-dependency-field | derive | alpha.content_effectiveness.data ->> 'subject_id' | | content-itd-009-content-effectiveness-derived-rollup |
content_effectiveness.evidence_count | read-dependency-field | derive | alpha.content_effectiveness.data ->> 'evidence_count' | | content-itd-009-content-effectiveness-derived-rollup |
content_effectiveness.freshness_status | read-dependency-field | derive | GET /items/{contentId}/effectiveness fallback over alpha.content_effectiveness | | content-itd-009-content-effectiveness-derived-rollup |
content_effectiveness.policy_version | read-dependency-field | derive | alpha.content_effectiveness.data ->> 'policy_version' | | content-itd-009-content-effectiveness-derived-rollup |
content_effectiveness.source_result_refs | read-dependency-field | derive | alpha.content_effectiveness.data -> 'source_result_refs' | | content-itd-009-content-effectiveness-derived-rollup |
content_effectiveness.provenance | read-dependency-field | derive | alpha.content_effectiveness.data | | content-itd-009-content-effectiveness-derived-rollup |
content_trust_evidence | object | extend | Current runtime exposes generic producer/import trust metadata or unknown/null native trust. The accepted target binds QTI-backed content to an exact QTI conformance run and non-QTI media to a named Content validation check. | Read-only trust status and validation provenance for Content. | content-axis-010-conformance-evidence |
content_trust_evidence.content_id | field | extend | content_id | | content-axis-010-conformance-evidence |
content_trust_evidence.trust_status | field | extend | trust_status | | content-axis-010-conformance-evidence |
content_trust_evidence.evidence_url | field | extend | evidence_url | | content-axis-010-conformance-evidence |
content_trust_evidence.checked_at | field | extend | checked_at | | content-axis-010-conformance-evidence |
content_trust_evidence.problem_code | field | extend | problem_code | | content-itd-012-plain-language-problems-and-provenance |
content_policy | object | restrict | The runtime exposes alpha.content_policy_view where rows exist, while source import executes a bundled JSON policy. A future shared alpha.policy authority must replace—not be inferred from—this current arrangement. | Current Content policy projection, including module-local rows and the bundled versioned source-adapter policy. | content-itd-009-content-effectiveness-derived-rollup |
content_policy.policy_key | field | extend | policy_key | | content-itd-009-content-effectiveness-derived-rollup |
content_policy.value_json | field | extend | value_json | | content-itd-009-content-effectiveness-derived-rollup |
content_policy.policy_version | field | extend | policy_version | | content-itd-009-content-effectiveness-derived-rollup |
content_policy.updated_at | field | extend | updated_at | | content-itd-009-content-effectiveness-derived-rollup |
content_problem | object | restrict | The envelope comes from Platform. Content adds the exact stable code and field contract emitted by implementation/impl/src/errors.mjs. | Stable problem codes and field errors returned by Content APIs. | content-itd-012-plain-language-problems-and-provenance |
content_problem.type | field | extend | type | | content-axis-008-error-envelope |
content_problem.title | field | extend | title | | content-axis-008-error-envelope |
content_problem.status | field | extend | status | | content-axis-008-error-envelope |
content_problem.code | field | extend | code | | content-itd-012-plain-language-problems-and-provenance |
content_problem.detail | field | extend | detail | | content-axis-008-error-envelope |
content_problem.requestId | field | extend | requestId | | content-axis-008-error-envelope |
content_problem.traceId | field | extend | traceId | | content-axis-008-error-envelope |
content_problem.cause | field | extend | cause | | content-axis-008-error-envelope |
content_problem.docUrl | field | extend | docUrl | | content-axis-008-error-envelope |
content_problem.fieldErrors | field | extend | fieldErrors | | content-axis-008-error-envelope |
content_kc_tag | object | extend | The Curriculum registry supplies kc_id identity; Content owns only the mapping from its stable Content identity to that registry identity. | The canonical weighted many-to-many Q-matrix row from Content to a governed registry KC. | content-itd-005-curriculum-links-are-relationships |
content_kc_tag.tenant_id | field | extend | Resolved from the authenticated route tenant. | | content-itd-005-curriculum-links-are-relationships |
content_kc_tag.content_id | field | extend | Taken from the Content item route after tenant-scoped resolution. | | content-itd-005-curriculum-links-are-relationships |
content_kc_tag.kc_id | field | extend | Supplied by an authorized Content/KC tagging workflow after registry resolution. | | content-itd-005-curriculum-links-are-relationships |
content_kc_tag.weight | field | extend | Asserted by the authorized tagging or review workflow. | | content-itd-005-curriculum-links-are-relationships |
content_kc_tag.is_primary | field | extend | Asserted by the authorized tagging or review workflow. | | content-itd-005-curriculum-links-are-relationships |
content_kc_tag.provenance | field | extend | Supplied by the authorized tagging workflow. | | content-itd-005-curriculum-links-are-relationships |
content_kc_tag.confidence | field | extend | Supplied by the authorized tagging or review workflow. | | content-itd-005-curriculum-links-are-relationships |
content_kc_tag.created_at | field | extend | Set by PostgreSQL on initial insert. | | content-axis-011-privacy-retention |
content_kc_tag.updated_at | field | extend | Set by PostgreSQL insert/upsert. | | content-axis-011-privacy-retention |
content_kc_tag.retired_at | field | extend | Set by a governed retirement workflow; the initial public API writes null. | | content-axis-011-privacy-retention |
content_item.source_table | field | extend | alpha.content_item_extension.source_table | | content-itd-018-source-shaped-production-ingest |
content_release_eligibility | object | extend | content-itd-023 trust-based exact-version eligibility under owner ruling #2534 (2026-08-05): publication plus integrity makes a version serveable; trust_status=failed is the single post-visibility revocation lever. | Current lifecycle and item-revocation answer for one exact Content version. | content-itd-023-trust-based-release-eligibility |
content_release_eligibility.content_id | field | extend | Content base identity. | | content-itd-023-trust-based-release-eligibility |
content_release_eligibility.content_version_id | field | extend | Content version identity. | | content-itd-023-trust-based-release-eligibility |
content_release_eligibility.content_kind | field | restrict + extend | Content item kind taxonomy. | | content-itd-023-trust-based-release-eligibility |
content_release_eligibility.usage_scope | field | extend | Content item routing exposure contract. | | content-itd-023-trust-based-release-eligibility |
content_release_eligibility.trust_status | field | extend | Content current item revocation state. | | content-itd-023-trust-based-release-eligibility |
content_release_eligibility.serveable | field | extend | Content lifecycle and item revocation state. | | content-itd-023-trust-based-release-eligibility |
content_release_eligibility.release_eligible | field | extend | Content lifecycle and item revocation state. | | content-itd-023-trust-based-release-eligibility |
content_release_eligibility.problem_code | field | extend | Content problem envelope. | | content-itd-023-trust-based-release-eligibility |
content_test_serve_grant | object | extend | content-itd-024-governed-test-serve | Soft-revocable demo authorization for one test/synthetic identity. | content-itd-024-governed-test-serve |
content_test_serve_grant.tenant_id | reference-contract-field | restrict | Platform tenant identity. | | content-itd-024-governed-test-serve |
content_test_serve_grant.test_serve_grant_id | field | extend | Content test-serving policy. | | content-itd-024-governed-test-serve |
content_test_serve_grant.test_identity_id | reference-contract-field | restrict | People & Orgs identity reference only; no person facts are copied. | | content-itd-024-governed-test-serve |
content_test_serve_grant.producer_surface | field | extend | Content producer policy. | | content-itd-024-governed-test-serve |
content_test_serve_grant.authorization_ref | field | extend | Governance provenance. | | content-itd-024-governed-test-serve |
content_test_serve_grant.expires_at | field | extend | Content test-serving policy. | | content-itd-024-governed-test-serve |
content_test_serve_grant.revoked_at | field | extend | Content test-serving policy. | | content-itd-024-governed-test-serve |
content_test_serve_grant.created_at | field | extend | Content audit field. | | content-itd-024-governed-test-serve |
content_test_serve_authorization | object | extend | content-itd-024-governed-test-serve | Immutable exact bank/form test-serve receipt. | content-itd-024-governed-test-serve |
content_test_serve_authorization.tenant_id | reference-contract-field | restrict | Platform tenant identity. | | content-itd-024-governed-test-serve |
content_test_serve_authorization.test_serve_authorization_id | field | extend | Content authorization evidence. | | content-itd-024-governed-test-serve |
content_test_serve_authorization.test_serve_grant_id | reference-contract-field | restrict | Content grant reference. | | content-itd-024-governed-test-serve |
content_test_serve_authorization.caller_subject | field | extend | Verified JWT subject. | | content-itd-024-governed-test-serve |
content_test_serve_authorization.test_identity_id | reference-contract-field | restrict | People & Orgs identity reference. | | content-itd-024-governed-test-serve |
content_test_serve_authorization.producer_surface | field | extend | Content producer policy. | | content-itd-024-governed-test-serve |
content_test_serve_authorization.gate_component_id | reference-contract-field | restrict | Curriculum gate identity. | | content-itd-024-governed-test-serve |
content_test_serve_authorization.bank_content_id | reference-contract-field | restrict | Content bank identity. | | content-itd-024-governed-test-serve |
content_test_serve_authorization.bank_content_version_id | reference-contract-field | restrict | Content version identity. | | content-itd-024-governed-test-serve |
content_test_serve_authorization.form_content_id | reference-contract-field | restrict | Content form identity. | | content-itd-024-governed-test-serve |
content_test_serve_authorization.form_content_version_id | reference-contract-field | restrict | Content version identity. | | content-itd-024-governed-test-serve |
content_test_serve_authorization.request_id | field | extend | Platform request tracing. | | content-itd-024-governed-test-serve |
content_test_serve_authorization.trace_id | field | extend | Platform request tracing. | | content-itd-024-governed-test-serve |
content_test_serve_authorization.authorized_at | field | extend | Content audit field. | | content-itd-024-governed-test-serve |
content_test_serve_eligibility | object | restrict | content-itd-024-governed-test-serve | Current fail-closed answer for one exact Content version and one test identity. | content-itd-024-governed-test-serve |
content_test_serve_eligibility.content_id | read-dependency-field | derive | Content identity. | | content-itd-024-governed-test-serve |
content_test_serve_eligibility.content_version_id | read-dependency-field | derive | Content version identity. | | content-itd-024-governed-test-serve |
content_test_serve_eligibility.content_kind | read-dependency-field | derive | Content kind. | | content-itd-024-governed-test-serve |
content_test_serve_eligibility.usage_scope | read-dependency-field | derive | Content usage policy. | | content-itd-024-governed-test-serve |
content_test_serve_eligibility.producer_surface | field | extend | Content producer policy. | | content-itd-024-governed-test-serve |
content_test_serve_eligibility.test_identity_id | read-dependency-field | derive | People & Orgs identity reference. | | content-itd-024-governed-test-serve |
content_test_serve_eligibility.test_serve_grant_id | reference-contract-field | restrict | Content grant. | | content-itd-024-governed-test-serve |
content_test_serve_eligibility.test_serve_eligible | field | extend | Content test-serving policy. | | content-itd-024-governed-test-serve |
content_test_serve_eligibility.problem_code | field | extend | Content error contract. | | content-itd-024-governed-test-serve |