"""Storage hierarchy assembly and secure-object logical-path helpers.
Namespace definitions and their contracts live in
:mod:`.secure_object_namespaces`. This module owns the one aggregate hierarchy
that combines those declarations with the independently declared filesystem
paths; it does not re-export namespace definitions.
"""
from __future__ import annotations
from pathlib import Path
from .secure_object_namespaces import (
AEAT_BROWSER_SESSION_NAMESPACE,
AEAT_FILED_DECLARATION_ARTEFACTS_NAMESPACE,
AEAT_FILED_DECLARATION_OBSERVATIONS_NAMESPACE,
AEAT_IVA_WALLET_OBSERVATIONS_NAMESPACE,
APPLICATION_EVIDENCE_BUNDLE_NAMESPACE,
APPLICATION_FILING_HISTORY_NAMESPACE,
ATTACHMENT_BLOB_NAMESPACE,
ATTACHMENT_MANIFEST_NAMESPACE,
AUTH_APODERADO_CONFIGURATION_NAMESPACE,
CALCULATION_OBSERVATIONS_NAMESPACE,
CLAVE_MOVIL_DIAGNOSTICS_NAMESPACE,
DOMAIN_NAMESPACE_DEFINITIONS,
GOOGLE_CREDENTIAL_SOURCE_NAMESPACE,
GOOGLE_DRIVE_CONFIG_NAMESPACE,
GOOGLE_OAUTH_CLIENT_NAMESPACE,
GOOGLE_OAUTH_METADATA_NAMESPACE,
GOOGLE_OAUTH_TOKEN_NAMESPACE,
IVA_COMPENSATION_HISTORY_NAMESPACE,
IVA_WALLET_RECONCILIATION_DECISION_EVENTS_NAMESPACE,
IVA_WALLET_RECONCILIATION_DECISIONS_NAMESPACE,
LEDGER_CLASSIFICATION_RULES_NAMESPACE,
LEDGER_CONFIRMATION_RECORD_NAMESPACE,
LEDGER_CONFIRMED_COUNTERPARTY_FACTS_NAMESPACE,
LEDGER_EXTRACTION_DRAFT_NAMESPACE,
LEDGER_PURCHASE_INVOICE_EVIDENCE_NAMESPACE,
LIVE_BORRADOR_100_SNAPSHOT_NAMESPACE,
LIVE_EXPEDIENTES_SNAPSHOT_NAMESPACE,
LIVE_IVA_REMOTE_STATE_ACQUISITIONS_NAMESPACE,
LIVE_JUSTIFICANTE_CAPTURE_SNAPSHOT_NAMESPACE,
LIVE_M036_DECLARATION_NAMESPACE,
LIVE_NOTIFICATION_DOCUMENT_NAMESPACE,
LIVE_NOTIFICATIONS_SNAPSHOT_NAMESPACE,
LIVE_VERIFY_OBSERVATION_NAMESPACE,
LLM_CACHE_NAMESPACE,
LLM_EVIDENCE_CONSENT_LEDGER_NAMESPACE,
LLM_RUN_TELEMETRY_NAMESPACE,
LLM_USAGE_NAMESPACE,
M145_COMMUNICATION_RECORD_NAMESPACE,
MODELO_EDIT_RECEIPT_NAMESPACE,
MODELO_RECONCILIATION_RECORDS_NAMESPACE,
MODELO_REVIEW_PACKAGE_RECIPIENT_ENCRYPTION_KEY_NAMESPACE,
MODELO_REVIEW_PACKAGE_RECIPIENT_FINGERPRINT_REGISTRY_NAMESPACE,
MODELO_REVIEW_PACKAGE_RECIPIENT_REPLAY_GUARD_NAMESPACE,
MODELO_REVIEW_PACKAGE_SIGNING_KEY_NAMESPACE,
OPERATION_SECURE_REFERENCE_NAMESPACE,
PROFILE_BIENES_INVERSION_IVA_REGISTER_NAMESPACE,
PROFILE_INVENTORY_LEDGER_NAMESPACE,
PROFILE_PRORRATA_REGISTER_NAMESPACE,
RETENCION_OBSERVATIONS_NAMESPACE,
SYNC_RUN_RECORDS_NAMESPACE,
TEST_RUNTIME_PROFILE_NAMESPACE,
TEST_SECURE_BOUND_CONTRACT_NAMESPACE,
TEST_SESSION_LIFECYCLE_NAMESPACE,
TEST_SNAPSHOT_BASE_PROBE_NAMESPACE,
USER_PROFILE_SNAPSHOT_NAMESPACE,
USER_PROFILE_VALUE_NAMESPACE,
WITHHOLDING_OBSERVATIONS_NAMESPACE,
WORKFLOW_RUN_NAMESPACE,
WORKFLOW_STATE_NAMESPACE,
StorageHierarchyRegistry,
)
from .storage_path_definitions import STORAGE_PATH_DEFINITIONS
_SECURE_OBJECTS_TABLE_PATH_KEY = "secure_objects_table"
STORAGE_NAMESPACE_REGISTRY = StorageHierarchyRegistry(
namespaces=(
WORKFLOW_STATE_NAMESPACE,
WORKFLOW_RUN_NAMESPACE,
OPERATION_SECURE_REFERENCE_NAMESPACE,
USER_PROFILE_VALUE_NAMESPACE,
USER_PROFILE_SNAPSHOT_NAMESPACE,
PROFILE_INVENTORY_LEDGER_NAMESPACE,
PROFILE_BIENES_INVERSION_IVA_REGISTER_NAMESPACE,
PROFILE_PRORRATA_REGISTER_NAMESPACE,
APPLICATION_FILING_HISTORY_NAMESPACE,
AUTH_APODERADO_CONFIGURATION_NAMESPACE,
CALCULATION_OBSERVATIONS_NAMESPACE,
RETENCION_OBSERVATIONS_NAMESPACE,
WITHHOLDING_OBSERVATIONS_NAMESPACE,
IVA_WALLET_RECONCILIATION_DECISIONS_NAMESPACE,
IVA_WALLET_RECONCILIATION_DECISION_EVENTS_NAMESPACE,
MODELO_RECONCILIATION_RECORDS_NAMESPACE,
MODELO_EDIT_RECEIPT_NAMESPACE,
SYNC_RUN_RECORDS_NAMESPACE,
IVA_COMPENSATION_HISTORY_NAMESPACE,
LIVE_IVA_REMOTE_STATE_ACQUISITIONS_NAMESPACE,
APPLICATION_EVIDENCE_BUNDLE_NAMESPACE,
LEDGER_PURCHASE_INVOICE_EVIDENCE_NAMESPACE,
LEDGER_EXTRACTION_DRAFT_NAMESPACE,
LEDGER_CONFIRMATION_RECORD_NAMESPACE,
LEDGER_CONFIRMED_COUNTERPARTY_FACTS_NAMESPACE,
LEDGER_CLASSIFICATION_RULES_NAMESPACE,
LIVE_BORRADOR_100_SNAPSHOT_NAMESPACE,
LIVE_M036_DECLARATION_NAMESPACE,
M145_COMMUNICATION_RECORD_NAMESPACE,
TEST_SNAPSHOT_BASE_PROBE_NAMESPACE,
TEST_SESSION_LIFECYCLE_NAMESPACE,
TEST_SECURE_BOUND_CONTRACT_NAMESPACE,
TEST_RUNTIME_PROFILE_NAMESPACE,
LIVE_EXPEDIENTES_SNAPSHOT_NAMESPACE,
LIVE_NOTIFICATIONS_SNAPSHOT_NAMESPACE,
LIVE_NOTIFICATION_DOCUMENT_NAMESPACE,
LIVE_JUSTIFICANTE_CAPTURE_SNAPSHOT_NAMESPACE,
LIVE_VERIFY_OBSERVATION_NAMESPACE,
ATTACHMENT_BLOB_NAMESPACE,
ATTACHMENT_MANIFEST_NAMESPACE,
AEAT_BROWSER_SESSION_NAMESPACE,
CLAVE_MOVIL_DIAGNOSTICS_NAMESPACE,
GOOGLE_OAUTH_CLIENT_NAMESPACE,
GOOGLE_OAUTH_TOKEN_NAMESPACE,
GOOGLE_OAUTH_METADATA_NAMESPACE,
GOOGLE_DRIVE_CONFIG_NAMESPACE,
GOOGLE_CREDENTIAL_SOURCE_NAMESPACE,
LLM_CACHE_NAMESPACE,
LLM_USAGE_NAMESPACE,
LLM_RUN_TELEMETRY_NAMESPACE,
LLM_EVIDENCE_CONSENT_LEDGER_NAMESPACE,
AEAT_FILED_DECLARATION_ARTEFACTS_NAMESPACE,
AEAT_FILED_DECLARATION_OBSERVATIONS_NAMESPACE,
AEAT_IVA_WALLET_OBSERVATIONS_NAMESPACE,
MODELO_REVIEW_PACKAGE_SIGNING_KEY_NAMESPACE,
MODELO_REVIEW_PACKAGE_RECIPIENT_FINGERPRINT_REGISTRY_NAMESPACE,
MODELO_REVIEW_PACKAGE_RECIPIENT_REPLAY_GUARD_NAMESPACE,
MODELO_REVIEW_PACKAGE_RECIPIENT_ENCRYPTION_KEY_NAMESPACE,
*DOMAIN_NAMESPACE_DEFINITIONS,
),
paths=STORAGE_PATH_DEFINITIONS,
)
[docs]
def secure_object_logical_path(namespace: str, object_key: str) -> Path:
"""Return the registry-defined logical SQL marker for one secure object."""
definition = STORAGE_NAMESPACE_REGISTRY.path_by_key(_SECURE_OBJECTS_TABLE_PATH_KEY)
marker_root = definition.grammar.removesuffix("/<namespace>/<object_key>")
return Path(marker_root) / namespace / object_key
[docs]
def secure_object_namespace_logical_path(namespace: str) -> Path:
"""Return the registry-defined logical SQL marker for one secure-object namespace."""
definition = STORAGE_NAMESPACE_REGISTRY.path_by_key(_SECURE_OBJECTS_TABLE_PATH_KEY)
marker_root = definition.grammar.removesuffix("/<namespace>/<object_key>")
return Path(marker_root) / namespace
__all__ = [
"STORAGE_NAMESPACE_REGISTRY",
"secure_object_logical_path",
"secure_object_namespace_logical_path",
]