Integrate file connectors with credential envelopes

This commit is contained in:
2026-07-28 19:33:01 +02:00
parent 0fd8f6e02a
commit b667e7ff0e
5 changed files with 366 additions and 15 deletions

View File

@@ -109,6 +109,8 @@ from govoplan_files.backend.storage.connector_credential_store import (
create_connector_credential_row,
get_connector_credential_row,
list_database_connector_credentials,
resolve_reusable_connector_credential,
reusable_credential_id,
update_connector_credential_row,
)
from govoplan_files.backend.storage.connector_credential_deletion import (
@@ -742,11 +744,25 @@ def _credential_row_for_profile(
*,
credential_profile_id: str | None,
provider: str,
profile_id: str | None = None,
scope_type: str = "tenant",
scope_id: str | None = None,
include_disabled: bool = False,
):
credential_id = (credential_profile_id or "").strip()
if not credential_id:
return None
if reusable_credential_id(credential_id):
if not profile_id:
raise FileStorageError("File connection id is required for reusable credentials")
return resolve_reusable_connector_credential(
session,
tenant_id=principal.tenant_id,
credential_ref=credential_id,
profile_id=profile_id,
scope_type=scope_type,
scope_id=scope_id,
)
row = get_connector_credential_row(
session,
tenant_id=principal.tenant_id,
@@ -2904,6 +2920,9 @@ def create_connector_profile(
principal,
credential_profile_id=payload.credential_profile_id,
provider=payload.provider,
profile_id=payload.id,
scope_type=payload.scope_type,
scope_id=payload.scope_id,
)
_ensure_connector_configuration_allowed(
session,
@@ -3156,6 +3175,9 @@ def update_connector_profile(
principal,
credential_profile_id=credential_profile_id,
provider=provider,
profile_id=row.id,
scope_type=row.scope_type,
scope_id=row.scope_id,
include_disabled=True,
)
_ensure_connector_configuration_allowed(