Release v0.1.8
This commit is contained in:
@@ -1,5 +1,9 @@
|
||||
# GovOPlaN Access
|
||||
|
||||
<!-- govoplan-repository-type:start -->
|
||||
**Repository type:** module (platform).
|
||||
<!-- govoplan-repository-type:end -->
|
||||
|
||||
`govoplan-access` is the platform module for GovOPlaN identity,
|
||||
authentication, sessions, API keys, RBAC, groups, users, and access
|
||||
administration.
|
||||
@@ -98,7 +102,7 @@ available:
|
||||
|
||||
```bash
|
||||
cd /mnt/DATA/git/govoplan-core
|
||||
./scripts/gitea-sync-labels.py --root /mnt/DATA/git/govoplan-access --apply
|
||||
/mnt/DATA/git/govoplan/tools/gitea/gitea-sync-labels.py --root /mnt/DATA/git/govoplan-access --apply
|
||||
```
|
||||
|
||||
## Development Install
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@govoplan/access-webui",
|
||||
"version": "0.1.7",
|
||||
"version": "0.1.8",
|
||||
"private": true,
|
||||
"type": "module",
|
||||
"main": "webui/src/index.ts",
|
||||
@@ -18,7 +18,7 @@
|
||||
"LICENSE"
|
||||
],
|
||||
"peerDependencies": {
|
||||
"@govoplan/core-webui": "^0.1.7",
|
||||
"@govoplan/core-webui": "^0.1.8",
|
||||
"lucide-react": "^1.23.0",
|
||||
"react": "^19.0.0",
|
||||
"react-dom": "^19.0.0",
|
||||
|
||||
@@ -4,14 +4,14 @@ build-backend = "setuptools.build_meta"
|
||||
|
||||
[project]
|
||||
name = "govoplan-access"
|
||||
version = "0.1.7"
|
||||
version = "0.1.8"
|
||||
description = "GovOPlaN access platform module with identity, auth, RBAC, and scope primitives."
|
||||
readme = "README.md"
|
||||
requires-python = ">=3.12"
|
||||
license = { file = "LICENSE" }
|
||||
authors = [{ name = "GovOPlaN" }]
|
||||
dependencies = [
|
||||
"govoplan-core>=0.1.7",
|
||||
"govoplan-core>=0.1.8",
|
||||
"SQLAlchemy>=2,<3",
|
||||
]
|
||||
|
||||
|
||||
@@ -600,7 +600,7 @@ def _route_factory(context: ModuleContext):
|
||||
manifest = ModuleManifest(
|
||||
id="access",
|
||||
name="Access",
|
||||
version="0.1.7",
|
||||
version="0.1.8",
|
||||
optional_dependencies=("identity", "organizations", "tenancy", "idm"),
|
||||
permissions=ACCESS_PERMISSIONS,
|
||||
role_templates=ACCESS_ROLE_TEMPLATES,
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
|
||||
@@ -0,0 +1,192 @@
|
||||
"""v0.1.7 access baseline
|
||||
|
||||
Revision ID: 4a5b6c7d8e9f
|
||||
Revises: None
|
||||
Create Date: 2026-07-11 00:00:00.000000
|
||||
"""
|
||||
from __future__ import annotations
|
||||
|
||||
from alembic import op
|
||||
import sqlalchemy as sa
|
||||
|
||||
|
||||
revision = '4a5b6c7d8e9f'
|
||||
down_revision = None
|
||||
branch_labels = None
|
||||
depends_on = '4f2a9c8e7b6d'
|
||||
|
||||
|
||||
def upgrade() -> None:
|
||||
op.create_table('access_identities',
|
||||
sa.Column('id', sa.String(length=36), nullable=False),
|
||||
sa.Column('display_name', sa.String(length=255), nullable=True),
|
||||
sa.Column('external_subject', sa.String(length=255), nullable=True),
|
||||
sa.Column('source', sa.String(length=50), nullable=False),
|
||||
sa.Column('is_active', sa.Boolean(), nullable=False),
|
||||
sa.Column('settings', sa.JSON(), nullable=False),
|
||||
sa.Column('created_at', sa.DateTime(timezone=True), nullable=False),
|
||||
sa.Column('updated_at', sa.DateTime(timezone=True), nullable=False),
|
||||
sa.PrimaryKeyConstraint('id', name=op.f('pk_access_identities'))
|
||||
)
|
||||
op.create_index(op.f('ix_access_identities_external_subject'), 'access_identities', ['external_subject'], unique=False)
|
||||
op.create_table('access_organization_units',
|
||||
sa.Column('id', sa.String(length=36), nullable=False),
|
||||
sa.Column('tenant_id', sa.String(length=36), nullable=False),
|
||||
sa.Column('parent_id', sa.String(length=36), nullable=True),
|
||||
sa.Column('slug', sa.String(length=100), nullable=False),
|
||||
sa.Column('name', sa.String(length=255), nullable=False),
|
||||
sa.Column('description', sa.Text(), nullable=True),
|
||||
sa.Column('is_active', sa.Boolean(), nullable=False),
|
||||
sa.Column('settings', sa.JSON(), nullable=False),
|
||||
sa.Column('created_at', sa.DateTime(timezone=True), nullable=False),
|
||||
sa.Column('updated_at', sa.DateTime(timezone=True), nullable=False),
|
||||
sa.ForeignKeyConstraint(['parent_id'], ['access_organization_units.id'], name=op.f('fk_access_organization_units_parent_id_access_organization_units'), ondelete='SET NULL'),
|
||||
sa.ForeignKeyConstraint(['tenant_id'], ['core_scopes.id'], name=op.f('fk_access_organization_units_tenant_id_scopes'), ondelete='CASCADE'),
|
||||
sa.PrimaryKeyConstraint('id', name=op.f('pk_access_organization_units')),
|
||||
sa.UniqueConstraint('tenant_id', 'slug', name='uq_organization_units_tenant_slug')
|
||||
)
|
||||
op.create_index(op.f('ix_access_organization_units_parent_id'), 'access_organization_units', ['parent_id'], unique=False)
|
||||
op.create_index(op.f('ix_access_organization_units_tenant_id'), 'access_organization_units', ['tenant_id'], unique=False)
|
||||
op.create_table('access_external_function_role_assignments',
|
||||
sa.Column('id', sa.String(length=36), nullable=False),
|
||||
sa.Column('tenant_id', sa.String(length=36), nullable=False),
|
||||
sa.Column('source_module', sa.String(length=50), nullable=False),
|
||||
sa.Column('function_id', sa.String(length=36), nullable=False),
|
||||
sa.Column('role_id', sa.String(length=36), nullable=False),
|
||||
sa.Column('settings', sa.JSON(), nullable=False),
|
||||
sa.Column('created_at', sa.DateTime(timezone=True), nullable=False),
|
||||
sa.Column('updated_at', sa.DateTime(timezone=True), nullable=False),
|
||||
sa.ForeignKeyConstraint(['role_id'], ['access_roles.id'], name=op.f('fk_access_external_function_role_assignments_role_id_access_roles'), ondelete='CASCADE'),
|
||||
sa.ForeignKeyConstraint(['tenant_id'], ['core_scopes.id'], name=op.f('fk_access_external_function_role_assignments_tenant_id_scopes'), ondelete='CASCADE'),
|
||||
sa.PrimaryKeyConstraint('id', name=op.f('pk_access_external_function_role_assignments')),
|
||||
sa.UniqueConstraint('tenant_id', 'source_module', 'function_id', 'role_id', name='uq_external_function_role_assignments')
|
||||
)
|
||||
op.create_index(op.f('ix_access_external_function_role_assignments_function_id'), 'access_external_function_role_assignments', ['function_id'], unique=False)
|
||||
op.create_index(op.f('ix_access_external_function_role_assignments_role_id'), 'access_external_function_role_assignments', ['role_id'], unique=False)
|
||||
op.create_index(op.f('ix_access_external_function_role_assignments_source_module'), 'access_external_function_role_assignments', ['source_module'], unique=False)
|
||||
op.create_index(op.f('ix_access_external_function_role_assignments_tenant_id'), 'access_external_function_role_assignments', ['tenant_id'], unique=False)
|
||||
op.create_table('access_functions',
|
||||
sa.Column('id', sa.String(length=36), nullable=False),
|
||||
sa.Column('tenant_id', sa.String(length=36), nullable=False),
|
||||
sa.Column('organization_unit_id', sa.String(length=36), nullable=False),
|
||||
sa.Column('slug', sa.String(length=100), nullable=False),
|
||||
sa.Column('name', sa.String(length=255), nullable=False),
|
||||
sa.Column('description', sa.Text(), nullable=True),
|
||||
sa.Column('delegable', sa.Boolean(), nullable=False),
|
||||
sa.Column('act_in_place_allowed', sa.Boolean(), nullable=False),
|
||||
sa.Column('is_active', sa.Boolean(), nullable=False),
|
||||
sa.Column('settings', sa.JSON(), nullable=False),
|
||||
sa.Column('created_at', sa.DateTime(timezone=True), nullable=False),
|
||||
sa.Column('updated_at', sa.DateTime(timezone=True), nullable=False),
|
||||
sa.ForeignKeyConstraint(['organization_unit_id'], ['access_organization_units.id'], name=op.f('fk_access_functions_organization_unit_id_access_organization_units'), ondelete='CASCADE'),
|
||||
sa.ForeignKeyConstraint(['tenant_id'], ['core_scopes.id'], name=op.f('fk_access_functions_tenant_id_scopes'), ondelete='CASCADE'),
|
||||
sa.PrimaryKeyConstraint('id', name=op.f('pk_access_functions')),
|
||||
sa.UniqueConstraint('tenant_id', 'organization_unit_id', 'slug', name='uq_functions_tenant_ou_slug')
|
||||
)
|
||||
op.create_index(op.f('ix_access_functions_organization_unit_id'), 'access_functions', ['organization_unit_id'], unique=False)
|
||||
op.create_index(op.f('ix_access_functions_tenant_id'), 'access_functions', ['tenant_id'], unique=False)
|
||||
op.create_table('access_identity_account_links',
|
||||
sa.Column('id', sa.String(length=36), nullable=False),
|
||||
sa.Column('identity_id', sa.String(length=36), nullable=False),
|
||||
sa.Column('account_id', sa.String(length=36), nullable=False),
|
||||
sa.Column('is_primary', sa.Boolean(), nullable=False),
|
||||
sa.Column('source', sa.String(length=50), nullable=False),
|
||||
sa.Column('created_at', sa.DateTime(timezone=True), nullable=False),
|
||||
sa.Column('updated_at', sa.DateTime(timezone=True), nullable=False),
|
||||
sa.ForeignKeyConstraint(['account_id'], ['access_accounts.id'], name=op.f('fk_access_identity_account_links_account_id_access_accounts'), ondelete='CASCADE'),
|
||||
sa.ForeignKeyConstraint(['identity_id'], ['access_identities.id'], name=op.f('fk_access_identity_account_links_identity_id_access_identities'), ondelete='CASCADE'),
|
||||
sa.PrimaryKeyConstraint('id', name=op.f('pk_access_identity_account_links')),
|
||||
sa.UniqueConstraint('identity_id', 'account_id', name='uq_identity_account_links_identity_account')
|
||||
)
|
||||
op.create_index(op.f('ix_access_identity_account_links_account_id'), 'access_identity_account_links', ['account_id'], unique=False)
|
||||
op.create_index(op.f('ix_access_identity_account_links_identity_id'), 'access_identity_account_links', ['identity_id'], unique=False)
|
||||
op.create_index('uq_identity_account_links_primary_account', 'access_identity_account_links', ['account_id'], unique=True, sqlite_where=sa.text('is_primary = 1'), postgresql_where=sa.text('is_primary IS TRUE'))
|
||||
op.create_index('uq_identity_account_links_primary_identity', 'access_identity_account_links', ['identity_id'], unique=True, sqlite_where=sa.text('is_primary = 1'), postgresql_where=sa.text('is_primary IS TRUE'))
|
||||
op.create_table('access_function_assignments',
|
||||
sa.Column('id', sa.String(length=36), nullable=False),
|
||||
sa.Column('tenant_id', sa.String(length=36), nullable=False),
|
||||
sa.Column('account_id', sa.String(length=36), nullable=False),
|
||||
sa.Column('identity_id', sa.String(length=36), nullable=True),
|
||||
sa.Column('function_id', sa.String(length=36), nullable=False),
|
||||
sa.Column('organization_unit_id', sa.String(length=36), nullable=False),
|
||||
sa.Column('applies_to_subunits', sa.Boolean(), nullable=False),
|
||||
sa.Column('source', sa.String(length=50), nullable=False),
|
||||
sa.Column('delegated_from_assignment_id', sa.String(length=36), nullable=True),
|
||||
sa.Column('acting_for_account_id', sa.String(length=36), nullable=True),
|
||||
sa.Column('valid_from', sa.DateTime(timezone=True), nullable=True),
|
||||
sa.Column('valid_until', sa.DateTime(timezone=True), nullable=True),
|
||||
sa.Column('is_active', sa.Boolean(), nullable=False),
|
||||
sa.Column('settings', sa.JSON(), nullable=False),
|
||||
sa.Column('created_at', sa.DateTime(timezone=True), nullable=False),
|
||||
sa.Column('updated_at', sa.DateTime(timezone=True), nullable=False),
|
||||
sa.ForeignKeyConstraint(['account_id'], ['access_accounts.id'], name=op.f('fk_access_function_assignments_account_id_access_accounts'), ondelete='CASCADE'),
|
||||
sa.ForeignKeyConstraint(['acting_for_account_id'], ['access_accounts.id'], name=op.f('fk_access_function_assignments_acting_for_account_id_access_accounts'), ondelete='SET NULL'),
|
||||
sa.ForeignKeyConstraint(['delegated_from_assignment_id'], ['access_function_assignments.id'], name=op.f('fk_access_function_assignments_delegated_from_assignment_id_access_function_assignments'), ondelete='SET NULL'),
|
||||
sa.ForeignKeyConstraint(['function_id'], ['access_functions.id'], name=op.f('fk_access_function_assignments_function_id_access_functions'), ondelete='CASCADE'),
|
||||
sa.ForeignKeyConstraint(['identity_id'], ['access_identities.id'], name=op.f('fk_access_function_assignments_identity_id_access_identities'), ondelete='SET NULL'),
|
||||
sa.ForeignKeyConstraint(['organization_unit_id'], ['access_organization_units.id'], name=op.f('fk_access_function_assignments_organization_unit_id_access_organization_units'), ondelete='CASCADE'),
|
||||
sa.ForeignKeyConstraint(['tenant_id'], ['core_scopes.id'], name=op.f('fk_access_function_assignments_tenant_id_scopes'), ondelete='CASCADE'),
|
||||
sa.PrimaryKeyConstraint('id', name=op.f('pk_access_function_assignments')),
|
||||
sa.UniqueConstraint('tenant_id', 'account_id', 'function_id', 'organization_unit_id', name='uq_function_assignments_account_scope')
|
||||
)
|
||||
op.create_index(op.f('ix_access_function_assignments_account_id'), 'access_function_assignments', ['account_id'], unique=False)
|
||||
op.create_index(op.f('ix_access_function_assignments_acting_for_account_id'), 'access_function_assignments', ['acting_for_account_id'], unique=False)
|
||||
op.create_index(op.f('ix_access_function_assignments_delegated_from_assignment_id'), 'access_function_assignments', ['delegated_from_assignment_id'], unique=False)
|
||||
op.create_index(op.f('ix_access_function_assignments_function_id'), 'access_function_assignments', ['function_id'], unique=False)
|
||||
op.create_index(op.f('ix_access_function_assignments_identity_id'), 'access_function_assignments', ['identity_id'], unique=False)
|
||||
op.create_index(op.f('ix_access_function_assignments_organization_unit_id'), 'access_function_assignments', ['organization_unit_id'], unique=False)
|
||||
op.create_index(op.f('ix_access_function_assignments_tenant_id'), 'access_function_assignments', ['tenant_id'], unique=False)
|
||||
op.create_table('access_function_role_assignments',
|
||||
sa.Column('id', sa.String(length=36), nullable=False),
|
||||
sa.Column('tenant_id', sa.String(length=36), nullable=False),
|
||||
sa.Column('function_id', sa.String(length=36), nullable=False),
|
||||
sa.Column('role_id', sa.String(length=36), nullable=False),
|
||||
sa.Column('created_at', sa.DateTime(timezone=True), nullable=False),
|
||||
sa.Column('updated_at', sa.DateTime(timezone=True), nullable=False),
|
||||
sa.ForeignKeyConstraint(['function_id'], ['access_functions.id'], name=op.f('fk_access_function_role_assignments_function_id_access_functions'), ondelete='CASCADE'),
|
||||
sa.ForeignKeyConstraint(['role_id'], ['access_roles.id'], name=op.f('fk_access_function_role_assignments_role_id_access_roles'), ondelete='CASCADE'),
|
||||
sa.ForeignKeyConstraint(['tenant_id'], ['core_scopes.id'], name=op.f('fk_access_function_role_assignments_tenant_id_scopes'), ondelete='CASCADE'),
|
||||
sa.PrimaryKeyConstraint('id', name=op.f('pk_access_function_role_assignments')),
|
||||
sa.UniqueConstraint('tenant_id', 'function_id', 'role_id', name='uq_function_role_assignments')
|
||||
)
|
||||
op.create_index(op.f('ix_access_function_role_assignments_function_id'), 'access_function_role_assignments', ['function_id'], unique=False)
|
||||
op.create_index(op.f('ix_access_function_role_assignments_role_id'), 'access_function_role_assignments', ['role_id'], unique=False)
|
||||
op.create_index(op.f('ix_access_function_role_assignments_tenant_id'), 'access_function_role_assignments', ['tenant_id'], unique=False)
|
||||
op.create_table('access_function_delegations',
|
||||
sa.Column('id', sa.String(length=36), nullable=False),
|
||||
sa.Column('tenant_id', sa.String(length=36), nullable=False),
|
||||
sa.Column('function_assignment_id', sa.String(length=36), nullable=False),
|
||||
sa.Column('delegator_account_id', sa.String(length=36), nullable=False),
|
||||
sa.Column('delegate_account_id', sa.String(length=36), nullable=False),
|
||||
sa.Column('mode', sa.String(length=30), nullable=False),
|
||||
sa.Column('reason', sa.Text(), nullable=True),
|
||||
sa.Column('valid_from', sa.DateTime(timezone=True), nullable=True),
|
||||
sa.Column('valid_until', sa.DateTime(timezone=True), nullable=True),
|
||||
sa.Column('revoked_at', sa.DateTime(timezone=True), nullable=True),
|
||||
sa.Column('is_active', sa.Boolean(), nullable=False),
|
||||
sa.Column('settings', sa.JSON(), nullable=False),
|
||||
sa.Column('created_at', sa.DateTime(timezone=True), nullable=False),
|
||||
sa.Column('updated_at', sa.DateTime(timezone=True), nullable=False),
|
||||
sa.ForeignKeyConstraint(['delegate_account_id'], ['access_accounts.id'], name=op.f('fk_access_function_delegations_delegate_account_id_access_accounts'), ondelete='CASCADE'),
|
||||
sa.ForeignKeyConstraint(['delegator_account_id'], ['access_accounts.id'], name=op.f('fk_access_function_delegations_delegator_account_id_access_accounts'), ondelete='CASCADE'),
|
||||
sa.ForeignKeyConstraint(['function_assignment_id'], ['access_function_assignments.id'], name=op.f('fk_access_function_delegations_function_assignment_id_access_function_assignments'), ondelete='CASCADE'),
|
||||
sa.ForeignKeyConstraint(['tenant_id'], ['core_scopes.id'], name=op.f('fk_access_function_delegations_tenant_id_scopes'), ondelete='CASCADE'),
|
||||
sa.PrimaryKeyConstraint('id', name=op.f('pk_access_function_delegations')),
|
||||
sa.UniqueConstraint('tenant_id', 'function_assignment_id', 'delegate_account_id', 'mode', name='uq_function_delegations_assignment_delegate_mode')
|
||||
)
|
||||
op.create_index(op.f('ix_access_function_delegations_delegate_account_id'), 'access_function_delegations', ['delegate_account_id'], unique=False)
|
||||
op.create_index(op.f('ix_access_function_delegations_delegator_account_id'), 'access_function_delegations', ['delegator_account_id'], unique=False)
|
||||
op.create_index(op.f('ix_access_function_delegations_function_assignment_id'), 'access_function_delegations', ['function_assignment_id'], unique=False)
|
||||
op.create_index(op.f('ix_access_function_delegations_revoked_at'), 'access_function_delegations', ['revoked_at'], unique=False)
|
||||
op.create_index(op.f('ix_access_function_delegations_tenant_id'), 'access_function_delegations', ['tenant_id'], unique=False)
|
||||
|
||||
|
||||
def downgrade() -> None:
|
||||
op.drop_table('access_function_delegations')
|
||||
op.drop_table('access_function_role_assignments')
|
||||
op.drop_table('access_function_assignments')
|
||||
op.drop_table('access_identity_account_links')
|
||||
op.drop_table('access_functions')
|
||||
op.drop_table('access_external_function_role_assignments')
|
||||
op.drop_table('access_organization_units')
|
||||
op.drop_table('access_identities')
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@govoplan/access-webui",
|
||||
"version": "0.1.7",
|
||||
"version": "0.1.8",
|
||||
"private": true,
|
||||
"type": "module",
|
||||
"main": "src/index.ts",
|
||||
@@ -13,7 +13,7 @@
|
||||
}
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@govoplan/core-webui": "^0.1.7",
|
||||
"@govoplan/core-webui": "^0.1.8",
|
||||
"lucide-react": "^1.23.0",
|
||||
"react": "^19.0.0",
|
||||
"react-dom": "^19.0.0",
|
||||
|
||||
@@ -17,7 +17,7 @@ export const generatedTranslations: PlatformTranslations = {
|
||||
"i18n:govoplan-access.add_api_key.725d9988": "Add API key",
|
||||
"i18n:govoplan-access.add_global_account.18e4df22": "Add global account",
|
||||
"i18n:govoplan-access.add_group.2fca464f": "Add group",
|
||||
"i18n:govoplan-access.add_function_role_mapping.1bc376ac": "Add function role mapping",
|
||||
"i18n:govoplan-access.add_function_role_mapping.1bc376ac": "Add function mapping",
|
||||
"i18n:govoplan-access.add_role.d8d5d55c": "Add role",
|
||||
"i18n:govoplan-access.add_system_role.f9ef262b": "Add system role",
|
||||
"i18n:govoplan-access.add_tenant_user.36f37ce7": "Add tenant user",
|
||||
@@ -55,7 +55,7 @@ export const generatedTranslations: PlatformTranslations = {
|
||||
"i18n:govoplan-access.create_api_key.d7b30388": "Create API key",
|
||||
"i18n:govoplan-access.create_global_account.e821f016": "Create global account",
|
||||
"i18n:govoplan-access.create_group.5a0b1c17": "Create group",
|
||||
"i18n:govoplan-access.create_function_role_mapping.3718168d": "Create function role mapping",
|
||||
"i18n:govoplan-access.create_function_role_mapping.3718168d": "Create function mapping",
|
||||
"i18n:govoplan-access.create_key.e028cb09": "Create key",
|
||||
"i18n:govoplan-access.create_role.db859bad": "Create role",
|
||||
"i18n:govoplan-access.create_system_role.a1e40b25": "Create system role",
|
||||
@@ -80,7 +80,7 @@ export const generatedTranslations: PlatformTranslations = {
|
||||
"i18n:govoplan-access.deactivate_value.a276a667": "Deactivate {value0}",
|
||||
"i18n:govoplan-access.default_locale.b99d021f": "Default locale",
|
||||
"i18n:govoplan-access.delete_role.fbf0667e": "Delete role",
|
||||
"i18n:govoplan-access.delete_function_role_mapping.0c0eec6e": "Delete function role mapping",
|
||||
"i18n:govoplan-access.delete_function_role_mapping.0c0eec6e": "Delete function mapping",
|
||||
"i18n:govoplan-access.delete_function_role_mapping_value.419da2aa": "Delete the mapping for {value0}? Accepted assignments will no longer grant the mapped role.",
|
||||
"i18n:govoplan-access.delete_mapping.0d27d92a": "Delete mapping",
|
||||
"i18n:govoplan-access.delete_system_role.e2d84a56": "Delete system role",
|
||||
@@ -95,7 +95,7 @@ export const generatedTranslations: PlatformTranslations = {
|
||||
"i18n:govoplan-access.dry_run.485a3d15": "Dry run",
|
||||
"i18n:govoplan-access.edit_global_account.d13b8485": "Edit global account",
|
||||
"i18n:govoplan-access.edit_group.edb57d8e": "Edit group",
|
||||
"i18n:govoplan-access.edit_function_role_mapping.91ee75af": "Edit function role mapping",
|
||||
"i18n:govoplan-access.edit_function_role_mapping.91ee75af": "Edit function mapping",
|
||||
"i18n:govoplan-access.edit_role.61dd63e9": "Edit role",
|
||||
"i18n:govoplan-access.edit_system_role.6ebb7cb0": "Edit system role",
|
||||
"i18n:govoplan-access.edit_tenant_user.99121a61": "Edit tenant user",
|
||||
@@ -114,11 +114,11 @@ export const generatedTranslations: PlatformTranslations = {
|
||||
"i18n:govoplan-access.function_fact.4f7435e4": "Function fact",
|
||||
"i18n:govoplan-access.function_facts.848b32cc": "Function facts",
|
||||
"i18n:govoplan-access.function_id.e5e08937": "Function ID",
|
||||
"i18n:govoplan-access.function_role_mapping_created.7a25eb5a": "Function role mapping created.",
|
||||
"i18n:govoplan-access.function_role_mapping_deleted.fb180786": "Function role mapping deleted.",
|
||||
"i18n:govoplan-access.function_role_mapping_created.7a25eb5a": "Function mapping created.",
|
||||
"i18n:govoplan-access.function_role_mapping_deleted.fb180786": "Function mapping deleted.",
|
||||
"i18n:govoplan-access.function_role_mapping_help.0cf9996a": "The source module and function ID identify an accepted external function fact. Access grants the selected tenant role only while IDM reports an active accepted assignment for that fact.",
|
||||
"i18n:govoplan-access.function_role_mapping_updated.76020443": "Function role mapping updated.",
|
||||
"i18n:govoplan-access.function_role_mappings.2b64e9c3": "Function role mappings",
|
||||
"i18n:govoplan-access.function_role_mapping_updated.76020443": "Function mapping updated.",
|
||||
"i18n:govoplan-access.function_role_mappings.2b64e9c3": "Function mappings",
|
||||
"i18n:govoplan-access.general.9239ee2c": "General",
|
||||
"i18n:govoplan-access.global_account_details.0a0cf240": "Global account details",
|
||||
"i18n:govoplan-access.global_account_value_created.5100e467": "Global account {value0} created.",
|
||||
@@ -186,7 +186,7 @@ export const generatedTranslations: PlatformTranslations = {
|
||||
"i18n:govoplan-access.no_api_keys_found.1f377128": "No API keys found.",
|
||||
"i18n:govoplan-access.no_assignable_roles_exist.a4c268c2": "No assignable roles exist.",
|
||||
"i18n:govoplan-access.no_expiry.39d436aa": "No expiry",
|
||||
"i18n:govoplan-access.no_function_role_mappings_found.f735ff54": "No function role mappings found.",
|
||||
"i18n:govoplan-access.no_function_role_mappings_found.f735ff54": "No function mappings found.",
|
||||
"i18n:govoplan-access.no_function_facts_found.b2ecee17": "No function facts found.",
|
||||
"i18n:govoplan-access.no_global_accounts_found.29d96a9e": "No global accounts found.",
|
||||
"i18n:govoplan-access.no_groups_exist_yet.9cd029f6": "No groups exist yet.",
|
||||
@@ -301,7 +301,7 @@ export const generatedTranslations: PlatformTranslations = {
|
||||
"i18n:govoplan-access.tenant_profiles.4d7281ce": "Tenant profiles",
|
||||
"i18n:govoplan-access.tenant_retention_policy.f10893d7": "Tenant retention policy",
|
||||
"i18n:govoplan-access.tenant_retention.95b35db0": "Tenant retention",
|
||||
"i18n:govoplan-access.tenant_role_templates": "Tenant role templates",
|
||||
"i18n:govoplan-access.tenant_role_templates": "Role templates",
|
||||
"i18n:govoplan-access.tenant_roles.51aca82d": "Tenant roles",
|
||||
"i18n:govoplan-access.tenant_scoped_automation_credentials_are_capped_.9059dcae": "Tenant-scoped automation credentials are capped by their owner's current effective permissions. API keys are immutable after creation and are revoked rather than edited.",
|
||||
"i18n:govoplan-access.tenant_user_details.fbab9079": "Tenant user details",
|
||||
@@ -365,7 +365,7 @@ export const generatedTranslations: PlatformTranslations = {
|
||||
"i18n:govoplan-access.add_api_key.725d9988": "Add API key",
|
||||
"i18n:govoplan-access.add_global_account.18e4df22": "Add global account",
|
||||
"i18n:govoplan-access.add_group.2fca464f": "Gruppe hinzufügen",
|
||||
"i18n:govoplan-access.add_function_role_mapping.1bc376ac": "Funktions-Rollenzuordnung hinzufügen",
|
||||
"i18n:govoplan-access.add_function_role_mapping.1bc376ac": "Funktionszuordnung hinzufügen",
|
||||
"i18n:govoplan-access.add_role.d8d5d55c": "Rolle hinzufügen",
|
||||
"i18n:govoplan-access.add_system_role.f9ef262b": "Add system role",
|
||||
"i18n:govoplan-access.add_tenant_user.36f37ce7": "Mandantenbenutzer hinzufügen",
|
||||
@@ -403,7 +403,7 @@ export const generatedTranslations: PlatformTranslations = {
|
||||
"i18n:govoplan-access.create_api_key.d7b30388": "API-Schlüssel erstellen",
|
||||
"i18n:govoplan-access.create_global_account.e821f016": "Create global account",
|
||||
"i18n:govoplan-access.create_group.5a0b1c17": "Gruppe erstellen",
|
||||
"i18n:govoplan-access.create_function_role_mapping.3718168d": "Funktions-Rollenzuordnung erstellen",
|
||||
"i18n:govoplan-access.create_function_role_mapping.3718168d": "Funktionszuordnung erstellen",
|
||||
"i18n:govoplan-access.create_key.e028cb09": "Create key",
|
||||
"i18n:govoplan-access.create_role.db859bad": "Rolle erstellen",
|
||||
"i18n:govoplan-access.create_system_role.a1e40b25": "Create system role",
|
||||
@@ -428,7 +428,7 @@ export const generatedTranslations: PlatformTranslations = {
|
||||
"i18n:govoplan-access.deactivate_value.a276a667": "Deactivate {value0}",
|
||||
"i18n:govoplan-access.default_locale.b99d021f": "Standardsprache",
|
||||
"i18n:govoplan-access.delete_role.fbf0667e": "Delete role",
|
||||
"i18n:govoplan-access.delete_function_role_mapping.0c0eec6e": "Funktions-Rollenzuordnung löschen",
|
||||
"i18n:govoplan-access.delete_function_role_mapping.0c0eec6e": "Funktionszuordnung löschen",
|
||||
"i18n:govoplan-access.delete_function_role_mapping_value.419da2aa": "Zuordnung für {value0} löschen? Akzeptierte Zuweisungen gewähren die zugeordnete Rolle dann nicht mehr.",
|
||||
"i18n:govoplan-access.delete_mapping.0d27d92a": "Zuordnung löschen",
|
||||
"i18n:govoplan-access.delete_system_role.e2d84a56": "Delete system role",
|
||||
@@ -443,7 +443,7 @@ export const generatedTranslations: PlatformTranslations = {
|
||||
"i18n:govoplan-access.dry_run.485a3d15": "Trockenlauf",
|
||||
"i18n:govoplan-access.edit_global_account.d13b8485": "Edit global account",
|
||||
"i18n:govoplan-access.edit_group.edb57d8e": "Gruppe bearbeiten",
|
||||
"i18n:govoplan-access.edit_function_role_mapping.91ee75af": "Funktions-Rollenzuordnung bearbeiten",
|
||||
"i18n:govoplan-access.edit_function_role_mapping.91ee75af": "Funktionszuordnung bearbeiten",
|
||||
"i18n:govoplan-access.edit_role.61dd63e9": "Rolle bearbeiten",
|
||||
"i18n:govoplan-access.edit_system_role.6ebb7cb0": "Edit system role",
|
||||
"i18n:govoplan-access.edit_tenant_user.99121a61": "Mandantenbenutzer bearbeiten",
|
||||
@@ -462,11 +462,11 @@ export const generatedTranslations: PlatformTranslations = {
|
||||
"i18n:govoplan-access.function_fact.4f7435e4": "Funktionsfakt",
|
||||
"i18n:govoplan-access.function_facts.848b32cc": "Funktionsfakten",
|
||||
"i18n:govoplan-access.function_id.e5e08937": "Funktions-ID",
|
||||
"i18n:govoplan-access.function_role_mapping_created.7a25eb5a": "Funktions-Rollenzuordnung erstellt.",
|
||||
"i18n:govoplan-access.function_role_mapping_deleted.fb180786": "Funktions-Rollenzuordnung gelöscht.",
|
||||
"i18n:govoplan-access.function_role_mapping_created.7a25eb5a": "Funktionszuordnung erstellt.",
|
||||
"i18n:govoplan-access.function_role_mapping_deleted.fb180786": "Funktionszuordnung gelöscht.",
|
||||
"i18n:govoplan-access.function_role_mapping_help.0cf9996a": "Quellmodul und Funktions-ID identifizieren einen akzeptierten externen Funktionsfakt. Access gewährt die ausgewählte Mandantenrolle nur, solange IDM eine aktive akzeptierte Zuweisung für diesen Fakt meldet.",
|
||||
"i18n:govoplan-access.function_role_mapping_updated.76020443": "Funktions-Rollenzuordnung aktualisiert.",
|
||||
"i18n:govoplan-access.function_role_mappings.2b64e9c3": "Funktions-Rollenzuordnungen",
|
||||
"i18n:govoplan-access.function_role_mapping_updated.76020443": "Funktionszuordnung aktualisiert.",
|
||||
"i18n:govoplan-access.function_role_mappings.2b64e9c3": "Funktionszuordnungen",
|
||||
"i18n:govoplan-access.general.9239ee2c": "Allgemein",
|
||||
"i18n:govoplan-access.global_account_details.0a0cf240": "Global account details",
|
||||
"i18n:govoplan-access.global_account_value_created.5100e467": "Global account {value0} created.",
|
||||
@@ -534,7 +534,7 @@ export const generatedTranslations: PlatformTranslations = {
|
||||
"i18n:govoplan-access.no_api_keys_found.1f377128": "No API keys found.",
|
||||
"i18n:govoplan-access.no_assignable_roles_exist.a4c268c2": "Es gibt keine zuweisbaren Rollen.",
|
||||
"i18n:govoplan-access.no_expiry.39d436aa": "No expiry",
|
||||
"i18n:govoplan-access.no_function_role_mappings_found.f735ff54": "Keine Funktions-Rollenzuordnungen gefunden.",
|
||||
"i18n:govoplan-access.no_function_role_mappings_found.f735ff54": "Keine Funktionszuordnungen gefunden.",
|
||||
"i18n:govoplan-access.no_function_facts_found.b2ecee17": "Keine Funktionsfakten gefunden.",
|
||||
"i18n:govoplan-access.no_global_accounts_found.29d96a9e": "No global accounts found.",
|
||||
"i18n:govoplan-access.no_groups_exist_yet.9cd029f6": "Es gibt noch keine Gruppen.",
|
||||
@@ -649,7 +649,7 @@ export const generatedTranslations: PlatformTranslations = {
|
||||
"i18n:govoplan-access.tenant_profiles.4d7281ce": "Tenant profiles",
|
||||
"i18n:govoplan-access.tenant_retention_policy.f10893d7": "Tenant retention policy",
|
||||
"i18n:govoplan-access.tenant_retention.95b35db0": "Tenant retention",
|
||||
"i18n:govoplan-access.tenant_role_templates": "Mandantenrollenvorlagen",
|
||||
"i18n:govoplan-access.tenant_role_templates": "Rollenvorlagen",
|
||||
"i18n:govoplan-access.tenant_roles.51aca82d": "Mandantenrollen",
|
||||
"i18n:govoplan-access.tenant_scoped_automation_credentials_are_capped_.9059dcae": "Tenant-scoped automation credentials are capped by their owner's current effective permissions. API keys are immutable after creation and are revoked rather than edited.",
|
||||
"i18n:govoplan-access.tenant_user_details.fbab9079": "Mandantenbenutzerdetails",
|
||||
|
||||
Reference in New Issue
Block a user