Source code for cadrumo.adapters.persistence.storage.namespace_registry

"""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", ]