tba-storage-core 0.4.0.dev2__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (294) hide show
  1. tba_storage_core/__init__.py +25 -0
  2. tba_storage_core/components.py +35 -0
  3. tba_storage_core/framework.py +3 -0
  4. tba_storage_core/migrations/__init__.py +15 -0
  5. tba_storage_core/migrations/contract.py +74 -0
  6. tba_storage_core/migrations/env.py +7 -0
  7. tba_storage_core/migrations/helpers.py +219 -0
  8. tba_storage_core/migrations/versions/0001_initial_identity_tables.py +17 -0
  9. tba_storage_core/migrations/versions/0002_client_and_service_tables.py +23 -0
  10. tba_storage_core/migrations/versions/0003_authorization_runtime_tables.py +17 -0
  11. tba_storage_core/migrations/versions/0004_device_par_revocation_tables.py +17 -0
  12. tba_storage_core/migrations/versions/0005_session_logout_tables.py +17 -0
  13. tba_storage_core/migrations/versions/0006_key_rotation_and_audit_tables.py +17 -0
  14. tba_storage_core/migrations/versions/0007_browser_session_cookie_and_auth_code_linkage.py +50 -0
  15. tba_storage_core/migrations/versions/0008_refresh_token_family_state.py +44 -0
  16. tba_storage_core/migrations/versions/0009_admin_identity_bootstrap_and_password_recovery.py +48 -0
  17. tba_storage_core/migrations/versions/0010_realm_namespace_tables.py +33 -0
  18. tba_storage_core/migrations/versions/0011_delegation_grant_lifecycle_tables.py +39 -0
  19. tba_storage_core/migrations/versions/0012_key_version_and_token_provenance_tables.py +36 -0
  20. tba_storage_core/migrations/versions/0013_contract_durable_state_tables.py +59 -0
  21. tba_storage_core/migrations/versions/0014_optional_contract_state_tables.py +57 -0
  22. tba_storage_core/migrations/versions/0015_principal_identity_credential_tables.py +85 -0
  23. tba_storage_core/migrations/versions/0016_crypto_key_storage_tables.py +84 -0
  24. tba_storage_core/migrations/versions/0017_authorization_server_table.py +21 -0
  25. tba_storage_core/migrations/versions/0018_policy_tables.py +27 -0
  26. tba_storage_core/migrations/versions/0019_federation_and_invariant_tables.py +35 -0
  27. tba_storage_core/migrations/versions/0020_backchannel_logout_replay_table.py +21 -0
  28. tba_storage_core/migrations/versions/0021_authentication_challenge_table.py +21 -0
  29. tba_storage_core/migrations/versions/0022_authority_and_trust_graph_tables.py +35 -0
  30. tba_storage_core/migrations/versions/0023_artifact_and_token_profile_discriminators.py +65 -0
  31. tba_storage_core/migrations/versions/0024_credential_issuer_wallet_and_configuration.py +32 -0
  32. tba_storage_core/migrations/versions/0025_credential_issuance_and_status.py +34 -0
  33. tba_storage_core/migrations/versions/0026_presentation_transaction_and_replay.py +28 -0
  34. tba_storage_core/migrations/versions/0027_attestation_and_reference_material.py +32 -0
  35. tba_storage_core/migrations/versions/0028_spiffe_svid_and_trust_bundles.py +22 -0
  36. tba_storage_core/migrations/versions/0029_security_event_delivery.py +28 -0
  37. tba_storage_core/migrations/versions/0030_optional_did_and_gnap_state.py +37 -0
  38. tba_storage_core/migrations/versions/0031_certificate_trust_and_status.py +22 -0
  39. tba_storage_core/migrations/versions/0032_claim_definition_and_provenance.py +30 -0
  40. tba_storage_core/migrations/versions/0033_replay_reservations.py +18 -0
  41. tba_storage_core/migrations/versions/0034_dpop_replay_nonce_tables.py +21 -0
  42. tba_storage_core/migrations/versions/0035_webauthn_rp_ceremony_and_credentials.py +76 -0
  43. tba_storage_core/migrations/versions/0036_workload_credentials_artifacts_and_proof_replay.py +27 -0
  44. tba_storage_core/migrations/versions/0037_operator_tables.py +30 -0
  45. tba_storage_core/migrations/versions/0038_adopt_component_ownership.py +66 -0
  46. tba_storage_core/migrations/versions/0039_normalized_platform_iam.py +17 -0
  47. tba_storage_core/py.typed +0 -0
  48. tba_storage_core/storage.lock.toml +211 -0
  49. tba_storage_core/storage.toml +34 -0
  50. tba_storage_core/tables/__init__.py +179 -0
  51. tba_storage_core/tables/_graph_base.py +53 -0
  52. tba_storage_core/tables/_registry.py +200 -0
  53. tba_storage_core/tables/access_review_campaign/__init__.py +9 -0
  54. tba_storage_core/tables/access_review_campaign/_table.py +25 -0
  55. tba_storage_core/tables/access_review_decision/__init__.py +9 -0
  56. tba_storage_core/tables/access_review_decision/_table.py +27 -0
  57. tba_storage_core/tables/access_review_item/__init__.py +9 -0
  58. tba_storage_core/tables/access_review_item/_table.py +26 -0
  59. tba_storage_core/tables/attestation_appraisal_policy/__init__.py +3 -0
  60. tba_storage_core/tables/attestation_endorsement/__init__.py +3 -0
  61. tba_storage_core/tables/attestation_evidence/__init__.py +3 -0
  62. tba_storage_core/tables/attestation_reference_manifest/__init__.py +3 -0
  63. tba_storage_core/tables/attestation_reference_value/__init__.py +3 -0
  64. tba_storage_core/tables/attestation_result/__init__.py +3 -0
  65. tba_storage_core/tables/attestation_state.py +124 -0
  66. tba_storage_core/tables/attribute_policy/__init__.py +9 -0
  67. tba_storage_core/tables/attribute_policy/_table.py +40 -0
  68. tba_storage_core/tables/audit_event/__init__.py +10 -0
  69. tba_storage_core/tables/audit_event/_table.py +47 -0
  70. tba_storage_core/tables/auth_code/__init__.py +13 -0
  71. tba_storage_core/tables/auth_code/_table.py +41 -0
  72. tba_storage_core/tables/auth_session/__init__.py +13 -0
  73. tba_storage_core/tables/auth_session/_table.py +45 -0
  74. tba_storage_core/tables/authentication_challenge/__init__.py +7 -0
  75. tba_storage_core/tables/authentication_challenge/_table.py +38 -0
  76. tba_storage_core/tables/authority_derivation_graph/__init__.py +15 -0
  77. tba_storage_core/tables/authority_derivation_graph/_table.py +94 -0
  78. tba_storage_core/tables/authorization_invariant/__init__.py +5 -0
  79. tba_storage_core/tables/authorization_invariant/_table.py +34 -0
  80. tba_storage_core/tables/authorization_server/__init__.py +6 -0
  81. tba_storage_core/tables/authorization_server/_table.py +61 -0
  82. tba_storage_core/tables/authz_verification_report/__init__.py +9 -0
  83. tba_storage_core/tables/authz_verification_report/_table.py +29 -0
  84. tba_storage_core/tables/backchannel_logout_replay/__init__.py +5 -0
  85. tba_storage_core/tables/backchannel_logout_replay/_table.py +37 -0
  86. tba_storage_core/tables/certificate_record/__init__.py +3 -0
  87. tba_storage_core/tables/certificate_state.py +82 -0
  88. tba_storage_core/tables/certificate_status_snapshot/__init__.py +3 -0
  89. tba_storage_core/tables/claim_state.py +98 -0
  90. tba_storage_core/tables/client/__init__.py +9 -0
  91. tba_storage_core/tables/client/_table.py +41 -0
  92. tba_storage_core/tables/client_registration/__init__.py +10 -0
  93. tba_storage_core/tables/client_registration/_table.py +47 -0
  94. tba_storage_core/tables/consent/__init__.py +13 -0
  95. tba_storage_core/tables/consent/_table.py +57 -0
  96. tba_storage_core/tables/control_correctness_report/__init__.py +9 -0
  97. tba_storage_core/tables/control_correctness_report/_table.py +20 -0
  98. tba_storage_core/tables/credential/__init__.py +9 -0
  99. tba_storage_core/tables/credential/_table.py +74 -0
  100. tba_storage_core/tables/credential_api_key/__init__.py +9 -0
  101. tba_storage_core/tables/credential_api_key/_table.py +50 -0
  102. tba_storage_core/tables/credential_audit_event/__init__.py +9 -0
  103. tba_storage_core/tables/credential_audit_event/_table.py +25 -0
  104. tba_storage_core/tables/credential_client_secret/__init__.py +9 -0
  105. tba_storage_core/tables/credential_client_secret/_table.py +24 -0
  106. tba_storage_core/tables/credential_configuration/__init__.py +3 -0
  107. tba_storage_core/tables/credential_deferred_transaction/__init__.py +3 -0
  108. tba_storage_core/tables/credential_dpop_key/__init__.py +9 -0
  109. tba_storage_core/tables/credential_dpop_key/_table.py +22 -0
  110. tba_storage_core/tables/credential_ecosystem_registry.py +119 -0
  111. tba_storage_core/tables/credential_issuance_state.py +154 -0
  112. tba_storage_core/tables/credential_issuance_transaction/__init__.py +3 -0
  113. tba_storage_core/tables/credential_issuer/__init__.py +3 -0
  114. tba_storage_core/tables/credential_mfa_factor/__init__.py +9 -0
  115. tba_storage_core/tables/credential_mfa_factor/_table.py +24 -0
  116. tba_storage_core/tables/credential_mtls_certificate/__init__.py +9 -0
  117. tba_storage_core/tables/credential_mtls_certificate/_table.py +26 -0
  118. tba_storage_core/tables/credential_notification/__init__.py +3 -0
  119. tba_storage_core/tables/credential_offer/__init__.py +3 -0
  120. tba_storage_core/tables/credential_password/__init__.py +9 -0
  121. tba_storage_core/tables/credential_password/_table.py +24 -0
  122. tba_storage_core/tables/credential_recovery_code/__init__.py +9 -0
  123. tba_storage_core/tables/credential_recovery_code/_table.py +23 -0
  124. tba_storage_core/tables/credential_service_key/__init__.py +9 -0
  125. tba_storage_core/tables/credential_service_key/_table.py +49 -0
  126. tba_storage_core/tables/credential_status_entry/__init__.py +3 -0
  127. tba_storage_core/tables/credential_status_list/__init__.py +3 -0
  128. tba_storage_core/tables/credential_status_publication/__init__.py +3 -0
  129. tba_storage_core/tables/credential_webauthn_passkey/__init__.py +9 -0
  130. tba_storage_core/tables/credential_webauthn_passkey/_table.py +42 -0
  131. tba_storage_core/tables/crypto_key/__init__.py +13 -0
  132. tba_storage_core/tables/crypto_key/_table.py +52 -0
  133. tba_storage_core/tables/crypto_key_version/__init__.py +13 -0
  134. tba_storage_core/tables/crypto_key_version/_table.py +53 -0
  135. tba_storage_core/tables/delegated_admin_scope/__init__.py +9 -0
  136. tba_storage_core/tables/delegated_admin_scope/_table.py +34 -0
  137. tba_storage_core/tables/delegation_grant/__init__.py +13 -0
  138. tba_storage_core/tables/delegation_grant/_table.py +134 -0
  139. tba_storage_core/tables/device_code/__init__.py +13 -0
  140. tba_storage_core/tables/device_code/_table.py +54 -0
  141. tba_storage_core/tables/did_document/__init__.py +3 -0
  142. tba_storage_core/tables/did_document_version/__init__.py +3 -0
  143. tba_storage_core/tables/did_gnap_state.py +169 -0
  144. tba_storage_core/tables/did_resolution_cache/__init__.py +3 -0
  145. tba_storage_core/tables/did_service/__init__.py +3 -0
  146. tba_storage_core/tables/did_verification_method/__init__.py +3 -0
  147. tba_storage_core/tables/dpop_nonce/__init__.py +5 -0
  148. tba_storage_core/tables/dpop_nonce/_table.py +77 -0
  149. tba_storage_core/tables/dpop_replay/__init__.py +5 -0
  150. tba_storage_core/tables/dpop_replay/_table.py +97 -0
  151. tba_storage_core/tables/entitlement/__init__.py +9 -0
  152. tba_storage_core/tables/entitlement/_table.py +22 -0
  153. tba_storage_core/tables/entitlement_assignment/__init__.py +9 -0
  154. tba_storage_core/tables/entitlement_assignment/_table.py +26 -0
  155. tba_storage_core/tables/federated_session/__init__.py +5 -0
  156. tba_storage_core/tables/federated_session/_table.py +32 -0
  157. tba_storage_core/tables/federation/__init__.py +5 -0
  158. tba_storage_core/tables/federation/_table.py +37 -0
  159. tba_storage_core/tables/gnap_client_instance/__init__.py +3 -0
  160. tba_storage_core/tables/gnap_continuation/__init__.py +3 -0
  161. tba_storage_core/tables/gnap_grant/__init__.py +3 -0
  162. tba_storage_core/tables/gnap_interaction/__init__.py +3 -0
  163. tba_storage_core/tables/identity_provider/__init__.py +5 -0
  164. tba_storage_core/tables/identity_provider/_table.py +37 -0
  165. tba_storage_core/tables/invariant_evaluation/__init__.py +5 -0
  166. tba_storage_core/tables/invariant_evaluation/_table.py +29 -0
  167. tba_storage_core/tables/invariant_violation/__init__.py +5 -0
  168. tba_storage_core/tables/invariant_violation/_table.py +27 -0
  169. tba_storage_core/tables/key_attestation_evidence/__init__.py +13 -0
  170. tba_storage_core/tables/key_attestation_evidence/_table.py +99 -0
  171. tba_storage_core/tables/key_envelope/__init__.py +13 -0
  172. tba_storage_core/tables/key_envelope/_table.py +54 -0
  173. tba_storage_core/tables/key_rotation_event/__init__.py +9 -0
  174. tba_storage_core/tables/key_rotation_event/_table.py +44 -0
  175. tba_storage_core/tables/key_rotation_policy/__init__.py +9 -0
  176. tba_storage_core/tables/key_rotation_policy/_table.py +38 -0
  177. tba_storage_core/tables/logout_state/__init__.py +10 -0
  178. tba_storage_core/tables/logout_state/_table.py +67 -0
  179. tba_storage_core/tables/machine_identity/__init__.py +9 -0
  180. tba_storage_core/tables/machine_identity/_table.py +49 -0
  181. tba_storage_core/tables/operator_activity/__init__.py +9 -0
  182. tba_storage_core/tables/operator_activity/_table.py +29 -0
  183. tba_storage_core/tables/operator_audit_event/__init__.py +9 -0
  184. tba_storage_core/tables/operator_audit_event/_table.py +29 -0
  185. tba_storage_core/tables/operator_metadata/__init__.py +9 -0
  186. tba_storage_core/tables/operator_metadata/_table.py +19 -0
  187. tba_storage_core/tables/operator_record/__init__.py +9 -0
  188. tba_storage_core/tables/operator_record/_table.py +44 -0
  189. tba_storage_core/tables/operator_transaction/__init__.py +9 -0
  190. tba_storage_core/tables/operator_transaction/_table.py +33 -0
  191. tba_storage_core/tables/plugin_descriptor/__init__.py +9 -0
  192. tba_storage_core/tables/plugin_descriptor/_table.py +23 -0
  193. tba_storage_core/tables/plugin_lifecycle_event/__init__.py +9 -0
  194. tba_storage_core/tables/plugin_lifecycle_event/_table.py +22 -0
  195. tba_storage_core/tables/policy/__init__.py +5 -0
  196. tba_storage_core/tables/policy/_table.py +30 -0
  197. tba_storage_core/tables/policy_condition/__init__.py +9 -0
  198. tba_storage_core/tables/policy_condition/_table.py +21 -0
  199. tba_storage_core/tables/policy_set/__init__.py +5 -0
  200. tba_storage_core/tables/policy_set/_table.py +33 -0
  201. tba_storage_core/tables/policy_set_member/__init__.py +5 -0
  202. tba_storage_core/tables/policy_set_member/_table.py +32 -0
  203. tba_storage_core/tables/policy_target/__init__.py +5 -0
  204. tba_storage_core/tables/policy_target/_table.py +36 -0
  205. tba_storage_core/tables/policy_version/__init__.py +5 -0
  206. tba_storage_core/tables/policy_version/_table.py +35 -0
  207. tba_storage_core/tables/presentation_consent/__init__.py +3 -0
  208. tba_storage_core/tables/presentation_replay/__init__.py +3 -0
  209. tba_storage_core/tables/presentation_state.py +98 -0
  210. tba_storage_core/tables/presentation_transaction/__init__.py +3 -0
  211. tba_storage_core/tables/principal/__init__.py +9 -0
  212. tba_storage_core/tables/principal/_table.py +49 -0
  213. tba_storage_core/tables/principal_key_binding/__init__.py +13 -0
  214. tba_storage_core/tables/principal_key_binding/_table.py +48 -0
  215. tba_storage_core/tables/provider_artifact/__init__.py +9 -0
  216. tba_storage_core/tables/provider_artifact/_table.py +22 -0
  217. tba_storage_core/tables/pushed_authorization_request/__init__.py +13 -0
  218. tba_storage_core/tables/pushed_authorization_request/_table.py +59 -0
  219. tba_storage_core/tables/realm/__init__.py +13 -0
  220. tba_storage_core/tables/realm/_table.py +87 -0
  221. tba_storage_core/tables/release_attestation_event/__init__.py +9 -0
  222. tba_storage_core/tables/release_attestation_event/_table.py +21 -0
  223. tba_storage_core/tables/release_authorization_state/__init__.py +9 -0
  224. tba_storage_core/tables/release_authorization_state/_table.py +21 -0
  225. tba_storage_core/tables/release_capability_record/__init__.py +9 -0
  226. tba_storage_core/tables/release_capability_record/_table.py +21 -0
  227. tba_storage_core/tables/release_posture/__init__.py +9 -0
  228. tba_storage_core/tables/release_posture/_table.py +21 -0
  229. tba_storage_core/tables/release_security_posture/__init__.py +9 -0
  230. tba_storage_core/tables/release_security_posture/_table.py +22 -0
  231. tba_storage_core/tables/replay_reservation.py +34 -0
  232. tba_storage_core/tables/residency_zone/__init__.py +9 -0
  233. tba_storage_core/tables/residency_zone/_table.py +20 -0
  234. tba_storage_core/tables/resource_server_contract/__init__.py +9 -0
  235. tba_storage_core/tables/resource_server_contract/_table.py +21 -0
  236. tba_storage_core/tables/revoked_token/__init__.py +13 -0
  237. tba_storage_core/tables/revoked_token/_table.py +39 -0
  238. tba_storage_core/tables/role/__init__.py +9 -0
  239. tba_storage_core/tables/role/_table.py +22 -0
  240. tba_storage_core/tables/runtime_qualification/__init__.py +9 -0
  241. tba_storage_core/tables/runtime_qualification/_table.py +21 -0
  242. tba_storage_core/tables/scim_group/__init__.py +9 -0
  243. tba_storage_core/tables/scim_group/_table.py +21 -0
  244. tba_storage_core/tables/scim_patch_event/__init__.py +9 -0
  245. tba_storage_core/tables/scim_patch_event/_table.py +22 -0
  246. tba_storage_core/tables/scim_schema/__init__.py +9 -0
  247. tba_storage_core/tables/scim_schema/_table.py +21 -0
  248. tba_storage_core/tables/scim_user/__init__.py +9 -0
  249. tba_storage_core/tables/scim_user/_table.py +21 -0
  250. tba_storage_core/tables/sdk_package/__init__.py +9 -0
  251. tba_storage_core/tables/sdk_package/_table.py +23 -0
  252. tba_storage_core/tables/security_event/__init__.py +3 -0
  253. tba_storage_core/tables/security_event_delivery/__init__.py +3 -0
  254. tba_storage_core/tables/security_event_replay/__init__.py +3 -0
  255. tba_storage_core/tables/security_event_state.py +100 -0
  256. tba_storage_core/tables/security_event_subscription/__init__.py +3 -0
  257. tba_storage_core/tables/service_identity/__init__.py +9 -0
  258. tba_storage_core/tables/service_identity/_table.py +47 -0
  259. tba_storage_core/tables/spiffe_state.py +83 -0
  260. tba_storage_core/tables/spiffe_trust_bundle/__init__.py +3 -0
  261. tba_storage_core/tables/subject_alias/__init__.py +9 -0
  262. tba_storage_core/tables/subject_alias/_table.py +21 -0
  263. tba_storage_core/tables/svid_record/__init__.py +3 -0
  264. tba_storage_core/tables/tenant/__init__.py +13 -0
  265. tba_storage_core/tables/tenant/_table.py +83 -0
  266. tba_storage_core/tables/tenant_membership/__init__.py +9 -0
  267. tba_storage_core/tables/tenant_membership/_table.py +28 -0
  268. tba_storage_core/tables/tenant_residency/__init__.py +9 -0
  269. tba_storage_core/tables/tenant_residency/_table.py +23 -0
  270. tba_storage_core/tables/token_record/__init__.py +10 -0
  271. tba_storage_core/tables/token_record/_table.py +123 -0
  272. tba_storage_core/tables/trust_anchor/__init__.py +3 -0
  273. tba_storage_core/tables/trust_domain_federation/__init__.py +3 -0
  274. tba_storage_core/tables/trust_federation_graph/__init__.py +15 -0
  275. tba_storage_core/tables/trust_federation_graph/_table.py +94 -0
  276. tba_storage_core/tables/user/__init__.py +13 -0
  277. tba_storage_core/tables/user/_table.py +127 -0
  278. tba_storage_core/tables/verifier_registration/__init__.py +3 -0
  279. tba_storage_core/tables/wallet_attestation/__init__.py +3 -0
  280. tba_storage_core/tables/wallet_instance/__init__.py +3 -0
  281. tba_storage_core/tables/wallet_key_binding/__init__.py +3 -0
  282. tba_storage_core/tables/wallet_registration/__init__.py +3 -0
  283. tba_storage_core/tables/webauthn_attestation_record/__init__.py +3 -0
  284. tba_storage_core/tables/webauthn_attestation_record/_table.py +28 -0
  285. tba_storage_core/tables/webauthn_ceremony/__init__.py +3 -0
  286. tba_storage_core/tables/webauthn_ceremony/_table.py +43 -0
  287. tba_storage_core/tables/webauthn_relying_party/__init__.py +3 -0
  288. tba_storage_core/tables/webauthn_relying_party/_table.py +24 -0
  289. tba_storage_core/tables/workload_credential_state.py +57 -0
  290. tba_storage_core/tables/workload_identity/__init__.py +9 -0
  291. tba_storage_core/tables/workload_identity/_table.py +89 -0
  292. tba_storage_core-0.4.0.dev2.dist-info/METADATA +126 -0
  293. tba_storage_core-0.4.0.dev2.dist-info/RECORD +294 -0
  294. tba_storage_core-0.4.0.dev2.dist-info/WHEEL +4 -0
@@ -0,0 +1,28 @@
1
+ """Create presentation transaction, consent, and replay tables."""
2
+
3
+ from tba_storage_core.migrations.helpers import create_tables, drop_tables
4
+ from tba_storage_presentation.tables.presentation_state import (
5
+ PresentationConsent,
6
+ PresentationReplay,
7
+ PresentationTransaction,
8
+ VerifierRegistration,
9
+ )
10
+
11
+ revision = "0026_presentation_transaction_and_replay"
12
+ down_revision = "0025_credential_issuance_and_status"
13
+ branch_labels = None
14
+ depends_on = None
15
+ TABLES = (
16
+ VerifierRegistration,
17
+ PresentationTransaction,
18
+ PresentationConsent,
19
+ PresentationReplay,
20
+ )
21
+
22
+
23
+ def upgrade(conn):
24
+ create_tables(conn, *TABLES)
25
+
26
+
27
+ def downgrade(conn):
28
+ drop_tables(conn, *TABLES)
@@ -0,0 +1,32 @@
1
+ """Create attestation evidence, appraisal, and reference-material tables."""
2
+
3
+ from tba_storage_core.migrations.helpers import create_tables, drop_tables
4
+ from tba_storage_attestation.tables.attestation_state import (
5
+ AttestationAppraisalPolicy,
6
+ AttestationEndorsement,
7
+ AttestationEvidence,
8
+ AttestationReferenceManifest,
9
+ AttestationReferenceValue,
10
+ AttestationResult,
11
+ )
12
+
13
+ revision = "0027_attestation_and_reference_material"
14
+ down_revision = "0026_presentation_transaction_and_replay"
15
+ branch_labels = None
16
+ depends_on = None
17
+ TABLES = (
18
+ AttestationEvidence,
19
+ AttestationResult,
20
+ AttestationReferenceManifest,
21
+ AttestationReferenceValue,
22
+ AttestationEndorsement,
23
+ AttestationAppraisalPolicy,
24
+ )
25
+
26
+
27
+ def upgrade(conn):
28
+ create_tables(conn, *TABLES)
29
+
30
+
31
+ def downgrade(conn):
32
+ drop_tables(conn, *TABLES)
@@ -0,0 +1,22 @@
1
+ """Create SPIFFE SVID and trust-bundle metadata tables."""
2
+
3
+ from tba_storage_core.migrations.helpers import create_tables, drop_tables
4
+ from tba_storage_workload_identity.tables.spiffe_state import (
5
+ SpiffeTrustBundle,
6
+ SvidRecord,
7
+ TrustDomainFederation,
8
+ )
9
+
10
+ revision = "0028_spiffe_svid_and_trust_bundles"
11
+ down_revision = "0027_attestation_and_reference_material"
12
+ branch_labels = None
13
+ depends_on = None
14
+ TABLES = (SvidRecord, SpiffeTrustBundle, TrustDomainFederation)
15
+
16
+
17
+ def upgrade(conn):
18
+ create_tables(conn, *TABLES)
19
+
20
+
21
+ def downgrade(conn):
22
+ drop_tables(conn, *TABLES)
@@ -0,0 +1,28 @@
1
+ """Create security-event delivery and replay tables."""
2
+
3
+ from tba_storage_core.migrations.helpers import create_tables, drop_tables
4
+ from tba_storage_security_event.tables.security_event_state import (
5
+ SecurityEvent,
6
+ SecurityEventDelivery,
7
+ SecurityEventReplay,
8
+ SecurityEventSubscription,
9
+ )
10
+
11
+ revision = "0029_security_event_delivery"
12
+ down_revision = "0028_spiffe_svid_and_trust_bundles"
13
+ branch_labels = None
14
+ depends_on = None
15
+ TABLES = (
16
+ SecurityEvent,
17
+ SecurityEventSubscription,
18
+ SecurityEventDelivery,
19
+ SecurityEventReplay,
20
+ )
21
+
22
+
23
+ def upgrade(conn):
24
+ create_tables(conn, *TABLES)
25
+
26
+
27
+ def downgrade(conn):
28
+ drop_tables(conn, *TABLES)
@@ -0,0 +1,37 @@
1
+ """Create optional DID and GNAP durable state tables."""
2
+
3
+ from tba_storage_core.migrations.helpers import create_tables, drop_tables
4
+ from tba_storage_did.tables.did_gnap_state import (
5
+ DidDocument,
6
+ DidDocumentVersion,
7
+ DidResolutionCache,
8
+ DidService,
9
+ DidVerificationMethod,
10
+ )
11
+ from tba_storage_gnap.tables.did_gnap_state import (
12
+ GnapClientInstance, GnapContinuation, GnapGrant, GnapInteraction,
13
+ )
14
+
15
+ revision = "0030_optional_did_and_gnap_state"
16
+ down_revision = "0029_security_event_delivery"
17
+ branch_labels = None
18
+ depends_on = None
19
+ TABLES = (
20
+ DidDocument,
21
+ DidDocumentVersion,
22
+ DidVerificationMethod,
23
+ DidService,
24
+ DidResolutionCache,
25
+ GnapGrant,
26
+ GnapContinuation,
27
+ GnapClientInstance,
28
+ GnapInteraction,
29
+ )
30
+
31
+
32
+ def upgrade(conn):
33
+ create_tables(conn, *TABLES)
34
+
35
+
36
+ def downgrade(conn):
37
+ drop_tables(conn, *TABLES)
@@ -0,0 +1,22 @@
1
+ """Create certificate metadata, trust-anchor, and status-snapshot tables."""
2
+
3
+ from tba_storage_core.migrations.helpers import create_tables, drop_tables
4
+ from tba_storage_certificate.tables.certificate_state import (
5
+ CertificateRecord,
6
+ CertificateStatusSnapshot,
7
+ TrustAnchor,
8
+ )
9
+
10
+ revision = "0031_certificate_trust_and_status"
11
+ down_revision = "0030_optional_did_and_gnap_state"
12
+ branch_labels = None
13
+ depends_on = None
14
+ TABLES = (CertificateRecord, TrustAnchor, CertificateStatusSnapshot)
15
+
16
+
17
+ def upgrade(conn):
18
+ create_tables(conn, *TABLES)
19
+
20
+
21
+ def downgrade(conn):
22
+ drop_tables(conn, *TABLES)
@@ -0,0 +1,30 @@
1
+ """Create private-claim definition, release-policy, and provenance tables."""
2
+
3
+ from tba_storage_core.migrations.helpers import create_tables, drop_tables
4
+ from tba_storage_claims.tables.claim_state import (
5
+ ClaimDefinition,
6
+ ClaimProvenanceRecord,
7
+ ClaimReleasePolicy,
8
+ ClaimSnapshot,
9
+ ClaimSourceBinding,
10
+ )
11
+
12
+ revision = "0032_claim_definition_and_provenance"
13
+ down_revision = "0031_certificate_trust_and_status"
14
+ branch_labels = None
15
+ depends_on = None
16
+ TABLES = (
17
+ ClaimDefinition,
18
+ ClaimSourceBinding,
19
+ ClaimReleasePolicy,
20
+ ClaimProvenanceRecord,
21
+ ClaimSnapshot,
22
+ )
23
+
24
+
25
+ def upgrade(conn):
26
+ create_tables(conn, *TABLES)
27
+
28
+
29
+ def downgrade(conn):
30
+ drop_tables(conn, *TABLES)
@@ -0,0 +1,18 @@
1
+ """Create protocol-neutral atomic replay reservation state."""
2
+
3
+ from tba_storage_core.migrations.helpers import create_tables, drop_tables
4
+ from tba_storage_replay_protection.tables.replay_reservation import ReplayReservation
5
+
6
+ revision = "0033_replay_reservations"
7
+ down_revision = "0032_claim_definition_and_provenance"
8
+ branch_labels = None
9
+ depends_on = None
10
+ TABLES = (ReplayReservation,)
11
+
12
+
13
+ def upgrade(conn):
14
+ create_tables(conn, *TABLES)
15
+
16
+
17
+ def downgrade(conn):
18
+ drop_tables(conn, *TABLES)
@@ -0,0 +1,21 @@
1
+ """Executable DDL migration for durable DPoP replay and nonce state."""
2
+
3
+ from __future__ import annotations
4
+
5
+ from tba_storage_core.migrations.helpers import create_tables, drop_tables
6
+ from tba_storage_core.tables import DpopNonce, DpopReplay
7
+
8
+ revision = "0034_dpop_replay_nonce_tables"
9
+ down_revision = "0033_replay_reservations"
10
+ branch_labels = None
11
+ depends_on = None
12
+
13
+ TABLES = (DpopReplay, DpopNonce)
14
+
15
+
16
+ def upgrade(conn) -> None:
17
+ create_tables(conn, *TABLES)
18
+
19
+
20
+ def downgrade(conn) -> None:
21
+ drop_tables(conn, *TABLES)
@@ -0,0 +1,76 @@
1
+ """Add durable WebAuthn relying-party, ceremony, credential, and attestation state."""
2
+
3
+ from __future__ import annotations
4
+
5
+ from tba_storage_core.migrations.helpers import (
6
+ AUTHN_SCHEMA,
7
+ column_names,
8
+ create_tables,
9
+ drop_columns,
10
+ drop_tables,
11
+ )
12
+ from tba_storage_core.tables import (
13
+ CredentialWebAuthnPasskey,
14
+ WebAuthnAttestationRecord,
15
+ WebAuthnCeremony,
16
+ WebAuthnRelyingParty,
17
+ )
18
+
19
+ revision = "0035_webauthn_rp_ceremony_and_credentials"
20
+ down_revision = "0034_dpop_replay_nonce_tables"
21
+ branch_labels = None
22
+ depends_on = None
23
+
24
+ NEW_TABLES = (WebAuthnRelyingParty, WebAuthnCeremony, WebAuthnAttestationRecord)
25
+
26
+ CREDENTIAL_COLUMNS = (
27
+ ("credential_external_id", "credential_external_id VARCHAR(1000)"),
28
+ ("credential_public_key_cose", "credential_public_key_cose BLOB"),
29
+ ("user_handle", "user_handle BLOB"),
30
+ ("cose_algorithm", "cose_algorithm INTEGER"),
31
+ ("aaguid", "aaguid BLOB"),
32
+ ("attestation_format", "attestation_format VARCHAR(64)"),
33
+ ("attestation_type", "attestation_type VARCHAR(64)"),
34
+ ("attestation_trust_status", "attestation_trust_status VARCHAR(32)"),
35
+ ("discoverable", "discoverable BOOLEAN NOT NULL DEFAULT FALSE"),
36
+ ("backup_eligible", "backup_eligible BOOLEAN NOT NULL DEFAULT FALSE"),
37
+ ("backup_state", "backup_state BOOLEAN NOT NULL DEFAULT FALSE"),
38
+ ("last_used_at", "last_used_at TIMESTAMP"),
39
+ ("revoked_at", "revoked_at TIMESTAMP"),
40
+ ("display_name", "display_name VARCHAR(255)"),
41
+ )
42
+
43
+
44
+ def _table(conn, name: str) -> str:
45
+ return f'"{AUTHN_SCHEMA}"."{name}"'
46
+
47
+
48
+ def _binary_ddl(conn, ddl: str) -> str:
49
+ if conn.dialect.name == "postgresql":
50
+ return ddl.replace(" BLOB", " BYTEA")
51
+ return ddl
52
+
53
+
54
+ def upgrade(conn) -> None:
55
+ create_tables(conn, *NEW_TABLES)
56
+ table = CredentialWebAuthnPasskey.__tablename__
57
+ existing = column_names(conn, table)
58
+ for name, ddl in CREDENTIAL_COLUMNS:
59
+ if name not in existing:
60
+ conn.exec_driver_sql(
61
+ f"ALTER TABLE {_table(conn, table)} ADD COLUMN {_binary_ddl(conn, ddl)}"
62
+ )
63
+ conn.exec_driver_sql(
64
+ f"UPDATE {_table(conn, table)} "
65
+ "SET credential_external_id = webauthn_credential_id "
66
+ "WHERE credential_external_id IS NULL"
67
+ )
68
+
69
+
70
+ def downgrade(conn) -> None:
71
+ drop_columns(
72
+ conn,
73
+ CredentialWebAuthnPasskey.__tablename__,
74
+ [name for name, _ in CREDENTIAL_COLUMNS],
75
+ )
76
+ drop_tables(conn, *NEW_TABLES)
@@ -0,0 +1,27 @@
1
+ """Add workload references, credential entitlements, artifact locators, and proof replay."""
2
+ from __future__ import annotations
3
+ from tba_storage_core.migrations.helpers import AUTHN_SCHEMA, column_names, create_tables, drop_columns, drop_tables
4
+ from tba_storage_core.tables import PossessionProofReplay, ProtectedArtifactReference, SvidRecord, WorkloadCredentialEntitlement, WorkloadReferenceBinding
5
+
6
+ revision="0036_workload_credentials_artifacts_and_proof_replay"
7
+ down_revision="0035_webauthn_rp_ceremony_and_credentials"
8
+ branch_labels=None
9
+ depends_on=None
10
+ NEW_TABLES=(WorkloadReferenceBinding,WorkloadCredentialEntitlement,ProtectedArtifactReference,PossessionProofReplay)
11
+ SVID_COLUMNS=(
12
+ ("proof_key_id","proof_key_id VARCHAR(255)"),
13
+ ("confirmation_key_thumbprint","confirmation_key_thumbprint VARCHAR(255)"),
14
+ ("profile_revision","profile_revision VARCHAR(255)"),
15
+ )
16
+
17
+ def _table(name:str)->str: return f'"{AUTHN_SCHEMA}"."{name}"'
18
+
19
+ def upgrade(conn)->None:
20
+ create_tables(conn,*NEW_TABLES)
21
+ existing=column_names(conn,SvidRecord.__tablename__)
22
+ for name,ddl in SVID_COLUMNS:
23
+ if name not in existing: conn.exec_driver_sql(f"ALTER TABLE {_table(SvidRecord.__tablename__)} ADD COLUMN {ddl}")
24
+
25
+ def downgrade(conn)->None:
26
+ drop_columns(conn,SvidRecord.__tablename__,[name for name,_ in SVID_COLUMNS])
27
+ drop_tables(conn,*NEW_TABLES)
@@ -0,0 +1,30 @@
1
+ """Create the operator tables that were mapped but absent from revisions 0001-0036."""
2
+
3
+ from tba_storage_core.migrations.helpers import create_tables, drop_tables
4
+ from tba_storage_operator.tables import (
5
+ OperatorActivity,
6
+ OperatorAuditEvent,
7
+ OperatorMetadata,
8
+ OperatorRecord,
9
+ OperatorTransaction,
10
+ )
11
+
12
+ revision = "0037_operator_tables"
13
+ down_revision = "0036_workload_credentials_artifacts_and_proof_replay"
14
+ branch_labels = None
15
+ depends_on = None
16
+ TABLES = (
17
+ OperatorMetadata,
18
+ OperatorRecord,
19
+ OperatorTransaction,
20
+ OperatorAuditEvent,
21
+ OperatorActivity,
22
+ )
23
+
24
+
25
+ def upgrade(conn) -> None:
26
+ create_tables(conn, *TABLES)
27
+
28
+
29
+ def downgrade(conn) -> None:
30
+ drop_tables(conn, *reversed(TABLES))
@@ -0,0 +1,66 @@
1
+ """Adopt the frozen monolithic schema into component-owned migration ledgers."""
2
+
3
+ from __future__ import annotations
4
+
5
+ import importlib
6
+ import importlib.metadata
7
+
8
+ from sqlalchemy import inspect
9
+
10
+ from tba_storage_core.components import load_full_composition
11
+ from tigrbl_migrations import MigrationLedger
12
+
13
+ revision = "0038_adopt_component_ownership"
14
+ down_revision = "0039_normalized_platform_iam"
15
+ branch_labels = None
16
+ depends_on = None
17
+
18
+
19
+ def _verify_owned_tables(conn, composition) -> None:
20
+ inspector = inspect(conn)
21
+ for manifest in composition.manifests:
22
+ for owned in manifest.objects:
23
+ if owned.kind != "table" or owned.model is None:
24
+ continue
25
+ if "." in owned.physical_name:
26
+ schema, table_name = owned.physical_name.split(".", 1)
27
+ else:
28
+ schema, table_name = None, owned.physical_name
29
+ if table_name not in set(inspector.get_table_names(schema=schema)):
30
+ raise RuntimeError(f"cannot adopt missing table {owned.physical_name}")
31
+ module_name, attribute = owned.model.split(":", 1)
32
+ model = getattr(importlib.import_module(module_name), attribute)
33
+ expected = {column.name for column in model.__table__.columns}
34
+ actual = {column["name"] for column in inspector.get_columns(table_name, schema=schema)}
35
+ if expected != actual:
36
+ raise RuntimeError(
37
+ f"cannot adopt structurally different table {owned.physical_name}: "
38
+ f"expected columns {sorted(expected)}, found {sorted(actual)}"
39
+ )
40
+
41
+
42
+ def upgrade(conn) -> None:
43
+ composition, migrations = load_full_composition()
44
+ _verify_owned_tables(conn, composition)
45
+ by_revision = {migration.revision: migration for migration in migrations}
46
+ ledger = MigrationLedger(conn)
47
+ ledger.bootstrap()
48
+ execution_id = ledger.acquire_lock()
49
+ try:
50
+ for manifest in composition.manifests:
51
+ artifact_version = importlib.metadata.version(manifest.distribution)
52
+ migration = by_revision[manifest.migration_head]
53
+ ledger.record_migration(
54
+ migration,
55
+ artifact_version=artifact_version,
56
+ execution_id=execution_id,
57
+ application_mode="adopted",
58
+ )
59
+ ledger.claim_objects(manifest, revision=migration.revision)
60
+ ledger.record_component(manifest, artifact_version=artifact_version)
61
+ finally:
62
+ ledger.release_lock(execution_id)
63
+
64
+
65
+ def downgrade(conn) -> None:
66
+ raise RuntimeError("component ownership adoption is forward-only")
@@ -0,0 +1,17 @@
1
+ """Create normalized platform IAM tables before component ownership adoption."""
2
+
3
+ from tba_storage_authorization_policy.tables import AuthorizationAction, AuthorizationGroup, AuthorizationGroupMembership, AuthorizationResourceType, PolicyApproval, PolicyPublication, RoleGrant, RolePermission
4
+
5
+ revision = "0039_normalized_platform_iam"
6
+ down_revision = "0037_operator_tables"
7
+ branch_labels = None
8
+ depends_on = None
9
+ MODELS = (AuthorizationResourceType, AuthorizationAction, AuthorizationGroup, AuthorizationGroupMembership, RolePermission, RoleGrant, PolicyApproval, PolicyPublication)
10
+
11
+ def upgrade(conn) -> None:
12
+ for model in MODELS:
13
+ model.__table__.create(bind=conn, checkfirst=True)
14
+
15
+ def downgrade(conn) -> None:
16
+ for model in reversed(MODELS):
17
+ model.__table__.drop(bind=conn, checkfirst=True)
File without changes
@@ -0,0 +1,211 @@
1
+ lock_version = "1.0.0"
2
+
3
+ [components."tigrbl.identity.storage.access-governance"]
4
+ distribution = "tba-storage-access-governance"
5
+ artifact = "0.4.0.dev2"
6
+ schema_contract = "1.0.0"
7
+ migration_head = "851b516f-e2a5-533b-8a68-a9ac3f9c7cb5"
8
+ manifest_digest = "sha256:7273d7d693f60d899e2046615506b57a2e92997c657b2d55453e54d54debcc4e"
9
+
10
+ [components."tigrbl.identity.storage.attestation"]
11
+ distribution = "tba-storage-attestation"
12
+ artifact = "0.4.0.dev2"
13
+ schema_contract = "1.0.0"
14
+ migration_head = "7e916983-3ad7-51a7-bf4a-79ce229eb092"
15
+ manifest_digest = "sha256:9c7f28b0f7f75b7ed8df6eac4a5e945e2d7e6c278e4b4c8526fe5aaba97e24d1"
16
+
17
+ [components."tigrbl.identity.storage.audit"]
18
+ distribution = "tba-storage-audit"
19
+ artifact = "0.4.0.dev2"
20
+ schema_contract = "1.0.0"
21
+ migration_head = "37f71b0c-7b5a-571c-bde6-a1ef26058fad"
22
+ manifest_digest = "sha256:0ea292c7975a9f32530fc8606aa49b7e2acdb7c761ad0c5a544ec27099836680"
23
+
24
+ [components."tigrbl.identity.storage.authentication"]
25
+ distribution = "tba-storage-authentication"
26
+ artifact = "0.4.0.dev2"
27
+ schema_contract = "1.0.0"
28
+ migration_head = "79c73e01-df92-5166-844d-b2e96bcae30b"
29
+ manifest_digest = "sha256:e62266f79e04ef7aacd1bb52b808717cff7024b82858b74b52d531f14dd68550"
30
+
31
+ [components."tigrbl.identity.storage.authority-graph"]
32
+ distribution = "tba-storage-authority-graph"
33
+ artifact = "0.4.0.dev2"
34
+ schema_contract = "1.0.0"
35
+ migration_head = "d7c60dd1-6611-58b2-8f62-5ca0e066afbd"
36
+ manifest_digest = "sha256:dadb34f3c6e7e4111981b25523f9b5fa327216903452c74947df8a89277b9d78"
37
+
38
+ [components."tigrbl.identity.storage.authorization-policy"]
39
+ distribution = "tba-storage-authorization-policy"
40
+ artifact = "0.4.0.dev2"
41
+ schema_contract = "1.1.0"
42
+ migration_head = "5b573a6c-8268-5af3-a505-ea2c8a7c9dcc"
43
+ manifest_digest = "sha256:31fee3e79a5ffcf416e7e085f2f95a69df7e4fbffcc226e2f2ac08d2f7d0dcd7"
44
+
45
+ [components."tigrbl.identity.storage.certificate"]
46
+ distribution = "tba-storage-certificate"
47
+ artifact = "0.4.0.dev2"
48
+ schema_contract = "1.0.0"
49
+ migration_head = "a7e704e3-722e-5a59-92a6-9825004d8817"
50
+ manifest_digest = "sha256:b582d26ae08ad10f2c21d58c7a920e56d245e4aa3fb9aa5b23f76b50f2ffbfce"
51
+
52
+ [components."tigrbl.identity.storage.claims"]
53
+ distribution = "tba-storage-claims"
54
+ artifact = "0.4.0.dev2"
55
+ schema_contract = "1.0.0"
56
+ migration_head = "6b5acf6a-8d14-51f3-af78-0534d36dac44"
57
+ manifest_digest = "sha256:464c134178d84783e1e63df57d3cf542766197d860b422e21d58a16a991be5fa"
58
+
59
+ [components."tigrbl.identity.storage.consent"]
60
+ distribution = "tba-storage-consent"
61
+ artifact = "0.4.0.dev2"
62
+ schema_contract = "1.0.0"
63
+ migration_head = "4541f213-14f7-544d-aec6-ac2302c8639e"
64
+ manifest_digest = "sha256:7fbfd0bf497f1b8d9cac82983635ce9ed107616ee7d40ba3f0635a8b91a78617"
65
+
66
+ [components."tigrbl.identity.storage.delegation"]
67
+ distribution = "tba-storage-delegation"
68
+ artifact = "0.4.0.dev2"
69
+ schema_contract = "1.0.0"
70
+ migration_head = "5dc5f3c2-fd95-5d25-b45e-7e43ffcb823c"
71
+ manifest_digest = "sha256:7ff86e1afdc21fc70ab592944a6060d67ece4d36e86addf05911f5e89b526289"
72
+
73
+ [components."tigrbl.identity.storage.did"]
74
+ distribution = "tba-storage-did"
75
+ artifact = "0.4.0.dev2"
76
+ schema_contract = "1.0.0"
77
+ migration_head = "7900a065-d6b7-5f37-aab2-8083fafb462e"
78
+ manifest_digest = "sha256:498b62e6d408ba513834a96c19d8a6f285487a61345a1c738760526f9f18a9bc"
79
+
80
+ [components."tigrbl.identity.storage.digital-credential"]
81
+ distribution = "tba-storage-digital-credential"
82
+ artifact = "0.4.0.dev2"
83
+ schema_contract = "1.0.0"
84
+ migration_head = "0e47cb7f-3dd7-5c79-a82a-371198cf5b27"
85
+ manifest_digest = "sha256:506deebb22bcbffb111eb6fb98ff6cf1c8ccf8e2e474fddba5225a9812f4aab0"
86
+
87
+ [components."tigrbl.identity.storage.federation"]
88
+ distribution = "tba-storage-federation"
89
+ artifact = "0.4.0.dev2"
90
+ schema_contract = "1.0.0"
91
+ migration_head = "d0a7da98-00a5-58f8-ac3e-d0912c96f0db"
92
+ manifest_digest = "sha256:208271e21dc080e282345e5d677824cd2cafe92283d475e060e04a193e19bf14"
93
+
94
+ [components."tigrbl.identity.storage.gnap"]
95
+ distribution = "tba-storage-gnap"
96
+ artifact = "0.4.0.dev2"
97
+ schema_contract = "1.0.0"
98
+ migration_head = "1021a8ad-e1fb-5632-8a07-a4942cc61056"
99
+ manifest_digest = "sha256:8f52de4fab5b2b9f8685637bf30780f367669fb3a3cb3b97230c7bb09e7bd0d8"
100
+
101
+ [components."tigrbl.identity.storage.key-material"]
102
+ distribution = "tba-storage-key-material"
103
+ artifact = "0.4.0.dev2"
104
+ schema_contract = "1.0.0"
105
+ migration_head = "63c8e724-a0ec-5475-89aa-d5a3d23f0769"
106
+ manifest_digest = "sha256:ce6b73d3da6b55f1b960a618b9a3e2da4a69320bcdb679b73aa15662caa7da9d"
107
+
108
+ [components."tigrbl.identity.storage.oauth"]
109
+ distribution = "tba-storage-oauth"
110
+ artifact = "0.4.0.dev2"
111
+ schema_contract = "1.0.0"
112
+ migration_head = "d4b74406-754c-5424-9009-4dff55e1e1c4"
113
+ manifest_digest = "sha256:7190780cda08f9152d1fcfe9b792ae8373cbbae076a596e1f9cf4f335ae4ec86"
114
+
115
+ [components."tigrbl.identity.storage.oidc"]
116
+ distribution = "tba-storage-oidc"
117
+ artifact = "0.4.0.dev2"
118
+ schema_contract = "1.0.0"
119
+ migration_head = "d33404e7-316b-5c4e-8336-5103efa79186"
120
+ manifest_digest = "sha256:86ddfd33ab8c8d7077ca353eead7b29bf9c56c3967950a0fe1dec70d5441f0cd"
121
+
122
+ [components."tigrbl.identity.storage.operator"]
123
+ distribution = "tba-storage-operator"
124
+ artifact = "0.4.0.dev2"
125
+ schema_contract = "1.0.0"
126
+ migration_head = "469839b2-d339-544a-b747-fd68b6a5f235"
127
+ manifest_digest = "sha256:b3f926864ae075dc55e1f98baca45d22ee30e2097e661f48c5673a0f17862423"
128
+
129
+ [components."tigrbl.identity.storage.presentation"]
130
+ distribution = "tba-storage-presentation"
131
+ artifact = "0.4.0.dev2"
132
+ schema_contract = "1.0.0"
133
+ migration_head = "45cfd21c-7eec-5db2-980a-e27b27cb8679"
134
+ manifest_digest = "sha256:ad6b2894f99abbf0ebfa93996ebace440f7172ab4615850b11169b2470096d25"
135
+
136
+ [components."tigrbl.identity.storage.principals"]
137
+ distribution = "tba-storage-principals"
138
+ artifact = "0.4.0.dev2"
139
+ schema_contract = "1.0.0"
140
+ migration_head = "44ff280d-bf80-54b1-9bb2-c796f258bd4d"
141
+ manifest_digest = "sha256:c34b4190acdcb22fc30ff34714b6471c98128afbb3a161c16458ed3aa04d9ba1"
142
+
143
+ [components."tigrbl.identity.storage.release-governance"]
144
+ distribution = "tba-storage-release-governance"
145
+ artifact = "0.4.0.dev2"
146
+ schema_contract = "1.0.0"
147
+ migration_head = "90c6e0ac-6f27-5837-9d8b-895adb4679d5"
148
+ manifest_digest = "sha256:c6af136b0010854cdd6ae33fdd50705510f2d96bf492178cf12c6e03a576d33d"
149
+
150
+ [components."tigrbl.identity.storage.replay-protection"]
151
+ distribution = "tba-storage-replay-protection"
152
+ artifact = "0.4.0.dev2"
153
+ schema_contract = "1.0.0"
154
+ migration_head = "f25dd772-7549-52a4-932c-bf5e460b2ac9"
155
+ manifest_digest = "sha256:d3761979f9c305fd9e38287f6b6cb699fbd19e889645774d69069ee5a7b0ea92"
156
+
157
+ [components."tigrbl.identity.storage.residency"]
158
+ distribution = "tba-storage-residency"
159
+ artifact = "0.4.0.dev2"
160
+ schema_contract = "1.0.0"
161
+ migration_head = "48009f00-9c83-56cf-98ea-1128a3307a56"
162
+ manifest_digest = "sha256:b78215e9e4f3b5f3f280d4ffa513f0b982c4ea51fd540383d9c6b7f3276afd09"
163
+
164
+ [components."tigrbl.identity.storage.scim"]
165
+ distribution = "tba-storage-scim"
166
+ artifact = "0.4.0.dev2"
167
+ schema_contract = "1.0.0"
168
+ migration_head = "6bf4ad16-462a-5913-9322-f1ccbf2a82f5"
169
+ manifest_digest = "sha256:3c189cdbcad359ebfbfd28f610ad182aa71e40d81e9163c6fc2919bfa0e2b030"
170
+
171
+ [components."tigrbl.identity.storage.security-event"]
172
+ distribution = "tba-storage-security-event"
173
+ artifact = "0.4.0.dev2"
174
+ schema_contract = "1.0.0"
175
+ migration_head = "8d8364e1-c9bf-59ea-b46c-fe28ddf83cba"
176
+ manifest_digest = "sha256:496ab8394329e440d1d5c2849087338f60621db73edff98e45fbd69c4548c853"
177
+
178
+ [components."tigrbl.identity.storage.tenancy"]
179
+ distribution = "tba-storage-tenancy"
180
+ artifact = "0.4.0.dev2"
181
+ schema_contract = "1.0.0"
182
+ migration_head = "69854e73-52d3-53ec-9542-6737159e42d6"
183
+ manifest_digest = "sha256:e6a06e82b3f1b28a09d3c5c39f02196e8b44cfded9bd6c764704d837f80cddbc"
184
+
185
+ [components."tigrbl.identity.storage.token"]
186
+ distribution = "tba-storage-token"
187
+ artifact = "0.4.0.dev2"
188
+ schema_contract = "1.0.0"
189
+ migration_head = "563f6816-43af-5ca0-8c78-b73eec393c1c"
190
+ manifest_digest = "sha256:396288b2ca91797faee7ab4ed40aae614bc7feaee23e240fa32ae535f580c359"
191
+
192
+ [components."tigrbl.identity.storage.trust-federation-graph"]
193
+ distribution = "tba-storage-trust-federation-graph"
194
+ artifact = "0.4.0.dev2"
195
+ schema_contract = "1.0.0"
196
+ migration_head = "88f90844-5618-5007-9883-d1d6f7c35d66"
197
+ manifest_digest = "sha256:dcd9964b95b6d8cd8199e311ab0fe7c3f191930e498ecb5e3475120067c9f491"
198
+
199
+ [components."tigrbl.identity.storage.webauthn"]
200
+ distribution = "tba-storage-webauthn"
201
+ artifact = "0.4.0.dev2"
202
+ schema_contract = "1.0.0"
203
+ migration_head = "35709893-1208-54c2-ab00-dca4b2e67065"
204
+ manifest_digest = "sha256:96bb23286fde769beb8544d1ce8a6d40f91b66a09bb7632a8330cf45e82db8fb"
205
+
206
+ [components."tigrbl.identity.storage.workload-identity"]
207
+ distribution = "tba-storage-workload-identity"
208
+ artifact = "0.4.0.dev2"
209
+ schema_contract = "1.0.0"
210
+ migration_head = "0bcee998-b0a3-5ba2-b04c-d049cad65127"
211
+ manifest_digest = "sha256:bb9192305fc423f94b8fb543ac4870badb858a11e2c619217a3180d0034cf4c8"