diff --git a/.github/dependabot.yml b/.github/dependabot.yml index e005a9ffe71f..eb61a2998ece 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -58,6 +58,10 @@ updates: patterns: - "@rollup/*" - "rollup-*" + swc: + patterns: + - "@swc/*" + - "swc-*" wdio: patterns: - "@wdio/*" diff --git a/.github/workflows/release-publish.yml b/.github/workflows/release-publish.yml index baecfeab67bc..bb8949650e8d 100644 --- a/.github/workflows/release-publish.yml +++ b/.github/workflows/release-publish.yml @@ -51,6 +51,8 @@ jobs: secrets: | GEOIPUPDATE_ACCOUNT_ID=${{ secrets.GEOIPUPDATE_ACCOUNT_ID }} GEOIPUPDATE_LICENSE_KEY=${{ secrets.GEOIPUPDATE_LICENSE_KEY }} + build-args: | + VERSION=${{ github.ref }} tags: ${{ steps.ev.outputs.imageTags }} platforms: linux/amd64,linux/arm64 - uses: actions/attest-build-provenance@v1 @@ -111,6 +113,8 @@ jobs: id: push with: push: true + build-args: | + VERSION=${{ github.ref }} tags: ${{ steps.ev.outputs.imageTags }} file: ${{ matrix.type }}.Dockerfile platforms: linux/amd64,linux/arm64 diff --git a/Dockerfile b/Dockerfile index 19898dce56ff..76156ccbd8c1 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,7 +1,7 @@ # syntax=docker/dockerfile:1 # Stage 1: Build website -FROM --platform=${BUILDPLATFORM} docker.io/library/node:22 as website-builder +FROM --platform=${BUILDPLATFORM} docker.io/library/node:22 AS website-builder ENV NODE_ENV=production @@ -20,7 +20,7 @@ COPY ./SECURITY.md /work/ RUN npm run build-bundled # Stage 2: Build webui -FROM --platform=${BUILDPLATFORM} docker.io/library/node:22 as web-builder +FROM --platform=${BUILDPLATFORM} docker.io/library/node:22 AS web-builder ARG GIT_BUILD_HASH ENV GIT_BUILD_HASH=$GIT_BUILD_HASH @@ -80,7 +80,7 @@ RUN --mount=type=cache,sharing=locked,target=/go/pkg/mod \ go build -o /go/authentik ./cmd/server # Stage 4: MaxMind GeoIP -FROM --platform=${BUILDPLATFORM} ghcr.io/maxmind/geoipupdate:v7.0.1 as geoip +FROM --platform=${BUILDPLATFORM} ghcr.io/maxmind/geoipupdate:v7.0.1 AS geoip ENV GEOIPUPDATE_EDITION_IDS="GeoLite2-City GeoLite2-ASN" ENV GEOIPUPDATE_VERBOSE="1" @@ -96,6 +96,9 @@ RUN --mount=type=secret,id=GEOIPUPDATE_ACCOUNT_ID \ # Stage 5: Python dependencies FROM ghcr.io/goauthentik/fips-python:3.12.5-slim-bookworm-fips-full AS python-deps +ARG TARGETARCH +ARG TARGETVARIANT + WORKDIR /ak-root/poetry ENV VENV_PATH="/ak-root/venv" \ @@ -123,15 +126,15 @@ RUN --mount=type=bind,target=./pyproject.toml,src=./pyproject.toml \ # Stage 6: Run FROM ghcr.io/goauthentik/fips-python:3.12.5-slim-bookworm-fips-full AS final-image -ARG GIT_BUILD_HASH ARG VERSION +ARG GIT_BUILD_HASH ENV GIT_BUILD_HASH=$GIT_BUILD_HASH -LABEL org.opencontainers.image.url https://goauthentik.io -LABEL org.opencontainers.image.description goauthentik.io Main server image, see https://goauthentik.io for more info. -LABEL org.opencontainers.image.source https://github.com/goauthentik/authentik -LABEL org.opencontainers.image.version ${VERSION} -LABEL org.opencontainers.image.revision ${GIT_BUILD_HASH} +LABEL org.opencontainers.image.url=https://goauthentik.io +LABEL org.opencontainers.image.description="goauthentik.io Main server image, see https://goauthentik.io for more info." +LABEL org.opencontainers.image.source=https://github.com/goauthentik/authentik +LABEL org.opencontainers.image.version=${VERSION} +LABEL org.opencontainers.image.revision=${GIT_BUILD_HASH} WORKDIR / diff --git a/authentik/admin/api/version.py b/authentik/admin/api/version.py index 3985bef9b028..72ddfa9eee27 100644 --- a/authentik/admin/api/version.py +++ b/authentik/admin/api/version.py @@ -12,6 +12,7 @@ from authentik import __version__, get_build_hash from authentik.admin.tasks import VERSION_CACHE_KEY, VERSION_NULL, update_latest_version from authentik.core.api.utils import PassiveSerializer +from authentik.outposts.models import Outpost class VersionSerializer(PassiveSerializer): @@ -22,6 +23,7 @@ class VersionSerializer(PassiveSerializer): version_latest_valid = SerializerMethodField() build_hash = SerializerMethodField() outdated = SerializerMethodField() + outpost_outdated = SerializerMethodField() def get_build_hash(self, _) -> str: """Get build hash, if version is not latest or released""" @@ -47,6 +49,15 @@ def get_outdated(self, instance) -> bool: """Check if we're running the latest version""" return parse(self.get_version_current(instance)) < parse(self.get_version_latest(instance)) + def get_outpost_outdated(self, _) -> bool: + """Check if any outpost is outdated/has a version mismatch""" + any_outdated = False + for outpost in Outpost.objects.all(): + for state in outpost.state: + if state.version_outdated: + any_outdated = True + return any_outdated + class VersionView(APIView): """Get running and latest version.""" diff --git a/authentik/enterprise/providers/google_workspace/models.py b/authentik/enterprise/providers/google_workspace/models.py index e3396a2e71ad..fdade8ea6f88 100644 --- a/authentik/enterprise/providers/google_workspace/models.py +++ b/authentik/enterprise/providers/google_workspace/models.py @@ -181,7 +181,7 @@ class GoogleWorkspaceProviderMapping(PropertyMapping): @property def component(self) -> str: - return "ak-property-mapping-google-workspace-form" + return "ak-property-mapping-provider-google-workspace-form" @property def serializer(self) -> type[Serializer]: diff --git a/authentik/enterprise/providers/microsoft_entra/models.py b/authentik/enterprise/providers/microsoft_entra/models.py index a9092a76d2f9..50630c0976cd 100644 --- a/authentik/enterprise/providers/microsoft_entra/models.py +++ b/authentik/enterprise/providers/microsoft_entra/models.py @@ -170,7 +170,7 @@ class MicrosoftEntraProviderMapping(PropertyMapping): @property def component(self) -> str: - return "ak-property-mapping-microsoft-entra-form" + return "ak-property-mapping-provider-microsoft-entra-form" @property def serializer(self) -> type[Serializer]: diff --git a/authentik/enterprise/providers/rac/migrations/0005_alter_racpropertymapping_options.py b/authentik/enterprise/providers/rac/migrations/0005_alter_racpropertymapping_options.py new file mode 100644 index 000000000000..0c2bd1b9dfce --- /dev/null +++ b/authentik/enterprise/providers/rac/migrations/0005_alter_racpropertymapping_options.py @@ -0,0 +1,20 @@ +# Generated by Django 5.0.8 on 2024-08-12 12:54 + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ("authentik_providers_rac", "0004_alter_connectiontoken_expires"), + ] + + operations = [ + migrations.AlterModelOptions( + name="racpropertymapping", + options={ + "verbose_name": "RAC Provider Property Mapping", + "verbose_name_plural": "RAC Provider Property Mappings", + }, + ), + ] diff --git a/authentik/enterprise/providers/rac/models.py b/authentik/enterprise/providers/rac/models.py index 42e7a266e022..ca54a55b04d4 100644 --- a/authentik/enterprise/providers/rac/models.py +++ b/authentik/enterprise/providers/rac/models.py @@ -125,7 +125,7 @@ def evaluate(self, user: User | None, request: HttpRequest | None, **kwargs) -> @property def component(self) -> str: - return "ak-property-mapping-rac-form" + return "ak-property-mapping-provider-rac-form" @property def serializer(self) -> type[Serializer]: @@ -136,8 +136,8 @@ def serializer(self) -> type[Serializer]: return RACPropertyMappingSerializer class Meta: - verbose_name = _("RAC Property Mapping") - verbose_name_plural = _("RAC Property Mappings") + verbose_name = _("RAC Provider Property Mapping") + verbose_name_plural = _("RAC Provider Property Mappings") class ConnectionToken(ExpiringModel): diff --git a/authentik/enterprise/providers/rac/urls.py b/authentik/enterprise/providers/rac/urls.py index ddfbcf1152d0..84271be05419 100644 --- a/authentik/enterprise/providers/rac/urls.py +++ b/authentik/enterprise/providers/rac/urls.py @@ -44,7 +44,7 @@ api_urlpatterns = [ ("providers/rac", RACProviderViewSet), - ("propertymappings/rac", RACPropertyMappingViewSet), + ("propertymappings/provider/rac", RACPropertyMappingViewSet), ("rac/endpoints", EndpointViewSet), ("rac/connection_tokens", ConnectionTokenViewSet), ] diff --git a/authentik/outposts/api/outposts.py b/authentik/outposts/api/outposts.py index 582dd1eac335..ba84cf42e337 100644 --- a/authentik/outposts/api/outposts.py +++ b/authentik/outposts/api/outposts.py @@ -26,7 +26,6 @@ from authentik.outposts.models import ( Outpost, OutpostConfig, - OutpostState, OutpostType, default_outpost_config, ) @@ -182,7 +181,6 @@ def health(self, request: Request, pk: int) -> Response: outpost: Outpost = self.get_object() states = [] for state in outpost.state: - state: OutpostState states.append( { "uid": state.uid, diff --git a/authentik/outposts/models.py b/authentik/outposts/models.py index 327d23ca4698..2a6f45789fb6 100644 --- a/authentik/outposts/models.py +++ b/authentik/outposts/models.py @@ -451,7 +451,7 @@ def version_outdated(self) -> bool: return False if self.build_hash != get_build_hash(): return False - return parse(self.version) < OUR_VERSION + return parse(self.version) != OUR_VERSION @staticmethod def for_outpost(outpost: Outpost) -> list["OutpostState"]: diff --git a/authentik/policies/reputation/signals.py b/authentik/policies/reputation/signals.py index a3969c4d9e54..2092e3512ded 100644 --- a/authentik/policies/reputation/signals.py +++ b/authentik/policies/reputation/signals.py @@ -36,7 +36,7 @@ def update_score(request: HttpRequest, identifier: str, amount: int): if not created: reputation.score = F("score") + amount reputation.save() - LOGGER.debug("Updated score", amount=amount, for_user=identifier, for_ip=remote_ip) + LOGGER.info("Updated score", amount=amount, for_user=identifier, for_ip=remote_ip) @receiver(login_failed) diff --git a/authentik/providers/oauth2/models.py b/authentik/providers/oauth2/models.py index 3e09527d16b4..9484d985149d 100644 --- a/authentik/providers/oauth2/models.py +++ b/authentik/providers/oauth2/models.py @@ -105,7 +105,7 @@ class ScopeMapping(PropertyMapping): @property def component(self) -> str: - return "ak-property-mapping-scope-form" + return "ak-property-mapping-provider-scope-form" @property def serializer(self) -> type[Serializer]: diff --git a/authentik/providers/oauth2/urls.py b/authentik/providers/oauth2/urls.py index 9eefeb582e97..12a29d829228 100644 --- a/authentik/providers/oauth2/urls.py +++ b/authentik/providers/oauth2/urls.py @@ -62,7 +62,7 @@ api_urlpatterns = [ ("providers/oauth2", OAuth2ProviderViewSet), - ("propertymappings/scope", ScopeMappingViewSet), + ("propertymappings/provider/scope", ScopeMappingViewSet), ("oauth2/authorization_codes", AuthorizationCodeViewSet), ("oauth2/refresh_tokens", RefreshTokenViewSet), ("oauth2/access_tokens", AccessTokenViewSet), diff --git a/authentik/providers/radius/migrations/0004_alter_radiusproviderpropertymapping_options.py b/authentik/providers/radius/migrations/0004_alter_radiusproviderpropertymapping_options.py new file mode 100644 index 000000000000..33471406420a --- /dev/null +++ b/authentik/providers/radius/migrations/0004_alter_radiusproviderpropertymapping_options.py @@ -0,0 +1,20 @@ +# Generated by Django 5.0.8 on 2024-08-12 12:54 + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ("authentik_providers_radius", "0003_radiusproviderpropertymapping"), + ] + + operations = [ + migrations.AlterModelOptions( + name="radiusproviderpropertymapping", + options={ + "verbose_name": "Radius Provider Property Mapping", + "verbose_name_plural": "Radius Provider Property Mappings", + }, + ), + ] diff --git a/authentik/providers/radius/models.py b/authentik/providers/radius/models.py index 48c608f45e3a..5557a2f73272 100644 --- a/authentik/providers/radius/models.py +++ b/authentik/providers/radius/models.py @@ -70,7 +70,7 @@ class RadiusProviderPropertyMapping(PropertyMapping): @property def component(self) -> str: - return "ak-property-mapping-radius-form" + return "ak-property-mapping-provider-radius-form" @property def serializer(self) -> type[Serializer]: @@ -81,8 +81,8 @@ def serializer(self) -> type[Serializer]: return RadiusProviderPropertyMappingSerializer def __str__(self): - return f"Radius Property Mapping {self.name}" + return f"Radius Provider Property Mapping {self.name}" class Meta: - verbose_name = _("Radius Property Mapping") - verbose_name_plural = _("Radius Property Mappings") + verbose_name = _("Radius Provider Property Mapping") + verbose_name_plural = _("Radius Provider Property Mappings") diff --git a/authentik/providers/radius/urls.py b/authentik/providers/radius/urls.py index ce64d925c2bd..45c9fa35eab9 100644 --- a/authentik/providers/radius/urls.py +++ b/authentik/providers/radius/urls.py @@ -7,7 +7,7 @@ ) api_urlpatterns = [ - ("propertymappings/radius", RadiusProviderPropertyMappingViewSet), + ("propertymappings/provider/radius", RadiusProviderPropertyMappingViewSet), ("outposts/radius", RadiusOutpostConfigViewSet, "radiusprovideroutpost"), ("providers/radius", RadiusProviderViewSet), ] diff --git a/authentik/providers/saml/migrations/0015_alter_samlpropertymapping_options.py b/authentik/providers/saml/migrations/0015_alter_samlpropertymapping_options.py new file mode 100644 index 000000000000..801d93435d5f --- /dev/null +++ b/authentik/providers/saml/migrations/0015_alter_samlpropertymapping_options.py @@ -0,0 +1,20 @@ +# Generated by Django 5.0.8 on 2024-08-12 12:54 + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ("authentik_providers_saml", "0014_alter_samlprovider_digest_algorithm_and_more"), + ] + + operations = [ + migrations.AlterModelOptions( + name="samlpropertymapping", + options={ + "verbose_name": "SAML Provider Property Mapping", + "verbose_name_plural": "SAML Provider Property Mappings", + }, + ), + ] diff --git a/authentik/providers/saml/models.py b/authentik/providers/saml/models.py index 54448dd317d5..309d386f33a0 100644 --- a/authentik/providers/saml/models.py +++ b/authentik/providers/saml/models.py @@ -191,7 +191,7 @@ class SAMLPropertyMapping(PropertyMapping): @property def component(self) -> str: - return "ak-property-mapping-saml-form" + return "ak-property-mapping-provider-saml-form" @property def serializer(self) -> type[Serializer]: @@ -204,8 +204,8 @@ def __str__(self): return f"{self.name} ({name})" class Meta: - verbose_name = _("SAML Property Mapping") - verbose_name_plural = _("SAML Property Mappings") + verbose_name = _("SAML Provider Property Mapping") + verbose_name_plural = _("SAML Provider Property Mappings") class SAMLProviderImportModel(CreatableType, Provider): diff --git a/authentik/providers/saml/urls.py b/authentik/providers/saml/urls.py index f0cf04e09c64..54dbcaf2efac 100644 --- a/authentik/providers/saml/urls.py +++ b/authentik/providers/saml/urls.py @@ -44,6 +44,6 @@ ] api_urlpatterns = [ - ("propertymappings/saml", SAMLPropertyMappingViewSet), + ("propertymappings/provider/saml", SAMLPropertyMappingViewSet), ("providers/saml", SAMLProviderViewSet), ] diff --git a/authentik/providers/scim/migrations/0009_alter_scimmapping_options.py b/authentik/providers/scim/migrations/0009_alter_scimmapping_options.py new file mode 100644 index 000000000000..88237be279eb --- /dev/null +++ b/authentik/providers/scim/migrations/0009_alter_scimmapping_options.py @@ -0,0 +1,20 @@ +# Generated by Django 5.0.8 on 2024-08-12 12:54 + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ("authentik_providers_scim", "0008_rename_scimgroup_scimprovidergroup_and_more"), + ] + + operations = [ + migrations.AlterModelOptions( + name="scimmapping", + options={ + "verbose_name": "SCIM Provider Mapping", + "verbose_name_plural": "SCIM Provider Mappings", + }, + ), + ] diff --git a/authentik/providers/scim/models.py b/authentik/providers/scim/models.py index e00543207b1a..8f940deebcc1 100644 --- a/authentik/providers/scim/models.py +++ b/authentik/providers/scim/models.py @@ -133,7 +133,7 @@ class SCIMMapping(PropertyMapping): @property def component(self) -> str: - return "ak-property-mapping-scim-form" + return "ak-property-mapping-provider-scim-form" @property def serializer(self) -> type[Serializer]: @@ -142,8 +142,8 @@ def serializer(self) -> type[Serializer]: return SCIMMappingSerializer def __str__(self): - return f"SCIM Mapping {self.name}" + return f"SCIM Provider Mapping {self.name}" class Meta: - verbose_name = _("SCIM Mapping") - verbose_name_plural = _("SCIM Mappings") + verbose_name = _("SCIM Provider Mapping") + verbose_name_plural = _("SCIM Provider Mappings") diff --git a/authentik/providers/scim/urls.py b/authentik/providers/scim/urls.py index b692ae44eabb..78fa9568f172 100644 --- a/authentik/providers/scim/urls.py +++ b/authentik/providers/scim/urls.py @@ -13,5 +13,5 @@ ("providers/scim", SCIMProviderViewSet), ("providers/scim_users", SCIMProviderUserViewSet), ("providers/scim_groups", SCIMProviderGroupViewSet), - ("propertymappings/scim", SCIMMappingViewSet), + ("propertymappings/provider/scim", SCIMMappingViewSet), ] diff --git a/authentik/sources/ldap/models.py b/authentik/sources/ldap/models.py index d7b69c14a9a9..dcfa0ccc1ecd 100644 --- a/authentik/sources/ldap/models.py +++ b/authentik/sources/ldap/models.py @@ -290,7 +290,7 @@ class LDAPSourcePropertyMapping(PropertyMapping): @property def component(self) -> str: - return "ak-property-mapping-ldap-source-form" + return "ak-property-mapping-source-ldap-form" @property def serializer(self) -> type[Serializer]: diff --git a/authentik/sources/oauth/models.py b/authentik/sources/oauth/models.py index 73ed11b77320..75099aaac3f9 100644 --- a/authentik/sources/oauth/models.py +++ b/authentik/sources/oauth/models.py @@ -268,7 +268,7 @@ class OAuthSourcePropertyMapping(PropertyMapping): @property def component(self) -> str: - return "ak-property-mapping-oauth-source-form" + return "ak-property-mapping-source-oauth-form" @property def serializer(self) -> type[Serializer]: diff --git a/authentik/sources/plex/models.py b/authentik/sources/plex/models.py index 92771014e2d4..86cda34ab43e 100644 --- a/authentik/sources/plex/models.py +++ b/authentik/sources/plex/models.py @@ -123,7 +123,7 @@ class PlexSourcePropertyMapping(PropertyMapping): @property def component(self) -> str: - return "ak-property-mapping-plex-source-form" + return "ak-property-mapping-source-plex-form" @property def serializer(self) -> type[Serializer]: diff --git a/authentik/sources/saml/models.py b/authentik/sources/saml/models.py index 0b67a060a6c4..8db1bc6a3dc2 100644 --- a/authentik/sources/saml/models.py +++ b/authentik/sources/saml/models.py @@ -299,7 +299,7 @@ class SAMLSourcePropertyMapping(PropertyMapping): @property def component(self) -> str: - return "ak-property-mapping-saml-source-form" + return "ak-property-mapping-source-saml-form" @property def serializer(self) -> type[Serializer]: diff --git a/authentik/sources/scim/models.py b/authentik/sources/scim/models.py index 43101b09866f..dc05c57aea25 100644 --- a/authentik/sources/scim/models.py +++ b/authentik/sources/scim/models.py @@ -85,7 +85,7 @@ class SCIMSourcePropertyMapping(PropertyMapping): @property def component(self) -> str: - return "ak-property-mapping-scim-source-form" + return "ak-property-mapping-source-scim-form" @property def serializer(self) -> type[Serializer]: diff --git a/go.mod b/go.mod index 9254390706b9..c8070daca278 100644 --- a/go.mod +++ b/go.mod @@ -28,7 +28,7 @@ require ( github.com/spf13/cobra v1.8.1 github.com/stretchr/testify v1.9.0 github.com/wwt/guac v1.3.2 - goauthentik.io/api/v3 v3.2024063.6 + goauthentik.io/api/v3 v3.2024063.10 golang.org/x/exp v0.0.0-20230210204819-062eb4c674ab golang.org/x/oauth2 v0.22.0 golang.org/x/sync v0.8.0 diff --git a/go.sum b/go.sum index 32c7c06c126e..a99a0262ff92 100644 --- a/go.sum +++ b/go.sum @@ -293,8 +293,8 @@ go.opentelemetry.io/otel/trace v1.24.0 h1:CsKnnL4dUAr/0llH9FKuc698G04IrpWV0MQA/Y go.opentelemetry.io/otel/trace v1.24.0/go.mod h1:HPc3Xr/cOApsBI154IU0OI0HJexz+aw5uPdbs3UCjNU= go.uber.org/goleak v1.2.1 h1:NBol2c7O1ZokfZ0LEU9K6Whx/KnwvepVetCUhtKja4A= go.uber.org/goleak v1.2.1/go.mod h1:qlT2yGI9QafXHhZZLxlSuNsMw3FFLxBr+tBRlmO1xH4= -goauthentik.io/api/v3 v3.2024063.6 h1:TloJKYEhdxej4PRPjQiA//SlaSByxc5XCYT3QmjErN8= -goauthentik.io/api/v3 v3.2024063.6/go.mod h1:zz+mEZg8rY/7eEjkMGWJ2DnGqk+zqxuybGCGrR2O4Kw= +goauthentik.io/api/v3 v3.2024063.10 h1:7lsVE5aRCMO00u4v7uAWMSCGv+dxejrM8lAx3xGzihw= +goauthentik.io/api/v3 v3.2024063.10/go.mod h1:zz+mEZg8rY/7eEjkMGWJ2DnGqk+zqxuybGCGrR2O4Kw= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= diff --git a/internal/outpost/ak/api.go b/internal/outpost/ak/api.go index fca9a6fb9c7a..57757b2e2a6e 100644 --- a/internal/outpost/ak/api.go +++ b/internal/outpost/ak/api.go @@ -187,7 +187,7 @@ func (a *APIController) OnRefresh() error { func (a *APIController) getWebsocketPingArgs() map[string]interface{} { args := map[string]interface{}{ "version": constants.VERSION, - "buildHash": constants.BUILD("tagged"), + "buildHash": constants.BUILD(""), "uuid": a.instanceUUID.String(), "golangVersion": runtime.Version(), "opensslEnabled": cryptobackend.OpensslEnabled, @@ -207,7 +207,7 @@ func (a *APIController) StartBackgroundTasks() error { "outpost_type": a.Server.Type(), "uuid": a.instanceUUID.String(), "version": constants.VERSION, - "build": constants.BUILD("tagged"), + "build": constants.BUILD(""), }).Set(1) go func() { a.logger.Debug("Starting WS Handler...") diff --git a/internal/outpost/ak/api_ws.go b/internal/outpost/ak/api_ws.go index 210b7e5335ce..cda7bd03d2b0 100644 --- a/internal/outpost/ak/api_ws.go +++ b/internal/outpost/ak/api_ws.go @@ -145,7 +145,7 @@ func (ac *APIController) startWSHandler() { "outpost_type": ac.Server.Type(), "uuid": ac.instanceUUID.String(), "version": constants.VERSION, - "build": constants.BUILD("tagged"), + "build": constants.BUILD(""), }).SetToCurrentTime() } } else if wsMsg.Instruction == WebsocketInstructionProviderSpecific { @@ -207,7 +207,7 @@ func (ac *APIController) startIntervalUpdater() { "outpost_type": ac.Server.Type(), "uuid": ac.instanceUUID.String(), "version": constants.VERSION, - "build": constants.BUILD("tagged"), + "build": constants.BUILD(""), }).SetToCurrentTime() } ticker.Reset(getInterval()) diff --git a/ldap.Dockerfile b/ldap.Dockerfile index 44347e6738c5..df9d737067c8 100644 --- a/ldap.Dockerfile +++ b/ldap.Dockerfile @@ -36,11 +36,11 @@ FROM ghcr.io/goauthentik/fips-debian:bookworm-slim-fips ARG GIT_BUILD_HASH ENV GIT_BUILD_HASH=$GIT_BUILD_HASH -LABEL org.opencontainers.image.url https://goauthentik.io -LABEL org.opencontainers.image.description goauthentik.io LDAP outpost, see https://goauthentik.io for more info. -LABEL org.opencontainers.image.source https://github.com/goauthentik/authentik -LABEL org.opencontainers.image.version ${VERSION} -LABEL org.opencontainers.image.revision ${GIT_BUILD_HASH} +LABEL org.opencontainers.image.url=https://goauthentik.io +LABEL org.opencontainers.image.description="goauthentik.io LDAP outpost, see https://goauthentik.io for more info." +LABEL org.opencontainers.image.source=https://github.com/goauthentik/authentik +LABEL org.opencontainers.image.version=${VERSION} +LABEL org.opencontainers.image.revision=${GIT_BUILD_HASH} COPY --from=builder /go/ldap / diff --git a/locale/en/LC_MESSAGES/django.po b/locale/en/LC_MESSAGES/django.po index e6594035e66e..0bc176c68114 100644 --- a/locale/en/LC_MESSAGES/django.po +++ b/locale/en/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-06-16 00:08+0000\n" +"POT-Creation-Date: 2024-08-12 13:45+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -75,6 +75,12 @@ msgid "" "and `ba.b`" msgstr "" +#: authentik/brands/models.py +msgid "" +"When set, external users will be redirected to this application after " +"authenticating." +msgstr "" + #: authentik/brands/models.py msgid "Web Certificate used by the authentik Core webserver." msgstr "" @@ -226,6 +232,16 @@ msgid "" "exists." msgstr "" +#: authentik/core/models.py +msgid "" +"Link to a group with identical name. Can have security implications when a " +"group name is used with another source." +msgstr "" + +#: authentik/core/models.py +msgid "Use the group name, but deny enrollment when the name already exists." +msgstr "" + #: authentik/core/models.py msgid "Source's display Name." msgstr "" @@ -248,6 +264,12 @@ msgid "" "new user enrolled." msgstr "" +#: authentik/core/models.py +msgid "" +"How the source determines if an existing group should be used or a new group " +"created." +msgstr "" + #: authentik/core/models.py msgid "Token" msgstr "" @@ -347,6 +369,7 @@ msgid "Go home" msgstr "" #: authentik/core/templates/login/base_full.html +#: authentik/flows/templates/if/flow-sfe.html msgid "Powered by authentik" msgstr "" @@ -357,6 +380,10 @@ msgstr "" msgid "You're about to sign into %(application)s." msgstr "" +#: authentik/core/views/interface.py +msgid "Interface can only be accessed by internal users." +msgstr "" + #: authentik/crypto/api.py msgid "Subject-alt name" msgstr "" @@ -433,7 +460,7 @@ msgstr "" #: authentik/enterprise/providers/google_workspace/models.py #: authentik/enterprise/providers/microsoft_entra/models.py -#: authentik/providers/scim/models.py authentik/sources/ldap/models.py +#: authentik/providers/scim/models.py msgid "Property mappings used for group creation/updating." msgstr "" @@ -509,11 +536,11 @@ msgid "RAC Endpoints" msgstr "" #: authentik/enterprise/providers/rac/models.py -msgid "RAC Property Mapping" +msgid "RAC Provider Property Mapping" msgstr "" #: authentik/enterprise/providers/rac/models.py -msgid "RAC Property Mappings" +msgid "RAC Provider Property Mappings" msgstr "" #: authentik/enterprise/providers/rac/models.py @@ -1009,6 +1036,30 @@ msgstr "" msgid "Expression Policies" msgstr "" +#: authentik/policies/geoip/models.py +msgid "GeoIP: client IP not found in ASN database." +msgstr "" + +#: authentik/policies/geoip/models.py +msgid "Client IP is not part of an allowed autonomous system." +msgstr "" + +#: authentik/policies/geoip/models.py +msgid "GeoIP: client IP address not found in City database." +msgstr "" + +#: authentik/policies/geoip/models.py +msgid "Client IP is not in an allowed country." +msgstr "" + +#: authentik/policies/geoip/models.py +msgid "GeoIP Policy" +msgstr "" + +#: authentik/policies/geoip/models.py +msgid "GeoIP Policies" +msgstr "" + #: authentik/policies/models.py msgid "all, all policies must pass" msgstr "" @@ -1543,6 +1594,14 @@ msgstr "" msgid "Radius Providers" msgstr "" +#: authentik/providers/radius/models.py +msgid "Radius Provider Property Mapping" +msgstr "" + +#: authentik/providers/radius/models.py +msgid "Radius Provider Property Mappings" +msgstr "" + #: authentik/providers/saml/api/providers.py msgid "Invalid XML Syntax" msgstr "" @@ -1687,11 +1746,11 @@ msgid "SAML Providers" msgstr "" #: authentik/providers/saml/models.py -msgid "SAML Property Mapping" +msgid "SAML Provider Property Mapping" msgstr "" #: authentik/providers/saml/models.py -msgid "SAML Property Mappings" +msgid "SAML Provider Property Mappings" msgstr "" #: authentik/providers/saml/models.py @@ -1719,11 +1778,11 @@ msgid "SCIM Providers" msgstr "" #: authentik/providers/scim/models.py -msgid "SCIM Mapping" +msgid "SCIM Provider Mapping" msgstr "" #: authentik/providers/scim/models.py -msgid "SCIM Mappings" +msgid "SCIM Provider Mappings" msgstr "" #: authentik/rbac/models.py @@ -1852,11 +1911,11 @@ msgid "LDAP Sources" msgstr "" #: authentik/sources/ldap/models.py -msgid "LDAP Property Mapping" +msgid "LDAP Source Property Mapping" msgstr "" #: authentik/sources/ldap/models.py -msgid "LDAP Property Mappings" +msgid "LDAP Source Property Mappings" msgstr "" #: authentik/sources/ldap/signals.py @@ -2024,6 +2083,14 @@ msgstr "" msgid "Reddit OAuth Sources" msgstr "" +#: authentik/sources/oauth/models.py +msgid "OAuth Source Property Mapping" +msgstr "" + +#: authentik/sources/oauth/models.py +msgid "OAuth Source Property Mappings" +msgstr "" + #: authentik/sources/oauth/models.py msgid "User OAuth Source Connection" msgstr "" @@ -2032,6 +2099,14 @@ msgstr "" msgid "User OAuth Source Connections" msgstr "" +#: authentik/sources/oauth/models.py +msgid "Group OAuth Source Connection" +msgstr "" + +#: authentik/sources/oauth/models.py +msgid "Group OAuth Source Connections" +msgstr "" + #: authentik/sources/oauth/views/callback.py #, python-brace-format msgid "Authentication failed: {reason}" @@ -2063,6 +2138,14 @@ msgstr "" msgid "Plex Sources" msgstr "" +#: authentik/sources/plex/models.py +msgid "Plex Source Property Mapping" +msgstr "" + +#: authentik/sources/plex/models.py +msgid "Plex Source Property Mappings" +msgstr "" + #: authentik/sources/plex/models.py msgid "User Plex Source Connection" msgstr "" @@ -2071,6 +2154,14 @@ msgstr "" msgid "User Plex Source Connections" msgstr "" +#: authentik/sources/plex/models.py +msgid "Group Plex Source Connection" +msgstr "" + +#: authentik/sources/plex/models.py +msgid "Group Plex Source Connections" +msgstr "" + #: authentik/sources/saml/models.py msgid "Redirect Binding" msgstr "" @@ -2137,6 +2228,17 @@ msgstr "" msgid "Keypair used to sign outgoing Responses going to the Identity Provider." msgstr "" +#: authentik/sources/saml/models.py +msgid "" +"When selected, incoming assertions are encrypted by the IdP using the public " +"key of the encryption keypair. The assertion is decrypted by the SP using " +"the the private key." +msgstr "" + +#: authentik/sources/saml/models.py +msgid "Encryption Keypair" +msgstr "" + #: authentik/sources/saml/models.py msgid "SAML Source" msgstr "" @@ -2145,6 +2247,14 @@ msgstr "" msgid "SAML Sources" msgstr "" +#: authentik/sources/saml/models.py +msgid "SAML Source Property Mapping" +msgstr "" + +#: authentik/sources/saml/models.py +msgid "SAML Source Property Mappings" +msgstr "" + #: authentik/sources/saml/models.py msgid "User SAML Source Connection" msgstr "" @@ -2153,6 +2263,14 @@ msgstr "" msgid "User SAML Source Connections" msgstr "" +#: authentik/sources/saml/models.py +msgid "Group SAML Source Connection" +msgstr "" + +#: authentik/sources/saml/models.py +msgid "Group SAML Source Connections" +msgstr "" + #: authentik/sources/scim/models.py msgid "SCIM Source" msgstr "" @@ -2161,6 +2279,14 @@ msgstr "" msgid "SCIM Sources" msgstr "" +#: authentik/sources/scim/models.py +msgid "SCIM Source Property Mapping" +msgstr "" + +#: authentik/sources/scim/models.py +msgid "SCIM Source Property Mappings" +msgstr "" + #: authentik/stages/authenticator_duo/models.py msgid "Duo Authenticator Setup Stage" msgstr "" @@ -2725,6 +2851,12 @@ msgid "" "out, use a reputation policy and a user_write stage." msgstr "" +#: authentik/stages/password/models.py +msgid "" +"When enabled, provides a 'show password' button with the password input " +"field." +msgstr "" + #: authentik/stages/password/models.py msgid "Password Stage" msgstr "" diff --git a/locale/ru/LC_MESSAGES/django.po b/locale/ru/LC_MESSAGES/django.po index 32bc056b8c19..13fff128542a 100644 --- a/locale/ru/LC_MESSAGES/django.po +++ b/locale/ru/LC_MESSAGES/django.po @@ -16,7 +16,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-06-16 00:08+0000\n" +"POT-Creation-Date: 2024-08-12 13:45+0000\n" "PO-Revision-Date: 2022-09-26 16:47+0000\n" "Last-Translator: Anton, 2024\n" "Language-Team: Russian (https://app.transifex.com/authentik/teams/119923/ru/)\n" @@ -89,6 +89,14 @@ msgstr "" "Домен, активирующий данный бренд. Может быть суперсетом, т.е. `a.b` для " "`aa.b` и `ba.b`." +#: authentik/brands/models.py +msgid "" +"When set, external users will be redirected to this application after " +"authenticating." +msgstr "" +"Если этот параметр установлен, внешние пользователи будут перенаправляться в" +" это приложение после аутентификации." + #: authentik/brands/models.py msgid "Web Certificate used by the authentik Core webserver." msgstr "Web Certificate используемый для authentik Core webserver." @@ -258,6 +266,20 @@ msgstr "" "Использовать имя пользователя, но отказывать в регистрации, если имя " "пользователя уже существует." +#: authentik/core/models.py +msgid "" +"Link to a group with identical name. Can have security implications when a " +"group name is used with another source." +msgstr "" +"Связать с группой с идентичным именем. Может иметь последствия для " +"безопасности, если имя группы используется в другом источнике." + +#: authentik/core/models.py +msgid "Use the group name, but deny enrollment when the name already exists." +msgstr "" +"Использовать имя группы, но отказывать в регистрации, если имя уже " +"существует." + #: authentik/core/models.py msgid "Source's display Name." msgstr "Отображаемое имя источника." @@ -282,6 +304,14 @@ msgstr "" "Как источник определяет, следует ли аутентифицировать существующего " "пользователя или зачислить нового." +#: authentik/core/models.py +msgid "" +"How the source determines if an existing group should be used or a new group" +" created." +msgstr "" +"Как источник определяет, следует ли использовать существующую группу или " +"создать новую." + #: authentik/core/models.py msgid "Token" msgstr "Токен" @@ -393,6 +423,7 @@ msgid "Go home" msgstr "Домой" #: authentik/core/templates/login/base_full.html +#: authentik/flows/templates/if/flow-sfe.html msgid "Powered by authentik" msgstr "Основано на authentik" @@ -403,6 +434,10 @@ msgstr "Основано на authentik" msgid "You're about to sign into %(application)s." msgstr "Вы собираетесь войти в %(application)s." +#: authentik/core/views/interface.py +msgid "Interface can only be accessed by internal users." +msgstr "Доступ к интерфейсу могут иметь только внутренние пользователи." + #: authentik/crypto/api.py msgid "Subject-alt name" msgstr "Альтернативное имя субъекта" @@ -481,7 +516,7 @@ msgstr "Группы провайдера Google Workspace" #: authentik/enterprise/providers/google_workspace/models.py #: authentik/enterprise/providers/microsoft_entra/models.py -#: authentik/providers/scim/models.py authentik/sources/ldap/models.py +#: authentik/providers/scim/models.py msgid "Property mappings used for group creation/updating." msgstr "Сопоставления свойств, используемые для создания/обновления групп." @@ -561,12 +596,12 @@ msgid "RAC Endpoints" msgstr "Точки подключения RAC" #: authentik/enterprise/providers/rac/models.py -msgid "RAC Property Mapping" -msgstr "Сопоставление свойств RAC" +msgid "RAC Provider Property Mapping" +msgstr "Сопоставление свойства RAC провайдера" #: authentik/enterprise/providers/rac/models.py -msgid "RAC Property Mappings" -msgstr "Сопоставления свойств RAC" +msgid "RAC Provider Property Mappings" +msgstr "Сопоставление свойств RAC провайдера" #: authentik/enterprise/providers/rac/models.py msgid "RAC Connection token" @@ -1107,6 +1142,30 @@ msgstr "Политика выражения" msgid "Expression Policies" msgstr "Политики выражения" +#: authentik/policies/geoip/models.py +msgid "GeoIP: client IP not found in ASN database." +msgstr "GeoIP: IP-адрес клиента не найден в базе данных ASN." + +#: authentik/policies/geoip/models.py +msgid "Client IP is not part of an allowed autonomous system." +msgstr "IP-адрес клиента не входит в разрешенную автономную систему." + +#: authentik/policies/geoip/models.py +msgid "GeoIP: client IP address not found in City database." +msgstr "GeoIP: IP-адрес клиента не найден в базе данных городов." + +#: authentik/policies/geoip/models.py +msgid "Client IP is not in an allowed country." +msgstr "IP-адрес клиента находится не в разрешенной стране." + +#: authentik/policies/geoip/models.py +msgid "GeoIP Policy" +msgstr "Политика GeoIP" + +#: authentik/policies/geoip/models.py +msgid "GeoIP Policies" +msgstr "Политики GeoIP" + #: authentik/policies/models.py msgid "all, all policies must pass" msgstr "все, все политики должны пройти" @@ -1708,6 +1767,14 @@ msgstr "Radius Провайдер" msgid "Radius Providers" msgstr "Radius Провайдеры" +#: authentik/providers/radius/models.py +msgid "Radius Provider Property Mapping" +msgstr "Сопоставление свойства Radius провайдера" + +#: authentik/providers/radius/models.py +msgid "Radius Provider Property Mappings" +msgstr "Сопоставление свойств Radius провайдера" + #: authentik/providers/saml/api/providers.py msgid "Invalid XML Syntax" msgstr "Некорректный синтаксис XML" @@ -1868,12 +1935,12 @@ msgid "SAML Providers" msgstr "SAML Провайдеры" #: authentik/providers/saml/models.py -msgid "SAML Property Mapping" -msgstr "Сопоставление свойств SAML" +msgid "SAML Provider Property Mapping" +msgstr "Сопоставление свойства SAML провайдера" #: authentik/providers/saml/models.py -msgid "SAML Property Mappings" -msgstr "Сопоставления свойств SAML" +msgid "SAML Provider Property Mappings" +msgstr "Сопоставление свойств SAML провайдера" #: authentik/providers/saml/models.py msgid "SAML Provider from Metadata" @@ -1900,12 +1967,12 @@ msgid "SCIM Providers" msgstr "SCIM Провайдеры" #: authentik/providers/scim/models.py -msgid "SCIM Mapping" -msgstr "Сопоставление SCIM" +msgid "SCIM Provider Mapping" +msgstr "Сопоставление свойства SCIM" #: authentik/providers/scim/models.py -msgid "SCIM Mappings" -msgstr "Сопоставления SCIM" +msgid "SCIM Provider Mappings" +msgstr "Сопоставления свойств SCIM" #: authentik/rbac/models.py msgid "Role" @@ -2042,12 +2109,12 @@ msgid "LDAP Sources" msgstr "Источники LDAP" #: authentik/sources/ldap/models.py -msgid "LDAP Property Mapping" -msgstr "Сопоставление свойств LDAP" +msgid "LDAP Source Property Mapping" +msgstr "Сопоставление свойства LDAP источника" #: authentik/sources/ldap/models.py -msgid "LDAP Property Mappings" -msgstr "Сопоставления свойств LDAP" +msgid "LDAP Source Property Mappings" +msgstr "Сопоставление свойств LDAP источника" #: authentik/sources/ldap/signals.py msgid "Password does not match Active Directory Complexity." @@ -2219,6 +2286,14 @@ msgstr "Источник Reddit OAuth" msgid "Reddit OAuth Sources" msgstr "Источники Reddit OAuth" +#: authentik/sources/oauth/models.py +msgid "OAuth Source Property Mapping" +msgstr "Сопоставление свойства OAuth источника" + +#: authentik/sources/oauth/models.py +msgid "OAuth Source Property Mappings" +msgstr "Сопоставление свойств OAuth источника" + #: authentik/sources/oauth/models.py msgid "User OAuth Source Connection" msgstr "Пользовательское подключение к источнику OAuth" @@ -2227,6 +2302,14 @@ msgstr "Пользовательское подключение к источн msgid "User OAuth Source Connections" msgstr "Пользовательские подключения к источнику OAuth" +#: authentik/sources/oauth/models.py +msgid "Group OAuth Source Connection" +msgstr "Групповое подключение к источнику OAuth" + +#: authentik/sources/oauth/models.py +msgid "Group OAuth Source Connections" +msgstr "Групповые подключения к источнику OAuth" + #: authentik/sources/oauth/views/callback.py #, python-brace-format msgid "Authentication failed: {reason}" @@ -2261,6 +2344,14 @@ msgstr "Источник Plex" msgid "Plex Sources" msgstr "Источники Plex" +#: authentik/sources/plex/models.py +msgid "Plex Source Property Mapping" +msgstr "Сопоставление свойства Plex источника" + +#: authentik/sources/plex/models.py +msgid "Plex Source Property Mappings" +msgstr "Сопоставление свойств Plex источника" + #: authentik/sources/plex/models.py msgid "User Plex Source Connection" msgstr "Пользовательское подключение к источнику Plex" @@ -2269,6 +2360,14 @@ msgstr "Пользовательское подключение к источн msgid "User Plex Source Connections" msgstr "Пользовательские подключения к источнику Plex" +#: authentik/sources/plex/models.py +msgid "Group Plex Source Connection" +msgstr "Групповое подключение к источнику Plex" + +#: authentik/sources/plex/models.py +msgid "Group Plex Source Connections" +msgstr "Групповые подключения к источнику Plex" + #: authentik/sources/saml/models.py msgid "Redirect Binding" msgstr "Привязка переадресации" @@ -2351,6 +2450,21 @@ msgstr "" "Пара ключей, используемая для подписи исходящих ответов, направляемых " "провайдеру идентификационных данных." +#: authentik/sources/saml/models.py +msgid "" +"When selected, incoming assertions are encrypted by the IdP using the public" +" key of the encryption keypair. The assertion is decrypted by the SP using " +"the the private key." +msgstr "" +"При выборе этого варианта, входящие утверждения шифруются поставщиком " +"идентификации (IdP) с использованием открытого ключа из пары ключей " +"шифрования. Утверждение расшифровывается поставщиком услуг (SP) с " +"использованием закрытого ключа." + +#: authentik/sources/saml/models.py +msgid "Encryption Keypair" +msgstr "Пара ключей шифрования" + #: authentik/sources/saml/models.py msgid "SAML Source" msgstr "Источник SAML" @@ -2359,6 +2473,14 @@ msgstr "Источник SAML" msgid "SAML Sources" msgstr "Источники SAML" +#: authentik/sources/saml/models.py +msgid "SAML Source Property Mapping" +msgstr "Сопоставление свойства SAML источника" + +#: authentik/sources/saml/models.py +msgid "SAML Source Property Mappings" +msgstr "Сопоставление свойств SAML источника" + #: authentik/sources/saml/models.py msgid "User SAML Source Connection" msgstr "Пользовательское подключение к источнику SAML" @@ -2367,6 +2489,14 @@ msgstr "Пользовательское подключение к источн msgid "User SAML Source Connections" msgstr "Пользовательские подключения к источнику SAML" +#: authentik/sources/saml/models.py +msgid "Group SAML Source Connection" +msgstr "Групповое подключение к источнику SAML" + +#: authentik/sources/saml/models.py +msgid "Group SAML Source Connections" +msgstr "Групповые подключения к источнику SAML" + #: authentik/sources/scim/models.py msgid "SCIM Source" msgstr "Источник SCIM" @@ -2375,6 +2505,14 @@ msgstr "Источник SCIM" msgid "SCIM Sources" msgstr "Источники SCIM" +#: authentik/sources/scim/models.py +msgid "SCIM Source Property Mapping" +msgstr "Сопоставление свойства SCIM источника" + +#: authentik/sources/scim/models.py +msgid "SCIM Source Property Mappings" +msgstr "Сопоставление свойств SCIM источника" + #: authentik/stages/authenticator_duo/models.py msgid "Duo Authenticator Setup Stage" msgstr "Этап настройки аутентификатора Duo" @@ -3008,6 +3146,14 @@ msgstr "" "Количество попыток пользователя до отмены потока. Чтобы заблокировать " "пользователя, используйте политику репутации и этап user_write." +#: authentik/stages/password/models.py +msgid "" +"When enabled, provides a 'show password' button with the password input " +"field." +msgstr "" +"Если эта функция включена, в поле ввода пароля отображается кнопка " +"\"показать пароль\"." + #: authentik/stages/password/models.py msgid "Password Stage" msgstr "Этап пароля" diff --git a/poetry.lock b/poetry.lock index 2940d8aea018..3947aaebec6e 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1831,13 +1831,13 @@ grpc = ["grpcio (>=1.44.0,<2.0.0.dev0)"] [[package]] name = "gunicorn" -version = "22.0.0" +version = "23.0.0" description = "WSGI HTTP Server for UNIX" optional = false python-versions = ">=3.7" files = [ - {file = "gunicorn-22.0.0-py3-none-any.whl", hash = "sha256:350679f91b24062c86e386e198a15438d53a7a8207235a78ba1b53df4c4378d9"}, - {file = "gunicorn-22.0.0.tar.gz", hash = "sha256:4a0b436239ff76fb33f11c07a16482c521a7e09c1ce3cc293c2330afe01bec63"}, + {file = "gunicorn-23.0.0-py3-none-any.whl", hash = "sha256:ec400d38950de4dfd418cff8328b2c8faed0edb0d517d3394e457c317908ca4d"}, + {file = "gunicorn-23.0.0.tar.gz", hash = "sha256:f014447a0101dc57e294f6c18ca6b40227a4c90e9bdb586042628030cba004ec"}, ] [package.dependencies] @@ -2280,153 +2280,149 @@ pyasn1 = ">=0.4.6" [[package]] name = "lxml" -version = "5.2.2" +version = "5.3.0" description = "Powerful and Pythonic XML processing library combining libxml2/libxslt with the ElementTree API." optional = false python-versions = ">=3.6" files = [ - {file = "lxml-5.2.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:364d03207f3e603922d0d3932ef363d55bbf48e3647395765f9bfcbdf6d23632"}, - {file = "lxml-5.2.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:50127c186f191b8917ea2fb8b206fbebe87fd414a6084d15568c27d0a21d60db"}, - {file = "lxml-5.2.2-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:74e4f025ef3db1c6da4460dd27c118d8cd136d0391da4e387a15e48e5c975147"}, - {file = "lxml-5.2.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:981a06a3076997adf7c743dcd0d7a0415582661e2517c7d961493572e909aa1d"}, - {file = "lxml-5.2.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:aef5474d913d3b05e613906ba4090433c515e13ea49c837aca18bde190853dff"}, - {file = "lxml-5.2.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1e275ea572389e41e8b039ac076a46cb87ee6b8542df3fff26f5baab43713bca"}, - {file = "lxml-5.2.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f5b65529bb2f21ac7861a0e94fdbf5dc0daab41497d18223b46ee8515e5ad297"}, - {file = "lxml-5.2.2-cp310-cp310-manylinux_2_28_aarch64.whl", hash = "sha256:bcc98f911f10278d1daf14b87d65325851a1d29153caaf146877ec37031d5f36"}, - {file = "lxml-5.2.2-cp310-cp310-manylinux_2_28_ppc64le.whl", hash = "sha256:b47633251727c8fe279f34025844b3b3a3e40cd1b198356d003aa146258d13a2"}, - {file = "lxml-5.2.2-cp310-cp310-manylinux_2_28_s390x.whl", hash = "sha256:fbc9d316552f9ef7bba39f4edfad4a734d3d6f93341232a9dddadec4f15d425f"}, - {file = "lxml-5.2.2-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:13e69be35391ce72712184f69000cda04fc89689429179bc4c0ae5f0b7a8c21b"}, - {file = "lxml-5.2.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:3b6a30a9ab040b3f545b697cb3adbf3696c05a3a68aad172e3fd7ca73ab3c835"}, - {file = "lxml-5.2.2-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:a233bb68625a85126ac9f1fc66d24337d6e8a0f9207b688eec2e7c880f012ec0"}, - {file = "lxml-5.2.2-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:dfa7c241073d8f2b8e8dbc7803c434f57dbb83ae2a3d7892dd068d99e96efe2c"}, - {file = "lxml-5.2.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:1a7aca7964ac4bb07680d5c9d63b9d7028cace3e2d43175cb50bba8c5ad33316"}, - {file = "lxml-5.2.2-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:ae4073a60ab98529ab8a72ebf429f2a8cc612619a8c04e08bed27450d52103c0"}, - {file = "lxml-5.2.2-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:ffb2be176fed4457e445fe540617f0252a72a8bc56208fd65a690fdb1f57660b"}, - {file = "lxml-5.2.2-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:e290d79a4107d7d794634ce3e985b9ae4f920380a813717adf61804904dc4393"}, - {file = "lxml-5.2.2-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:96e85aa09274955bb6bd483eaf5b12abadade01010478154b0ec70284c1b1526"}, - {file = "lxml-5.2.2-cp310-cp310-win32.whl", hash = "sha256:f956196ef61369f1685d14dad80611488d8dc1ef00be57c0c5a03064005b0f30"}, - {file = "lxml-5.2.2-cp310-cp310-win_amd64.whl", hash = "sha256:875a3f90d7eb5c5d77e529080d95140eacb3c6d13ad5b616ee8095447b1d22e7"}, - {file = "lxml-5.2.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:45f9494613160d0405682f9eee781c7e6d1bf45f819654eb249f8f46a2c22545"}, - {file = "lxml-5.2.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:b0b3f2df149efb242cee2ffdeb6674b7f30d23c9a7af26595099afaf46ef4e88"}, - {file = "lxml-5.2.2-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d28cb356f119a437cc58a13f8135ab8a4c8ece18159eb9194b0d269ec4e28083"}, - {file = "lxml-5.2.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:657a972f46bbefdbba2d4f14413c0d079f9ae243bd68193cb5061b9732fa54c1"}, - {file = "lxml-5.2.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b74b9ea10063efb77a965a8d5f4182806fbf59ed068b3c3fd6f30d2ac7bee734"}, - {file = "lxml-5.2.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:07542787f86112d46d07d4f3c4e7c760282011b354d012dc4141cc12a68cef5f"}, - {file = "lxml-5.2.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:303f540ad2dddd35b92415b74b900c749ec2010e703ab3bfd6660979d01fd4ed"}, - {file = "lxml-5.2.2-cp311-cp311-manylinux_2_28_aarch64.whl", hash = "sha256:2eb2227ce1ff998faf0cd7fe85bbf086aa41dfc5af3b1d80867ecfe75fb68df3"}, - {file = "lxml-5.2.2-cp311-cp311-manylinux_2_28_ppc64le.whl", hash = "sha256:1d8a701774dfc42a2f0b8ccdfe7dbc140500d1049e0632a611985d943fcf12df"}, - {file = "lxml-5.2.2-cp311-cp311-manylinux_2_28_s390x.whl", hash = "sha256:56793b7a1a091a7c286b5f4aa1fe4ae5d1446fe742d00cdf2ffb1077865db10d"}, - {file = "lxml-5.2.2-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:eb00b549b13bd6d884c863554566095bf6fa9c3cecb2e7b399c4bc7904cb33b5"}, - {file = "lxml-5.2.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:1a2569a1f15ae6c8c64108a2cd2b4a858fc1e13d25846be0666fc144715e32ab"}, - {file = "lxml-5.2.2-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:8cf85a6e40ff1f37fe0f25719aadf443686b1ac7652593dc53c7ef9b8492b115"}, - {file = "lxml-5.2.2-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:d237ba6664b8e60fd90b8549a149a74fcc675272e0e95539a00522e4ca688b04"}, - {file = "lxml-5.2.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:0b3f5016e00ae7630a4b83d0868fca1e3d494c78a75b1c7252606a3a1c5fc2ad"}, - {file = "lxml-5.2.2-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:23441e2b5339bc54dc949e9e675fa35efe858108404ef9aa92f0456929ef6fe8"}, - {file = "lxml-5.2.2-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:2fb0ba3e8566548d6c8e7dd82a8229ff47bd8fb8c2da237607ac8e5a1b8312e5"}, - {file = "lxml-5.2.2-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:79d1fb9252e7e2cfe4de6e9a6610c7cbb99b9708e2c3e29057f487de5a9eaefa"}, - {file = "lxml-5.2.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:6dcc3d17eac1df7859ae01202e9bb11ffa8c98949dcbeb1069c8b9a75917e01b"}, - {file = "lxml-5.2.2-cp311-cp311-win32.whl", hash = "sha256:4c30a2f83677876465f44c018830f608fa3c6a8a466eb223535035fbc16f3438"}, - {file = "lxml-5.2.2-cp311-cp311-win_amd64.whl", hash = "sha256:49095a38eb333aaf44c06052fd2ec3b8f23e19747ca7ec6f6c954ffea6dbf7be"}, - {file = "lxml-5.2.2-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:7429e7faa1a60cad26ae4227f4dd0459efde239e494c7312624ce228e04f6391"}, - {file = "lxml-5.2.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:50ccb5d355961c0f12f6cf24b7187dbabd5433f29e15147a67995474f27d1776"}, - {file = "lxml-5.2.2-cp312-cp312-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:dc911208b18842a3a57266d8e51fc3cfaccee90a5351b92079beed912a7914c2"}, - {file = "lxml-5.2.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:33ce9e786753743159799fdf8e92a5da351158c4bfb6f2db0bf31e7892a1feb5"}, - {file = "lxml-5.2.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ec87c44f619380878bd49ca109669c9f221d9ae6883a5bcb3616785fa8f94c97"}, - {file = "lxml-5.2.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:08ea0f606808354eb8f2dfaac095963cb25d9d28e27edcc375d7b30ab01abbf6"}, - {file = "lxml-5.2.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:75a9632f1d4f698b2e6e2e1ada40e71f369b15d69baddb8968dcc8e683839b18"}, - {file = "lxml-5.2.2-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:74da9f97daec6928567b48c90ea2c82a106b2d500f397eeb8941e47d30b1ca85"}, - {file = "lxml-5.2.2-cp312-cp312-manylinux_2_28_ppc64le.whl", hash = "sha256:0969e92af09c5687d769731e3f39ed62427cc72176cebb54b7a9d52cc4fa3b73"}, - {file = "lxml-5.2.2-cp312-cp312-manylinux_2_28_s390x.whl", hash = "sha256:9164361769b6ca7769079f4d426a41df6164879f7f3568be9086e15baca61466"}, - {file = "lxml-5.2.2-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:d26a618ae1766279f2660aca0081b2220aca6bd1aa06b2cf73f07383faf48927"}, - {file = "lxml-5.2.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:ab67ed772c584b7ef2379797bf14b82df9aa5f7438c5b9a09624dd834c1c1aaf"}, - {file = "lxml-5.2.2-cp312-cp312-musllinux_1_1_ppc64le.whl", hash = "sha256:3d1e35572a56941b32c239774d7e9ad724074d37f90c7a7d499ab98761bd80cf"}, - {file = "lxml-5.2.2-cp312-cp312-musllinux_1_1_s390x.whl", hash = "sha256:8268cbcd48c5375f46e000adb1390572c98879eb4f77910c6053d25cc3ac2c67"}, - {file = "lxml-5.2.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:e282aedd63c639c07c3857097fc0e236f984ceb4089a8b284da1c526491e3f3d"}, - {file = "lxml-5.2.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:6dfdc2bfe69e9adf0df4915949c22a25b39d175d599bf98e7ddf620a13678585"}, - {file = "lxml-5.2.2-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:4aefd911793b5d2d7a921233a54c90329bf3d4a6817dc465f12ffdfe4fc7b8fe"}, - {file = "lxml-5.2.2-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:8b8df03a9e995b6211dafa63b32f9d405881518ff1ddd775db4e7b98fb545e1c"}, - {file = "lxml-5.2.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:f11ae142f3a322d44513de1018b50f474f8f736bc3cd91d969f464b5bfef8836"}, - {file = "lxml-5.2.2-cp312-cp312-win32.whl", hash = "sha256:16a8326e51fcdffc886294c1e70b11ddccec836516a343f9ed0f82aac043c24a"}, - {file = "lxml-5.2.2-cp312-cp312-win_amd64.whl", hash = "sha256:bbc4b80af581e18568ff07f6395c02114d05f4865c2812a1f02f2eaecf0bfd48"}, - {file = "lxml-5.2.2-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:e3d9d13603410b72787579769469af730c38f2f25505573a5888a94b62b920f8"}, - {file = "lxml-5.2.2-cp36-cp36m-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:38b67afb0a06b8575948641c1d6d68e41b83a3abeae2ca9eed2ac59892b36706"}, - {file = "lxml-5.2.2-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c689d0d5381f56de7bd6966a4541bff6e08bf8d3871bbd89a0c6ab18aa699573"}, - {file = "lxml-5.2.2-cp36-cp36m-manylinux_2_28_x86_64.whl", hash = "sha256:cf2a978c795b54c539f47964ec05e35c05bd045db5ca1e8366988c7f2fe6b3ce"}, - {file = "lxml-5.2.2-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:739e36ef7412b2bd940f75b278749106e6d025e40027c0b94a17ef7968d55d56"}, - {file = "lxml-5.2.2-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:d8bbcd21769594dbba9c37d3c819e2d5847656ca99c747ddb31ac1701d0c0ed9"}, - {file = "lxml-5.2.2-cp36-cp36m-musllinux_1_2_x86_64.whl", hash = "sha256:2304d3c93f2258ccf2cf7a6ba8c761d76ef84948d87bf9664e14d203da2cd264"}, - {file = "lxml-5.2.2-cp36-cp36m-win32.whl", hash = "sha256:02437fb7308386867c8b7b0e5bc4cd4b04548b1c5d089ffb8e7b31009b961dc3"}, - {file = "lxml-5.2.2-cp36-cp36m-win_amd64.whl", hash = "sha256:edcfa83e03370032a489430215c1e7783128808fd3e2e0a3225deee278585196"}, - {file = "lxml-5.2.2-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:28bf95177400066596cdbcfc933312493799382879da504633d16cf60bba735b"}, - {file = "lxml-5.2.2-cp37-cp37m-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3a745cc98d504d5bd2c19b10c79c61c7c3df9222629f1b6210c0368177589fb8"}, - {file = "lxml-5.2.2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1b590b39ef90c6b22ec0be925b211298e810b4856909c8ca60d27ffbca6c12e6"}, - {file = "lxml-5.2.2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b336b0416828022bfd5a2e3083e7f5ba54b96242159f83c7e3eebaec752f1716"}, - {file = "lxml-5.2.2-cp37-cp37m-manylinux_2_28_aarch64.whl", hash = "sha256:c2faf60c583af0d135e853c86ac2735ce178f0e338a3c7f9ae8f622fd2eb788c"}, - {file = "lxml-5.2.2-cp37-cp37m-manylinux_2_28_x86_64.whl", hash = "sha256:4bc6cb140a7a0ad1f7bc37e018d0ed690b7b6520ade518285dc3171f7a117905"}, - {file = "lxml-5.2.2-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:7ff762670cada8e05b32bf1e4dc50b140790909caa8303cfddc4d702b71ea184"}, - {file = "lxml-5.2.2-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:57f0a0bbc9868e10ebe874e9f129d2917750adf008fe7b9c1598c0fbbfdde6a6"}, - {file = "lxml-5.2.2-cp37-cp37m-musllinux_1_2_aarch64.whl", hash = "sha256:a6d2092797b388342c1bc932077ad232f914351932353e2e8706851c870bca1f"}, - {file = "lxml-5.2.2-cp37-cp37m-musllinux_1_2_x86_64.whl", hash = "sha256:60499fe961b21264e17a471ec296dcbf4365fbea611bf9e303ab69db7159ce61"}, - {file = "lxml-5.2.2-cp37-cp37m-win32.whl", hash = "sha256:d9b342c76003c6b9336a80efcc766748a333573abf9350f4094ee46b006ec18f"}, - {file = "lxml-5.2.2-cp37-cp37m-win_amd64.whl", hash = "sha256:b16db2770517b8799c79aa80f4053cd6f8b716f21f8aca962725a9565ce3ee40"}, - {file = "lxml-5.2.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:7ed07b3062b055d7a7f9d6557a251cc655eed0b3152b76de619516621c56f5d3"}, - {file = "lxml-5.2.2-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f60fdd125d85bf9c279ffb8e94c78c51b3b6a37711464e1f5f31078b45002421"}, - {file = "lxml-5.2.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8a7e24cb69ee5f32e003f50e016d5fde438010c1022c96738b04fc2423e61706"}, - {file = "lxml-5.2.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:23cfafd56887eaed93d07bc4547abd5e09d837a002b791e9767765492a75883f"}, - {file = "lxml-5.2.2-cp38-cp38-manylinux_2_28_aarch64.whl", hash = "sha256:19b4e485cd07b7d83e3fe3b72132e7df70bfac22b14fe4bf7a23822c3a35bff5"}, - {file = "lxml-5.2.2-cp38-cp38-manylinux_2_28_x86_64.whl", hash = "sha256:7ce7ad8abebe737ad6143d9d3bf94b88b93365ea30a5b81f6877ec9c0dee0a48"}, - {file = "lxml-5.2.2-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:e49b052b768bb74f58c7dda4e0bdf7b79d43a9204ca584ffe1fb48a6f3c84c66"}, - {file = "lxml-5.2.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:d14a0d029a4e176795cef99c056d58067c06195e0c7e2dbb293bf95c08f772a3"}, - {file = "lxml-5.2.2-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:be49ad33819d7dcc28a309b86d4ed98e1a65f3075c6acd3cd4fe32103235222b"}, - {file = "lxml-5.2.2-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:a6d17e0370d2516d5bb9062c7b4cb731cff921fc875644c3d751ad857ba9c5b1"}, - {file = "lxml-5.2.2-cp38-cp38-win32.whl", hash = "sha256:5b8c041b6265e08eac8a724b74b655404070b636a8dd6d7a13c3adc07882ef30"}, - {file = "lxml-5.2.2-cp38-cp38-win_amd64.whl", hash = "sha256:f61efaf4bed1cc0860e567d2ecb2363974d414f7f1f124b1df368bbf183453a6"}, - {file = "lxml-5.2.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:fb91819461b1b56d06fa4bcf86617fac795f6a99d12239fb0c68dbeba41a0a30"}, - {file = "lxml-5.2.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:d4ed0c7cbecde7194cd3228c044e86bf73e30a23505af852857c09c24e77ec5d"}, - {file = "lxml-5.2.2-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:54401c77a63cc7d6dc4b4e173bb484f28a5607f3df71484709fe037c92d4f0ed"}, - {file = "lxml-5.2.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:625e3ef310e7fa3a761d48ca7ea1f9d8718a32b1542e727d584d82f4453d5eeb"}, - {file = "lxml-5.2.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:519895c99c815a1a24a926d5b60627ce5ea48e9f639a5cd328bda0515ea0f10c"}, - {file = "lxml-5.2.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c7079d5eb1c1315a858bbf180000757db8ad904a89476653232db835c3114001"}, - {file = "lxml-5.2.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:343ab62e9ca78094f2306aefed67dcfad61c4683f87eee48ff2fd74902447726"}, - {file = "lxml-5.2.2-cp39-cp39-manylinux_2_28_aarch64.whl", hash = "sha256:cd9e78285da6c9ba2d5c769628f43ef66d96ac3085e59b10ad4f3707980710d3"}, - {file = "lxml-5.2.2-cp39-cp39-manylinux_2_28_ppc64le.whl", hash = "sha256:546cf886f6242dff9ec206331209db9c8e1643ae642dea5fdbecae2453cb50fd"}, - {file = "lxml-5.2.2-cp39-cp39-manylinux_2_28_s390x.whl", hash = "sha256:02f6a8eb6512fdc2fd4ca10a49c341c4e109aa6e9448cc4859af5b949622715a"}, - {file = "lxml-5.2.2-cp39-cp39-manylinux_2_28_x86_64.whl", hash = "sha256:339ee4a4704bc724757cd5dd9dc8cf4d00980f5d3e6e06d5847c1b594ace68ab"}, - {file = "lxml-5.2.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:0a028b61a2e357ace98b1615fc03f76eb517cc028993964fe08ad514b1e8892d"}, - {file = "lxml-5.2.2-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:f90e552ecbad426eab352e7b2933091f2be77115bb16f09f78404861c8322981"}, - {file = "lxml-5.2.2-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:d83e2d94b69bf31ead2fa45f0acdef0757fa0458a129734f59f67f3d2eb7ef32"}, - {file = "lxml-5.2.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:a02d3c48f9bb1e10c7788d92c0c7db6f2002d024ab6e74d6f45ae33e3d0288a3"}, - {file = "lxml-5.2.2-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:6d68ce8e7b2075390e8ac1e1d3a99e8b6372c694bbe612632606d1d546794207"}, - {file = "lxml-5.2.2-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:453d037e09a5176d92ec0fd282e934ed26d806331a8b70ab431a81e2fbabf56d"}, - {file = "lxml-5.2.2-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:3b019d4ee84b683342af793b56bb35034bd749e4cbdd3d33f7d1107790f8c472"}, - {file = "lxml-5.2.2-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:cb3942960f0beb9f46e2a71a3aca220d1ca32feb5a398656be934320804c0df9"}, - {file = "lxml-5.2.2-cp39-cp39-win32.whl", hash = "sha256:ac6540c9fff6e3813d29d0403ee7a81897f1d8ecc09a8ff84d2eea70ede1cdbf"}, - {file = "lxml-5.2.2-cp39-cp39-win_amd64.whl", hash = "sha256:610b5c77428a50269f38a534057444c249976433f40f53e3b47e68349cca1425"}, - {file = "lxml-5.2.2-pp310-pypy310_pp73-macosx_10_9_x86_64.whl", hash = "sha256:b537bd04d7ccd7c6350cdaaaad911f6312cbd61e6e6045542f781c7f8b2e99d2"}, - {file = "lxml-5.2.2-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4820c02195d6dfb7b8508ff276752f6b2ff8b64ae5d13ebe02e7667e035000b9"}, - {file = "lxml-5.2.2-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f2a09f6184f17a80897172863a655467da2b11151ec98ba8d7af89f17bf63dae"}, - {file = "lxml-5.2.2-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:76acba4c66c47d27c8365e7c10b3d8016a7da83d3191d053a58382311a8bf4e1"}, - {file = "lxml-5.2.2-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:b128092c927eaf485928cec0c28f6b8bead277e28acf56800e972aa2c2abd7a2"}, - {file = "lxml-5.2.2-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:ae791f6bd43305aade8c0e22f816b34f3b72b6c820477aab4d18473a37e8090b"}, - {file = "lxml-5.2.2-pp37-pypy37_pp73-macosx_10_9_x86_64.whl", hash = "sha256:a2f6a1bc2460e643785a2cde17293bd7a8f990884b822f7bca47bee0a82fc66b"}, - {file = "lxml-5.2.2-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8e8d351ff44c1638cb6e980623d517abd9f580d2e53bfcd18d8941c052a5a009"}, - {file = "lxml-5.2.2-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bec4bd9133420c5c52d562469c754f27c5c9e36ee06abc169612c959bd7dbb07"}, - {file = "lxml-5.2.2-pp37-pypy37_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:55ce6b6d803890bd3cc89975fca9de1dff39729b43b73cb15ddd933b8bc20484"}, - {file = "lxml-5.2.2-pp37-pypy37_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:8ab6a358d1286498d80fe67bd3d69fcbc7d1359b45b41e74c4a26964ca99c3f8"}, - {file = "lxml-5.2.2-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:06668e39e1f3c065349c51ac27ae430719d7806c026fec462e5693b08b95696b"}, - {file = "lxml-5.2.2-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:9cd5323344d8ebb9fb5e96da5de5ad4ebab993bbf51674259dbe9d7a18049525"}, - {file = "lxml-5.2.2-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:89feb82ca055af0fe797a2323ec9043b26bc371365847dbe83c7fd2e2f181c34"}, - {file = "lxml-5.2.2-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e481bba1e11ba585fb06db666bfc23dbe181dbafc7b25776156120bf12e0d5a6"}, - {file = "lxml-5.2.2-pp38-pypy38_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:9d6c6ea6a11ca0ff9cd0390b885984ed31157c168565702959c25e2191674a14"}, - {file = "lxml-5.2.2-pp38-pypy38_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:3d98de734abee23e61f6b8c2e08a88453ada7d6486dc7cdc82922a03968928db"}, - {file = "lxml-5.2.2-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:69ab77a1373f1e7563e0fb5a29a8440367dec051da6c7405333699d07444f511"}, - {file = "lxml-5.2.2-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:34e17913c431f5ae01d8658dbf792fdc457073dcdfbb31dc0cc6ab256e664a8d"}, - {file = "lxml-5.2.2-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:05f8757b03208c3f50097761be2dea0aba02e94f0dc7023ed73a7bb14ff11eb0"}, - {file = "lxml-5.2.2-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6a520b4f9974b0a0a6ed73c2154de57cdfd0c8800f4f15ab2b73238ffed0b36e"}, - {file = "lxml-5.2.2-pp39-pypy39_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:5e097646944b66207023bc3c634827de858aebc226d5d4d6d16f0b77566ea182"}, - {file = "lxml-5.2.2-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:b5e4ef22ff25bfd4ede5f8fb30f7b24446345f3e79d9b7455aef2836437bc38a"}, - {file = "lxml-5.2.2-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:ff69a9a0b4b17d78170c73abe2ab12084bdf1691550c5629ad1fe7849433f324"}, - {file = "lxml-5.2.2.tar.gz", hash = "sha256:bb2dc4898180bea79863d5487e5f9c7c34297414bad54bcd0f0852aee9cfdb87"}, + {file = "lxml-5.3.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:dd36439be765e2dde7660212b5275641edbc813e7b24668831a5c8ac91180656"}, + {file = "lxml-5.3.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:ae5fe5c4b525aa82b8076c1a59d642c17b6e8739ecf852522c6321852178119d"}, + {file = "lxml-5.3.0-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:501d0d7e26b4d261fca8132854d845e4988097611ba2531408ec91cf3fd9d20a"}, + {file = "lxml-5.3.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fb66442c2546446944437df74379e9cf9e9db353e61301d1a0e26482f43f0dd8"}, + {file = "lxml-5.3.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9e41506fec7a7f9405b14aa2d5c8abbb4dbbd09d88f9496958b6d00cb4d45330"}, + {file = "lxml-5.3.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f7d4a670107d75dfe5ad080bed6c341d18c4442f9378c9f58e5851e86eb79965"}, + {file = "lxml-5.3.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:41ce1f1e2c7755abfc7e759dc34d7d05fd221723ff822947132dc934d122fe22"}, + {file = "lxml-5.3.0-cp310-cp310-manylinux_2_28_aarch64.whl", hash = "sha256:44264ecae91b30e5633013fb66f6ddd05c006d3e0e884f75ce0b4755b3e3847b"}, + {file = "lxml-5.3.0-cp310-cp310-manylinux_2_28_ppc64le.whl", hash = "sha256:3c174dc350d3ec52deb77f2faf05c439331d6ed5e702fc247ccb4e6b62d884b7"}, + {file = "lxml-5.3.0-cp310-cp310-manylinux_2_28_s390x.whl", hash = "sha256:2dfab5fa6a28a0b60a20638dc48e6343c02ea9933e3279ccb132f555a62323d8"}, + {file = "lxml-5.3.0-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:b1c8c20847b9f34e98080da785bb2336ea982e7f913eed5809e5a3c872900f32"}, + {file = "lxml-5.3.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:2c86bf781b12ba417f64f3422cfc302523ac9cd1d8ae8c0f92a1c66e56ef2e86"}, + {file = "lxml-5.3.0-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:c162b216070f280fa7da844531169be0baf9ccb17263cf5a8bf876fcd3117fa5"}, + {file = "lxml-5.3.0-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:36aef61a1678cb778097b4a6eeae96a69875d51d1e8f4d4b491ab3cfb54b5a03"}, + {file = "lxml-5.3.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:f65e5120863c2b266dbcc927b306c5b78e502c71edf3295dfcb9501ec96e5fc7"}, + {file = "lxml-5.3.0-cp310-cp310-win32.whl", hash = "sha256:ef0c1fe22171dd7c7c27147f2e9c3e86f8bdf473fed75f16b0c2e84a5030ce80"}, + {file = "lxml-5.3.0-cp310-cp310-win_amd64.whl", hash = "sha256:052d99051e77a4f3e8482c65014cf6372e61b0a6f4fe9edb98503bb5364cfee3"}, + {file = "lxml-5.3.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:74bcb423462233bc5d6066e4e98b0264e7c1bed7541fff2f4e34fe6b21563c8b"}, + {file = "lxml-5.3.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:a3d819eb6f9b8677f57f9664265d0a10dd6551d227afb4af2b9cd7bdc2ccbf18"}, + {file = "lxml-5.3.0-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5b8f5db71b28b8c404956ddf79575ea77aa8b1538e8b2ef9ec877945b3f46442"}, + {file = "lxml-5.3.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2c3406b63232fc7e9b8783ab0b765d7c59e7c59ff96759d8ef9632fca27c7ee4"}, + {file = "lxml-5.3.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2ecdd78ab768f844c7a1d4a03595038c166b609f6395e25af9b0f3f26ae1230f"}, + {file = "lxml-5.3.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:168f2dfcfdedf611eb285efac1516c8454c8c99caf271dccda8943576b67552e"}, + {file = "lxml-5.3.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:aa617107a410245b8660028a7483b68e7914304a6d4882b5ff3d2d3eb5948d8c"}, + {file = "lxml-5.3.0-cp311-cp311-manylinux_2_28_aarch64.whl", hash = "sha256:69959bd3167b993e6e710b99051265654133a98f20cec1d9b493b931942e9c16"}, + {file = "lxml-5.3.0-cp311-cp311-manylinux_2_28_ppc64le.whl", hash = "sha256:bd96517ef76c8654446fc3db9242d019a1bb5fe8b751ba414765d59f99210b79"}, + {file = "lxml-5.3.0-cp311-cp311-manylinux_2_28_s390x.whl", hash = "sha256:ab6dd83b970dc97c2d10bc71aa925b84788c7c05de30241b9e96f9b6d9ea3080"}, + {file = "lxml-5.3.0-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:eec1bb8cdbba2925bedc887bc0609a80e599c75b12d87ae42ac23fd199445654"}, + {file = "lxml-5.3.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:6a7095eeec6f89111d03dabfe5883a1fd54da319c94e0fb104ee8f23616b572d"}, + {file = "lxml-5.3.0-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:6f651ebd0b21ec65dfca93aa629610a0dbc13dbc13554f19b0113da2e61a4763"}, + {file = "lxml-5.3.0-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:f422a209d2455c56849442ae42f25dbaaba1c6c3f501d58761c619c7836642ec"}, + {file = "lxml-5.3.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:62f7fdb0d1ed2065451f086519865b4c90aa19aed51081979ecd05a21eb4d1be"}, + {file = "lxml-5.3.0-cp311-cp311-win32.whl", hash = "sha256:c6379f35350b655fd817cd0d6cbeef7f265f3ae5fedb1caae2eb442bbeae9ab9"}, + {file = "lxml-5.3.0-cp311-cp311-win_amd64.whl", hash = "sha256:9c52100e2c2dbb0649b90467935c4b0de5528833c76a35ea1a2691ec9f1ee7a1"}, + {file = "lxml-5.3.0-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:e99f5507401436fdcc85036a2e7dc2e28d962550afe1cbfc07c40e454256a859"}, + {file = "lxml-5.3.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:384aacddf2e5813a36495233b64cb96b1949da72bef933918ba5c84e06af8f0e"}, + {file = "lxml-5.3.0-cp312-cp312-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:874a216bf6afaf97c263b56371434e47e2c652d215788396f60477540298218f"}, + {file = "lxml-5.3.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:65ab5685d56914b9a2a34d67dd5488b83213d680b0c5d10b47f81da5a16b0b0e"}, + {file = "lxml-5.3.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:aac0bbd3e8dd2d9c45ceb82249e8bdd3ac99131a32b4d35c8af3cc9db1657179"}, + {file = "lxml-5.3.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b369d3db3c22ed14c75ccd5af429086f166a19627e84a8fdade3f8f31426e52a"}, + {file = "lxml-5.3.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c24037349665434f375645fa9d1f5304800cec574d0310f618490c871fd902b3"}, + {file = "lxml-5.3.0-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:62d172f358f33a26d6b41b28c170c63886742f5b6772a42b59b4f0fa10526cb1"}, + {file = "lxml-5.3.0-cp312-cp312-manylinux_2_28_ppc64le.whl", hash = "sha256:c1f794c02903c2824fccce5b20c339a1a14b114e83b306ff11b597c5f71a1c8d"}, + {file = "lxml-5.3.0-cp312-cp312-manylinux_2_28_s390x.whl", hash = "sha256:5d6a6972b93c426ace71e0be9a6f4b2cfae9b1baed2eed2006076a746692288c"}, + {file = "lxml-5.3.0-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:3879cc6ce938ff4eb4900d901ed63555c778731a96365e53fadb36437a131a99"}, + {file = "lxml-5.3.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:74068c601baff6ff021c70f0935b0c7bc528baa8ea210c202e03757c68c5a4ff"}, + {file = "lxml-5.3.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:ecd4ad8453ac17bc7ba3868371bffb46f628161ad0eefbd0a855d2c8c32dd81a"}, + {file = "lxml-5.3.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:7e2f58095acc211eb9d8b5771bf04df9ff37d6b87618d1cbf85f92399c98dae8"}, + {file = "lxml-5.3.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:e63601ad5cd8f860aa99d109889b5ac34de571c7ee902d6812d5d9ddcc77fa7d"}, + {file = "lxml-5.3.0-cp312-cp312-win32.whl", hash = "sha256:17e8d968d04a37c50ad9c456a286b525d78c4a1c15dd53aa46c1d8e06bf6fa30"}, + {file = "lxml-5.3.0-cp312-cp312-win_amd64.whl", hash = "sha256:c1a69e58a6bb2de65902051d57fde951febad631a20a64572677a1052690482f"}, + {file = "lxml-5.3.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:8c72e9563347c7395910de6a3100a4840a75a6f60e05af5e58566868d5eb2d6a"}, + {file = "lxml-5.3.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:e92ce66cd919d18d14b3856906a61d3f6b6a8500e0794142338da644260595cd"}, + {file = "lxml-5.3.0-cp313-cp313-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1d04f064bebdfef9240478f7a779e8c5dc32b8b7b0b2fc6a62e39b928d428e51"}, + {file = "lxml-5.3.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5c2fb570d7823c2bbaf8b419ba6e5662137f8166e364a8b2b91051a1fb40ab8b"}, + {file = "lxml-5.3.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:0c120f43553ec759f8de1fee2f4794452b0946773299d44c36bfe18e83caf002"}, + {file = "lxml-5.3.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:562e7494778a69086f0312ec9689f6b6ac1c6b65670ed7d0267e49f57ffa08c4"}, + {file = "lxml-5.3.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:423b121f7e6fa514ba0c7918e56955a1d4470ed35faa03e3d9f0e3baa4c7e492"}, + {file = "lxml-5.3.0-cp313-cp313-manylinux_2_28_aarch64.whl", hash = "sha256:c00f323cc00576df6165cc9d21a4c21285fa6b9989c5c39830c3903dc4303ef3"}, + {file = "lxml-5.3.0-cp313-cp313-manylinux_2_28_ppc64le.whl", hash = "sha256:1fdc9fae8dd4c763e8a31e7630afef517eab9f5d5d31a278df087f307bf601f4"}, + {file = "lxml-5.3.0-cp313-cp313-manylinux_2_28_s390x.whl", hash = "sha256:658f2aa69d31e09699705949b5fc4719cbecbd4a97f9656a232e7d6c7be1a367"}, + {file = "lxml-5.3.0-cp313-cp313-manylinux_2_28_x86_64.whl", hash = "sha256:1473427aff3d66a3fa2199004c3e601e6c4500ab86696edffdbc84954c72d832"}, + {file = "lxml-5.3.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:a87de7dd873bf9a792bf1e58b1c3887b9264036629a5bf2d2e6579fe8e73edff"}, + {file = "lxml-5.3.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:0d7b36afa46c97875303a94e8f3ad932bf78bace9e18e603f2085b652422edcd"}, + {file = "lxml-5.3.0-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:cf120cce539453ae086eacc0130a324e7026113510efa83ab42ef3fcfccac7fb"}, + {file = "lxml-5.3.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:df5c7333167b9674aa8ae1d4008fa4bc17a313cc490b2cca27838bbdcc6bb15b"}, + {file = "lxml-5.3.0-cp313-cp313-win32.whl", hash = "sha256:c802e1c2ed9f0c06a65bc4ed0189d000ada8049312cfeab6ca635e39c9608957"}, + {file = "lxml-5.3.0-cp313-cp313-win_amd64.whl", hash = "sha256:406246b96d552e0503e17a1006fd27edac678b3fcc9f1be71a2f94b4ff61528d"}, + {file = "lxml-5.3.0-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:8f0de2d390af441fe8b2c12626d103540b5d850d585b18fcada58d972b74a74e"}, + {file = "lxml-5.3.0-cp36-cp36m-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1afe0a8c353746e610bd9031a630a95bcfb1a720684c3f2b36c4710a0a96528f"}, + {file = "lxml-5.3.0-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:56b9861a71575f5795bde89256e7467ece3d339c9b43141dbdd54544566b3b94"}, + {file = "lxml-5.3.0-cp36-cp36m-manylinux_2_28_x86_64.whl", hash = "sha256:9fb81d2824dff4f2e297a276297e9031f46d2682cafc484f49de182aa5e5df99"}, + {file = "lxml-5.3.0-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:2c226a06ecb8cdef28845ae976da407917542c5e6e75dcac7cc33eb04aaeb237"}, + {file = "lxml-5.3.0-cp36-cp36m-musllinux_1_2_x86_64.whl", hash = "sha256:7d3d1ca42870cdb6d0d29939630dbe48fa511c203724820fc0fd507b2fb46577"}, + {file = "lxml-5.3.0-cp36-cp36m-win32.whl", hash = "sha256:094cb601ba9f55296774c2d57ad68730daa0b13dc260e1f941b4d13678239e70"}, + {file = "lxml-5.3.0-cp36-cp36m-win_amd64.whl", hash = "sha256:eafa2c8658f4e560b098fe9fc54539f86528651f61849b22111a9b107d18910c"}, + {file = "lxml-5.3.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:cb83f8a875b3d9b458cada4f880fa498646874ba4011dc974e071a0a84a1b033"}, + {file = "lxml-5.3.0-cp37-cp37m-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:25f1b69d41656b05885aa185f5fdf822cb01a586d1b32739633679699f220391"}, + {file = "lxml-5.3.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:23e0553b8055600b3bf4a00b255ec5c92e1e4aebf8c2c09334f8368e8bd174d6"}, + {file = "lxml-5.3.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9ada35dd21dc6c039259596b358caab6b13f4db4d4a7f8665764d616daf9cc1d"}, + {file = "lxml-5.3.0-cp37-cp37m-manylinux_2_28_aarch64.whl", hash = "sha256:81b4e48da4c69313192d8c8d4311e5d818b8be1afe68ee20f6385d0e96fc9512"}, + {file = "lxml-5.3.0-cp37-cp37m-manylinux_2_28_x86_64.whl", hash = "sha256:2bc9fd5ca4729af796f9f59cd8ff160fe06a474da40aca03fcc79655ddee1a8b"}, + {file = "lxml-5.3.0-cp37-cp37m-musllinux_1_2_aarch64.whl", hash = "sha256:07da23d7ee08577760f0a71d67a861019103e4812c87e2fab26b039054594cc5"}, + {file = "lxml-5.3.0-cp37-cp37m-musllinux_1_2_x86_64.whl", hash = "sha256:ea2e2f6f801696ad7de8aec061044d6c8c0dd4037608c7cab38a9a4d316bfb11"}, + {file = "lxml-5.3.0-cp37-cp37m-win32.whl", hash = "sha256:5c54afdcbb0182d06836cc3d1be921e540be3ebdf8b8a51ee3ef987537455f84"}, + {file = "lxml-5.3.0-cp37-cp37m-win_amd64.whl", hash = "sha256:f2901429da1e645ce548bf9171784c0f74f0718c3f6150ce166be39e4dd66c3e"}, + {file = "lxml-5.3.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:c56a1d43b2f9ee4786e4658c7903f05da35b923fb53c11025712562d5cc02753"}, + {file = "lxml-5.3.0-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6ee8c39582d2652dcd516d1b879451500f8db3fe3607ce45d7c5957ab2596040"}, + {file = "lxml-5.3.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0fdf3a3059611f7585a78ee10399a15566356116a4288380921a4b598d807a22"}, + {file = "lxml-5.3.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:146173654d79eb1fc97498b4280c1d3e1e5d58c398fa530905c9ea50ea849b22"}, + {file = "lxml-5.3.0-cp38-cp38-manylinux_2_28_aarch64.whl", hash = "sha256:0a7056921edbdd7560746f4221dca89bb7a3fe457d3d74267995253f46343f15"}, + {file = "lxml-5.3.0-cp38-cp38-manylinux_2_28_x86_64.whl", hash = "sha256:9e4b47ac0f5e749cfc618efdf4726269441014ae1d5583e047b452a32e221920"}, + {file = "lxml-5.3.0-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:f914c03e6a31deb632e2daa881fe198461f4d06e57ac3d0e05bbcab8eae01945"}, + {file = "lxml-5.3.0-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:213261f168c5e1d9b7535a67e68b1f59f92398dd17a56d934550837143f79c42"}, + {file = "lxml-5.3.0-cp38-cp38-win32.whl", hash = "sha256:218c1b2e17a710e363855594230f44060e2025b05c80d1f0661258142b2add2e"}, + {file = "lxml-5.3.0-cp38-cp38-win_amd64.whl", hash = "sha256:315f9542011b2c4e1d280e4a20ddcca1761993dda3afc7a73b01235f8641e903"}, + {file = "lxml-5.3.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:1ffc23010330c2ab67fac02781df60998ca8fe759e8efde6f8b756a20599c5de"}, + {file = "lxml-5.3.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:2b3778cb38212f52fac9fe913017deea2fdf4eb1a4f8e4cfc6b009a13a6d3fcc"}, + {file = "lxml-5.3.0-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4b0c7a688944891086ba192e21c5229dea54382f4836a209ff8d0a660fac06be"}, + {file = "lxml-5.3.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:747a3d3e98e24597981ca0be0fd922aebd471fa99d0043a3842d00cdcad7ad6a"}, + {file = "lxml-5.3.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:86a6b24b19eaebc448dc56b87c4865527855145d851f9fc3891673ff97950540"}, + {file = "lxml-5.3.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b11a5d918a6216e521c715b02749240fb07ae5a1fefd4b7bf12f833bc8b4fe70"}, + {file = "lxml-5.3.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:68b87753c784d6acb8a25b05cb526c3406913c9d988d51f80adecc2b0775d6aa"}, + {file = "lxml-5.3.0-cp39-cp39-manylinux_2_28_aarch64.whl", hash = "sha256:109fa6fede314cc50eed29e6e56c540075e63d922455346f11e4d7a036d2b8cf"}, + {file = "lxml-5.3.0-cp39-cp39-manylinux_2_28_ppc64le.whl", hash = "sha256:02ced472497b8362c8e902ade23e3300479f4f43e45f4105c85ef43b8db85229"}, + {file = "lxml-5.3.0-cp39-cp39-manylinux_2_28_s390x.whl", hash = "sha256:6b038cc86b285e4f9fea2ba5ee76e89f21ed1ea898e287dc277a25884f3a7dfe"}, + {file = "lxml-5.3.0-cp39-cp39-manylinux_2_28_x86_64.whl", hash = "sha256:7437237c6a66b7ca341e868cda48be24b8701862757426852c9b3186de1da8a2"}, + {file = "lxml-5.3.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:7f41026c1d64043a36fda21d64c5026762d53a77043e73e94b71f0521939cc71"}, + {file = "lxml-5.3.0-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:482c2f67761868f0108b1743098640fbb2a28a8e15bf3f47ada9fa59d9fe08c3"}, + {file = "lxml-5.3.0-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:1483fd3358963cc5c1c9b122c80606a3a79ee0875bcac0204149fa09d6ff2727"}, + {file = "lxml-5.3.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:2dec2d1130a9cda5b904696cec33b2cfb451304ba9081eeda7f90f724097300a"}, + {file = "lxml-5.3.0-cp39-cp39-win32.whl", hash = "sha256:a0eabd0a81625049c5df745209dc7fcef6e2aea7793e5f003ba363610aa0a3ff"}, + {file = "lxml-5.3.0-cp39-cp39-win_amd64.whl", hash = "sha256:89e043f1d9d341c52bf2af6d02e6adde62e0a46e6755d5eb60dc6e4f0b8aeca2"}, + {file = "lxml-5.3.0-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:7b1cd427cb0d5f7393c31b7496419da594fe600e6fdc4b105a54f82405e6626c"}, + {file = "lxml-5.3.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:51806cfe0279e06ed8500ce19479d757db42a30fd509940b1701be9c86a5ff9a"}, + {file = "lxml-5.3.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ee70d08fd60c9565ba8190f41a46a54096afa0eeb8f76bd66f2c25d3b1b83005"}, + {file = "lxml-5.3.0-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:8dc2c0395bea8254d8daebc76dcf8eb3a95ec2a46fa6fae5eaccee366bfe02ce"}, + {file = "lxml-5.3.0-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:6ba0d3dcac281aad8a0e5b14c7ed6f9fa89c8612b47939fc94f80b16e2e9bc83"}, + {file = "lxml-5.3.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:6e91cf736959057f7aac7adfc83481e03615a8e8dd5758aa1d95ea69e8931dba"}, + {file = "lxml-5.3.0-pp37-pypy37_pp73-macosx_10_9_x86_64.whl", hash = "sha256:94d6c3782907b5e40e21cadf94b13b0842ac421192f26b84c45f13f3c9d5dc27"}, + {file = "lxml-5.3.0-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c300306673aa0f3ed5ed9372b21867690a17dba38c68c44b287437c362ce486b"}, + {file = "lxml-5.3.0-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:78d9b952e07aed35fe2e1a7ad26e929595412db48535921c5013edc8aa4a35ce"}, + {file = "lxml-5.3.0-pp37-pypy37_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:01220dca0d066d1349bd6a1726856a78f7929f3878f7e2ee83c296c69495309e"}, + {file = "lxml-5.3.0-pp37-pypy37_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:2d9b8d9177afaef80c53c0a9e30fa252ff3036fb1c6494d427c066a4ce6a282f"}, + {file = "lxml-5.3.0-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:20094fc3f21ea0a8669dc4c61ed7fa8263bd37d97d93b90f28fc613371e7a875"}, + {file = "lxml-5.3.0-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:ace2c2326a319a0bb8a8b0e5b570c764962e95818de9f259ce814ee666603f19"}, + {file = "lxml-5.3.0-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:92e67a0be1639c251d21e35fe74df6bcc40cba445c2cda7c4a967656733249e2"}, + {file = "lxml-5.3.0-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dd5350b55f9fecddc51385463a4f67a5da829bc741e38cf689f38ec9023f54ab"}, + {file = "lxml-5.3.0-pp38-pypy38_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:4c1fefd7e3d00921c44dc9ca80a775af49698bbfd92ea84498e56acffd4c5469"}, + {file = "lxml-5.3.0-pp38-pypy38_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:71a8dd38fbd2f2319136d4ae855a7078c69c9a38ae06e0c17c73fd70fc6caad8"}, + {file = "lxml-5.3.0-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:97acf1e1fd66ab53dacd2c35b319d7e548380c2e9e8c54525c6e76d21b1ae3b1"}, + {file = "lxml-5.3.0-pp39-pypy39_pp73-macosx_10_15_x86_64.whl", hash = "sha256:68934b242c51eb02907c5b81d138cb977b2129a0a75a8f8b60b01cb8586c7b21"}, + {file = "lxml-5.3.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b710bc2b8292966b23a6a0121f7a6c51d45d2347edcc75f016ac123b8054d3f2"}, + {file = "lxml-5.3.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:18feb4b93302091b1541221196a2155aa296c363fd233814fa11e181adebc52f"}, + {file = "lxml-5.3.0-pp39-pypy39_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:3eb44520c4724c2e1a57c0af33a379eee41792595023f367ba3952a2d96c2aab"}, + {file = "lxml-5.3.0-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:609251a0ca4770e5a8768ff902aa02bf636339c5a93f9349b48eb1f606f7f3e9"}, + {file = "lxml-5.3.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:516f491c834eb320d6c843156440fe7fc0d50b33e44387fcec5b02f0bc118a4c"}, + {file = "lxml-5.3.0.tar.gz", hash = "sha256:4e109ca30d1edec1ac60cdbe341905dc3b8f55b16855e03a54aaf59e51ec8c6f"}, ] [package.extras] @@ -2434,7 +2430,7 @@ cssselect = ["cssselect (>=0.7)"] html-clean = ["lxml-html-clean"] html5 = ["html5lib"] htmlsoup = ["BeautifulSoup4"] -source = ["Cython (>=3.0.10)"] +source = ["Cython (>=3.0.11)"] [[package]] name = "markdown-it-py" @@ -3162,13 +3158,13 @@ files = [ [[package]] name = "paramiko" -version = "3.4.0" +version = "3.4.1" description = "SSH2 protocol library" optional = false python-versions = ">=3.6" files = [ - {file = "paramiko-3.4.0-py3-none-any.whl", hash = "sha256:43f0b51115a896f9c00f59618023484cb3a14b98bbceab43394a39c6739b7ee7"}, - {file = "paramiko-3.4.0.tar.gz", hash = "sha256:aac08f26a31dc4dffd92821527d1682d99d52f9ef6851968114a8728f3c274d3"}, + {file = "paramiko-3.4.1-py3-none-any.whl", hash = "sha256:8e49fd2f82f84acf7ffd57c64311aa2b30e575370dc23bdb375b10262f7eac32"}, + {file = "paramiko-3.4.1.tar.gz", hash = "sha256:8b15302870af7f6652f2e038975c1d2973f06046cb5d7d65355668b3ecbece0c"}, ] [package.dependencies] @@ -4899,43 +4895,46 @@ files = [ [[package]] name = "watchdog" -version = "4.0.1" +version = "4.0.2" description = "Filesystem events monitoring" optional = false python-versions = ">=3.8" files = [ - {file = "watchdog-4.0.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:da2dfdaa8006eb6a71051795856bedd97e5b03e57da96f98e375682c48850645"}, - {file = "watchdog-4.0.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:e93f451f2dfa433d97765ca2634628b789b49ba8b504fdde5837cdcf25fdb53b"}, - {file = "watchdog-4.0.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:ef0107bbb6a55f5be727cfc2ef945d5676b97bffb8425650dadbb184be9f9a2b"}, - {file = "watchdog-4.0.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:17e32f147d8bf9657e0922c0940bcde863b894cd871dbb694beb6704cfbd2fb5"}, - {file = "watchdog-4.0.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:03e70d2df2258fb6cb0e95bbdbe06c16e608af94a3ffbd2b90c3f1e83eb10767"}, - {file = "watchdog-4.0.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:123587af84260c991dc5f62a6e7ef3d1c57dfddc99faacee508c71d287248459"}, - {file = "watchdog-4.0.1-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:093b23e6906a8b97051191a4a0c73a77ecc958121d42346274c6af6520dec175"}, - {file = "watchdog-4.0.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:611be3904f9843f0529c35a3ff3fd617449463cb4b73b1633950b3d97fa4bfb7"}, - {file = "watchdog-4.0.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:62c613ad689ddcb11707f030e722fa929f322ef7e4f18f5335d2b73c61a85c28"}, - {file = "watchdog-4.0.1-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:d4925e4bf7b9bddd1c3de13c9b8a2cdb89a468f640e66fbfabaf735bd85b3e35"}, - {file = "watchdog-4.0.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:cad0bbd66cd59fc474b4a4376bc5ac3fc698723510cbb64091c2a793b18654db"}, - {file = "watchdog-4.0.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:a3c2c317a8fb53e5b3d25790553796105501a235343f5d2bf23bb8649c2c8709"}, - {file = "watchdog-4.0.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:c9904904b6564d4ee8a1ed820db76185a3c96e05560c776c79a6ce5ab71888ba"}, - {file = "watchdog-4.0.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:667f3c579e813fcbad1b784db7a1aaa96524bed53437e119f6a2f5de4db04235"}, - {file = "watchdog-4.0.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:d10a681c9a1d5a77e75c48a3b8e1a9f2ae2928eda463e8d33660437705659682"}, - {file = "watchdog-4.0.1-pp310-pypy310_pp73-macosx_10_9_x86_64.whl", hash = "sha256:0144c0ea9997b92615af1d94afc0c217e07ce2c14912c7b1a5731776329fcfc7"}, - {file = "watchdog-4.0.1-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:998d2be6976a0ee3a81fb8e2777900c28641fb5bfbd0c84717d89bca0addcdc5"}, - {file = "watchdog-4.0.1-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:e7921319fe4430b11278d924ef66d4daa469fafb1da679a2e48c935fa27af193"}, - {file = "watchdog-4.0.1-pp38-pypy38_pp73-macosx_11_0_arm64.whl", hash = "sha256:f0de0f284248ab40188f23380b03b59126d1479cd59940f2a34f8852db710625"}, - {file = "watchdog-4.0.1-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:bca36be5707e81b9e6ce3208d92d95540d4ca244c006b61511753583c81c70dd"}, - {file = "watchdog-4.0.1-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:ab998f567ebdf6b1da7dc1e5accfaa7c6992244629c0fdaef062f43249bd8dee"}, - {file = "watchdog-4.0.1-py3-none-manylinux2014_aarch64.whl", hash = "sha256:dddba7ca1c807045323b6af4ff80f5ddc4d654c8bce8317dde1bd96b128ed253"}, - {file = "watchdog-4.0.1-py3-none-manylinux2014_armv7l.whl", hash = "sha256:4513ec234c68b14d4161440e07f995f231be21a09329051e67a2118a7a612d2d"}, - {file = "watchdog-4.0.1-py3-none-manylinux2014_i686.whl", hash = "sha256:4107ac5ab936a63952dea2a46a734a23230aa2f6f9db1291bf171dac3ebd53c6"}, - {file = "watchdog-4.0.1-py3-none-manylinux2014_ppc64.whl", hash = "sha256:6e8c70d2cd745daec2a08734d9f63092b793ad97612470a0ee4cbb8f5f705c57"}, - {file = "watchdog-4.0.1-py3-none-manylinux2014_ppc64le.whl", hash = "sha256:f27279d060e2ab24c0aa98363ff906d2386aa6c4dc2f1a374655d4e02a6c5e5e"}, - {file = "watchdog-4.0.1-py3-none-manylinux2014_s390x.whl", hash = "sha256:f8affdf3c0f0466e69f5b3917cdd042f89c8c63aebdb9f7c078996f607cdb0f5"}, - {file = "watchdog-4.0.1-py3-none-manylinux2014_x86_64.whl", hash = "sha256:ac7041b385f04c047fcc2951dc001671dee1b7e0615cde772e84b01fbf68ee84"}, - {file = "watchdog-4.0.1-py3-none-win32.whl", hash = "sha256:206afc3d964f9a233e6ad34618ec60b9837d0582b500b63687e34011e15bb429"}, - {file = "watchdog-4.0.1-py3-none-win_amd64.whl", hash = "sha256:7577b3c43e5909623149f76b099ac49a1a01ca4e167d1785c76eb52fa585745a"}, - {file = "watchdog-4.0.1-py3-none-win_ia64.whl", hash = "sha256:d7b9f5f3299e8dd230880b6c55504a1f69cf1e4316275d1b215ebdd8187ec88d"}, - {file = "watchdog-4.0.1.tar.gz", hash = "sha256:eebaacf674fa25511e8867028d281e602ee6500045b57f43b08778082f7f8b44"}, + {file = "watchdog-4.0.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:ede7f010f2239b97cc79e6cb3c249e72962404ae3865860855d5cbe708b0fd22"}, + {file = "watchdog-4.0.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:a2cffa171445b0efa0726c561eca9a27d00a1f2b83846dbd5a4f639c4f8ca8e1"}, + {file = "watchdog-4.0.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:c50f148b31b03fbadd6d0b5980e38b558046b127dc483e5e4505fcef250f9503"}, + {file = "watchdog-4.0.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:7c7d4bf585ad501c5f6c980e7be9c4f15604c7cc150e942d82083b31a7548930"}, + {file = "watchdog-4.0.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:914285126ad0b6eb2258bbbcb7b288d9dfd655ae88fa28945be05a7b475a800b"}, + {file = "watchdog-4.0.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:984306dc4720da5498b16fc037b36ac443816125a3705dfde4fd90652d8028ef"}, + {file = "watchdog-4.0.2-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:1cdcfd8142f604630deef34722d695fb455d04ab7cfe9963055df1fc69e6727a"}, + {file = "watchdog-4.0.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:d7ab624ff2f663f98cd03c8b7eedc09375a911794dfea6bf2a359fcc266bff29"}, + {file = "watchdog-4.0.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:132937547a716027bd5714383dfc40dc66c26769f1ce8a72a859d6a48f371f3a"}, + {file = "watchdog-4.0.2-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:cd67c7df93eb58f360c43802acc945fa8da70c675b6fa37a241e17ca698ca49b"}, + {file = "watchdog-4.0.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:bcfd02377be80ef3b6bc4ce481ef3959640458d6feaae0bd43dd90a43da90a7d"}, + {file = "watchdog-4.0.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:980b71510f59c884d684b3663d46e7a14b457c9611c481e5cef08f4dd022eed7"}, + {file = "watchdog-4.0.2-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:aa160781cafff2719b663c8a506156e9289d111d80f3387cf3af49cedee1f040"}, + {file = "watchdog-4.0.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:f6ee8dedd255087bc7fe82adf046f0b75479b989185fb0bdf9a98b612170eac7"}, + {file = "watchdog-4.0.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:0b4359067d30d5b864e09c8597b112fe0a0a59321a0f331498b013fb097406b4"}, + {file = "watchdog-4.0.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:770eef5372f146997638d737c9a3c597a3b41037cfbc5c41538fc27c09c3a3f9"}, + {file = "watchdog-4.0.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:eeea812f38536a0aa859972d50c76e37f4456474b02bd93674d1947cf1e39578"}, + {file = "watchdog-4.0.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:b2c45f6e1e57ebb4687690c05bc3a2c1fb6ab260550c4290b8abb1335e0fd08b"}, + {file = "watchdog-4.0.2-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:10b6683df70d340ac3279eff0b2766813f00f35a1d37515d2c99959ada8f05fa"}, + {file = "watchdog-4.0.2-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:f7c739888c20f99824f7aa9d31ac8a97353e22d0c0e54703a547a218f6637eb3"}, + {file = "watchdog-4.0.2-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:c100d09ac72a8a08ddbf0629ddfa0b8ee41740f9051429baa8e31bb903ad7508"}, + {file = "watchdog-4.0.2-pp38-pypy38_pp73-macosx_11_0_arm64.whl", hash = "sha256:f5315a8c8dd6dd9425b974515081fc0aadca1d1d61e078d2246509fd756141ee"}, + {file = "watchdog-4.0.2-pp39-pypy39_pp73-macosx_10_15_x86_64.whl", hash = "sha256:2d468028a77b42cc685ed694a7a550a8d1771bb05193ba7b24006b8241a571a1"}, + {file = "watchdog-4.0.2-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:f15edcae3830ff20e55d1f4e743e92970c847bcddc8b7509bcd172aa04de506e"}, + {file = "watchdog-4.0.2-py3-none-manylinux2014_aarch64.whl", hash = "sha256:936acba76d636f70db8f3c66e76aa6cb5136a936fc2a5088b9ce1c7a3508fc83"}, + {file = "watchdog-4.0.2-py3-none-manylinux2014_armv7l.whl", hash = "sha256:e252f8ca942a870f38cf785aef420285431311652d871409a64e2a0a52a2174c"}, + {file = "watchdog-4.0.2-py3-none-manylinux2014_i686.whl", hash = "sha256:0e83619a2d5d436a7e58a1aea957a3c1ccbf9782c43c0b4fed80580e5e4acd1a"}, + {file = "watchdog-4.0.2-py3-none-manylinux2014_ppc64.whl", hash = "sha256:88456d65f207b39f1981bf772e473799fcdc10801062c36fd5ad9f9d1d463a73"}, + {file = "watchdog-4.0.2-py3-none-manylinux2014_ppc64le.whl", hash = "sha256:32be97f3b75693a93c683787a87a0dc8db98bb84701539954eef991fb35f5fbc"}, + {file = "watchdog-4.0.2-py3-none-manylinux2014_s390x.whl", hash = "sha256:c82253cfc9be68e3e49282831afad2c1f6593af80c0daf1287f6a92657986757"}, + {file = "watchdog-4.0.2-py3-none-manylinux2014_x86_64.whl", hash = "sha256:c0b14488bd336c5b1845cee83d3e631a1f8b4e9c5091ec539406e4a324f882d8"}, + {file = "watchdog-4.0.2-py3-none-win32.whl", hash = "sha256:0d8a7e523ef03757a5aa29f591437d64d0d894635f8a50f370fe37f913ce4e19"}, + {file = "watchdog-4.0.2-py3-none-win_amd64.whl", hash = "sha256:c344453ef3bf875a535b0488e3ad28e341adbd5a9ffb0f7d62cefacc8824ef2b"}, + {file = "watchdog-4.0.2-py3-none-win_ia64.whl", hash = "sha256:baececaa8edff42cd16558a639a9b0ddf425f93d892e8392a56bf904f5eff22c"}, + {file = "watchdog-4.0.2.tar.gz", hash = "sha256:b4dfbb6c49221be4535623ea4474a4d6ee0a9cef4a80b20c28db4d858b64e270"}, ] [package.extras] diff --git a/proxy.Dockerfile b/proxy.Dockerfile index 26bca36d56bd..e223e5266b37 100644 --- a/proxy.Dockerfile +++ b/proxy.Dockerfile @@ -1,7 +1,7 @@ # syntax=docker/dockerfile:1 # Stage 1: Build web -FROM --platform=${BUILDPLATFORM} docker.io/library/node:22 as web-builder +FROM --platform=${BUILDPLATFORM} docker.io/library/node:22 AS web-builder ENV NODE_ENV=production WORKDIR /static @@ -49,14 +49,15 @@ RUN --mount=type=cache,sharing=locked,target=/go/pkg/mod \ # Stage 3: Run FROM ghcr.io/goauthentik/fips-debian:bookworm-slim-fips +ARG VERSION ARG GIT_BUILD_HASH ENV GIT_BUILD_HASH=$GIT_BUILD_HASH -LABEL org.opencontainers.image.url https://goauthentik.io -LABEL org.opencontainers.image.description goauthentik.io Proxy outpost image, see https://goauthentik.io for more info. -LABEL org.opencontainers.image.source https://github.com/goauthentik/authentik -LABEL org.opencontainers.image.version ${VERSION} -LABEL org.opencontainers.image.revision ${GIT_BUILD_HASH} +LABEL org.opencontainers.image.url=https://goauthentik.io +LABEL org.opencontainers.image.description="goauthentik.io Proxy outpost image, see https://goauthentik.io for more info." +LABEL org.opencontainers.image.source=https://github.com/goauthentik/authentik +LABEL org.opencontainers.image.version=${VERSION} +LABEL org.opencontainers.image.revision=${GIT_BUILD_HASH} COPY --from=builder /go/proxy / COPY --from=web-builder /static/robots.txt /web/robots.txt diff --git a/rac.Dockerfile b/rac.Dockerfile index 2ce3d9d7eddd..87b214408e45 100644 --- a/rac.Dockerfile +++ b/rac.Dockerfile @@ -33,14 +33,15 @@ RUN --mount=type=cache,sharing=locked,target=/go/pkg/mod \ # Stage 2: Run FROM ghcr.io/beryju/guacd:1.5.5-fips +ARG VERSION ARG GIT_BUILD_HASH ENV GIT_BUILD_HASH=$GIT_BUILD_HASH -LABEL org.opencontainers.image.url https://goauthentik.io -LABEL org.opencontainers.image.description goauthentik.io RAC outpost, see https://goauthentik.io for more info. -LABEL org.opencontainers.image.source https://github.com/goauthentik/authentik -LABEL org.opencontainers.image.version ${VERSION} -LABEL org.opencontainers.image.revision ${GIT_BUILD_HASH} +LABEL org.opencontainers.image.url=https://goauthentik.io +LABEL org.opencontainers.image.description="goauthentik.io RAC outpost, see https://goauthentik.io for more info." +LABEL org.opencontainers.image.source=https://github.com/goauthentik/authentik +LABEL org.opencontainers.image.version=${VERSION} +LABEL org.opencontainers.image.revision=${GIT_BUILD_HASH} COPY --from=builder /go/rac / diff --git a/radius.Dockerfile b/radius.Dockerfile index f1e0f8dceba2..e19b682f98ca 100644 --- a/radius.Dockerfile +++ b/radius.Dockerfile @@ -33,14 +33,15 @@ RUN --mount=type=cache,sharing=locked,target=/go/pkg/mod \ # Stage 2: Run FROM ghcr.io/goauthentik/fips-debian:bookworm-slim-fips +ARG VERSION ARG GIT_BUILD_HASH ENV GIT_BUILD_HASH=$GIT_BUILD_HASH -LABEL org.opencontainers.image.url https://goauthentik.io -LABEL org.opencontainers.image.description goauthentik.io Radius outpost, see https://goauthentik.io for more info. -LABEL org.opencontainers.image.source https://github.com/goauthentik/authentik -LABEL org.opencontainers.image.version ${VERSION} -LABEL org.opencontainers.image.revision ${GIT_BUILD_HASH} +LABEL org.opencontainers.image.url=https://goauthentik.io +LABEL org.opencontainers.image.description="goauthentik.io Radius outpost, see https://goauthentik.io for more info." +LABEL org.opencontainers.image.source=https://github.com/goauthentik/authentik +LABEL org.opencontainers.image.version=${VERSION} +LABEL org.opencontainers.image.revision=${GIT_BUILD_HASH} COPY --from=builder /go/radius / diff --git a/schema.yml b/schema.yml index 8a5cf91b5fd6..bb6df8dd6275 100644 --- a/schema.yml +++ b/schema.yml @@ -14565,9 +14565,9 @@ paths: schema: $ref: '#/components/schemas/GenericError' description: '' - /propertymappings/rac/: + /propertymappings/provider/rac/: get: - operationId: propertymappings_rac_list + operationId: propertymappings_provider_rac_list description: RACPropertyMapping Viewset parameters: - in: query @@ -14630,7 +14630,7 @@ paths: $ref: '#/components/schemas/GenericError' description: '' post: - operationId: propertymappings_rac_create + operationId: propertymappings_provider_rac_create description: RACPropertyMapping Viewset tags: - propertymappings @@ -14661,9 +14661,9 @@ paths: schema: $ref: '#/components/schemas/GenericError' description: '' - /propertymappings/rac/{pm_uuid}/: + /propertymappings/provider/rac/{pm_uuid}/: get: - operationId: propertymappings_rac_retrieve + operationId: propertymappings_provider_rac_retrieve description: RACPropertyMapping Viewset parameters: - in: path @@ -14671,7 +14671,7 @@ paths: schema: type: string format: uuid - description: A UUID string identifying this RAC Property Mapping. + description: A UUID string identifying this RAC Provider Property Mapping. required: true tags: - propertymappings @@ -14697,7 +14697,7 @@ paths: $ref: '#/components/schemas/GenericError' description: '' put: - operationId: propertymappings_rac_update + operationId: propertymappings_provider_rac_update description: RACPropertyMapping Viewset parameters: - in: path @@ -14705,7 +14705,7 @@ paths: schema: type: string format: uuid - description: A UUID string identifying this RAC Property Mapping. + description: A UUID string identifying this RAC Provider Property Mapping. required: true tags: - propertymappings @@ -14737,7 +14737,7 @@ paths: $ref: '#/components/schemas/GenericError' description: '' patch: - operationId: propertymappings_rac_partial_update + operationId: propertymappings_provider_rac_partial_update description: RACPropertyMapping Viewset parameters: - in: path @@ -14745,7 +14745,7 @@ paths: schema: type: string format: uuid - description: A UUID string identifying this RAC Property Mapping. + description: A UUID string identifying this RAC Provider Property Mapping. required: true tags: - propertymappings @@ -14776,7 +14776,7 @@ paths: $ref: '#/components/schemas/GenericError' description: '' delete: - operationId: propertymappings_rac_destroy + operationId: propertymappings_provider_rac_destroy description: RACPropertyMapping Viewset parameters: - in: path @@ -14784,7 +14784,7 @@ paths: schema: type: string format: uuid - description: A UUID string identifying this RAC Property Mapping. + description: A UUID string identifying this RAC Provider Property Mapping. required: true tags: - propertymappings @@ -14805,9 +14805,9 @@ paths: schema: $ref: '#/components/schemas/GenericError' description: '' - /propertymappings/rac/{pm_uuid}/used_by/: + /propertymappings/provider/rac/{pm_uuid}/used_by/: get: - operationId: propertymappings_rac_used_by_list + operationId: propertymappings_provider_rac_used_by_list description: Get a list of all objects that use this object parameters: - in: path @@ -14815,7 +14815,7 @@ paths: schema: type: string format: uuid - description: A UUID string identifying this RAC Property Mapping. + description: A UUID string identifying this RAC Provider Property Mapping. required: true tags: - propertymappings @@ -14842,9 +14842,9 @@ paths: schema: $ref: '#/components/schemas/GenericError' description: '' - /propertymappings/radius/: + /propertymappings/provider/radius/: get: - operationId: propertymappings_radius_list + operationId: propertymappings_provider_radius_list description: RadiusProviderPropertyMapping Viewset parameters: - in: query @@ -14911,7 +14911,7 @@ paths: $ref: '#/components/schemas/GenericError' description: '' post: - operationId: propertymappings_radius_create + operationId: propertymappings_provider_radius_create description: RadiusProviderPropertyMapping Viewset tags: - propertymappings @@ -14942,9 +14942,9 @@ paths: schema: $ref: '#/components/schemas/GenericError' description: '' - /propertymappings/radius/{pm_uuid}/: + /propertymappings/provider/radius/{pm_uuid}/: get: - operationId: propertymappings_radius_retrieve + operationId: propertymappings_provider_radius_retrieve description: RadiusProviderPropertyMapping Viewset parameters: - in: path @@ -14952,7 +14952,7 @@ paths: schema: type: string format: uuid - description: A UUID string identifying this Radius Property Mapping. + description: A UUID string identifying this Radius Provider Property Mapping. required: true tags: - propertymappings @@ -14978,7 +14978,7 @@ paths: $ref: '#/components/schemas/GenericError' description: '' put: - operationId: propertymappings_radius_update + operationId: propertymappings_provider_radius_update description: RadiusProviderPropertyMapping Viewset parameters: - in: path @@ -14986,7 +14986,7 @@ paths: schema: type: string format: uuid - description: A UUID string identifying this Radius Property Mapping. + description: A UUID string identifying this Radius Provider Property Mapping. required: true tags: - propertymappings @@ -15018,7 +15018,7 @@ paths: $ref: '#/components/schemas/GenericError' description: '' patch: - operationId: propertymappings_radius_partial_update + operationId: propertymappings_provider_radius_partial_update description: RadiusProviderPropertyMapping Viewset parameters: - in: path @@ -15026,7 +15026,7 @@ paths: schema: type: string format: uuid - description: A UUID string identifying this Radius Property Mapping. + description: A UUID string identifying this Radius Provider Property Mapping. required: true tags: - propertymappings @@ -15057,7 +15057,7 @@ paths: $ref: '#/components/schemas/GenericError' description: '' delete: - operationId: propertymappings_radius_destroy + operationId: propertymappings_provider_radius_destroy description: RadiusProviderPropertyMapping Viewset parameters: - in: path @@ -15065,7 +15065,7 @@ paths: schema: type: string format: uuid - description: A UUID string identifying this Radius Property Mapping. + description: A UUID string identifying this Radius Provider Property Mapping. required: true tags: - propertymappings @@ -15086,9 +15086,9 @@ paths: schema: $ref: '#/components/schemas/GenericError' description: '' - /propertymappings/radius/{pm_uuid}/used_by/: + /propertymappings/provider/radius/{pm_uuid}/used_by/: get: - operationId: propertymappings_radius_used_by_list + operationId: propertymappings_provider_radius_used_by_list description: Get a list of all objects that use this object parameters: - in: path @@ -15096,7 +15096,7 @@ paths: schema: type: string format: uuid - description: A UUID string identifying this Radius Property Mapping. + description: A UUID string identifying this Radius Provider Property Mapping. required: true tags: - propertymappings @@ -15123,9 +15123,9 @@ paths: schema: $ref: '#/components/schemas/GenericError' description: '' - /propertymappings/saml/: + /propertymappings/provider/saml/: get: - operationId: propertymappings_saml_list + operationId: propertymappings_provider_saml_list description: SAMLPropertyMapping Viewset parameters: - in: query @@ -15200,7 +15200,7 @@ paths: $ref: '#/components/schemas/GenericError' description: '' post: - operationId: propertymappings_saml_create + operationId: propertymappings_provider_saml_create description: SAMLPropertyMapping Viewset tags: - propertymappings @@ -15231,9 +15231,9 @@ paths: schema: $ref: '#/components/schemas/GenericError' description: '' - /propertymappings/saml/{pm_uuid}/: + /propertymappings/provider/saml/{pm_uuid}/: get: - operationId: propertymappings_saml_retrieve + operationId: propertymappings_provider_saml_retrieve description: SAMLPropertyMapping Viewset parameters: - in: path @@ -15241,7 +15241,7 @@ paths: schema: type: string format: uuid - description: A UUID string identifying this SAML Property Mapping. + description: A UUID string identifying this SAML Provider Property Mapping. required: true tags: - propertymappings @@ -15267,7 +15267,7 @@ paths: $ref: '#/components/schemas/GenericError' description: '' put: - operationId: propertymappings_saml_update + operationId: propertymappings_provider_saml_update description: SAMLPropertyMapping Viewset parameters: - in: path @@ -15275,7 +15275,7 @@ paths: schema: type: string format: uuid - description: A UUID string identifying this SAML Property Mapping. + description: A UUID string identifying this SAML Provider Property Mapping. required: true tags: - propertymappings @@ -15307,7 +15307,7 @@ paths: $ref: '#/components/schemas/GenericError' description: '' patch: - operationId: propertymappings_saml_partial_update + operationId: propertymappings_provider_saml_partial_update description: SAMLPropertyMapping Viewset parameters: - in: path @@ -15315,7 +15315,7 @@ paths: schema: type: string format: uuid - description: A UUID string identifying this SAML Property Mapping. + description: A UUID string identifying this SAML Provider Property Mapping. required: true tags: - propertymappings @@ -15346,7 +15346,7 @@ paths: $ref: '#/components/schemas/GenericError' description: '' delete: - operationId: propertymappings_saml_destroy + operationId: propertymappings_provider_saml_destroy description: SAMLPropertyMapping Viewset parameters: - in: path @@ -15354,7 +15354,7 @@ paths: schema: type: string format: uuid - description: A UUID string identifying this SAML Property Mapping. + description: A UUID string identifying this SAML Provider Property Mapping. required: true tags: - propertymappings @@ -15375,9 +15375,9 @@ paths: schema: $ref: '#/components/schemas/GenericError' description: '' - /propertymappings/saml/{pm_uuid}/used_by/: + /propertymappings/provider/saml/{pm_uuid}/used_by/: get: - operationId: propertymappings_saml_used_by_list + operationId: propertymappings_provider_saml_used_by_list description: Get a list of all objects that use this object parameters: - in: path @@ -15385,7 +15385,7 @@ paths: schema: type: string format: uuid - description: A UUID string identifying this SAML Property Mapping. + description: A UUID string identifying this SAML Provider Property Mapping. required: true tags: - propertymappings @@ -15412,9 +15412,9 @@ paths: schema: $ref: '#/components/schemas/GenericError' description: '' - /propertymappings/scim/: + /propertymappings/provider/scim/: get: - operationId: propertymappings_scim_list + operationId: propertymappings_provider_scim_list description: SCIMMapping Viewset parameters: - in: query @@ -15481,7 +15481,7 @@ paths: $ref: '#/components/schemas/GenericError' description: '' post: - operationId: propertymappings_scim_create + operationId: propertymappings_provider_scim_create description: SCIMMapping Viewset tags: - propertymappings @@ -15512,9 +15512,9 @@ paths: schema: $ref: '#/components/schemas/GenericError' description: '' - /propertymappings/scim/{pm_uuid}/: + /propertymappings/provider/scim/{pm_uuid}/: get: - operationId: propertymappings_scim_retrieve + operationId: propertymappings_provider_scim_retrieve description: SCIMMapping Viewset parameters: - in: path @@ -15522,7 +15522,7 @@ paths: schema: type: string format: uuid - description: A UUID string identifying this SCIM Mapping. + description: A UUID string identifying this SCIM Provider Mapping. required: true tags: - propertymappings @@ -15548,7 +15548,7 @@ paths: $ref: '#/components/schemas/GenericError' description: '' put: - operationId: propertymappings_scim_update + operationId: propertymappings_provider_scim_update description: SCIMMapping Viewset parameters: - in: path @@ -15556,7 +15556,7 @@ paths: schema: type: string format: uuid - description: A UUID string identifying this SCIM Mapping. + description: A UUID string identifying this SCIM Provider Mapping. required: true tags: - propertymappings @@ -15588,7 +15588,7 @@ paths: $ref: '#/components/schemas/GenericError' description: '' patch: - operationId: propertymappings_scim_partial_update + operationId: propertymappings_provider_scim_partial_update description: SCIMMapping Viewset parameters: - in: path @@ -15596,7 +15596,7 @@ paths: schema: type: string format: uuid - description: A UUID string identifying this SCIM Mapping. + description: A UUID string identifying this SCIM Provider Mapping. required: true tags: - propertymappings @@ -15627,7 +15627,7 @@ paths: $ref: '#/components/schemas/GenericError' description: '' delete: - operationId: propertymappings_scim_destroy + operationId: propertymappings_provider_scim_destroy description: SCIMMapping Viewset parameters: - in: path @@ -15635,7 +15635,7 @@ paths: schema: type: string format: uuid - description: A UUID string identifying this SCIM Mapping. + description: A UUID string identifying this SCIM Provider Mapping. required: true tags: - propertymappings @@ -15656,9 +15656,9 @@ paths: schema: $ref: '#/components/schemas/GenericError' description: '' - /propertymappings/scim/{pm_uuid}/used_by/: + /propertymappings/provider/scim/{pm_uuid}/used_by/: get: - operationId: propertymappings_scim_used_by_list + operationId: propertymappings_provider_scim_used_by_list description: Get a list of all objects that use this object parameters: - in: path @@ -15666,7 +15666,7 @@ paths: schema: type: string format: uuid - description: A UUID string identifying this SCIM Mapping. + description: A UUID string identifying this SCIM Provider Mapping. required: true tags: - propertymappings @@ -15693,9 +15693,9 @@ paths: schema: $ref: '#/components/schemas/GenericError' description: '' - /propertymappings/scope/: + /propertymappings/provider/scope/: get: - operationId: propertymappings_scope_list + operationId: propertymappings_provider_scope_list description: ScopeMapping Viewset parameters: - in: query @@ -15766,7 +15766,7 @@ paths: $ref: '#/components/schemas/GenericError' description: '' post: - operationId: propertymappings_scope_create + operationId: propertymappings_provider_scope_create description: ScopeMapping Viewset tags: - propertymappings @@ -15797,9 +15797,9 @@ paths: schema: $ref: '#/components/schemas/GenericError' description: '' - /propertymappings/scope/{pm_uuid}/: + /propertymappings/provider/scope/{pm_uuid}/: get: - operationId: propertymappings_scope_retrieve + operationId: propertymappings_provider_scope_retrieve description: ScopeMapping Viewset parameters: - in: path @@ -15833,7 +15833,7 @@ paths: $ref: '#/components/schemas/GenericError' description: '' put: - operationId: propertymappings_scope_update + operationId: propertymappings_provider_scope_update description: ScopeMapping Viewset parameters: - in: path @@ -15873,7 +15873,7 @@ paths: $ref: '#/components/schemas/GenericError' description: '' patch: - operationId: propertymappings_scope_partial_update + operationId: propertymappings_provider_scope_partial_update description: ScopeMapping Viewset parameters: - in: path @@ -15912,7 +15912,7 @@ paths: $ref: '#/components/schemas/GenericError' description: '' delete: - operationId: propertymappings_scope_destroy + operationId: propertymappings_provider_scope_destroy description: ScopeMapping Viewset parameters: - in: path @@ -15941,9 +15941,9 @@ paths: schema: $ref: '#/components/schemas/GenericError' description: '' - /propertymappings/scope/{pm_uuid}/used_by/: + /propertymappings/provider/scope/{pm_uuid}/used_by/: get: - operationId: propertymappings_scope_used_by_list + operationId: propertymappings_provider_scope_used_by_list description: Get a list of all objects that use this object parameters: - in: path @@ -52712,9 +52712,14 @@ components: type: boolean description: Check if we're running the latest version readOnly: true + outpost_outdated: + type: boolean + description: Check if any outpost is outdated/has a version mismatch + readOnly: true required: - build_hash - outdated + - outpost_outdated - version_current - version_latest - version_latest_valid diff --git a/web/lit-localize.json b/web/lit-localize.json index 3c9564de85fa..d0e8dd13914d 100644 --- a/web/lit-localize.json +++ b/web/lit-localize.json @@ -9,6 +9,7 @@ "ko", "nl", "pl", + "ru", "tr", "zh-Hans", "zh-Hant", diff --git a/web/package-lock.json b/web/package-lock.json index 390b0bc11814..a7398b7cdabe 100644 --- a/web/package-lock.json +++ b/web/package-lock.json @@ -23,7 +23,7 @@ "@floating-ui/dom": "^1.6.9", "@formatjs/intl-listformat": "^7.5.7", "@fortawesome/fontawesome-free": "^6.6.0", - "@goauthentik/api": "^2024.6.3-1723234818", + "@goauthentik/api": "^2024.6.3-1723497462", "@lit/context": "^1.1.2", "@lit/localize": "^0.12.2", "@lit/reactive-element": "^2.0.4", @@ -31,7 +31,7 @@ "@open-wc/lit-helpers": "^0.7.0", "@patternfly/elements": "^3.0.2", "@patternfly/patternfly": "^4.224.2", - "@sentry/browser": "^8.24.0", + "@sentry/browser": "^8.25.0", "@webcomponents/webcomponentsjs": "^2.8.0", "base64-js": "^1.5.1", "chart.js": "^4.4.3", @@ -48,7 +48,7 @@ "rapidoc": "^9.3.4", "showdown": "^2.1.0", "style-mod": "^4.1.2", - "ts-pattern": "^5.2.0", + "ts-pattern": "^5.3.1", "webcomponent-qr-code": "^1.2.0", "yaml": "^2.5.0" }, @@ -63,7 +63,7 @@ "@babel/preset-typescript": "^7.24.7", "@changesets/cli": "^2.27.5", "@custom-elements-manifest/analyzer": "^0.10.2", - "@eslint/js": "^9.8.0", + "@eslint/js": "^9.9.0", "@genesiscommunitysuccess/custom-elements-lsp": "^5.0.3", "@hcaptcha/types": "^1.0.4", "@jeysal/storybook-addon-css-user-preferences": "^0.2.0", @@ -120,7 +120,7 @@ "tslib": "^2.6.3", "turnstile-types": "^1.2.1", "typescript": "^5.5.4", - "typescript-eslint": "^8.0.1", + "typescript-eslint": "^8.1.0", "vite-tsconfig-paths": "^4.3.2", "wdio-wait-for": "^3.0.11", "wireit": "^0.14.4" @@ -3117,9 +3117,10 @@ } }, "node_modules/@eslint/js": { - "version": "9.8.0", + "version": "9.9.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.9.0.tgz", + "integrity": "sha512-hhetes6ZHP3BlXLxmd8K2SNgkhNSi+UcecbnwWKwpP7kyi/uC75DJ1lOOBO3xrC4jyojtGE3YxKZPHfk4yrgug==", "dev": true, - "license": "MIT", "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } @@ -3372,9 +3373,9 @@ "license": "MIT" }, "node_modules/@goauthentik/api": { - "version": "2024.6.3-1723234818", - "resolved": "https://registry.npmjs.org/@goauthentik/api/-/api-2024.6.3-1723234818.tgz", - "integrity": "sha512-3g3mJzbzCJZqpTxI5jPBS4Y363EROXxX6fUzRFbfROFGQtva6Zll+U+edx5/3wDy6oYixLxKUtVxke/mngDxqw==" + "version": "2024.6.3-1723497462", + "resolved": "https://registry.npmjs.org/@goauthentik/api/-/api-2024.6.3-1723497462.tgz", + "integrity": "sha512-f53RgdMmlC5B0dRnT00d08T7f+3hmXc9h3gj3ATq9S3R7x6bTPSrhWLUAjhLeJNOueBgcg2jfmtXhKdm0cHhgA==" }, "node_modules/@goauthentik/web": { "resolved": "", @@ -5675,94 +5676,102 @@ ] }, "node_modules/@sentry-internal/browser-utils": { - "version": "8.24.0", - "license": "MIT", + "version": "8.25.0", + "resolved": "https://registry.npmjs.org/@sentry-internal/browser-utils/-/browser-utils-8.25.0.tgz", + "integrity": "sha512-nlWgp1lVhNQOTUplW85G3qm0fOIgAhJ/sl/31OIuScVrITYhYDF2bO+Zv/jQ8YsdUBAUXqY1tPT9wwPJklnPhw==", "dependencies": { - "@sentry/core": "8.24.0", - "@sentry/types": "8.24.0", - "@sentry/utils": "8.24.0" + "@sentry/core": "8.25.0", + "@sentry/types": "8.25.0", + "@sentry/utils": "8.25.0" }, "engines": { "node": ">=14.18" } }, "node_modules/@sentry-internal/feedback": { - "version": "8.24.0", - "license": "MIT", + "version": "8.25.0", + "resolved": "https://registry.npmjs.org/@sentry-internal/feedback/-/feedback-8.25.0.tgz", + "integrity": "sha512-327I5XJAFrsgjc5qUKxZ9rff3WNCfGvf1fIii70LQ2YQhQgG4XHZILmkD06ETEyXb+H1tkrNQQEJ1/d4ai+q5g==", "dependencies": { - "@sentry/core": "8.24.0", - "@sentry/types": "8.24.0", - "@sentry/utils": "8.24.0" + "@sentry/core": "8.25.0", + "@sentry/types": "8.25.0", + "@sentry/utils": "8.25.0" }, "engines": { "node": ">=14.18" } }, "node_modules/@sentry-internal/replay": { - "version": "8.24.0", - "license": "MIT", + "version": "8.25.0", + "resolved": "https://registry.npmjs.org/@sentry-internal/replay/-/replay-8.25.0.tgz", + "integrity": "sha512-3f7x8EYthyj157uV9V8vBjun+1gJnHhh2+i0qxYLhMGx7N2Fq0J3Bvvo1rosSg+fYh5HzPNZDufwIRdg5C/MQw==", "dependencies": { - "@sentry-internal/browser-utils": "8.24.0", - "@sentry/core": "8.24.0", - "@sentry/types": "8.24.0", - "@sentry/utils": "8.24.0" + "@sentry-internal/browser-utils": "8.25.0", + "@sentry/core": "8.25.0", + "@sentry/types": "8.25.0", + "@sentry/utils": "8.25.0" }, "engines": { "node": ">=14.18" } }, "node_modules/@sentry-internal/replay-canvas": { - "version": "8.24.0", - "license": "MIT", + "version": "8.25.0", + "resolved": "https://registry.npmjs.org/@sentry-internal/replay-canvas/-/replay-canvas-8.25.0.tgz", + "integrity": "sha512-dPXlkAbkFL1DBum8rGTaHS+apJKaXEZJF9gLcBBKTruhTCizrugFLxajzIfVSiFVuwNKuJWa2fzhzbeQM0ee7w==", "dependencies": { - "@sentry-internal/replay": "8.24.0", - "@sentry/core": "8.24.0", - "@sentry/types": "8.24.0", - "@sentry/utils": "8.24.0" + "@sentry-internal/replay": "8.25.0", + "@sentry/core": "8.25.0", + "@sentry/types": "8.25.0", + "@sentry/utils": "8.25.0" }, "engines": { "node": ">=14.18" } }, "node_modules/@sentry/browser": { - "version": "8.24.0", - "license": "MIT", + "version": "8.25.0", + "resolved": "https://registry.npmjs.org/@sentry/browser/-/browser-8.25.0.tgz", + "integrity": "sha512-51bdVGXjyooqVGzaSGsnExqRTt9NvZ1zGFsxbbCSXi5UoEFN6zdMUz6jKYsL2K80eeELP2VKOVlobHlEzeJQfw==", "dependencies": { - "@sentry-internal/browser-utils": "8.24.0", - "@sentry-internal/feedback": "8.24.0", - "@sentry-internal/replay": "8.24.0", - "@sentry-internal/replay-canvas": "8.24.0", - "@sentry/core": "8.24.0", - "@sentry/types": "8.24.0", - "@sentry/utils": "8.24.0" + "@sentry-internal/browser-utils": "8.25.0", + "@sentry-internal/feedback": "8.25.0", + "@sentry-internal/replay": "8.25.0", + "@sentry-internal/replay-canvas": "8.25.0", + "@sentry/core": "8.25.0", + "@sentry/types": "8.25.0", + "@sentry/utils": "8.25.0" }, "engines": { "node": ">=14.18" } }, "node_modules/@sentry/core": { - "version": "8.24.0", - "license": "MIT", + "version": "8.25.0", + "resolved": "https://registry.npmjs.org/@sentry/core/-/core-8.25.0.tgz", + "integrity": "sha512-7KtglbrW1eX4DOHkf6i4rRIExEf2CgtQ99qZ8gn5FUaAmNMg0rK7bb1yZMx0RZtp5G1TSz/S0jQQgxHWebaEig==", "dependencies": { - "@sentry/types": "8.24.0", - "@sentry/utils": "8.24.0" + "@sentry/types": "8.25.0", + "@sentry/utils": "8.25.0" }, "engines": { "node": ">=14.18" } }, "node_modules/@sentry/types": { - "version": "8.24.0", - "license": "MIT", + "version": "8.25.0", + "resolved": "https://registry.npmjs.org/@sentry/types/-/types-8.25.0.tgz", + "integrity": "sha512-ojim0gDcRhGJPguYrtms4FsprX4xZz3LGNk9Z0hwTbSVEdlhQIInsQ7CYcdM3sjUs+qT7kfpxTRZGUeZNRRJcA==", "engines": { "node": ">=14.18" } }, "node_modules/@sentry/utils": { - "version": "8.24.0", - "license": "MIT", + "version": "8.25.0", + "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-8.25.0.tgz", + "integrity": "sha512-mVlkV7S62ZZ2jM38/kOwWx2xoW8fUv2cjw2IwFKoAIPyLBh3mo1WJtvfdtN/rXGjQWZJBKW53EWaWnD00rkjyA==", "dependencies": { - "@sentry/types": "8.24.0" + "@sentry/types": "8.25.0" }, "engines": { "node": ">=14.18" @@ -7979,10 +7988,11 @@ } }, "node_modules/@swc/core": { - "version": "1.7.6", + "version": "1.7.10", + "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.7.10.tgz", + "integrity": "sha512-l0xrFwBQ9atizhmV94yC2nwcecTk/oftofwMNPiFMGe56dqdmi2ArHaTV3PCtMlgaUH6rGCehoRMt5OrCI1ktg==", "dev": true, "hasInstallScript": true, - "license": "Apache-2.0", "dependencies": { "@swc/counter": "^0.1.3", "@swc/types": "^0.1.12" @@ -7995,16 +8005,16 @@ "url": "https://opencollective.com/swc" }, "optionalDependencies": { - "@swc/core-darwin-arm64": "1.7.6", - "@swc/core-darwin-x64": "1.7.6", - "@swc/core-linux-arm-gnueabihf": "1.7.6", - "@swc/core-linux-arm64-gnu": "1.7.6", - "@swc/core-linux-arm64-musl": "1.7.6", - "@swc/core-linux-x64-gnu": "1.7.6", - "@swc/core-linux-x64-musl": "1.7.6", - "@swc/core-win32-arm64-msvc": "1.7.6", - "@swc/core-win32-ia32-msvc": "1.7.6", - "@swc/core-win32-x64-msvc": "1.7.6" + "@swc/core-darwin-arm64": "1.7.10", + "@swc/core-darwin-x64": "1.7.10", + "@swc/core-linux-arm-gnueabihf": "1.7.10", + "@swc/core-linux-arm64-gnu": "1.7.10", + "@swc/core-linux-arm64-musl": "1.7.10", + "@swc/core-linux-x64-gnu": "1.7.10", + "@swc/core-linux-x64-musl": "1.7.10", + "@swc/core-win32-arm64-msvc": "1.7.10", + "@swc/core-win32-ia32-msvc": "1.7.10", + "@swc/core-win32-x64-msvc": "1.7.10" }, "peerDependencies": { "@swc/helpers": "*" @@ -8016,11 +8026,12 @@ } }, "node_modules/@swc/core-darwin-arm64": { - "version": "1.7.6", + "version": "1.7.10", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.7.10.tgz", + "integrity": "sha512-TYp4x/9w/C/yMU1olK5hTKq/Hi7BjG71UJ4V1U1WxI1JA3uokjQ/GoktDfmH5V5pX4dgGSOJwUe2RjoN8Z/XnA==", "cpu": [ "arm64" ], - "license": "Apache-2.0 AND MIT", "optional": true, "os": [ "darwin" @@ -8030,9 +8041,9 @@ } }, "node_modules/@swc/core-darwin-x64": { - "version": "1.7.6", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.7.6.tgz", - "integrity": "sha512-Fyl+8aH9O5rpx4O7r2KnsPpoi32iWoKOYKiipeTbGjQ/E95tNPxbmsz4yqE8Ovldcga60IPJ5OKQA3HWRiuzdw==", + "version": "1.7.10", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.7.10.tgz", + "integrity": "sha512-P3LJjAWh5yLc6p5IUwV5LgRfA3R1oDCZDMabYyb2BVQuJTD4MfegW9DhBcUUF5dhBLwq3191KpLVzE+dLTbiXw==", "cpu": [ "x64" ], @@ -8045,9 +8056,9 @@ } }, "node_modules/@swc/core-linux-arm-gnueabihf": { - "version": "1.7.6", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.7.6.tgz", - "integrity": "sha512-2WxYTqFaOx48GKC2cbO1/IntA+w+kfCFy436Ij7qRqqtV/WAvTM9TC1OmiFbqq436rSot52qYmX8fkwdB5UcLQ==", + "version": "1.7.10", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.7.10.tgz", + "integrity": "sha512-yGOFjE7w/akRTmqGY3FvWYrqbxO7OB2N2FHj2LO5HtzXflfoABb5RyRvdEquX+17J6mEpu4EwjYNraTD/WHIEQ==", "cpu": [ "arm" ], @@ -8060,9 +8071,9 @@ } }, "node_modules/@swc/core-linux-arm64-gnu": { - "version": "1.7.6", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.7.6.tgz", - "integrity": "sha512-TBEGMSe0LhvPe4S7E68c7VzgT3OMu4VTmBLS7B2aHv4v8uZO92Khpp7L0WqgYU1y5eMjk+XLDLi4kokiNHv/Hg==", + "version": "1.7.10", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.7.10.tgz", + "integrity": "sha512-SPWsgWHfdWKKjLrYlvhxcdBJ7Ruy6crJbPoE9NfD95eJEjMnS2yZTqj2ChFsY737WeyhWYlHzgYhYOVCp83YwQ==", "cpu": [ "arm64" ], @@ -8075,9 +8086,9 @@ } }, "node_modules/@swc/core-linux-arm64-musl": { - "version": "1.7.6", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.7.6.tgz", - "integrity": "sha512-QI8QGL0HGT42tj7F1A+YAzhGkJjUcvvTfI1e2m704W0Enl2/UIK9v5D1zvQzYwusRyKuaQfbeBRYDh0NcLOGLg==", + "version": "1.7.10", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.7.10.tgz", + "integrity": "sha512-PUi50bkNqnBL3Z/Zq6jSfwgN9A/taA6u2Zou0tjDJi7oVdpjdr7SxNgCGzMJ/nNg5D/IQn1opM1jktMvpsPAuQ==", "cpu": [ "arm64" ], @@ -8090,9 +8101,9 @@ } }, "node_modules/@swc/core-linux-x64-gnu": { - "version": "1.7.6", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.7.6.tgz", - "integrity": "sha512-61AYVzhjuNQAVIKKWOJu3H0/pFD28RYJGxnGg3YMhvRLRyuWNyY5Nyyj2WkKcz/ON+g38Arlz00NT1LDIViRLg==", + "version": "1.7.10", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.7.10.tgz", + "integrity": "sha512-Sc+pY55gknCAmBQBR6DhlA7jZSxHaLSDb5Sevzi6DOFMXR79NpA6zWTNKwp1GK2AnRIkbAfvYLgOxS5uWTFVpg==", "cpu": [ "x64" ], @@ -8105,9 +8116,9 @@ } }, "node_modules/@swc/core-linux-x64-musl": { - "version": "1.7.6", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.7.6.tgz", - "integrity": "sha512-hQFznpfLK8XajfAAN9Cjs0w/aVmO7iu9VZvInyrTCRcPqxV5O+rvrhRxKvC1LRMZXr5M6JRSRtepp5w+TK4kAw==", + "version": "1.7.10", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.7.10.tgz", + "integrity": "sha512-g5NKx2LXaGd0K26hmEts1Cvb7ptIvq3MHSgr6/D1tRPcDZw1Sp0dYsmyOv0ho4F5GOJyiCooG3oE9FXdb7jIpQ==", "cpu": [ "x64" ], @@ -8120,9 +8131,9 @@ } }, "node_modules/@swc/core-win32-arm64-msvc": { - "version": "1.7.6", - "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.7.6.tgz", - "integrity": "sha512-Aqsd9afykVMuekzjm4X4TDqwxmG4CrzoOSFe0hZrn9SMio72l5eAPnMtYoe5LsIqtjV8MNprLfXaNbjHjTegmA==", + "version": "1.7.10", + "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.7.10.tgz", + "integrity": "sha512-plRIsOcfy9t9Q/ivm5DA7I0HaIvfAWPbI+bvVRrr3C/1K2CSqnqZJjEWOAmx2LiyipijNnEaFYuLBp0IkGuJpg==", "cpu": [ "arm64" ], @@ -8135,9 +8146,9 @@ } }, "node_modules/@swc/core-win32-ia32-msvc": { - "version": "1.7.6", - "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.7.6.tgz", - "integrity": "sha512-9h0hYnOeRVNeQgHQTvD1Im67faNSSzBZ7Adtxyu9urNLfBTJilMllFd2QuGHlKW5+uaT6ZH7ZWDb+c/enx7Lcg==", + "version": "1.7.10", + "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.7.10.tgz", + "integrity": "sha512-GntrVNT23viHtbfzmlK8lfBiKeajH24GzbDT7qXhnoO20suUPcyYZxyvCb4gWM2zu8ZBTPHNlqfrNsriQCZ+lQ==", "cpu": [ "ia32" ], @@ -8150,9 +8161,9 @@ } }, "node_modules/@swc/core-win32-x64-msvc": { - "version": "1.7.6", - "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.7.6.tgz", - "integrity": "sha512-izeoB8glCSe6IIDQmrVm6bvR9muk9TeKgmtY7b6l1BwL4BFnTUk4dMmpbntT90bEVQn3JPCaPtUG4HfL8VuyuA==", + "version": "1.7.10", + "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.7.10.tgz", + "integrity": "sha512-uXIF8GuSappe1imm6Lf7pHGepfCBjDQlS+qTqvEGE0wZAsL1IVATK9P/cH/OCLfJXeQDTLeSYmrpwjtXNt46tQ==", "cpu": [ "x64" ], @@ -8792,15 +8803,16 @@ } }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "8.0.1", + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.1.0.tgz", + "integrity": "sha512-LlNBaHFCEBPHyD4pZXb35mzjGkuGKXU5eeCA1SxvHfiRES0E82dOounfVpL4DCqYvJEKab0bZIA0gCRpdLKkCw==", "dev": true, - "license": "MIT", "dependencies": { "@eslint-community/regexpp": "^4.10.0", - "@typescript-eslint/scope-manager": "8.0.1", - "@typescript-eslint/type-utils": "8.0.1", - "@typescript-eslint/utils": "8.0.1", - "@typescript-eslint/visitor-keys": "8.0.1", + "@typescript-eslint/scope-manager": "8.1.0", + "@typescript-eslint/type-utils": "8.1.0", + "@typescript-eslint/utils": "8.1.0", + "@typescript-eslint/visitor-keys": "8.1.0", "graphemer": "^1.4.0", "ignore": "^5.3.1", "natural-compare": "^1.4.0", @@ -8824,14 +8836,15 @@ } }, "node_modules/@typescript-eslint/parser": { - "version": "8.0.1", + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.1.0.tgz", + "integrity": "sha512-U7iTAtGgJk6DPX9wIWPPOlt1gO57097G06gIcl0N0EEnNw8RGD62c+2/DiP/zL7KrkqnnqF7gtFGR7YgzPllTA==", "dev": true, - "license": "BSD-2-Clause", "dependencies": { - "@typescript-eslint/scope-manager": "8.0.1", - "@typescript-eslint/types": "8.0.1", - "@typescript-eslint/typescript-estree": "8.0.1", - "@typescript-eslint/visitor-keys": "8.0.1", + "@typescript-eslint/scope-manager": "8.1.0", + "@typescript-eslint/types": "8.1.0", + "@typescript-eslint/typescript-estree": "8.1.0", + "@typescript-eslint/visitor-keys": "8.1.0", "debug": "^4.3.4" }, "engines": { @@ -8851,12 +8864,13 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "8.0.1", + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.1.0.tgz", + "integrity": "sha512-DsuOZQji687sQUjm4N6c9xABJa7fjvfIdjqpSIIVOgaENf2jFXiM9hIBZOL3hb6DHK9Nvd2d7zZnoMLf9e0OtQ==", "dev": true, - "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.0.1", - "@typescript-eslint/visitor-keys": "8.0.1" + "@typescript-eslint/types": "8.1.0", + "@typescript-eslint/visitor-keys": "8.1.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -8867,12 +8881,13 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "8.0.1", + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.1.0.tgz", + "integrity": "sha512-oLYvTxljVvsMnldfl6jIKxTaU7ok7km0KDrwOt1RHYu6nxlhN3TIx8k5Q52L6wR33nOwDgM7VwW1fT1qMNfFIA==", "dev": true, - "license": "MIT", "dependencies": { - "@typescript-eslint/typescript-estree": "8.0.1", - "@typescript-eslint/utils": "8.0.1", + "@typescript-eslint/typescript-estree": "8.1.0", + "@typescript-eslint/utils": "8.1.0", "debug": "^4.3.4", "ts-api-utils": "^1.3.0" }, @@ -8890,9 +8905,10 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "8.0.1", + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.1.0.tgz", + "integrity": "sha512-q2/Bxa0gMOu/2/AKALI0tCKbG2zppccnRIRCW6BaaTlRVaPKft4oVYPp7WOPpcnsgbr0qROAVCVKCvIQ0tbWog==", "dev": true, - "license": "MIT", "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, @@ -8902,12 +8918,13 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "8.0.1", + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.1.0.tgz", + "integrity": "sha512-NTHhmufocEkMiAord/g++gWKb0Fr34e9AExBRdqgWdVBaKoei2dIyYKD9Q0jBnvfbEA5zaf8plUFMUH6kQ0vGg==", "dev": true, - "license": "BSD-2-Clause", "dependencies": { - "@typescript-eslint/types": "8.0.1", - "@typescript-eslint/visitor-keys": "8.0.1", + "@typescript-eslint/types": "8.1.0", + "@typescript-eslint/visitor-keys": "8.1.0", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", @@ -8930,8 +8947,9 @@ }, "node_modules/@typescript-eslint/typescript-estree/node_modules/globby": { "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", "dev": true, - "license": "MIT", "dependencies": { "array-union": "^2.1.0", "dir-glob": "^3.0.1", @@ -8949,8 +8967,9 @@ }, "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": { "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", "dev": true, - "license": "ISC", "bin": { "semver": "bin/semver.js" }, @@ -8959,14 +8978,15 @@ } }, "node_modules/@typescript-eslint/utils": { - "version": "8.0.1", + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.1.0.tgz", + "integrity": "sha512-ypRueFNKTIFwqPeJBfeIpxZ895PQhNyH4YID6js0UoBImWYoSjBsahUn9KMiJXh94uOjVBgHD9AmkyPsPnFwJA==", "dev": true, - "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.4.0", - "@typescript-eslint/scope-manager": "8.0.1", - "@typescript-eslint/types": "8.0.1", - "@typescript-eslint/typescript-estree": "8.0.1" + "@typescript-eslint/scope-manager": "8.1.0", + "@typescript-eslint/types": "8.1.0", + "@typescript-eslint/typescript-estree": "8.1.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -8980,11 +9000,12 @@ } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "8.0.1", + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.1.0.tgz", + "integrity": "sha512-ba0lNI19awqZ5ZNKh6wCModMwoZs457StTebQ0q1NP58zSi2F6MOZRXwfKZy+jB78JNJ/WH8GSh2IQNzXX8Nag==", "dev": true, - "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.0.1", + "@typescript-eslint/types": "8.1.0", "eslint-visitor-keys": "^3.4.3" }, "engines": { @@ -14029,6 +14050,15 @@ "url": "https://opencollective.com/eslint" } }, + "node_modules/eslint/node_modules/@eslint/js": { + "version": "9.8.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.8.0.tgz", + "integrity": "sha512-MfluB7EUfxXtv3i/++oh89uzAr4PDI4nn201hsp+qaXqsjAWzinlZEHEfPgAX4doIlKvPG/i0A9dpKxOLII8yA==", + "dev": true, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, "node_modules/eslint/node_modules/ansi-styles": { "version": "4.3.0", "dev": true, @@ -23891,8 +23921,9 @@ } }, "node_modules/ts-pattern": { - "version": "5.2.0", - "license": "MIT" + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/ts-pattern/-/ts-pattern-5.3.1.tgz", + "integrity": "sha512-1RUMKa8jYQdNfmnK4jyzBK3/PS/tnjcZ1CW0v1vWDeYe5RBklc/nquw03MEoB66hVBm4BnlCfmOqDVxHyT1DpA==" }, "node_modules/ts-simple-type": { "version": "2.0.0-next.0", @@ -24065,13 +24096,14 @@ } }, "node_modules/typescript-eslint": { - "version": "8.0.1", + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.1.0.tgz", + "integrity": "sha512-prB2U3jXPJLpo1iVLN338Lvolh6OrcCZO+9Yv6AR+tvegPPptYCDBIHiEEUdqRi8gAv2bXNKfMUrgAd2ejn/ow==", "dev": true, - "license": "MIT", "dependencies": { - "@typescript-eslint/eslint-plugin": "8.0.1", - "@typescript-eslint/parser": "8.0.1", - "@typescript-eslint/utils": "8.0.1" + "@typescript-eslint/eslint-plugin": "8.1.0", + "@typescript-eslint/parser": "8.1.0", + "@typescript-eslint/utils": "8.1.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -25448,7 +25480,7 @@ "@rollup/plugin-node-resolve": "^15.2.3", "@rollup/plugin-swc": "^0.3.1", "@swc/cli": "^0.4.0", - "@swc/core": "^1.6.13", + "@swc/core": "^1.7.10", "@trivago/prettier-plugin-sort-imports": "^4.3.0", "@types/jquery": "^3.5.30", "lockfile-lint": "^4.14.0", @@ -25458,7 +25490,7 @@ "wireit": "^0.14.4" }, "optionalDependencies": { - "@swc/core": "^1.6.13", + "@swc/core": "^1.7.10", "@swc/core-darwin-arm64": "^1.6.13", "@swc/core-darwin-x64": "^1.6.13", "@swc/core-linux-arm-gnueabihf": "^1.6.13", diff --git a/web/package.json b/web/package.json index b2e0342d5995..d4bc6257c996 100644 --- a/web/package.json +++ b/web/package.json @@ -11,7 +11,7 @@ "@floating-ui/dom": "^1.6.9", "@formatjs/intl-listformat": "^7.5.7", "@fortawesome/fontawesome-free": "^6.6.0", - "@goauthentik/api": "^2024.6.3-1723234818", + "@goauthentik/api": "^2024.6.3-1723497462", "@lit/context": "^1.1.2", "@lit/localize": "^0.12.2", "@lit/reactive-element": "^2.0.4", @@ -19,7 +19,7 @@ "@open-wc/lit-helpers": "^0.7.0", "@patternfly/elements": "^3.0.2", "@patternfly/patternfly": "^4.224.2", - "@sentry/browser": "^8.24.0", + "@sentry/browser": "^8.25.0", "@webcomponents/webcomponentsjs": "^2.8.0", "base64-js": "^1.5.1", "chart.js": "^4.4.3", @@ -36,7 +36,7 @@ "rapidoc": "^9.3.4", "showdown": "^2.1.0", "style-mod": "^4.1.2", - "ts-pattern": "^5.2.0", + "ts-pattern": "^5.3.1", "webcomponent-qr-code": "^1.2.0", "yaml": "^2.5.0" }, @@ -51,7 +51,7 @@ "@babel/preset-typescript": "^7.24.7", "@changesets/cli": "^2.27.5", "@custom-elements-manifest/analyzer": "^0.10.2", - "@eslint/js": "^9.8.0", + "@eslint/js": "^9.9.0", "@genesiscommunitysuccess/custom-elements-lsp": "^5.0.3", "@hcaptcha/types": "^1.0.4", "@jeysal/storybook-addon-css-user-preferences": "^0.2.0", @@ -108,7 +108,7 @@ "tslib": "^2.6.3", "turnstile-types": "^1.2.1", "typescript": "^5.5.4", - "typescript-eslint": "^8.0.1", + "typescript-eslint": "^8.1.0", "vite-tsconfig-paths": "^4.3.2", "wdio-wait-for": "^3.0.11", "wireit": "^0.14.4" diff --git a/web/packages/sfe/package.json b/web/packages/sfe/package.json index b876f5b9c6ad..bdbf2a8f9474 100644 --- a/web/packages/sfe/package.json +++ b/web/packages/sfe/package.json @@ -14,7 +14,7 @@ "@rollup/plugin-node-resolve": "^15.2.3", "@rollup/plugin-swc": "^0.3.1", "@swc/cli": "^0.4.0", - "@swc/core": "^1.6.13", + "@swc/core": "^1.7.10", "@trivago/prettier-plugin-sort-imports": "^4.3.0", "@types/jquery": "^3.5.30", "lockfile-lint": "^4.14.0", @@ -25,7 +25,7 @@ }, "license": "MIT", "optionalDependencies": { - "@swc/core": "^1.6.13", + "@swc/core": "^1.7.10", "@swc/core-darwin-arm64": "^1.6.13", "@swc/core-darwin-x64": "^1.6.13", "@swc/core-linux-arm-gnueabihf": "^1.6.13", diff --git a/web/sfe/package-lock.json b/web/sfe/package-lock.json index 091a40a6861d..dde0f37643a8 100644 --- a/web/sfe/package-lock.json +++ b/web/sfe/package-lock.json @@ -9,7 +9,7 @@ "version": "0.0.0", "license": "MIT", "dependencies": { - "@goauthentik/api": "^2024.6.1-1720888668", + "@goauthentik/api": "^2024.6.3-1723497462", "base64-js": "^1.5.1", "bootstrap": "^4.6.1", "formdata-polyfill": "^4.0.10", @@ -21,16 +21,16 @@ "@rollup/plugin-node-resolve": "^15.2.3", "@rollup/plugin-swc": "^0.3.1", "@swc/cli": "^0.4.0", - "@swc/core": "^1.7.6", + "@swc/core": "^1.7.10", "@types/jquery": "^3.5.30", "rollup": "^4.20.0", "rollup-plugin-copy": "^3.5.0" } }, "node_modules/@goauthentik/api": { - "version": "2024.6.1-1722285189", - "resolved": "https://registry.npmjs.org/@goauthentik/api/-/api-2024.6.1-1722285189.tgz", - "integrity": "sha512-1JKg3XvJ8CLO07sjzzwkW9WvNUW4GMoxVeqv+XNUEeYZ+Xlyybkfu9jV+m8biml7qbGa6xFN3JAV2MDaGGj05A==" + "version": "2024.6.3-1723497462", + "resolved": "https://registry.npmjs.org/@goauthentik/api/-/api-2024.6.3-1723497462.tgz", + "integrity": "sha512-f53RgdMmlC5B0dRnT00d08T7f+3hmXc9h3gj3ATq9S3R7x6bTPSrhWLUAjhLeJNOueBgcg2jfmtXhKdm0cHhgA==" }, "node_modules/@isaacs/cliui": { "version": "8.0.2", @@ -491,9 +491,9 @@ } }, "node_modules/@swc/core": { - "version": "1.7.6", - "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.7.6.tgz", - "integrity": "sha512-FZxyao9eQks1MRmUshgsZTmlg/HB2oXK5fghkoWJm/1CU2q2kaJlVDll2as5j+rmWiwkp0Gidlq8wlXcEEAO+g==", + "version": "1.7.10", + "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.7.10.tgz", + "integrity": "sha512-l0xrFwBQ9atizhmV94yC2nwcecTk/oftofwMNPiFMGe56dqdmi2ArHaTV3PCtMlgaUH6rGCehoRMt5OrCI1ktg==", "dev": true, "hasInstallScript": true, "dependencies": { @@ -508,16 +508,16 @@ "url": "https://opencollective.com/swc" }, "optionalDependencies": { - "@swc/core-darwin-arm64": "1.7.6", - "@swc/core-darwin-x64": "1.7.6", - "@swc/core-linux-arm-gnueabihf": "1.7.6", - "@swc/core-linux-arm64-gnu": "1.7.6", - "@swc/core-linux-arm64-musl": "1.7.6", - "@swc/core-linux-x64-gnu": "1.7.6", - "@swc/core-linux-x64-musl": "1.7.6", - "@swc/core-win32-arm64-msvc": "1.7.6", - "@swc/core-win32-ia32-msvc": "1.7.6", - "@swc/core-win32-x64-msvc": "1.7.6" + "@swc/core-darwin-arm64": "1.7.10", + "@swc/core-darwin-x64": "1.7.10", + "@swc/core-linux-arm-gnueabihf": "1.7.10", + "@swc/core-linux-arm64-gnu": "1.7.10", + "@swc/core-linux-arm64-musl": "1.7.10", + "@swc/core-linux-x64-gnu": "1.7.10", + "@swc/core-linux-x64-musl": "1.7.10", + "@swc/core-win32-arm64-msvc": "1.7.10", + "@swc/core-win32-ia32-msvc": "1.7.10", + "@swc/core-win32-x64-msvc": "1.7.10" }, "peerDependencies": { "@swc/helpers": "*" @@ -529,9 +529,9 @@ } }, "node_modules/@swc/core-darwin-arm64": { - "version": "1.7.6", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.7.6.tgz", - "integrity": "sha512-6lYHey84ZzsdtC7UuPheM4Rm0Inzxm6Sb8U6dmKc4eCx8JL0LfWG4LC5RsdsrTxnjTsbriWlnhZBffh8ijUHIQ==", + "version": "1.7.10", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.7.10.tgz", + "integrity": "sha512-TYp4x/9w/C/yMU1olK5hTKq/Hi7BjG71UJ4V1U1WxI1JA3uokjQ/GoktDfmH5V5pX4dgGSOJwUe2RjoN8Z/XnA==", "cpu": [ "arm64" ], @@ -545,9 +545,9 @@ } }, "node_modules/@swc/core-darwin-x64": { - "version": "1.7.6", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.7.6.tgz", - "integrity": "sha512-Fyl+8aH9O5rpx4O7r2KnsPpoi32iWoKOYKiipeTbGjQ/E95tNPxbmsz4yqE8Ovldcga60IPJ5OKQA3HWRiuzdw==", + "version": "1.7.10", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.7.10.tgz", + "integrity": "sha512-P3LJjAWh5yLc6p5IUwV5LgRfA3R1oDCZDMabYyb2BVQuJTD4MfegW9DhBcUUF5dhBLwq3191KpLVzE+dLTbiXw==", "cpu": [ "x64" ], @@ -561,9 +561,9 @@ } }, "node_modules/@swc/core-linux-arm-gnueabihf": { - "version": "1.7.6", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.7.6.tgz", - "integrity": "sha512-2WxYTqFaOx48GKC2cbO1/IntA+w+kfCFy436Ij7qRqqtV/WAvTM9TC1OmiFbqq436rSot52qYmX8fkwdB5UcLQ==", + "version": "1.7.10", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.7.10.tgz", + "integrity": "sha512-yGOFjE7w/akRTmqGY3FvWYrqbxO7OB2N2FHj2LO5HtzXflfoABb5RyRvdEquX+17J6mEpu4EwjYNraTD/WHIEQ==", "cpu": [ "arm" ], @@ -577,9 +577,9 @@ } }, "node_modules/@swc/core-linux-arm64-gnu": { - "version": "1.7.6", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.7.6.tgz", - "integrity": "sha512-TBEGMSe0LhvPe4S7E68c7VzgT3OMu4VTmBLS7B2aHv4v8uZO92Khpp7L0WqgYU1y5eMjk+XLDLi4kokiNHv/Hg==", + "version": "1.7.10", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.7.10.tgz", + "integrity": "sha512-SPWsgWHfdWKKjLrYlvhxcdBJ7Ruy6crJbPoE9NfD95eJEjMnS2yZTqj2ChFsY737WeyhWYlHzgYhYOVCp83YwQ==", "cpu": [ "arm64" ], @@ -593,9 +593,9 @@ } }, "node_modules/@swc/core-linux-arm64-musl": { - "version": "1.7.6", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.7.6.tgz", - "integrity": "sha512-QI8QGL0HGT42tj7F1A+YAzhGkJjUcvvTfI1e2m704W0Enl2/UIK9v5D1zvQzYwusRyKuaQfbeBRYDh0NcLOGLg==", + "version": "1.7.10", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.7.10.tgz", + "integrity": "sha512-PUi50bkNqnBL3Z/Zq6jSfwgN9A/taA6u2Zou0tjDJi7oVdpjdr7SxNgCGzMJ/nNg5D/IQn1opM1jktMvpsPAuQ==", "cpu": [ "arm64" ], @@ -609,9 +609,9 @@ } }, "node_modules/@swc/core-linux-x64-gnu": { - "version": "1.7.6", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.7.6.tgz", - "integrity": "sha512-61AYVzhjuNQAVIKKWOJu3H0/pFD28RYJGxnGg3YMhvRLRyuWNyY5Nyyj2WkKcz/ON+g38Arlz00NT1LDIViRLg==", + "version": "1.7.10", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.7.10.tgz", + "integrity": "sha512-Sc+pY55gknCAmBQBR6DhlA7jZSxHaLSDb5Sevzi6DOFMXR79NpA6zWTNKwp1GK2AnRIkbAfvYLgOxS5uWTFVpg==", "cpu": [ "x64" ], @@ -625,9 +625,9 @@ } }, "node_modules/@swc/core-linux-x64-musl": { - "version": "1.7.6", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.7.6.tgz", - "integrity": "sha512-hQFznpfLK8XajfAAN9Cjs0w/aVmO7iu9VZvInyrTCRcPqxV5O+rvrhRxKvC1LRMZXr5M6JRSRtepp5w+TK4kAw==", + "version": "1.7.10", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.7.10.tgz", + "integrity": "sha512-g5NKx2LXaGd0K26hmEts1Cvb7ptIvq3MHSgr6/D1tRPcDZw1Sp0dYsmyOv0ho4F5GOJyiCooG3oE9FXdb7jIpQ==", "cpu": [ "x64" ], @@ -641,9 +641,9 @@ } }, "node_modules/@swc/core-win32-arm64-msvc": { - "version": "1.7.6", - "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.7.6.tgz", - "integrity": "sha512-Aqsd9afykVMuekzjm4X4TDqwxmG4CrzoOSFe0hZrn9SMio72l5eAPnMtYoe5LsIqtjV8MNprLfXaNbjHjTegmA==", + "version": "1.7.10", + "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.7.10.tgz", + "integrity": "sha512-plRIsOcfy9t9Q/ivm5DA7I0HaIvfAWPbI+bvVRrr3C/1K2CSqnqZJjEWOAmx2LiyipijNnEaFYuLBp0IkGuJpg==", "cpu": [ "arm64" ], @@ -657,9 +657,9 @@ } }, "node_modules/@swc/core-win32-ia32-msvc": { - "version": "1.7.6", - "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.7.6.tgz", - "integrity": "sha512-9h0hYnOeRVNeQgHQTvD1Im67faNSSzBZ7Adtxyu9urNLfBTJilMllFd2QuGHlKW5+uaT6ZH7ZWDb+c/enx7Lcg==", + "version": "1.7.10", + "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.7.10.tgz", + "integrity": "sha512-GntrVNT23viHtbfzmlK8lfBiKeajH24GzbDT7qXhnoO20suUPcyYZxyvCb4gWM2zu8ZBTPHNlqfrNsriQCZ+lQ==", "cpu": [ "ia32" ], @@ -673,9 +673,9 @@ } }, "node_modules/@swc/core-win32-x64-msvc": { - "version": "1.7.6", - "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.7.6.tgz", - "integrity": "sha512-izeoB8glCSe6IIDQmrVm6bvR9muk9TeKgmtY7b6l1BwL4BFnTUk4dMmpbntT90bEVQn3JPCaPtUG4HfL8VuyuA==", + "version": "1.7.10", + "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.7.10.tgz", + "integrity": "sha512-uXIF8GuSappe1imm6Lf7pHGepfCBjDQlS+qTqvEGE0wZAsL1IVATK9P/cH/OCLfJXeQDTLeSYmrpwjtXNt46tQ==", "cpu": [ "x64" ], diff --git a/web/sfe/package.json b/web/sfe/package.json index c05d53b1a48f..6672a6f1af0f 100644 --- a/web/sfe/package.json +++ b/web/sfe/package.json @@ -4,7 +4,7 @@ "private": true, "license": "MIT", "dependencies": { - "@goauthentik/api": "^2024.6.3-1723109801", + "@goauthentik/api": "^2024.6.3-1723497462", "base64-js": "^1.5.1", "bootstrap": "^4.6.1", "formdata-polyfill": "^4.0.10", @@ -20,7 +20,7 @@ "@rollup/plugin-node-resolve": "^15.2.3", "@rollup/plugin-swc": "^0.3.1", "@swc/cli": "^0.4.0", - "@swc/core": "^1.7.6", + "@swc/core": "^1.7.10", "@types/jquery": "^3.5.30", "rollup": "^4.20.0", "rollup-plugin-copy": "^3.5.0" diff --git a/web/src/admin/admin-overview/cards/VersionStatusCard.ts b/web/src/admin/admin-overview/cards/VersionStatusCard.ts index e241884726f5..804efd6cd624 100644 --- a/web/src/admin/admin-overview/cards/VersionStatusCard.ts +++ b/web/src/admin/admin-overview/cards/VersionStatusCard.ts @@ -31,6 +31,13 @@ export class VersionStatusCard extends AdminStatusCard { message: html`${msg(str`${value.versionLatest} is available!`)}`, }); } + if (value.outpostOutdated) { + return Promise.resolve({ + icon: "fa fa-exclamation-triangle pf-m-warning", + message: html`${msg("An outpost is on an incorrect version!")} + ${msg("Check outposts.")}`, + }); + } if (value.versionLatestValid) { return Promise.resolve({ icon: "fa fa-check-circle pf-m-success", diff --git a/web/src/admin/applications/wizard/methods/saml/ak-application-wizard-authentication-by-saml-configuration.ts b/web/src/admin/applications/wizard/methods/saml/ak-application-wizard-authentication-by-saml-configuration.ts index 938bc92ca0ed..d2764c09dbcf 100644 --- a/web/src/admin/applications/wizard/methods/saml/ak-application-wizard-authentication-by-saml-configuration.ts +++ b/web/src/admin/applications/wizard/methods/saml/ak-application-wizard-authentication-by-saml-configuration.ts @@ -40,7 +40,7 @@ export class ApplicationWizardProviderSamlConfiguration extends BaseProviderPane constructor() { super(); new PropertymappingsApi(DEFAULT_CONFIG) - .propertymappingsSamlList({ + .propertymappingsProviderSamlList({ ordering: "saml_name", }) .then((propertyMappings: PaginatedSAMLPropertyMappingList) => { diff --git a/web/src/admin/applications/wizard/methods/saml/saml-property-mappings-search.ts b/web/src/admin/applications/wizard/methods/saml/saml-property-mappings-search.ts index dc960cbd5fde..9c0109c04c75 100644 --- a/web/src/admin/applications/wizard/methods/saml/saml-property-mappings-search.ts +++ b/web/src/admin/applications/wizard/methods/saml/saml-property-mappings-search.ts @@ -9,18 +9,20 @@ import { property, query } from "lit/decorators.js"; import { PropertymappingsApi, - PropertymappingsSamlListRequest, + PropertymappingsProviderSamlListRequest, SAMLPropertyMapping, } from "@goauthentik/api"; async function fetchObjects(query?: string): Promise { - const args: PropertymappingsSamlListRequest = { + const args: PropertymappingsProviderSamlListRequest = { ordering: "saml_name", }; if (query !== undefined) { args.search = query; } - const items = await new PropertymappingsApi(DEFAULT_CONFIG).propertymappingsSamlList(args); + const items = await new PropertymappingsApi(DEFAULT_CONFIG).propertymappingsProviderSamlList( + args, + ); return items.results; } diff --git a/web/src/admin/applications/wizard/methods/scim/ak-application-wizard-authentication-by-scim.ts b/web/src/admin/applications/wizard/methods/scim/ak-application-wizard-authentication-by-scim.ts index 0dceb8927a64..89bc399f55b9 100644 --- a/web/src/admin/applications/wizard/methods/scim/ak-application-wizard-authentication-by-scim.ts +++ b/web/src/admin/applications/wizard/methods/scim/ak-application-wizard-authentication-by-scim.ts @@ -27,7 +27,7 @@ export class ApplicationWizardAuthenticationBySCIM extends BaseProviderPanel { constructor() { super(); new PropertymappingsApi(DEFAULT_CONFIG) - .propertymappingsScimList({ + .propertymappingsProviderScimList({ ordering: "managed", }) .then((propertyMappings: PaginatedSCIMMappingList) => { diff --git a/web/src/admin/outposts/OutpostHealth.ts b/web/src/admin/outposts/OutpostHealth.ts index 57fc0833ac49..a8c63fc2835b 100644 --- a/web/src/admin/outposts/OutpostHealth.ts +++ b/web/src/admin/outposts/OutpostHealth.ts @@ -1,3 +1,4 @@ +import { getRelativeTime } from "@goauthentik/common/utils"; import { AKElement } from "@goauthentik/elements/Base"; import { PFColor } from "@goauthentik/elements/Label"; import "@goauthentik/elements/Spinner"; @@ -49,7 +50,9 @@ export class OutpostHealthElement extends AKElement {
- ${this.outpostHealth.lastSeen?.toLocaleTimeString()} + ${msg( + str`${getRelativeTime(this.outpostHealth.lastSeen)} (${this.outpostHealth.lastSeen?.toLocaleTimeString()})`, + )}
diff --git a/web/src/admin/outposts/OutpostHealthSimple.ts b/web/src/admin/outposts/OutpostHealthSimple.ts index eac52f8eeda7..51f0061d8a60 100644 --- a/web/src/admin/outposts/OutpostHealthSimple.ts +++ b/web/src/admin/outposts/OutpostHealthSimple.ts @@ -1,12 +1,13 @@ import { DEFAULT_CONFIG } from "@goauthentik/common/api/config"; import { EVENT_REFRESH } from "@goauthentik/common/constants"; +import { getRelativeTime } from "@goauthentik/common/utils"; import { AKElement } from "@goauthentik/elements/Base"; import { PFColor } from "@goauthentik/elements/Label"; import "@goauthentik/elements/Spinner"; import { msg, str } from "@lit/localize"; import { CSSResult, TemplateResult, html } from "lit"; -import { customElement, property } from "lit/decorators.js"; +import { customElement, property, state } from "lit/decorators.js"; import PFBase from "@patternfly/patternfly/patternfly-base.css"; @@ -17,8 +18,8 @@ export class OutpostHealthSimpleElement extends AKElement { @property() outpostId?: string; - @property({ attribute: false }) - outpostHealth?: OutpostHealth; + @state() + outpostHealths: OutpostHealth[] = []; @property({ attribute: false }) loaded = false; @@ -33,7 +34,7 @@ export class OutpostHealthSimpleElement extends AKElement { constructor() { super(); window.addEventListener(EVENT_REFRESH, () => { - this.outpostHealth = undefined; + this.outpostHealths = []; this.firstUpdated(); }); } @@ -46,9 +47,7 @@ export class OutpostHealthSimpleElement extends AKElement { }) .then((health) => { this.loaded = true; - if (health.length >= 1) { - this.outpostHealth = health[0]; - } + this.outpostHealths = health; }); } @@ -56,11 +55,22 @@ export class OutpostHealthSimpleElement extends AKElement { if (!this.outpostId || !this.loaded) { return html``; } - if (!this.outpostHealth) { + if (!this.outpostHealths || this.outpostHealths.length === 0) { return html`${msg("Not available")}`; } + const outdatedOutposts = this.outpostHealths.filter((h) => h.versionOutdated); + if (outdatedOutposts.length > 0) { + return html` + ${msg( + str`${outdatedOutposts[0].version}, should be ${outdatedOutposts[0].versionShould}`, + )}`; + } + const lastSeen = this.outpostHealths[0].lastSeen; return html` - ${msg(str`Last seen: ${this.outpostHealth.lastSeen?.toLocaleTimeString()}`)}`; } } diff --git a/web/src/admin/outposts/OutpostListPage.ts b/web/src/admin/outposts/OutpostListPage.ts index 02aa01ea6fb4..7784c11574e9 100644 --- a/web/src/admin/outposts/OutpostListPage.ts +++ b/web/src/admin/outposts/OutpostListPage.ts @@ -70,7 +70,7 @@ export class OutpostListPage extends TablePage { const outposts = await new OutpostsApi(DEFAULT_CONFIG).outpostsInstancesList( await this.defaultEndpointConfig(), ); - Promise.all( + await Promise.all( outposts.results.map((outpost) => { return new OutpostsApi(DEFAULT_CONFIG) .outpostsInstancesHealthList({ diff --git a/web/src/admin/property-mappings/PropertyMappingListPage.ts b/web/src/admin/property-mappings/PropertyMappingListPage.ts index 3a55062ef8ae..450cb368d8a9 100644 --- a/web/src/admin/property-mappings/PropertyMappingListPage.ts +++ b/web/src/admin/property-mappings/PropertyMappingListPage.ts @@ -1,16 +1,16 @@ -import "@goauthentik/admin/property-mappings/PropertyMappingGoogleWorkspaceForm"; -import "@goauthentik/admin/property-mappings/PropertyMappingLDAPSourceForm"; -import "@goauthentik/admin/property-mappings/PropertyMappingMicrosoftEntraForm"; import "@goauthentik/admin/property-mappings/PropertyMappingNotification"; -import "@goauthentik/admin/property-mappings/PropertyMappingOAuthSourceForm"; -import "@goauthentik/admin/property-mappings/PropertyMappingPlexSourceForm"; -import "@goauthentik/admin/property-mappings/PropertyMappingRACForm"; -import "@goauthentik/admin/property-mappings/PropertyMappingRadiusForm"; -import "@goauthentik/admin/property-mappings/PropertyMappingSAMLForm"; -import "@goauthentik/admin/property-mappings/PropertyMappingSAMLSourceForm"; -import "@goauthentik/admin/property-mappings/PropertyMappingSCIMForm"; -import "@goauthentik/admin/property-mappings/PropertyMappingSCIMSourceForm"; -import "@goauthentik/admin/property-mappings/PropertyMappingScopeForm"; +import "@goauthentik/admin/property-mappings/PropertyMappingProviderGoogleWorkspaceForm"; +import "@goauthentik/admin/property-mappings/PropertyMappingProviderMicrosoftEntraForm"; +import "@goauthentik/admin/property-mappings/PropertyMappingProviderRACForm"; +import "@goauthentik/admin/property-mappings/PropertyMappingProviderRadiusForm"; +import "@goauthentik/admin/property-mappings/PropertyMappingProviderSAMLForm"; +import "@goauthentik/admin/property-mappings/PropertyMappingProviderSCIMForm"; +import "@goauthentik/admin/property-mappings/PropertyMappingProviderScopeForm"; +import "@goauthentik/admin/property-mappings/PropertyMappingSourceLDAPForm"; +import "@goauthentik/admin/property-mappings/PropertyMappingSourceOAuthForm"; +import "@goauthentik/admin/property-mappings/PropertyMappingSourcePlexForm"; +import "@goauthentik/admin/property-mappings/PropertyMappingSourceSAMLForm"; +import "@goauthentik/admin/property-mappings/PropertyMappingSourceSCIMForm"; import "@goauthentik/admin/property-mappings/PropertyMappingTestForm"; import "@goauthentik/admin/property-mappings/PropertyMappingWizard"; import "@goauthentik/admin/rbac/ObjectPermissionModal"; diff --git a/web/src/admin/property-mappings/PropertyMappingGoogleWorkspaceForm.ts b/web/src/admin/property-mappings/PropertyMappingProviderGoogleWorkspaceForm.ts similarity index 82% rename from web/src/admin/property-mappings/PropertyMappingGoogleWorkspaceForm.ts rename to web/src/admin/property-mappings/PropertyMappingProviderGoogleWorkspaceForm.ts index d1b3fd8f237b..141878860333 100644 --- a/web/src/admin/property-mappings/PropertyMappingGoogleWorkspaceForm.ts +++ b/web/src/admin/property-mappings/PropertyMappingProviderGoogleWorkspaceForm.ts @@ -7,8 +7,8 @@ import { customElement } from "lit/decorators.js"; import { GoogleWorkspaceProviderMapping, PropertymappingsApi } from "@goauthentik/api"; -@customElement("ak-property-mapping-google-workspace-form") -export class PropertyMappingGoogleWorkspaceForm extends BasePropertyMappingForm { +@customElement("ak-property-mapping-provider-google-workspace-form") +export class PropertyMappingProviderGoogleWorkspaceForm extends BasePropertyMappingForm { loadInstance(pk: string): Promise { return new PropertymappingsApi( DEFAULT_CONFIG, @@ -37,6 +37,6 @@ export class PropertyMappingGoogleWorkspaceForm extends BasePropertyMappingForm< declare global { interface HTMLElementTagNameMap { - "ak-property-mapping-google-workspace-form": PropertyMappingGoogleWorkspaceForm; + "ak-property-mapping-provider-google-workspace-form": PropertyMappingProviderGoogleWorkspaceForm; } } diff --git a/web/src/admin/property-mappings/PropertyMappingMicrosoftEntraForm.ts b/web/src/admin/property-mappings/PropertyMappingProviderMicrosoftEntraForm.ts similarity index 82% rename from web/src/admin/property-mappings/PropertyMappingMicrosoftEntraForm.ts rename to web/src/admin/property-mappings/PropertyMappingProviderMicrosoftEntraForm.ts index cb735db601bc..6b9be5e5ced4 100644 --- a/web/src/admin/property-mappings/PropertyMappingMicrosoftEntraForm.ts +++ b/web/src/admin/property-mappings/PropertyMappingProviderMicrosoftEntraForm.ts @@ -7,8 +7,8 @@ import { customElement } from "lit/decorators.js"; import { MicrosoftEntraProviderMapping, PropertymappingsApi } from "@goauthentik/api"; -@customElement("ak-property-mapping-microsoft-entra-form") -export class PropertyMappingMicrosoftEntraForm extends BasePropertyMappingForm { +@customElement("ak-property-mapping-provider-microsoft-entra-form") +export class PropertyMappingProviderMicrosoftEntraForm extends BasePropertyMappingForm { loadInstance(pk: string): Promise { return new PropertymappingsApi( DEFAULT_CONFIG, @@ -37,6 +37,6 @@ export class PropertyMappingMicrosoftEntraForm extends BasePropertyMappingForm[] = [ }, ]; -@customElement("ak-property-mapping-rac-form") -export class PropertyMappingRACForm extends ModelForm { +@customElement("ak-property-mapping-provider-rac-form") +export class PropertyMappingProviderRACForm extends ModelForm { loadInstance(pk: string): Promise { - return new PropertymappingsApi(DEFAULT_CONFIG).propertymappingsRacRetrieve({ + return new PropertymappingsApi(DEFAULT_CONFIG).propertymappingsProviderRacRetrieve({ pmUuid: pk, }); } @@ -50,12 +50,12 @@ export class PropertyMappingRACForm extends ModelForm { if (this.instance) { - return new PropertymappingsApi(DEFAULT_CONFIG).propertymappingsRacUpdate({ + return new PropertymappingsApi(DEFAULT_CONFIG).propertymappingsProviderRacUpdate({ pmUuid: this.instance.pk, rACPropertyMappingRequest: data, }); } else { - return new PropertymappingsApi(DEFAULT_CONFIG).propertymappingsRacCreate({ + return new PropertymappingsApi(DEFAULT_CONFIG).propertymappingsProviderRacCreate({ rACPropertyMappingRequest: data, }); } @@ -177,6 +177,6 @@ export class PropertyMappingRACForm extends ModelForm { +@customElement("ak-property-mapping-provider-radius-form") +export class PropertyMappingProviderRadiusForm extends BasePropertyMappingForm { loadInstance(pk: string): Promise { - return new PropertymappingsApi(DEFAULT_CONFIG).propertymappingsRadiusRetrieve({ + return new PropertymappingsApi(DEFAULT_CONFIG).propertymappingsProviderRadiusRetrieve({ pmUuid: pk, }); } async send(data: RadiusProviderPropertyMapping): Promise { if (this.instance) { - return new PropertymappingsApi(DEFAULT_CONFIG).propertymappingsRadiusUpdate({ + return new PropertymappingsApi(DEFAULT_CONFIG).propertymappingsProviderRadiusUpdate({ pmUuid: this.instance.pk, radiusProviderPropertyMappingRequest: data, }); } else { - return new PropertymappingsApi(DEFAULT_CONFIG).propertymappingsRadiusCreate({ + return new PropertymappingsApi(DEFAULT_CONFIG).propertymappingsProviderRadiusCreate({ radiusProviderPropertyMappingRequest: data, }); } @@ -31,6 +31,6 @@ export class PropertyMappingRadiusForm extends BasePropertyMappingForm { +@customElement("ak-property-mapping-provider-saml-form") +export class PropertyMappingProviderSAMLForm extends BasePropertyMappingForm { loadInstance(pk: string): Promise { - return new PropertymappingsApi(DEFAULT_CONFIG).propertymappingsSamlRetrieve({ + return new PropertymappingsApi(DEFAULT_CONFIG).propertymappingsProviderSamlRetrieve({ pmUuid: pk, }); } async send(data: SAMLPropertyMapping): Promise { if (this.instance) { - return new PropertymappingsApi(DEFAULT_CONFIG).propertymappingsSamlUpdate({ + return new PropertymappingsApi(DEFAULT_CONFIG).propertymappingsProviderSamlUpdate({ pmUuid: this.instance.pk, sAMLPropertyMappingRequest: data, }); } else { - return new PropertymappingsApi(DEFAULT_CONFIG).propertymappingsSamlCreate({ + return new PropertymappingsApi(DEFAULT_CONFIG).propertymappingsProviderSamlCreate({ sAMLPropertyMappingRequest: data, }); } @@ -64,6 +64,6 @@ export class PropertyMappingSAMLForm extends BasePropertyMappingForm { +@customElement("ak-property-mapping-provider-scim-form") +export class PropertyMappingProviderSCIMForm extends BasePropertyMappingForm { loadInstance(pk: string): Promise { - return new PropertymappingsApi(DEFAULT_CONFIG).propertymappingsScimRetrieve({ + return new PropertymappingsApi(DEFAULT_CONFIG).propertymappingsProviderScimRetrieve({ pmUuid: pk, }); } async send(data: SCIMMapping): Promise { if (this.instance) { - return new PropertymappingsApi(DEFAULT_CONFIG).propertymappingsScimUpdate({ + return new PropertymappingsApi(DEFAULT_CONFIG).propertymappingsProviderScimUpdate({ pmUuid: this.instance.pk, sCIMMappingRequest: data, }); } else { - return new PropertymappingsApi(DEFAULT_CONFIG).propertymappingsScimCreate({ + return new PropertymappingsApi(DEFAULT_CONFIG).propertymappingsProviderScimCreate({ sCIMMappingRequest: data, }); } @@ -31,6 +31,6 @@ export class PropertyMappingSCIMForm extends BasePropertyMappingForm { +@customElement("ak-property-mapping-provider-scope-form") +export class PropertyMappingProviderScopeForm extends BasePropertyMappingForm { loadInstance(pk: string): Promise { - return new PropertymappingsApi(DEFAULT_CONFIG).propertymappingsScopeRetrieve({ + return new PropertymappingsApi(DEFAULT_CONFIG).propertymappingsProviderScopeRetrieve({ pmUuid: pk, }); } async send(data: ScopeMapping): Promise { if (this.instance) { - return new PropertymappingsApi(DEFAULT_CONFIG).propertymappingsScopeUpdate({ + return new PropertymappingsApi(DEFAULT_CONFIG).propertymappingsProviderScopeUpdate({ pmUuid: this.instance.pk, scopeMappingRequest: data, }); } else { - return new PropertymappingsApi(DEFAULT_CONFIG).propertymappingsScopeCreate({ + return new PropertymappingsApi(DEFAULT_CONFIG).propertymappingsProviderScopeCreate({ scopeMappingRequest: data, }); } @@ -64,6 +64,6 @@ export class PropertyMappingScopeForm extends BasePropertyMappingForm { +@customElement("ak-property-mapping-source-ldap-form") +export class PropertyMappingSourceLDAPForm extends BasePropertyMappingForm { docLink(): string { return "/docs/sources/property-mappings/expression?utm_source=authentik"; } @@ -35,6 +35,6 @@ export class PropertyMappingLDAPSourceForm extends BasePropertyMappingForm { +@customElement("ak-property-mapping-source-oauth-form") +export class PropertyMappingSourceOAuthForm extends BasePropertyMappingForm { docLink(): string { return "/docs/sources/property-mappings/expression?utm_source=authentik"; } @@ -35,6 +35,6 @@ export class PropertyMappingOAuthSourceForm extends BasePropertyMappingForm { +@customElement("ak-property-mapping-source-plex-form") +export class PropertyMappingSourcePlexForm extends BasePropertyMappingForm { docLink(): string { return "/docs/sources/property-mappings/expression?utm_source=authentik"; } @@ -35,6 +35,6 @@ export class PropertyMappingPlexSourceForm extends BasePropertyMappingForm { +@customElement("ak-property-mapping-source-saml-form") +export class PropertyMappingSourceSAMLForm extends BasePropertyMappingForm { docLink(): string { return "/docs/sources/property-mappings/expression?utm_source=authentik"; } @@ -35,6 +35,6 @@ export class PropertyMappingSAMLSourceForm extends BasePropertyMappingForm { +@customElement("ak-property-mapping-source-scim-form") +export class PropertyMappingSourceSCIMForm extends BasePropertyMappingForm { docLink(): string { return "/docs/sources/property-mappings/expression?utm_source=authentik"; } @@ -35,6 +35,6 @@ export class PropertyMappingSCIMSourceForm extends BasePropertyMappingForm [m.pk, m.name, m.name, m]), @@ -226,7 +226,7 @@ export class SAMLProviderFormPage extends BaseProviderForm { .fetchObjects=${async ( query?: string, ): Promise => { - const args: PropertymappingsSamlListRequest = { + const args: PropertymappingsProviderSamlListRequest = { ordering: "saml_name", }; if (query !== undefined) { @@ -234,7 +234,7 @@ export class SAMLProviderFormPage extends BaseProviderForm { } const items = await new PropertymappingsApi( DEFAULT_CONFIG, - ).propertymappingsSamlList(args); + ).propertymappingsProviderSamlList(args); return items.results; }} .renderElement=${(item: SAMLPropertyMapping): string => { diff --git a/web/src/admin/providers/scim/SCIMProviderForm.ts b/web/src/admin/providers/scim/SCIMProviderForm.ts index f91d62762b82..8fc923af4f6c 100644 --- a/web/src/admin/providers/scim/SCIMProviderForm.ts +++ b/web/src/admin/providers/scim/SCIMProviderForm.ts @@ -24,14 +24,14 @@ import { } from "@goauthentik/api"; export async function scimPropertyMappingsProvider(page = 1, search = "") { - const propertyMappings = await new PropertymappingsApi(DEFAULT_CONFIG).propertymappingsScimList( - { - ordering: "managed", - pageSize: 20, - search: search.trim(), - page, - }, - ); + const propertyMappings = await new PropertymappingsApi( + DEFAULT_CONFIG, + ).propertymappingsProviderScimList({ + ordering: "managed", + pageSize: 20, + search: search.trim(), + page, + }); return { pagination: propertyMappings.pagination, options: propertyMappings.results.map((m) => [m.pk, m.name, m.name, m]), diff --git a/web/src/elements/ak-locale-context/definitions.ts b/web/src/elements/ak-locale-context/definitions.ts index 018c9e2a1679..76eafccf6ea1 100644 --- a/web/src/elements/ak-locale-context/definitions.ts +++ b/web/src/elements/ak-locale-context/definitions.ts @@ -49,6 +49,7 @@ const LOCALE_TABLE: LocaleRow[] = [ ["ko", /^ko([_-]|$)/i, () => msg("Korean"), async () => await import("@goauthentik/locales/ko")], ["nl", /^nl([_-]|$)/i, () => msg("Dutch"), async () => await import("@goauthentik/locales/nl")], ["pl", /^pl([_-]|$)/i, () => msg("Polish"), async () => await import("@goauthentik/locales/pl")], + ["ru", /^ru([_-]|$)/i, () => msg("Russian"), async () => await import("@goauthentik/locales/ru")], ["tr", /^tr([_-]|$)/i, () => msg("Turkish"), async () => await import("@goauthentik/locales/tr")], ["zh-Hant", /^zh[_-](HK|Hant)/i, () => msg("Chinese (traditional)"), async () => await import("@goauthentik/locales/zh-Hant")], ["zh_TW", /^zh[_-]TW$/i, () => msg("Taiwanese Mandarin"), async () => await import("@goauthentik/locales/zh_TW")], diff --git a/web/src/elements/enterprise/EnterpriseStatusBanner.ts b/web/src/elements/enterprise/EnterpriseStatusBanner.ts index cf0939224559..a1efb54ffb62 100644 --- a/web/src/elements/enterprise/EnterpriseStatusBanner.ts +++ b/web/src/elements/enterprise/EnterpriseStatusBanner.ts @@ -37,6 +37,8 @@ export class EnterpriseStatusBanner extends WithLicenseSummary(AKElement) { return nothing; } break; + case LicenseSummaryStatusEnum.Valid: + return nothing; case LicenseSummaryStatusEnum.ReadOnly: default: break; diff --git a/web/src/locale-codes.ts b/web/src/locale-codes.ts index 0f1e53d98f6f..58fedc38eac6 100644 --- a/web/src/locale-codes.ts +++ b/web/src/locale-codes.ts @@ -4,44 +4,46 @@ /** * The locale code that templates in this source code are written in. */ -export const sourceLocale = "en"; +export const sourceLocale = `en`; /** * The other locale codes that this application is localized into. Sorted * lexicographically. */ export const targetLocales = [ - "de", - "en", - "es", - "fr", - "ko", - "nl", - "pl", - "pseudo-LOCALE", - "tr", - "zh_TW", - "zh-CN", - "zh-Hans", - "zh-Hant", + `de`, + `en`, + `es`, + `fr`, + `ko`, + `nl`, + `pl`, + `pseudo-LOCALE`, + `ru`, + `tr`, + `zh_TW`, + `zh-CN`, + `zh-Hans`, + `zh-Hant`, ] as const; /** * All valid project locale codes. Sorted lexicographically. */ export const allLocales = [ - "de", - "en", - "en", - "es", - "fr", - "ko", - "nl", - "pl", - "pseudo-LOCALE", - "tr", - "zh_TW", - "zh-CN", - "zh-Hans", - "zh-Hant", + `de`, + `en`, + `en`, + `es`, + `fr`, + `ko`, + `nl`, + `pl`, + `pseudo-LOCALE`, + `ru`, + `tr`, + `zh_TW`, + `zh-CN`, + `zh-Hans`, + `zh-Hant`, ] as const; diff --git a/web/xliff/de.xlf b/web/xliff/de.xlf index db1f31ab29c6..afa8daf0baed 100644 --- a/web/xliff/de.xlf +++ b/web/xliff/de.xlf @@ -2100,9 +2100,6 @@ doesn't pass when either or both of the selected options are equal or above the No policies are currently bound to this object. Aktuell sind keine Richtlinien mit diesem Objekt verknüpft. - - Bind existing policy - Warning: Application is not used by any Outpost. Warnung: Die Anwendung wird von keinem Outpost verwendet. @@ -2205,10 +2202,6 @@ doesn't pass when either or both of the selected options are equal or above the LDAP Attribute mapping LDAP-Attributzuordnung - - Property mappings used to user creation. - Für die Benutzererstellung verwendete Eigenschaftszuordnungen. - Additional settings Weitere Einstellungen @@ -2580,14 +2573,6 @@ doesn't pass when either or both of the selected options are equal or above the Successfully created mapping. Verknüpfung erfolgreich erstellt. - - Object field - Objektfeld - - - Field of the user object this value is written to. - Feld des Benutzerobjekts, in das dieser Wert geschrieben wird. - SAML Attribute Name SAML-Attributsname @@ -2801,10 +2786,6 @@ doesn't pass when either or both of the selected options are equal or above the Recovery flow Wiederherstellungsfluss - - Recovery flow. If left empty, the first applicable flow sorted by the slug is used. - Wiederherstellungsfluss. Wenn es leer gelassen wird, wird der erste anwendbare Fluss, sortiert nach dem Slug, verwendet. - Unenrollment flow Ablauf der Abmeldung @@ -4361,10 +4342,6 @@ doesn't pass when either or both of the selected options are equal or above the Create Stage binding Stage Bindung erstellen - - Bind stage - Phasen-Verknüpfung - Bind existing stage @@ -4599,11 +4576,6 @@ Bindings to groups/users are checked against the user of the event. Not available Nicht verfügbar - - Last seen: - Überprüft: - - Unknown type @@ -5964,9 +5936,6 @@ Bindings to groups/users are checked against the user of the event. Configure Proxy Provider - - AdditionalScopes - Configure Radius Provider @@ -6123,9 +6092,6 @@ Bindings to groups/users are checked against the user of the event. Dutch - - Failed to fetch objects: - Brand @@ -6730,6 +6696,144 @@ Bindings to groups/users are checked against the user of the event. Outpost integrations define how authentik connects to external platforms to manage and deploy Outposts. + + + Operation failed to complete + + + Failed to fetch objects: + + + Available Scopes + + + Selected Scopes + + + Available Property Mappings + + + Selected Property Mappings + + + Available User Property Mappings + + + Selected User Property Mappings + + + Available Group Property Mappings + + + Selected Group Property Mappings + + + Ensure the user satisfies requirements of geography or network topology, based on IP address. If any of the configured values match, the policy passes. + + + ASNs + + + List of autonomous system numbers. Comma separated. E.g. 13335, 15169, 20940 + + + Countries + + + Available Countries + + + Selected Countries + + + Bind existing policy/group/user + + + Property mappings for user creation. + + + Property mappings for group creation. + + + Link to a group with identical name. Can have security implications when a group is used with another source + + + Use the group's name, but deny enrollment when the name already exists + + + Group matching mode + + + OAuth Attribute mapping + + + Plex Attribute mapping + + + Encryption Certificate + + + When selected, encrypted assertions will be decrypted using this keypair. + + + SAML Attribute mapping + + + SCIM Attribute mapping + + + External user settings + + + Default application + + + When configured, external users will automatically be redirected to this application when not attempting to access a different application + + + Warning: One or more license(s) have expired. + + + Warning: One or more license(s) will expire within the next 2 weeks. + + + Caution: This authentik instance has entered read-only mode due to expired/exceeded licenses. + + + This authentik instance uses a Trial license. + + + This authentik instance uses a Non-production license. + + + Access Tokens(s) + + + Created at + + + Last updated at + + + Last used at + + + Provide users with a 'show password' button. + + + Show password + + + Hide password + + + An outpost is on an incorrect version! + + + Russian + + + Last seen: () diff --git a/web/xliff/en.xlf b/web/xliff/en.xlf index 3b865f688547..1b98785d0ee6 100644 --- a/web/xliff/en.xlf +++ b/web/xliff/en.xlf @@ -2200,10 +2200,6 @@ doesn't pass when either or both of the selected options are equal or above the No policies are currently bound to this object. No policies are currently bound to this object. - - Bind existing policy - Bind existing policy - Warning: Application is not used by any Outpost. Warning: Application is not used by any Outpost. @@ -2308,10 +2304,6 @@ doesn't pass when either or both of the selected options are equal or above the LDAP Attribute mapping LDAP Attribute mapping - - Property mappings used to user creation. - Property mappings used to user creation. - Additional settings Additional settings @@ -2697,14 +2689,6 @@ doesn't pass when either or both of the selected options are equal or above the Successfully created mapping. Successfully created mapping. - - Object field - Object field - - - Field of the user object this value is written to. - Field of the user object this value is written to. - SAML Attribute Name SAML Attribute Name @@ -2925,10 +2909,6 @@ doesn't pass when either or both of the selected options are equal or above the Recovery flow Recovery flow - - Recovery flow. If left empty, the first applicable flow sorted by the slug is used. - Recovery flow. If left empty, the first applicable flow sorted by the slug is used. - Unenrollment flow Unenrollment flow @@ -4581,10 +4561,6 @@ doesn't pass when either or both of the selected options are equal or above the Create Stage binding Create Stage binding - - Bind stage - Bind stage - Bind existing stage Bind existing stage @@ -4828,11 +4804,6 @@ Bindings to groups/users are checked against the user of the event. Not available Not available - - Last seen: - Last seen: - - Unknown type Unknown type @@ -6230,9 +6201,6 @@ Bindings to groups/users are checked against the user of the event. Configure Proxy Provider - - AdditionalScopes - Configure Radius Provider @@ -6389,9 +6357,6 @@ Bindings to groups/users are checked against the user of the event. Dutch - - Failed to fetch objects: - Brand @@ -6996,6 +6961,144 @@ Bindings to groups/users are checked against the user of the event. Outpost integrations define how authentik connects to external platforms to manage and deploy Outposts. + + + Operation failed to complete + + + Failed to fetch objects: + + + Available Scopes + + + Selected Scopes + + + Available Property Mappings + + + Selected Property Mappings + + + Available User Property Mappings + + + Selected User Property Mappings + + + Available Group Property Mappings + + + Selected Group Property Mappings + + + Ensure the user satisfies requirements of geography or network topology, based on IP address. If any of the configured values match, the policy passes. + + + ASNs + + + List of autonomous system numbers. Comma separated. E.g. 13335, 15169, 20940 + + + Countries + + + Available Countries + + + Selected Countries + + + Bind existing policy/group/user + + + Property mappings for user creation. + + + Property mappings for group creation. + + + Link to a group with identical name. Can have security implications when a group is used with another source + + + Use the group's name, but deny enrollment when the name already exists + + + Group matching mode + + + OAuth Attribute mapping + + + Plex Attribute mapping + + + Encryption Certificate + + + When selected, encrypted assertions will be decrypted using this keypair. + + + SAML Attribute mapping + + + SCIM Attribute mapping + + + External user settings + + + Default application + + + When configured, external users will automatically be redirected to this application when not attempting to access a different application + + + Warning: One or more license(s) have expired. + + + Warning: One or more license(s) will expire within the next 2 weeks. + + + Caution: This authentik instance has entered read-only mode due to expired/exceeded licenses. + + + This authentik instance uses a Trial license. + + + This authentik instance uses a Non-production license. + + + Access Tokens(s) + + + Created at + + + Last updated at + + + Last used at + + + Provide users with a 'show password' button. + + + Show password + + + Hide password + + + An outpost is on an incorrect version! + + + Russian + + + Last seen: () diff --git a/web/xliff/es.xlf b/web/xliff/es.xlf index 0d51ca8be066..7fcc96a6e39c 100644 --- a/web/xliff/es.xlf +++ b/web/xliff/es.xlf @@ -2066,9 +2066,6 @@ doesn't pass when either or both of the selected options are equal or above the No policies are currently bound to this object. Actualmente, no hay políticas vinculadas a este objeto. - - Bind existing policy - Warning: Application is not used by any Outpost. Advertencia: La aplicación no es utilizada por ningún puesto avanzado. @@ -2171,10 +2168,6 @@ doesn't pass when either or both of the selected options are equal or above the LDAP Attribute mapping Mapeo de atributos LDAP - - Property mappings used to user creation. - Asignaciones de propiedades utilizadas para la creación de usuarios. - Additional settings Configuraciones adicionales @@ -2539,14 +2532,6 @@ doesn't pass when either or both of the selected options are equal or above the Successfully created mapping. La asignación se creó correctamente. - - Object field - Campo objeto - - - Field of the user object this value is written to. - Campo del objeto de usuario en el que se escribe este valor. - SAML Attribute Name Nombre de atributo SAML @@ -2757,10 +2742,6 @@ doesn't pass when either or both of the selected options are equal or above the Recovery flow Flujo de recuperación - - Recovery flow. If left empty, the first applicable flow sorted by the slug is used. - Flujo de recuperación. Si se deja vacío, se usa el primer flujo aplicable clasificado por la carga. - Unenrollment flow Flujo de cancelación de inscripción @@ -4291,10 +4272,6 @@ doesn't pass when either or both of the selected options are equal or above the Create Stage binding Crear enlace de escenario - - Bind stage - Etapa Bind - Bind existing stage @@ -4527,11 +4504,6 @@ Bindings to groups/users are checked against the user of the event. Not available No disponible - - Last seen: - Visto por última vez: - - Unknown type @@ -5881,9 +5853,6 @@ Bindings to groups/users are checked against the user of the event. Configure Proxy Provider - - AdditionalScopes - Configure Radius Provider @@ -6040,9 +6009,6 @@ Bindings to groups/users are checked against the user of the event. Dutch - - Failed to fetch objects: - Brand @@ -6647,6 +6613,144 @@ Bindings to groups/users are checked against the user of the event. Outpost integrations define how authentik connects to external platforms to manage and deploy Outposts. + + + Operation failed to complete + + + Failed to fetch objects: + + + Available Scopes + + + Selected Scopes + + + Available Property Mappings + + + Selected Property Mappings + + + Available User Property Mappings + + + Selected User Property Mappings + + + Available Group Property Mappings + + + Selected Group Property Mappings + + + Ensure the user satisfies requirements of geography or network topology, based on IP address. If any of the configured values match, the policy passes. + + + ASNs + + + List of autonomous system numbers. Comma separated. E.g. 13335, 15169, 20940 + + + Countries + + + Available Countries + + + Selected Countries + + + Bind existing policy/group/user + + + Property mappings for user creation. + + + Property mappings for group creation. + + + Link to a group with identical name. Can have security implications when a group is used with another source + + + Use the group's name, but deny enrollment when the name already exists + + + Group matching mode + + + OAuth Attribute mapping + + + Plex Attribute mapping + + + Encryption Certificate + + + When selected, encrypted assertions will be decrypted using this keypair. + + + SAML Attribute mapping + + + SCIM Attribute mapping + + + External user settings + + + Default application + + + When configured, external users will automatically be redirected to this application when not attempting to access a different application + + + Warning: One or more license(s) have expired. + + + Warning: One or more license(s) will expire within the next 2 weeks. + + + Caution: This authentik instance has entered read-only mode due to expired/exceeded licenses. + + + This authentik instance uses a Trial license. + + + This authentik instance uses a Non-production license. + + + Access Tokens(s) + + + Created at + + + Last updated at + + + Last used at + + + Provide users with a 'show password' button. + + + Show password + + + Hide password + + + An outpost is on an incorrect version! + + + Russian + + + Last seen: () diff --git a/web/xliff/fr.xlf b/web/xliff/fr.xlf index 1fd36cefab9c..ae200c56ba63 100644 --- a/web/xliff/fr.xlf +++ b/web/xliff/fr.xlf @@ -1,4 +1,4 @@ - + @@ -596,9 +596,9 @@ - The URL "" was not found. - L'URL " - " n'a pas été trouvée. + The URL "" was not found. + L'URL " + " n'a pas été trouvée. @@ -1040,8 +1040,8 @@ - To allow any redirect URI, set this value to ".*". Be aware of the possible security implications this can have. - Pour permettre n'importe quelle URI de redirection, définissez cette valeur sur ".*". Soyez conscient des possibles implications de sécurité que cela peut avoir. + To allow any redirect URI, set this value to ".*". Be aware of the possible security implications this can have. + Pour permettre n'importe quelle URI de redirection, définissez cette valeur sur ".*". Soyez conscient des possibles implications de sécurité que cela peut avoir. @@ -1598,7 +1598,7 @@ Token to authenticate with. Currently only bearer authentication is supported. - Jeton d'authentification à utiliser. Actuellement, seule l'authentification "bearer authentication" est prise en charge. + Jeton d'authentification à utiliser. Actuellement, seule l'authentification "bearer authentication" est prise en charge. @@ -1766,8 +1766,8 @@ - Either input a full URL, a relative path, or use 'fa://fa-test' to use the Font Awesome icon "fa-test". - Entrez une URL complète, un chemin relatif ou utilisez 'fa://fa-test' pour utiliser l'icône Font Awesome "fa-test". + Either input a full URL, a relative path, or use 'fa://fa-test' to use the Font Awesome icon "fa-test". + Entrez une URL complète, un chemin relatif ou utilisez 'fa://fa-test' pour utiliser l'icône Font Awesome "fa-test". @@ -2742,11 +2742,6 @@ doesn't pass when either or both of the selected options are equal or above the No policies are currently bound to this object. Aucune politique n'est actuellement lié à cet objet. - - - Bind existing policy - Lier une politique existante - Warning: Application is not used by any Outpost. @@ -2855,7 +2850,7 @@ doesn't pass when either or both of the selected options are equal or above the To use SSL instead, use 'ldaps://' and disable this option. - Pour utiliser SSL à la base, utilisez "ldaps://" et désactviez cette option. + Pour utiliser SSL à la base, utilisez "ldaps://" et désactviez cette option. @@ -2877,11 +2872,6 @@ doesn't pass when either or both of the selected options are equal or above the LDAP Attribute mapping Mappage des attributs LDAP - - - Property mappings used to user creation. - Mappages de propriété utilisés lors de la création d'utilisateurs - Additional settings @@ -2944,8 +2934,8 @@ doesn't pass when either or both of the selected options are equal or above the - Field which contains members of a group. Note that if using the "memberUid" field, the value is assumed to contain a relative distinguished name. e.g. 'memberUid=some-user' instead of 'memberUid=cn=some-user,ou=groups,...' - Champ qui contient les membres d'un groupe. Si vous utilisez le champ "memberUid", la valeur est censée contenir un nom distinctif relatif, par exemple 'memberUid=un-utilisateur' au lieu de 'memberUid=cn=un-utilisateur,ou=groups,...' + Field which contains members of a group. Note that if using the "memberUid" field, the value is assumed to contain a relative distinguished name. e.g. 'memberUid=some-user' instead of 'memberUid=cn=some-user,ou=groups,...' + Champ qui contient les membres d'un groupe. Si vous utilisez le champ "memberUid", la valeur est censée contenir un nom distinctif relatif, par exemple 'memberUid=un-utilisateur' au lieu de 'memberUid=cn=un-utilisateur,ou=groups,...' @@ -3240,7 +3230,7 @@ doesn't pass when either or both of the selected options are equal or above the Time offset when temporary users should be deleted. This only applies if your IDP uses the NameID Format 'transient', and the user doesn't log out manually. - Moment où les utilisateurs temporaires doivent être supprimés. Cela ne s'applique que si votre IDP utilise le format NameID "transient" et que l'utilisateur ne se déconnecte pas manuellement. + Moment où les utilisateurs temporaires doivent être supprimés. Cela ne s'applique que si votre IDP utilise le format NameID "transient" et que l'utilisateur ne se déconnecte pas manuellement. @@ -3364,16 +3354,6 @@ doesn't pass when either or both of the selected options are equal or above the Successfully created mapping. Mappage créé avec succès - - - Object field - Champ d'objet - - - - Field of the user object this value is written to. - Champ de l'objet utilisateur dans lequel cette valeur est écrite. - SAML Attribute Name @@ -3392,7 +3372,7 @@ doesn't pass when either or both of the selected options are equal or above the Optionally set the 'FriendlyName' value of the Assertion attribute. - Indiquer la valeur "FriendlyName" de l'attribut d'assertion (optionnel) + Indiquer la valeur "FriendlyName" de l'attribut d'assertion (optionnel) @@ -3649,11 +3629,6 @@ doesn't pass when either or both of the selected options are equal or above the Recovery flow Flux de récupération - - - Recovery flow. If left empty, the first applicable flow sorted by the slug is used. - Flux de récupération. Si laissé vide, le premier flux applicable trié par slug sera utilisé. - Unenrollment flow @@ -3706,8 +3681,8 @@ doesn't pass when either or both of the selected options are equal or above the - When using an external logging solution for archiving, this can be set to "minutes=5". - En cas d'utilisation d'une solution de journalisation externe pour l'archivage, cette valeur peut être fixée à "minutes=5". + When using an external logging solution for archiving, this can be set to "minutes=5". + En cas d'utilisation d'une solution de journalisation externe pour l'archivage, cette valeur peut être fixée à "minutes=5". @@ -3883,10 +3858,10 @@ doesn't pass when either or both of the selected options are equal or above the - Are you sure you want to update ""? + Are you sure you want to update ""? Êtes-vous sûr de vouloir mettre à jour - " - "? + " + "? @@ -4962,8 +4937,8 @@ doesn't pass when either or both of the selected options are equal or above the - A "roaming" authenticator, like a YubiKey - Un authentificateur "itinérant", comme une YubiKey + A "roaming" authenticator, like a YubiKey + Un authentificateur "itinérant", comme une YubiKey @@ -5288,7 +5263,7 @@ doesn't pass when either or both of the selected options are equal or above the Show arbitrary input fields to the user, for example during enrollment. Data is saved in the flow context under the 'prompt_data' variable. - Afficher des champs de saisie arbitraires à l'utilisateur, par exemple pendant l'inscription. Les données sont enregistrées dans le contexte du flux sous la variable "prompt_data". + Afficher des champs de saisie arbitraires à l'utilisateur, par exemple pendant l'inscription. Les données sont enregistrées dans le contexte du flux sous la variable "prompt_data". @@ -5297,10 +5272,10 @@ doesn't pass when either or both of the selected options are equal or above the - ("", of type ) + ("", of type ) - (" - ", de type + (" + ", de type ) @@ -5349,8 +5324,8 @@ doesn't pass when either or both of the selected options are equal or above the - If set to a duration above 0, the user will have the option to choose to "stay signed in", which will extend their session by the time specified here. - Si défini à une durée supérieure à 0, l'utilisateur aura la possibilité de choisir de "rester connecté", ce qui prolongera sa session jusqu'à la durée spécifiée ici. + If set to a duration above 0, the user will have the option to choose to "stay signed in", which will extend their session by the time specified here. + Si défini à une durée supérieure à 0, l'utilisateur aura la possibilité de choisir de "rester connecté", ce qui prolongera sa session jusqu'à la durée spécifiée ici. @@ -5725,11 +5700,6 @@ doesn't pass when either or both of the selected options are equal or above the Create Stage binding Créer une liaison d'étap - - - Bind stage - Lier une étape - Bind existing stage @@ -6034,12 +6004,6 @@ Les liaisons avec les groupes/utilisateurs sont vérifiées par rapport à l'uti Not available Indisponible - - - Last seen: - Vu pour la dernière fois : - - Unknown type @@ -6129,7 +6093,7 @@ Les liaisons avec les groupes/utilisateurs sont vérifiées par rapport à l'uti Can be in the format of 'unix://' when connecting to a local docker daemon, using 'ssh://' to connect via SSH, or 'https://:2376' when connecting to a remote system. - Peut être au format "unix://" pour une connexion à un service docker local, "ssh://" pour une connexion via SSH, ou "https://:2376" pour une connexion à un système distant. + Peut être au format "unix://" pour une connexion à un service docker local, "ssh://" pour une connexion via SSH, ou "https://:2376" pour une connexion à un système distant. @@ -7386,7 +7350,7 @@ Les liaisons avec les groupes/utilisateurs sont vérifiées par rapport à l'uti Use this provider with nginx's auth_request or traefik's forwardAuth. Each application/domain needs its own provider. Additionally, on each domain, /outpost.goauthentik.io must be routed to the outpost (when using a managed outpost, this is done for you). - Utilisez ce fournisseur avec l'option "auth_request" de Nginx ou "forwardAuth" de Traefik. Chaque application/domaine a besoin de son propre fournisseur. De plus, sur chaque domaine, "/outpost.goauthentik.io" doit être routé vers le poste avancé (lorsque vous utilisez un poste avancé géré, cela est fait pour vous). + Utilisez ce fournisseur avec l'option "auth_request" de Nginx ou "forwardAuth" de Traefik. Chaque application/domaine a besoin de son propre fournisseur. De plus, sur chaque domaine, "/outpost.goauthentik.io" doit être routé vers le poste avancé (lorsque vous utilisez un poste avancé géré, cela est fait pour vous). Default relay state @@ -7788,7 +7752,7 @@ Les liaisons avec les groupes/utilisateurs sont vérifiées par rapport à l'uti Utilisateur créé et ajouté au groupe avec succès - This user will be added to the group "". + This user will be added to the group "". Cet utilisateur sera ajouté au groupe &quot;&quot;. @@ -7835,10 +7799,6 @@ Les liaisons avec les groupes/utilisateurs sont vérifiées par rapport à l'uti Configure Proxy Provider Configurer le fournisseur Proxy - - AdditionalScopes - Scopes additionels - Configure Radius Provider Configurer le fournisseur Radius @@ -8047,10 +8007,6 @@ Les liaisons avec les groupes/utilisateurs sont vérifiées par rapport à l'uti Dutch Néerlandais - - Failed to fetch objects: - Erreur lors de la récupération des objets: - Brand Marque @@ -8860,7 +8816,145 @@ Les liaisons avec les groupes/utilisateurs sont vérifiées par rapport à l'uti Outpost integrations define how authentik connects to external platforms to manage and deploy Outposts. Les intégrations d'avant-postes définissent comment authentik se connecte à des plateformes externes pour déployer les avants-postes. + + + Operation failed to complete + + + Failed to fetch objects: + + + Available Scopes + + + Selected Scopes + + + Available Property Mappings + + + Selected Property Mappings + + + Available User Property Mappings + + + Selected User Property Mappings + + + Available Group Property Mappings + + + Selected Group Property Mappings + + + Ensure the user satisfies requirements of geography or network topology, based on IP address. If any of the configured values match, the policy passes. + + + ASNs + + + List of autonomous system numbers. Comma separated. E.g. 13335, 15169, 20940 + + + Countries + + + Available Countries + + + Selected Countries + + + Bind existing policy/group/user + + + Property mappings for user creation. + + + Property mappings for group creation. + + + Link to a group with identical name. Can have security implications when a group is used with another source + + + Use the group's name, but deny enrollment when the name already exists + + + Group matching mode + + + OAuth Attribute mapping + + + Plex Attribute mapping + + + Encryption Certificate + + + When selected, encrypted assertions will be decrypted using this keypair. + + + SAML Attribute mapping + + + SCIM Attribute mapping + + + External user settings + + + Default application + + + When configured, external users will automatically be redirected to this application when not attempting to access a different application + + + Warning: One or more license(s) have expired. + + + Warning: One or more license(s) will expire within the next 2 weeks. + + + Caution: This authentik instance has entered read-only mode due to expired/exceeded licenses. + + + This authentik instance uses a Trial license. + + + This authentik instance uses a Non-production license. + + + Access Tokens(s) + + + Created at + + + Last updated at + + + Last used at + + + Provide users with a 'show password' button. + + + Show password + + + Hide password + + + An outpost is on an incorrect version! + + + Russian + + + Last seen: () - \ No newline at end of file + diff --git a/web/xliff/ko.xlf b/web/xliff/ko.xlf index a70f62b1cde5..6e89cffc6586 100644 --- a/web/xliff/ko.xlf +++ b/web/xliff/ko.xlf @@ -2733,11 +2733,6 @@ doesn't pass when either or both of the selected options are equal or above the No policies are currently bound to this object. 현재 이 오브젝트에 바인딩된 정책이 없습니다. - - - Bind existing policy - 기존 정책 바인딩 - Warning: Application is not used by any Outpost. @@ -2868,11 +2863,6 @@ doesn't pass when either or both of the selected options are equal or above the LDAP Attribute mapping LDAP 특성 매핑 - - - Property mappings used to user creation. - 사용자 생성에 사용되는 특성 매핑입니다. - Additional settings @@ -3355,16 +3345,6 @@ doesn't pass when either or both of the selected options are equal or above the Successfully created mapping. 매핑을 성공적으로 생성했습니다. - - - Object field - 오브젝트 필드 - - - - Field of the user object this value is written to. - 이 값을 기록하는 사용자 객체의 필드입니다. - SAML Attribute Name @@ -3640,11 +3620,6 @@ doesn't pass when either or both of the selected options are equal or above the Recovery flow 복구 플로우 - - - Recovery flow. If left empty, the first applicable flow sorted by the slug is used. - 복구 플로우. 비워두면 슬러그별로 정렬된 첫 번째 적용 가능한 플로우가 사용됩니다. - Unenrollment flow @@ -5704,11 +5679,6 @@ doesn't pass when either or both of the selected options are equal or above the Create Stage binding 스테이지 바인딩 생성 - - - Bind stage - 스테이지 바인드 - Bind existing stage @@ -6010,11 +5980,6 @@ Bindings to groups/users are checked against the user of the event. Not available 사용 불가 - - - Last seen: - 마지막 확인: - Unknown type @@ -7801,10 +7766,6 @@ Bindings to groups/users are checked against the user of the event. Configure Proxy Provider 프록시 공급자 구성 - - AdditionalScopes - 추가 사용성 - Configure Radius Provider Radius 제공자 구성 @@ -7968,9 +7929,6 @@ Bindings to groups/users are checked against the user of the event. Select endpoint to connect to - - Failed to fetch objects: - Brand @@ -8575,6 +8533,144 @@ Bindings to groups/users are checked against the user of the event. Outpost integrations define how authentik connects to external platforms to manage and deploy Outposts. + + + Operation failed to complete + + + Failed to fetch objects: + + + Available Scopes + + + Selected Scopes + + + Available Property Mappings + + + Selected Property Mappings + + + Available User Property Mappings + + + Selected User Property Mappings + + + Available Group Property Mappings + + + Selected Group Property Mappings + + + Ensure the user satisfies requirements of geography or network topology, based on IP address. If any of the configured values match, the policy passes. + + + ASNs + + + List of autonomous system numbers. Comma separated. E.g. 13335, 15169, 20940 + + + Countries + + + Available Countries + + + Selected Countries + + + Bind existing policy/group/user + + + Property mappings for user creation. + + + Property mappings for group creation. + + + Link to a group with identical name. Can have security implications when a group is used with another source + + + Use the group's name, but deny enrollment when the name already exists + + + Group matching mode + + + OAuth Attribute mapping + + + Plex Attribute mapping + + + Encryption Certificate + + + When selected, encrypted assertions will be decrypted using this keypair. + + + SAML Attribute mapping + + + SCIM Attribute mapping + + + External user settings + + + Default application + + + When configured, external users will automatically be redirected to this application when not attempting to access a different application + + + Warning: One or more license(s) have expired. + + + Warning: One or more license(s) will expire within the next 2 weeks. + + + Caution: This authentik instance has entered read-only mode due to expired/exceeded licenses. + + + This authentik instance uses a Trial license. + + + This authentik instance uses a Non-production license. + + + Access Tokens(s) + + + Created at + + + Last updated at + + + Last used at + + + Provide users with a 'show password' button. + + + Show password + + + Hide password + + + An outpost is on an incorrect version! + + + Russian + + + Last seen: () diff --git a/web/xliff/nl.xlf b/web/xliff/nl.xlf index ba569bb4233f..48c24ee11806 100644 --- a/web/xliff/nl.xlf +++ b/web/xliff/nl.xlf @@ -2723,11 +2723,6 @@ slaagt niet wanneer een of beide geselecteerde opties gelijk zijn aan of boven d No policies are currently bound to this object. Er zijn momenteel geen beleidsregels aan dit object gekoppeld. - - - Bind existing policy - Bestaand beleid koppelen - Warning: Application is not used by any Outpost. @@ -2858,11 +2853,6 @@ slaagt niet wanneer een of beide geselecteerde opties gelijk zijn aan of boven d LDAP Attribute mapping LDAP Attribuuttoewijzing - - - Property mappings used to user creation. - Eigenschapstoewijzingen gebruikt voor het aanmaken van gebruikers. - Additional settings @@ -3344,16 +3334,6 @@ slaagt niet wanneer een of beide geselecteerde opties gelijk zijn aan of boven d Successfully created mapping. Succesvol aangemaakte mapping. - - - Object field - Objectveld - - - - Field of the user object this value is written to. - Veld van het gebruikersobject waarde naar wordt geschreven. - SAML Attribute Name @@ -3629,11 +3609,6 @@ slaagt niet wanneer een of beide geselecteerde opties gelijk zijn aan of boven d Recovery flow Herstelflow - - - Recovery flow. If left empty, the first applicable flow sorted by the slug is used. - Herstelflow. Als dit leeg wordt gelaten, wordt de eerste toepasselijke flow gesorteerd op de slug gebruikt. - Unenrollment flow @@ -5689,11 +5664,6 @@ slaagt niet wanneer een of beide geselecteerde opties gelijk zijn aan of boven d Create Stage binding Fasebinding aanmaken - - - Bind stage - Fase binden - Bind existing stage @@ -5995,11 +5965,6 @@ Bindingen naar groepen/gebruikers worden gecontroleerd tegen de gebruiker van de Not available Niet beschikbaar - - - Last seen: - Laatst gezien: - Unknown type @@ -7383,9 +7348,6 @@ Bindingen naar groepen/gebruikers worden gecontroleerd tegen de gebruiker van de Configure Proxy Provider - - AdditionalScopes - Use this provider with nginx's auth_request or traefik's forwardAuth. Each application/domain needs its own provider. @@ -7812,9 +7774,6 @@ Bindingen naar groepen/gebruikers worden gecontroleerd tegen de gebruiker van de Select endpoint to connect to - - Failed to fetch objects: - Brand @@ -8419,6 +8378,144 @@ Bindingen naar groepen/gebruikers worden gecontroleerd tegen de gebruiker van de Outpost integrations define how authentik connects to external platforms to manage and deploy Outposts. + + + Operation failed to complete + + + Failed to fetch objects: + + + Available Scopes + + + Selected Scopes + + + Available Property Mappings + + + Selected Property Mappings + + + Available User Property Mappings + + + Selected User Property Mappings + + + Available Group Property Mappings + + + Selected Group Property Mappings + + + Ensure the user satisfies requirements of geography or network topology, based on IP address. If any of the configured values match, the policy passes. + + + ASNs + + + List of autonomous system numbers. Comma separated. E.g. 13335, 15169, 20940 + + + Countries + + + Available Countries + + + Selected Countries + + + Bind existing policy/group/user + + + Property mappings for user creation. + + + Property mappings for group creation. + + + Link to a group with identical name. Can have security implications when a group is used with another source + + + Use the group's name, but deny enrollment when the name already exists + + + Group matching mode + + + OAuth Attribute mapping + + + Plex Attribute mapping + + + Encryption Certificate + + + When selected, encrypted assertions will be decrypted using this keypair. + + + SAML Attribute mapping + + + SCIM Attribute mapping + + + External user settings + + + Default application + + + When configured, external users will automatically be redirected to this application when not attempting to access a different application + + + Warning: One or more license(s) have expired. + + + Warning: One or more license(s) will expire within the next 2 weeks. + + + Caution: This authentik instance has entered read-only mode due to expired/exceeded licenses. + + + This authentik instance uses a Trial license. + + + This authentik instance uses a Non-production license. + + + Access Tokens(s) + + + Created at + + + Last updated at + + + Last used at + + + Provide users with a 'show password' button. + + + Show password + + + Hide password + + + An outpost is on an incorrect version! + + + Russian + + + Last seen: () diff --git a/web/xliff/pl.xlf b/web/xliff/pl.xlf index 73bab50af3b7..8cb3cf841d00 100644 --- a/web/xliff/pl.xlf +++ b/web/xliff/pl.xlf @@ -2746,11 +2746,6 @@ nie przechodzi, gdy jedna lub obie wybrane opcje są równe lub wyższe od progu No policies are currently bound to this object. Żadne zasady nie są obecnie powiązane z tym obiektem. - - - Bind existing policy - Powiązanie istniejącej zasady - Warning: Application is not used by any Outpost. @@ -2881,11 +2876,6 @@ nie przechodzi, gdy jedna lub obie wybrane opcje są równe lub wyższe od progu LDAP Attribute mapping Mapowanie atrybutów LDAP - - - Property mappings used to user creation. - Mapowania właściwości używane do tworzenia użytkowników. - Additional settings @@ -3368,16 +3358,6 @@ Można tu używać tylko zasad, ponieważ dostęp jest sprawdzany przed uwierzyt Successfully created mapping. Pomyślnie utworzono mapowanie. - - - Object field - Pole obiektu - - - - Field of the user object this value is written to. - Pole obiektu użytkownika, w którym zapisywana jest ta wartość. - SAML Attribute Name @@ -3653,11 +3633,6 @@ Można tu używać tylko zasad, ponieważ dostęp jest sprawdzany przed uwierzyt Recovery flow Przepływ odzyskiwania - - - Recovery flow. If left empty, the first applicable flow sorted by the slug is used. - Przepływ odzyskiwania. Jeśli pozostanie pusty, używany jest pierwszy odpowiedni przepływ posortowany według ślimaka. - Unenrollment flow @@ -5729,11 +5704,6 @@ w toku, tworzony jest nowy użytkownik i zapisywane są do niego dane. Create Stage binding Utwórz wiązanie etapu - - - Bind stage - Powiąż etap - Bind existing stage @@ -6038,12 +6008,6 @@ Powiązania z grupami/użytkownikami są sprawdzane względem użytkownika zdarz Not available Niedostępny - - - Last seen: - Ostatnio widziany: - - Unknown type @@ -7839,10 +7803,6 @@ Powiązania z grupami/użytkownikami są sprawdzane względem użytkownika zdarz Configure Proxy Provider Skonfiguruj dostawcę proxy - - AdditionalScopes - Dodatkowe zakresy - Configure Radius Provider Skonfiguruj dostawcę usługi Radius @@ -8051,10 +8011,6 @@ Powiązania z grupami/użytkownikami są sprawdzane względem użytkownika zdarz Dutch Holenderski - - Failed to fetch objects: - Nie udało się pobrać obiektów: - Brand Marka @@ -8845,6 +8801,144 @@ Powiązania z grupami/użytkownikami są sprawdzane względem użytkownika zdarz Outpost integrations define how authentik connects to external platforms to manage and deploy Outposts. + + + Operation failed to complete + + + Failed to fetch objects: + + + Available Scopes + + + Selected Scopes + + + Available Property Mappings + + + Selected Property Mappings + + + Available User Property Mappings + + + Selected User Property Mappings + + + Available Group Property Mappings + + + Selected Group Property Mappings + + + Ensure the user satisfies requirements of geography or network topology, based on IP address. If any of the configured values match, the policy passes. + + + ASNs + + + List of autonomous system numbers. Comma separated. E.g. 13335, 15169, 20940 + + + Countries + + + Available Countries + + + Selected Countries + + + Bind existing policy/group/user + + + Property mappings for user creation. + + + Property mappings for group creation. + + + Link to a group with identical name. Can have security implications when a group is used with another source + + + Use the group's name, but deny enrollment when the name already exists + + + Group matching mode + + + OAuth Attribute mapping + + + Plex Attribute mapping + + + Encryption Certificate + + + When selected, encrypted assertions will be decrypted using this keypair. + + + SAML Attribute mapping + + + SCIM Attribute mapping + + + External user settings + + + Default application + + + When configured, external users will automatically be redirected to this application when not attempting to access a different application + + + Warning: One or more license(s) have expired. + + + Warning: One or more license(s) will expire within the next 2 weeks. + + + Caution: This authentik instance has entered read-only mode due to expired/exceeded licenses. + + + This authentik instance uses a Trial license. + + + This authentik instance uses a Non-production license. + + + Access Tokens(s) + + + Created at + + + Last updated at + + + Last used at + + + Provide users with a 'show password' button. + + + Show password + + + Hide password + + + An outpost is on an incorrect version! + + + Russian + + + Last seen: () diff --git a/web/xliff/pseudo-LOCALE.xlf b/web/xliff/pseudo-LOCALE.xlf index 27a0ca4a2602..2c866011f31c 100644 --- a/web/xliff/pseudo-LOCALE.xlf +++ b/web/xliff/pseudo-LOCALE.xlf @@ -2723,11 +2723,6 @@ doesn't pass when either or both of the selected options are equal or above the No policies are currently bound to this object. Ńō ƥōĺĩćĩēś àŕē ćũŕŕēńţĺŷ ƀōũńď ţō ţĥĩś ōƀĴēćţ. - - - Bind existing policy - ßĩńď ēxĩśţĩńĝ ƥōĺĩćŷ - Warning: Application is not used by any Outpost. @@ -2858,11 +2853,6 @@ doesn't pass when either or both of the selected options are equal or above the LDAP Attribute mapping ĹĎÀƤ Àţţŕĩƀũţē màƥƥĩńĝ - - - Property mappings used to user creation. - Ƥŕōƥēŕţŷ màƥƥĩńĝś ũśēď ţō ũśēŕ ćŕēàţĩōń. - Additional settings @@ -3344,16 +3334,6 @@ doesn't pass when either or both of the selected options are equal or above the Successfully created mapping. Śũććēśśƒũĺĺŷ ćŕēàţēď màƥƥĩńĝ. - - - Object field - ŌƀĴēćţ ƒĩēĺď - - - - Field of the user object this value is written to. - Ƒĩēĺď ōƒ ţĥē ũśēŕ ōƀĴēćţ ţĥĩś vàĺũē ĩś ŵŕĩţţēń ţō. - SAML Attribute Name @@ -3629,11 +3609,6 @@ doesn't pass when either or both of the selected options are equal or above the Recovery flow Ŕēćōvēŕŷ ƒĺōŵ - - - Recovery flow. If left empty, the first applicable flow sorted by the slug is used. - Ŕēćōvēŕŷ ƒĺōŵ. Ĩƒ ĺēƒţ ēmƥţŷ, ţĥē ƒĩŕśţ àƥƥĺĩćàƀĺē ƒĺōŵ śōŕţēď ƀŷ ţĥē śĺũĝ ĩś ũśēď. - Unenrollment flow @@ -5692,11 +5667,6 @@ doesn't pass when either or both of the selected options are equal or above the Create Stage binding Ćŕēàţē Śţàĝē ƀĩńďĩńĝ - - - Bind stage - ßĩńď śţàĝē - Bind existing stage @@ -5998,11 +5968,6 @@ Bindings to groups/users are checked against the user of the event. Not available Ńōţ àvàĩĺàƀĺē - - - Last seen: - Ĺàśţ śēēń: - Unknown type @@ -7779,10 +7744,6 @@ Bindings to groups/users are checked against the user of the event. Configure Proxy Provider Ćōńƒĩĝũŕē Ƥŕōxŷ Ƥŕōvĩďēŕ - - AdditionalScopes - ÀďďĩţĩōńàĺŚćōƥēś - Configure Radius Provider Ćōńƒĩĝũŕē Ŕàďĩũś Ƥŕōvĩďēŕ @@ -7991,10 +7952,6 @@ Bindings to groups/users are checked against the user of the event. Dutch Ďũţćĥ - - Failed to fetch objects: - Ƒàĩĺēď ţō ƒēţćĥ ōƀĴēćţś: - Brand ßŕàńď @@ -8804,4 +8761,142 @@ Bindings to groups/users are checked against the user of the event. See documentation + + Operation failed to complete + + + Failed to fetch objects: + + + Available Scopes + + + Selected Scopes + + + Available Property Mappings + + + Selected Property Mappings + + + Available User Property Mappings + + + Selected User Property Mappings + + + Available Group Property Mappings + + + Selected Group Property Mappings + + + Ensure the user satisfies requirements of geography or network topology, based on IP address. If any of the configured values match, the policy passes. + + + ASNs + + + List of autonomous system numbers. Comma separated. E.g. 13335, 15169, 20940 + + + Countries + + + Available Countries + + + Selected Countries + + + Bind existing policy/group/user + + + Property mappings for user creation. + + + Property mappings for group creation. + + + Link to a group with identical name. Can have security implications when a group is used with another source + + + Use the group's name, but deny enrollment when the name already exists + + + Group matching mode + + + OAuth Attribute mapping + + + Plex Attribute mapping + + + Encryption Certificate + + + When selected, encrypted assertions will be decrypted using this keypair. + + + SAML Attribute mapping + + + SCIM Attribute mapping + + + External user settings + + + Default application + + + When configured, external users will automatically be redirected to this application when not attempting to access a different application + + + Warning: One or more license(s) have expired. + + + Warning: One or more license(s) will expire within the next 2 weeks. + + + Caution: This authentik instance has entered read-only mode due to expired/exceeded licenses. + + + This authentik instance uses a Trial license. + + + This authentik instance uses a Non-production license. + + + Access Tokens(s) + + + Created at + + + Last updated at + + + Last used at + + + Provide users with a 'show password' button. + + + Show password + + + Hide password + + + An outpost is on an incorrect version! + + + Russian + + + Last seen: () + diff --git a/web/xliff/ru.xlf b/web/xliff/ru.xlf new file mode 100644 index 000000000000..56308e8999b9 --- /dev/null +++ b/web/xliff/ru.xlf @@ -0,0 +1,9006 @@ + + + + + English + Английский + + + + French + Французский + + + + Turkish + Турецкий + + + + Spanish + Испанский + + + + Polish + Польский + + + + Taiwanese Mandarin + Тайваньский мандарин + + + + Chinese (simplified) + Китайский (упрощенный) + + + + Chinese (traditional) + Китайский (традиционный) + + + + German + Немецкий + + + + Loading... + Загрузка... + + + + Application + Приложение + + + + Logins + Логины + + + + Show less + Показать меньше + + + + Show more + Показать больше + + + + UID + UID + + + + Name + Имя + + + + App + Приложение + + + + Model Name + Имя модели + + + + Message + Сообщение + + + + Subject + Тема + + + + From + От + + + + To + Кому + + + + Context + Контекст + + + + User + Пользователь + + + + Affected model: + Затронутая модель: + + + + Authorized application: + Авторизованное приложение: + + + + Using flow + Использование потока + + + + Email info: + Информация об электронной почте: + + + + Secret: + Секрет: + + + + Open issue on GitHub... + Открыть проблему на GitHub... + + + + Exception + Исключение + + + + Expression + Выражение + + + + Binding + Привязка + + + + Request + Запрос + + + + Object + Объект + + + + Result + Результат + + + + Passing + Прохождение + + + + Messages + Сообщения + + + + Using source + Использование источника + + + + Attempted to log in as + Попытка войти в систему как + + + + + No additional data available. + Дополнительные данные отсутствуют. + + + + Click to change value + Нажмите, чтобы изменить значение + + + + Select an object. + Выберите объект. + + + + Loading options... + Загрузка опций... + + + + Connection error, reconnecting... + Ошибка подключения, повторное подключение... + + + + Login + Вход + + + + Failed login + Не удалось войти + + + + Logout + Выйти + + + + User was written to + Пользователь был записан в + + + + Suspicious request + Подозрительный запрос + + + + Password set + Пароль установлен + + + + Secret was viewed + Секрет просмотрен + + + + Secret was rotated + Секрет был обновлен + + + + Invitation used + Приглашение использовано + + + + Application authorized + Приложение авторизированно + + + + Source linked + Источник привязан + + + + Impersonation started + Имитация пользователя началась + + + + Impersonation ended + Имитация пользователя завершилась + + + + Flow execution + Выполнение потока + + + + Policy execution + Политика выполнения + + + + Policy exception + Политика исключения + + + + Property Mapping exception + Исключение из сопоставления свойств + + + + System task execution + Выполнение системных задач + + + + System task exception + Исключение системной задачи + + + + General system exception + Общее системное исключение + + + + Configuration error + Ошибка конфигурации + + + + Model created + Модель создана + + + + Model updated + Модель обновлена + + + + Model deleted + Модель удалена + + + + Email sent + Письмо отправленно + + + + Update available + Обновление доступно + + + + Unknown severity + Неизвестная серьезность + + + + Alert + Оповещение + + + + Notice + Уведомление + + + + Warning + Предупреждение + + + + no tabs defined + Общее системное исключение + + + + - of + + - + из + + + + + Go to previous page + Перейти на предыдущую страницу + + + + Go to next page + Перейти на следующую страницу + + + + Search... + Поиск... + + + + Loading + Загрузка + + + + No objects found. + Объекты не найдены. + + + + Failed to fetch objects. + Не удалось получить объекты. + + + + Refresh + Обновить + + + + Select all rows + Выбрать все строки + + + + Action + Действие + + + + Creation Date + Дата создания + + + + Client IP + IP-адрес клиента + + + + Recent events + Последние события + + + + On behalf of + От имени + + + + + - + - + + + + No Events found. + События не найдены. + + + + No matching events could be found. + Не удалось найти ни одного подходящего события. + + + + Embedded outpost is not configured correctly. + Встроенный внешний компонент настроен неправильно. + + + + Check outposts. + Проверить внешние компоненты. + + + + HTTPS is not detected correctly + HTTPS определяется неправильно + + + + Server and client are further than 5 seconds apart. + Сервер и клиент находятся на расстоянии более 5 секунд друг от друга. + + + + OK + OK + + + + Everything is ok. + Все хорошо. + + + + System status + Статус системы + + + + Based on + Основано на + + + + + is available! + + уже доступна! + + + + Up-to-date! + Актуально! + + + + Version + Версия + + + + Workers + Рабочие процессы + + + + No workers connected. Background tasks will not run. + Нет подключенных рабочих процессов. Фоновые задачи не будут выполняться. + + + + Authorizations + Авторизации + + + + Failed Logins + Неудачные входы в систему + + + + Successful Logins + Успешные входы в систему + + + + : + + : + + + + + Cancel + Отмена + + + + LDAP Source + Источник LDAP + + + + SCIM Provider + SCIM Провайдер + + + + Healthy + Здоровый + + + + Healthy outposts + Здоровые внешние компоненты + + + + Admin + Админ + + + + Not found + Не найдено + + + + The URL "" was not found. + URL " + " не найден. + + + + Return home + Вернуться домой + + + + General system status + Общее состояние системы + + + + Welcome, . + Добро пожаловать, + . + + + + Quick actions + Быстрые действия + + + + Create a new application + Создание нового приложения + + + + Check the logs + Проверить логи + + + + Explore integrations + Изучить интеграции + + + + Manage users + Управление пользователями + + + + Outpost status + Статус внешнего компонента + + + + Sync status + Статус синхронизации + + + + Logins and authorizations over the last week (per 8 hours) + Входы и авторизации за последнюю неделю (за 8 часов) + + + + Apps with most usage + Приложения, которые используются чаще всего + + + + days ago + + дней назад + + + + Objects created + Объектов создано + + + + Users created per day in the last month + Количество пользователей, созданных в день за последний месяц + + + + Logins per day in the last month + Количество входов в систему в день за последний месяц + + + + Failed Logins per day in the last month + Неудачные входы в систему в день за последний месяц + + + + Clear search + Очистить поиск + + + + System Tasks + Системные задачи + + + + Long-running operations which authentik executes in the background. + Длительные операции, которые authentik выполняет в фоновом режиме. + + + + Identifier + Идентификатор + + + + Description + Описание + + + + Last run + Последний запуск + + + + Status + Статус + + + + Actions + Действия + + + + Successful + Успешно + + + + Error + Ошибка + + + + Unknown + Неизвестно + + + + Duration + Длительность + + + + seconds + + секунд + + + + Authentication + Аутентификация + + + + Authorization + Авторизация + + + + Enrollment + Регистрация + + + + Invalidation + Аннулирование + + + + Recovery + Восстановление + + + + Stage Configuration + Этап конфигурации + + + + Unenrollment + Отмена регистрации + + + + Unknown designation + Неизвестное назначение + + + + Stacked + Сверху вниз + + + + Content left + Контент слева + + + + Content right + Контент справа + + + + Sidebar left + Боковая панель слева + + + + Sidebar right + Боковая панель справа + + + + Unknown layout + Неизвестный макет + + + + Successfully updated provider. + Провайдер успешно обновлен. + + + + Successfully created provider. + Провайдер успешно создан. + + + + Bind flow + Связать поток + + + + Flow used for users to authenticate. + Поток используемый для аутентификации пользователей. + + + + Search group + Группа поиска + + + + Users in the selected group can do search queries. If no group is selected, no LDAP Searches are allowed. + Пользователи из выбранной группы могут выполнять поисковые запросы. Если группа не выбрана, поиск по LDAP не разрешен. + + + + Bind mode + Режим привязки + + + + Cached binding + Кэшированная привязка + + + + Flow is executed and session is cached in memory. Flow is executed when session expires + Поток выполняется, а сессия кэшируется в памяти. Поток выполняется, когда истекает срок действия сессии + + + + Direct binding + Прямая привязка + + + + Always execute the configured bind flow to authenticate the user + Всегда выполнять настроенный поток привязки для аутентификации пользователя + + + + Configure how the outpost authenticates requests. + Настройка способа аутентификации запросов на внешнем компоненте. + + + + Search mode + Режим поиска + + + + Cached querying + Кэшированные запросы + + + + The outpost holds all users and groups in-memory and will refresh every 5 Minutes + Внешний компонент хранит всех пользователей и группы в памяти и будет обновляться каждые 5 минут. + + + + Direct querying + Прямой запрос + + + + Always returns the latest data, but slower than cached querying + Всегда возвращать последние данные, но медленнее, чем кэшированный запрос + + + + Configure how the outpost queries the core authentik server's users. + Настройте, как внешний компонент будет запрашивать пользователей основного сервера authentik. + + + + Protocol settings + Настройки протокола + + + + Base DN + Base DN + + + + LDAP DN under which bind requests and search requests can be made. + LDAP DN, под которым могут выполняться запросы привязки и поиска. + + + + Certificate + Сертификат + + + + UID start number + Начальный номер UID + + + + The start for uidNumbers, this number is added to the user.Pk to make sure that the numbers aren't too low for POSIX users. Default is 2000 to ensure that we don't collide with local users uidNumber + Начало для uidNumbers, это число добавляется в user.pk, чтобы убедиться, что номера не слишком малы для пользователей POSIX. По умолчанию 2000, чтобы не столкнуться с локальными пользователями uidNumber + + + + GID start number + Начальный номер GID + + + + The start for gidNumbers, this number is added to a number generated from the group.Pk to make sure that the numbers aren't too low for POSIX groups. Default is 4000 to ensure that we don't collide with local groups or users primary groups gidNumber + Начало для gidNumbers, это число добавляется к числу, сгенерированному из group.pk, чтобы убедиться, что числа не слишком малы для POSIX-групп. По умолчанию 4000, чтобы исключить столкновение с локальными группами или первичными группами пользователей gidNumber + + + + (Format: hours=-1;minutes=-2;seconds=-3). + (Формат: hours=-1;minutes=-2;seconds=-3). + + + + (Format: hours=1;minutes=2;seconds=3). + (Формат: hours=1;minutes=2;seconds=3). + + + + The following keywords are supported: + Поддерживаются следующие ключевые слова: + + + + Authentication flow + Поток аутентификации + + + + Flow used when a user access this provider and is not authenticated. + Поток, используемый, когда пользователь получает доступ к этому провайдеру и не проходит аутентификацию. + + + + Authorization flow + Поток авторизации + + + + Flow used when authorizing this provider. + Поток, используемый при авторизации данного провайдера. + + + + Client type + Тип клиента + + + + Confidential + Конфиденциальный + + + + Confidential clients are capable of maintaining the confidentiality of their credentials such as client secrets + Конфиденциальные клиенты могут сохранять конфиденциальность своих учетных данных, таких как секреты клиента. + + + + Public + Публичный + + + + Public clients are incapable of maintaining the confidentiality and should use methods like PKCE. + Публичные клиенты не способны сохранить конфиденциальность и должны использовать такие методы, как PKCE. + + + + Client ID + ID клиента + + + + Client Secret + Секрет клиента + + + + Redirect URIs/Origins (RegEx) + Перенаправляющие URI/Источники (RegEx) + + + + Valid redirect URLs after a successful authorization flow. Also specify any origins here for Implicit flows. + Допустимые URL-адреса перенаправления после успешной авторизации. Также укажите здесь любые источники для неявных потоков. + + + + If no explicit redirect URIs are specified, the first successfully used redirect URI will be saved. + Если явные URI перенаправления не указаны, будет сохранен первый успешно использованный URI. + + + + To allow any redirect URI, set this value to ".*". Be aware of the possible security implications this can have. + Чтобы разрешить любой URI перенаправления, установите это значение в ".*". Помните о возможных последствиях для безопасности. + + + + Signing Key + Подписывающий ключ + + + + Key used to sign the tokens. + Ключ, используемый для подписи токенов. + + + + Advanced protocol settings + Дополнительные настройки протокола + + + + Access code validity + Срок действия кода доступа + + + + Configure how long access codes are valid for. + Настройте продолжительность действия кодов доступа. + + + + Access Token validity + Срок действия Access токена + + + + Configure how long access tokens are valid for. + Настройте срок действия access токенов. + + + + Refresh Token validity + Срок действия Refresh токена + + + + Configure how long refresh tokens are valid for. + Настройте срок действия refresh токенов. + + + + Scopes + Области + + + + Select which scopes can be used by the client. The client still has to specify the scope to access the data. + Выберите, какие области могут быть использованы клиентом. Клиент все равно должен указать область для доступа к данным. + + + + Hold control/command to select multiple items. + Удерживайте клавиши control/command, чтобы выбрать несколько элементов. + + + + Subject mode + Тематический режим + + + + Based on the User's hashed ID + На основе хэшированного идентификатора пользователя + + + + Based on the User's ID + На основе идентификатора пользователя + + + + Based on the User's UUID + На основе UUID пользователя + + + + Based on the User's username + На основе имени пользователя + + + + Based on the User's Email + На основе электронной почты пользователя + + + + This is recommended over the UPN mode. + Это рекомендуется вместо режима UPN. + + + + Based on the User's UPN + На основе UPN пользователя + + + + Requires the user to have a 'upn' attribute set, and falls back to hashed user ID. Use this mode only if you have different UPN and Mail domains. + Требует, чтобы у пользователя был установлен атрибут 'upn', и в случае его отсутствия использует хешированный ID пользователя. Используйте этот режим только в том случае, если у вас разные домены UPN и Mail. + + + + Configure what data should be used as unique User Identifier. For most cases, the default should be fine. + Настройте, какие данные должны использоваться в качестве уникального идентификатора пользователя. Для большинства случаев подходит значение по умолчанию. + + + + Include claims in id_token + Включить утверждения в id_token + + + + Include User claims from scopes in the id_token, for applications that don't access the userinfo endpoint. + Включить пользовательские утверждения из областей в id_token для приложений, которые не обращаются к конечной точке userinfo. + + + + Issuer mode + Режим эмитента + + + + Each provider has a different issuer, based on the application slug + У каждого провайдера есть свой эмитент, основанный на идентификаторе приложения. + + + + Same identifier is used for all providers + Один и тот же идентификатор используется для всех провайдеров + + + + Configure how the issuer field of the ID Token should be filled. + Настройте, как должно быть заполнено поле эмитента ID-токена. + + + + Machine-to-Machine authentication settings + Настройки машинно-машинной аутентификации + + + + Trusted OIDC Sources + Доверенные источники OIDC + + + + JWTs signed by certificates configured in the selected sources can be used to authenticate to this provider. + JWT, подписанные сертификатами, настроенными в выбранных источниках, могут использоваться для аутентификации у этого провайдера. + + + + HTTP-Basic Username Key + Ключ имени пользователя HTTP-Basic + + + + User/Group Attribute used for the user part of the HTTP-Basic Header. If not set, the user's Email address is used. + Атрибут User/Group, используемый для пользовательской части заголовка HTTP-Basic. Если он не задан, используется адрес электронной почты пользователя. + + + + HTTP-Basic Password Key + Ключ пароля HTTP-Basic + + + + User/Group Attribute used for the password part of the HTTP-Basic Header. + Атрибут пользователя/группы, используемый для части пароля в заголовке HTTP-Basic. + + + + Proxy + Прокси + + + + Forward auth (single application) + Переадресация аутентификации (одно приложение) + + + + Forward auth (domain level) + Прямая аутентификация (уровень домена) + + + + This provider will behave like a transparent reverse-proxy, except requests must be authenticated. If your upstream application uses HTTPS, make sure to connect to the outpost using HTTPS as well. + Этот провайдер будет вести себя как прозрачный обратный прокси, за исключением того, что запросы должны быть аутентифицированы. Если ваше приложение использует HTTPS, убедитесь, что подключение к внешнему компоненту также использует HTTPS. + + + + External host + Внешний хост + + + + The external URL you'll access the application at. Include any non-standard port. + Внешний URL-адрес, по которому вы получите доступ к приложению. Включите любой нестандартный порт. + + + + Internal host + Внутренний хост + + + + Upstream host that the requests are forwarded to. + Вышестоящий хост, которому переадресуются запросы. + + + + Internal host SSL Validation + Внутренняя валидация SSL хоста + + + + Validate SSL Certificates of upstream servers. + Проверка SSL-сертификатов вышестоящих серверов. + + + + Use this provider with nginx's auth_request or traefik's forwardAuth. Only a single provider is required per root domain. You can't do per-application authorization, but you don't have to create a provider for each application. + Используйте этот провайдер с auth_request от nginx или forwardAuth от traefik. Для каждого корневого домена требуется только один провайдер. Вы не можете выполнять авторизацию для каждого приложения, но вам и не нужно создавать провайдера для каждого приложения. + + + + An example setup can look like this: + Пример настройки может выглядеть следующим образом: + + + + authentik running on auth.example.com + authentik работает на auth.example.com + + + + app1 running on app1.example.com + app1 работает на app1.example.com + + + + In this case, you'd set the Authentication URL to auth.example.com and Cookie domain to example.com. + В этом случае вы установите для URL-адреса аутентификации значение auth.example.com, а для домена Cookie - example.com. + + + + Authentication URL + Ссылка аутентификации + + + + The external URL you'll authenticate at. The authentik core server should be reachable under this URL. + Внешний URL, по которому вы будете проходить аутентификацию. Сервер authentik core должен быть доступен по этому URL. + + + + Cookie domain + Cookie домен + + + + Set this to the domain you wish the authentication to be valid for. Must be a parent domain of the URL above. If you're running applications as app1.domain.tld, app2.domain.tld, set this to 'domain.tld'. + Установите домен, для которого будет действовать аутентификация. Это должен быть родительский домен указанного выше URL. Если вы запускаете приложения как app1.domain.tld, app2.domain.tld, установите значение 'domain.tld'. + + + + Unknown proxy mode + Неизвестный режим прокси + + + + Token validity + Срок действия токена + + + + Configure how long tokens are valid for. + Настройте срок действия токенов. + + + + Additional scopes + Дополнительные области + + + + Additional scope mappings, which are passed to the proxy. + Дополнительные сопоставления области, которые передаются прокси. + + + + Unauthenticated URLs + Неаутентифицированные URL-адреса + + + + Unauthenticated Paths + Неаутентифицированные пути + + + + Regular expressions for which authentication is not required. Each new line is interpreted as a new expression. + Регулярные выражения, для которых не требуется аутентификация. Каждая новая строка интерпретируется как новое выражение. + + + + When using proxy or forward auth (single application) mode, the requested URL Path is checked against the regular expressions. When using forward auth (domain mode), the full requested URL including scheme and host is matched against the regular expressions. + При использовании режима прокси или прямого аутентификатора (одно приложение) запрашиваемый URL Path проверяется на соответствие регулярным выражениям. При использовании прямой авторизации (режим домена) полный запрашиваемый URL, включая схему и хост, проверяется на соответствие регулярным выражениям. + + + + Authentication settings + Настройки аутентификации + + + + Intercept header authentication + Перехват заголовка аутентификации + + + + When enabled, authentik will intercept the Authorization header to authenticate the request. + Если эта функция включена, authentik будет перехватывать заголовок Authorization для аутентификации запроса. + + + + Send HTTP-Basic Authentication + Настройка базовой аутентификации HTTP + + + + Send a custom HTTP-Basic Authentication header based on values from authentik. + Отправить пользовательский заголовок HTTP-Basic аутентификации на основе значений из authentik. + + + + ACS URL + URL-адрес ACS + + + + Issuer + Издатель + + + + Also known as EntityID. + Также известен как EntityID. + + + + Service Provider Binding + Привязка провайдера услуг + + + + Redirect + Перенаправление + + + + Post + Почта + + + + Determines how authentik sends the response back to the Service Provider. + Определяет, как authentik отправляет ответ обратно провайдеру услуг. + + + + Audience + Аудитория + + + + Signing Certificate + Сертификат подписи + + + + Certificate used to sign outgoing Responses going to the Service Provider. + Сертификат, используемый для подписи исходящих ответов, направляемых провайдеру услуг. + + + + Verification Certificate + Сертификат проверки + + + + When selected, incoming assertion's Signatures will be validated against this certificate. To allow unsigned Requests, leave on default. + При выборе этого параметра подписи входящих утверждений будут проверяться по этому сертификату. Чтобы разрешить неподписанные запросы, оставьте значение по умолчанию. + + + + Property mappings + Сопоставления свойств + + + + NameID Property Mapping + Сопоставление свойства NameID + + + + Configure how the NameID value will be created. When left empty, the NameIDPolicy of the incoming request will be respected. + Настройте, как будет создаваться значение NameID. Если оставить пустым, будет соблюдаться политика NameIDPolicy входящего запроса. + + + + Assertion valid not before + Утверждение действительно не ранее + + + + Configure the maximum allowed time drift for an assertion. + Настройте максимально допустимый временной дрейф для утверждения. + + + + Assertion valid not on or after + Утверждение действительно не в момент или после + + + + Assertion not valid on or after current time + this value. + Утверждение недействительно в текущее время или после него + указанное значение + + + + Session valid not on or after + Сессия действительна не в момент или после + + + + Session not valid on or after current time + this value. + Сессия не действует в текущее время или после него + указанное значение. + + + + Digest algorithm + Алгоритм хеширования + + + + Signature algorithm + Алгоритм подписи + + + + Successfully imported provider. + Провайдер успешно импортирован. + + + + Metadata + Метаданные + + + + Apply changes + Применить изменения + + + + Close + Закрыть + + + + Finish + Завершить + + + + Back + Назад + + + + No form found + Форма не найдена + + + + Form didn't return a promise for submitting + Форма не вернула обещание отправить + + + + Select type + Выбрать тип + + + + Create + Создать + + + + New provider + Новый провайдер + + + + Create a new provider. + Создание нового провайдера. + + + + Create + Создать + + + + + Shared secret + Общий секрет + + + + Client Networks + Клиентские сети + + + + List of CIDRs (comma-seperated) that clients can connect from. A more specific + CIDR will match before a looser one. Clients connecting from a non-specified CIDR + will be dropped. + Список CIDR (разделенных запятыми), с которых могут подключаться клиенты. Более конкретный + CIDR будет соответствовать более слабому. Клиенты, подключающиеся с неуказанного CIDR, + будут отброшены. + + + URL + URL + + + + SCIM base url, usually ends in /v2. + Базовый адрес SCIM, обычно заканчивается на /v2. + + + + Token + Токен + + + + Token to authenticate with. Currently only bearer authentication is supported. + Токен для аутентификации. В настоящее время поддерживается только bearer authentication. + + + + User filtering + Пользовательская фильтрация + + + + Exclude service accounts + Исключить сервисные аккаунты + + + + Group + Группа + + + + Only sync users within the selected group. + Синхронизировать только пользователей из выбранной группы. + + + + Attribute mapping + Сопоставление атрибутов + + + + User Property Mappings + Сопоставления свойств пользователя + + + + Property mappings used to user mapping. + Сопоставления свойств, используемые для сопоставления пользователя + + + + Group Property Mappings + Сопоставления свойств группы + + + + Property mappings used to group creation. + Сопоставления свойств, используемые при создании групп. + + + + Not used by any other object. + Не используется никаким другим объектом. + + + + object will be DELETED + объект будет удален + + + + connection will be deleted + соединение будет удалено + + + + reference will be reset to default value + ссылка будет сброшена до значения по умолчанию + + + + reference will be set to an empty value + для ссылки будет установлено пустое значение + + + + () + + ( + ) + + + + ID + ID + + + + Successfully deleted + Успешно удалено + + + Failed to delete : + Не удалось удалить + : + + + + + Delete + Удалить + + + + + Are you sure you want to delete ? + Вы уверены, что хотите удалить ? + + + Delete + Удалить + + + + Providers + Провайдеры + + + + Provide support for protocols like SAML and OAuth to assigned applications. + Обеспечивание поддержки таких протоколов, как SAML и OAuth, в назначенных приложениях. + + + + Type + Тип + + + + Provider(s) + Провайдер(ы) + + + + Assigned to application + Назначено приложению + + + + Assigned to application (backchannel) + Назначено приложению (backchannel) + + + + Warning: Provider not assigned to any application. + Предупреждение: Провайдер не закреплен за каким-либо приложением. + + + + Update + Обновить + + + + Update + Обновить + + + + + Select providers to add to application + Выберите провайдеров для добавления в приложение + + + + Add + Добавить + + + + Either input a full URL, a relative path, or use 'fa://fa-test' to use the Font Awesome icon "fa-test". + Введите полный URL-адрес, относительный путь или используйте 'fa://fa-test', чтобы использовать иконку Font Awesome "fa-test". + + + + Path template for users created. Use placeholders like `%(slug)s` to insert the source slug. + Шаблон пути для созданных пользователей. Для вставки исходного идентификатора используйте заполнители типа `%(slug)s` + + + + Successfully updated application. + Приложение успешно обновлено. + + + + Successfully created application. + Приложение успешно создано. + + + + Application's display Name. + Отображаемое имя приложения. + + + + Slug + Идентификатор + + + + Optionally enter a group name. Applications with identical groups are shown grouped together. + По желанию введите имя группы. Приложения с одинаковыми группами отображаются сгруппированными вместе. + + + + Provider + Провайдер + + + + Select a provider that this application should use. + Выберите провайдера, которого должно использовать это приложение. + + + + Select backchannel providers which augment the functionality of the main provider. + Выбирайте провайдеров обратного канала, которые дополняют функциональность основного провайдера. + + + + Policy engine mode + Режим механизма политики + + + + Any policy must match to grant access + Любая политика должна соответствовать для предоставления доступа + + + + All policies must match to grant access + Все политики должны соответствовать для предоставления доступа + + + + UI settings + Настройки пользовательского интерфейса + + + + Launch URL + URL запуска + + + + If left empty, authentik will try to extract the launch URL based on the selected provider. + Если оставить пустым, authentik попытается извлечь URL-адрес запуска на основе выбранного провайдера. + + + + Open in new tab + Открывать в новой вкладке + + + + If checked, the launch URL will open in a new browser tab or window from the user's application library. + Если флажок установлен, URL-адрес запуска будет открываться в новой вкладке браузера или окне из библиотеки приложений пользователя. + + + + Icon + Иконка + + + + Currently set to: + В настоящее время установлено: + + + + Clear icon + Очистить иконку + + + + Publisher + Издатель + + + + Create Application + Создание приложения + + + + Overview + Обзор + + + + Changelog + Журнал изменений + + + + Warning: Provider is not used by any Outpost. + Внимание: Провайдер не используется ни одним внешним компонентом. + + + + Assigned to application + Назначено приложению + + + + Update LDAP Provider + Обновить LDAP провайдера + + + + Edit + Редактировать + + + + How to connect + Как подключиться + + + + Connect to the LDAP Server on port 389: + Подключитесь к серверу LDAP на порт 389: + + + + Check the IP of the Kubernetes service, or + Проверьте IP-адрес службы Kubernetes или + + + + The Host IP of the docker host + IP-адрес хоста докера + + + + Bind DN + Bind DN + + + + Bind Password + Привязать пароль + + + + Search base + База поиска + + + + Preview + Предпросмотр + + + + Warning: Provider is not used by an Application. + Предупреждение: Провайдер не используется приложением. + + + + Redirect URIs + Ссылка перенаправления + + + + Update OAuth2 Provider + Обновить OAuth2 провайдера + + + + OpenID Configuration URL + URL-адрес конфигурации OpenID + + + + OpenID Configuration Issuer + Эмитент конфигурации OpenID + + + + Authorize URL + URL-адрес авторизации + + + + Token URL + URL-адрес токена + + + + Userinfo URL + URL-адрес информации о пользователе + + + + Logout URL + URL-адрес выхода из системы + + + + JWKS URL + URL-адрес JWKS + + + + Forward auth (domain-level) + Прямая аутентификация (на уровне домена) + + + + Nginx (Ingress) + Nginx (Ingress) + + + + Nginx (Proxy Manager) + Nginx (Proxy Manager) + + + + Nginx (standalone) + Nginx (автономный) + + + + Traefik (Ingress) + Traefik (Ingress) + + + + Traefik (Compose) + Traefik (Compose) + + + + Traefik (Standalone) + Traefik (Автономный) + + + + Caddy (Standalone) + Caddy (Автономный) + + + + Internal Host + Внутренний хост + + + + External Host + Внешний хост + + + + Basic-Auth + Базовая аутентификация + + + + Yes + Да + + + + Mode + Режим + + + + Update Proxy Provider + Обновить прокси провайдера + + + + Protocol Settings + Настройки протокола + + + + Allowed Redirect URIs + Разрешенные ссылки перенаправления + + + + Setup + Настройка + + + + No additional setup is required. + Дополнительная настройка не требуется. + + + + Update Radius Provider + Обновить Radius провайдера + + + + Download + Загрузить + + + + Copy download URL + Скопировать URL-адрес загрузки + + + + Download signing certificate + Скачать сертификат подписи + + + + Related objects + Связанные объекты + + + + Update SAML Provider + Обновить SAML провайдера + + + + SAML Configuration + SAML Конфигурация + + + + EntityID/Issuer + Идентификатор объекта/эмитент + + + + SSO URL (Post) + URL единого входа (публикация) + + + + SSO URL (Redirect) + URL единого входа (перенаправление) + + + + SSO URL (IdP-initiated Login) + SSO URL (инициируемый IDP вход) + + + + SLO URL (Post) + URL-адрес SLO (сообщение) + + + + SLO URL (Redirect) + URL-адрес SLO (сообщение) + + + + SAML Metadata + SAML Метаданные + + + + Example SAML attributes + Пример атрибутов SAML + + + + NameID attribute + Атрибут NameID + + + + Warning: Provider is not assigned to an application as backchannel provider. + Предупреждение: Провайдер не назначен приложению в качестве провайдера обратного канала. + + + + Update SCIM Provider + Обновить SCIM провайдера + + + + Run sync again + Запустить синхронизацию снова + + + + Modern applications, APIs and Single-page applications. + Современные приложения, API и одностраничные приложения. + + + + LDAP + LDAP + + + + Provide an LDAP interface for applications and users to authenticate against. + Предоставьте интерфейс LDAP для аутентификации приложений и пользователей. + + + + New application + Новое приложение + + + + Applications + Приложения + + + + Provider Type + Тип провайдера + + + + Application(s) + Приложение(ия) + + + + Application Icon + Иконка приложения + + + + Update Application + Обновить приложение + + + + Successfully sent test-request. + Тестовый запрос успешно отправлен. + + + + Log messages + Журнал сообщений + + + + No log messages. + Сообщения в журнале отсутствуют. + + + + Active + Активен + + + + Last login + Последний вход + + + + Select users to add + Выбрать пользователей для добавления + + + + Successfully updated group. + Группа успешно обновлена. + + + + Successfully created group. + Группа успешно создана. + + + + Is superuser + Суперпользователь + + + + Users added to this group will be superusers. + Пользователи, добавленные в эту группу, будут суперпользователями. + + + + Parent + Родитель + + + + Attributes + Атрибуты + + + + Set custom attributes using YAML or JSON. + Задайте пользовательские атрибуты с помощью YAML или JSON. + + + + Successfully updated binding. + Привязка успешно обновлена. + + + + Successfully created binding. + Привязка успешно создана. + + + + Policy + Политика + + + + Group mappings can only be checked if a user is already logged in when trying to access this source. + Групповые сопоставления могут быть проверены только в том случае, если пользователь уже вошел в систему при попытке получить доступ к этому источнику. + + + + User mappings can only be checked if a user is already logged in when trying to access this source. + Пользовательские сопоставления могут быть проверены только в том случае, если пользователь уже вошел в систему при попытке получить доступ к этому источнику. + + + + Enabled + Включено + + + + Negate result + Отрицать результат + + + + Negates the outcome of the binding. Messages are unaffected. + Отменяет результат привязки. Сообщения не затрагиваются. + + + + Order + Порядок + + + + Timeout + Тайм-аут + + + + Successfully updated policy. + Политика успешно обновлена. + + + + Successfully created policy. + Политика успешно создана. + + + + A policy used for testing. Always returns the same result as specified below after waiting a random duration. + Политика, используемая для тестирования. После случайного ожидания всегда возвращает тот же результат, что указан ниже. + + + + Execution logging + Журналирование выполнения + + + + When this option is enabled, all executions of this policy will be logged. By default, only execution errors are logged. + Если эта опция включена, все выполнения этой политики будут записываться в журнал. По умолчанию в журнал записываются только ошибки выполнения. + + + + Policy-specific settings + Настройки, специфичные для политики + + + + Pass policy? + Пройти политику? + + + + Wait (min) + Ожидание (мин.) + + + + The policy takes a random time to execute. This controls the minimum time it will take. + Для выполнения политики требуется произвольное время. Здесь задается минимальное время выполнения. + + + + Wait (max) + Ожидание (макс.) + + + + Matches an event against a set of criteria. If any of the configured values match, the policy passes. + Сопоставляет событие с набором критериев. Если хоть одно из настроенных значений совпадает, политика проходит. + + + + Match created events with this action type. When left empty, all action types will be matched. + Сопоставлять созданные события с данным типом действия. Если оставить пустым, будут сопоставлены все типы действий. + + + + Matches Event's Client IP (strict matching, for network matching use an Expression Policy. + Сопоставляет IP-адрес клиента события (строгое сопоставление, для сетевого сопоставления используйте политику выражений. + + + + Match events created by selected application. When left empty, all applications are matched. + Соответствовать событиям, созданным выбранным приложением. Если поле оставить пустым, будут соответствовать все приложения. + + + + Checks if the request's user's password has been changed in the last x days, and denys based on settings. + Проверяет, не менялся ли пароль пользователя запроса за последние x дней, и запрещает, исходя из настроек. + + + + Maximum age (in days) + Максимальный возраст (в днях) + + + + Only fail the policy, don't invalidate user's password + Только провал политики, не аннулировать пароль пользователя + + + + Executes the python snippet to determine whether to allow or deny a request. + Выполняет python snippet, чтобы определить, разрешить или запретить запрос. + + + + Expression using Python. + Выражение с использованием Python. + + + + See documentation for a list of all variables. + Список всех переменных см. в документации. + + + + Static rules + Статические правила + + + + Minimum length + Минимальная длина + + + + Minimum amount of Uppercase Characters + Минимальное количество заглавных символов + + + + Minimum amount of Lowercase Characters + Минимальное количество символов нижнего регистра + + + + Minimum amount of Digits + Минимальное количество цифр + + + + Minimum amount of Symbols Characters + Минимальное количество знаковых символов + + + + Error message + Сообщение об ошибке + + + + Symbol charset + Набор символов + + + + Characters which are considered as symbols. + Знаки, которые считаются символами. + + + + HaveIBeenPwned settings + Настройки HaveIBeenPwned + + + + Allowed count + Разрешенное количество + + + + Allow up to N occurrences in the HIBP database. + Разрешить до N совпадений в базе данных HIBP + + + + zxcvbn settings + Настройки zxcvbn + + + + Score threshold + Порог баллов + + + + If the password's score is less than or equal this value, the policy will fail. + Если оценка пароля меньше или равна этому значению, политика будет провалена. + + + + Checks the value from the policy request against several rules, mostly used to ensure password strength. + Проверяет значение из запроса политики на соответствие нескольким правилам, в основном используемым для обеспечения надежности паролей. + + + + Password field + Поле пароля + + + + Field key to check, field keys defined in Prompt stages are available. + Ключ поля для проверки, доступны ключи поля, определенные в этапах запроса. + + + + Check static rules + Проверить статические правила + + + + Check haveibeenpwned.com + Проверить через haveibeenpwned.com + + + + For more info see: + Подробнее см: + + + + Check zxcvbn + Проверить через zxcvbn + + + + Password strength estimator created by Dropbox, see: + Оценщик надежности паролей, созданный компанией Dropbox, см: + + + + Allows/denys requests based on the users and/or the IPs reputation. + Разрешает/запрещает запросы на основе репутации пользователей и/или IP-адресов. + + + + Invalid login attempts will decrease the score for the client's IP, and the +username they are attempting to login as, by one. + Неверные попытки входа в систему уменьшают оценку IP-адреса клиента и +имени пользователя, под которым он пытается войти в систему, на единицу. + + + The policy passes when the reputation score is below the threshold, and +doesn't pass when either or both of the selected options are equal or above the threshold. + Политика применяется, когда рейтинг репутации ниже порогового значения, и не применяется, когда любой из выбранных вариантов или оба выбранных варианта равны пороговому значению или превышают его. + + + Check IP + Проверить IP + + + + Check Username + Проверить имя пользователя + + + + Threshold + Пороговое значение + + + + New policy + Новая политика + + + + Create a new policy. + Создание новой политики + + + + Create Binding + Создать Привязку + + + + Superuser + Суперпользователь + + + + Members + Участники + + + + Select groups to add user to + Выберите группы, в которые нужно добавить пользователя + + + + Warning: Adding the user to the selected group(s) will give them superuser permissions. + Внимание: Добавление пользователя в выбранную группу (группы) даст ему права суперпользователя. + + + + Successfully updated user. + Пользователь успешно обновлен. + + + + Successfully created user. + Пользователь успешно создан. + + + + Username + Имя пользователя + + + + User's primary identifier. 150 characters or fewer. + Основной идентификатор пользователя. Не более 150 символов. + + + + User's display name. + Отображаемое имя пользователя. + + + + Email + Электронная почта + + + + Is active + Активен + + + + Designates whether this user should be treated as active. Unselect this instead of deleting accounts. + Указывает, следует ли считать этого пользователя активным. Переключите этот флажок вместо удаления учетных записей. + + + + Path + Путь + + + + Policy / User / Group + Политика / Пользователь / Группа + + + + Policy + Политика + + + + + Group + Группа + + + + + User + Пользователь + + + + + Edit Policy + Изменить политику + + + + Update Group + Обновление группы + + + + Edit Group + Редактирование группы + + + + Update User + Обновление пользователя + + + + Edit User + Редактирование пользователя + + + + Policy binding(s) + Политика привязки(ок) + + + + Update Binding + Обновить привязку + + + + Edit Binding + Изменить привязку + + + + No Policies bound. + Нет привязанных политик + + + + No policies are currently bound to this object. + В настоящее время ни одна политика не связана с этим объектом. + + + + Warning: Application is not used by any Outpost. + Внимание: Приложение не используется ни одним внешним компонентом. + + + + Related + Связанный + + + + Backchannel Providers + Поставщики обратных каналов + + + + Check access + Проверить доступ + + + + Check + Проверить + + + + Check Application access + Проверьте доступ к приложению + + + + Test + Тест + + + + Launch + Запуск + + + + Logins over the last week (per 8 hours) + Входы в систему за последнюю неделю (за 8 часов) + + + + Policy / Group / User Bindings + Политика / Пользователь / Пользовательские привязки + + + + These policies control which users can access this application. + Эти политики контролируют, какие пользователи могут получить доступ к этому приложению. + + + + Successfully updated source. + Источник успешно обновлен. + + + + Successfully created source. + Источник успешно создан. + + + + Sync users + Синхронизировать пользователей + + + + User password writeback + Запись пароля пользователя + + + + Login password is synced from LDAP into authentik automatically. Enable this option only to write password changes in authentik back to LDAP. + Пароль входа синхронизируется из LDAP в authentik автоматически. Включите эту опцию только для записи изменений пароля в authentik обратно в LDAP. + + + + Sync groups + Синхронизировать группы + + + + Connection settings + Настройки подключения + + + + Server URI + URI сервера + + + + Specify multiple server URIs by separating them with a comma. + Укажите несколько URI сервера, разделив их запятой. + + + + Enable StartTLS + Включить StartTLS + + + + To use SSL instead, use 'ldaps://' and disable this option. + Чтобы использовать SSL, используйте 'ldaps://' и отключите эту опцию. + + + + TLS Verification Certificate + Сертификат верификации TLS + + + + When connecting to an LDAP Server with TLS, certificates are not checked by default. Specify a keypair to validate the remote certificate. + При подключении к серверу LDAP с помощью TLS сертификаты по умолчанию не проверяются. Укажите пару ключей для проверки удаленного сертификата. + + + + Bind CN + Bind CN + + + + LDAP Attribute mapping + Сопоставление атрибутов LDAP + + + + Additional settings + Дополнительные настройки + + + + Parent group for all the groups imported from LDAP. + Родительская группа для всех групп, импортированных из LDAP. + + + + User path + Путь пользователя + + + + Addition User DN + Дополнение User DN + + + + Additional user DN, prepended to the Base DN. + Дополнительный DN пользователя, добавляемый к базовому DN. + + + + Addition Group DN + Дополнение Group DN + + + + Additional group DN, prepended to the Base DN. + Дополнительный DN группы, добавляемый к базовому DN. + + + + User object filter + Пользовательский фильтр объектов + + + + Consider Objects matching this filter to be Users. + Считайте объекты, соответствующие этому фильтру, пользователями. + + + + Group object filter + Фильтр групповых объектов + + + + Consider Objects matching this filter to be Groups. + Объекты, соответствующие этому фильтру, считаются группами. + + + + Group membership field + Поле членства в группе + + + + Field which contains members of a group. Note that if using the "memberUid" field, the value is assumed to contain a relative distinguished name. e.g. 'memberUid=some-user' instead of 'memberUid=cn=some-user,ou=groups,...' + Поле, содержащее членов группы. Обратите внимание, что при использовании поля "memberUid" предполагается, что значение содержит относительное отличительное имя. Например, 'memberUid=some-user' вместо 'memberUid=cn=some-user,ou=groups,...'. + + + + Object uniqueness field + Поле уникальности объекта + + + + Field which contains a unique Identifier. + Поле содержащее уникальный идентификатор. + + + + Link users on unique identifier + Связывать пользователей по уникальному идентификатору + + + + Link to a user with identical email address. Can have security implications when a source doesn't validate email addresses + Связать с пользователем с идентичным адресом электронной почты. Это может иметь последствия для безопасности, если источник не проверяет адреса электронной почты + + + + Use the user's email address, but deny enrollment when the email address already exists + Использовать адрес электронной почты пользователя, но отказывать в регистрации, если такой адрес уже существует + + + + Link to a user with identical username. Can have security implications when a username is used with another source + Связать с пользователем с идентичным именем пользователя. Это может иметь последствия для безопасности, если имя пользователя используется с другим источником + + + + Use the user's username, but deny enrollment when the username already exists + Использовать имя пользователя, но отказывать в регистрации, если имя пользователя уже существует + + + + Unknown user matching mode + Неизвестный режим сопоставления пользователя + + + + URL settings + Настройки URL + + + + Authorization URL + Ссылка авторизации + + + + URL the user is redirect to to consent the authorization. + URL, на который перенаправляется пользователь для согласия на авторизацию. + + + + Access token URL + Ссылка Access токена + + + + URL used by authentik to retrieve tokens. + URL, используемый authentik для получения токенов. + + + + Profile URL + Ссылка на профиль + + + + URL used by authentik to get user information. + URL-адрес, используемый authentik для получения информации о пользователе. + + + + Request token URL + URL-адрес Request токена + + + + URL used to request the initial token. This URL is only required for OAuth 1. + URL-адрес, используемый для запроса начального токена. Этот URL требуется только для OAuth 1. + + + + OIDC Well-known URL + OIDC Well-known URL-адрес + + + + OIDC well-known configuration URL. Can be used to automatically configure the URLs above. + OIDC URL well-known конфигурации. Может использоваться для автоматической настройки вышеупомянутых URL-адресов. + + + + OIDC JWKS URL + OIDC JWKS URL + + + + JSON Web Key URL. Keys from the URL will be used to validate JWTs from this source. + JSON Web Key URL. Ключи из этого URL будут использоваться для проверки подлинности JWT из этого источника. + + + + OIDC JWKS + OIDC JWKS + + + + Raw JWKS data. + Необработанные данные JWKS. + + + + User matching mode + Режим сопоставления пользователя + + + + Delete currently set icon. + Удаление текущей установленной иконки. + + + + Consumer key + Ключ потребителя + + + + Consumer secret + Секретный ключ потребителя + + + + Additional scopes to be passed to the OAuth Provider, separated by space. To replace existing scopes, prefix with *. + Дополнительные области, которые необходимо передать OAuth-провайдеру, разделенные пробелом. Чтобы заменить существующие области, используйте префикс *. + + + + Flow settings + Настройки потока + + + + Flow to use when authenticating existing users. + Поток, используемый при аутентификации существующих пользователей. + + + + Enrollment flow + Поток регистрации + + + + Flow to use when enrolling new users. + Поток, используемый при регистрации новых пользователей. + + + + Load servers + Загрузить серверы + + + + Re-authenticate with plex + Повторная аутентификация с помощью plex + + + + Allow friends to authenticate via Plex, even if you don't share any servers + Разрешить друзьям аутентифицироваться через Plex, даже если вы не делитесь никакими серверами. + + + + Allowed servers + Разрешенные сервера + + + + Select which server a user has to be a member of to be allowed to authenticate. + Выберите, членом какого сервера должен быть пользователь, чтобы получить разрешение на аутентификацию. + + + + SSO URL + SSO URL-адрес + + + + URL that the initial Login request is sent to. + URL-адрес, на который отправляется первоначальный запрос на вход в систему. + + + + SLO URL + SLO URL-адрес + + + + Optional URL if the IDP supports Single-Logout. + Необязательный URL, если IDP поддерживает единый выход + + + + Also known as Entity ID. Defaults the Metadata URL. + Также известен как ID сущности. По умолчанию используется URL-адрес метаданных. + + + + Binding Type + Тип привязки + + + + Redirect binding + Привязка перенаправления + + + + Post-auto binding + Пост-автоматическая привязка + + + + Post binding but the request is automatically sent and the user doesn't have to confirm. + Опубликовать привязку, но запрос отправляется автоматически, и пользователю не нужно подтверждать. + + + + Post binding + Почтовая привязка + + + + Signing keypair + Пара ключей для подписи + + + + Keypair which is used to sign outgoing requests. Leave empty to disable signing. + Пара ключей, которая используется для подписи исходящих запросов. Оставьте пустым, чтобы отключить подпись. + + + + Allow IDP-initiated logins + Разрешить входы, инициированные IDP + + + + Allows authentication flows initiated by the IdP. This can be a security risk, as no validation of the request ID is done. + Разрешает потоки аутентификации, инициированные IdP. Это может представлять угрозу безопасности, так как проверка идентификатора запроса не производится. + + + + NameID Policy + Политика NameID + + + + Persistent + Постоянный + + + + Email address + Адрес электронной почты + + + + Windows + Windows + + + + X509 Subject + X509 Объект + + + + Transient + Переходный процесс + + + + Delete temporary users after + Удалите временных пользователей после + + + + Time offset when temporary users should be deleted. This only applies if your IDP uses the NameID Format 'transient', and the user doesn't log out manually. + Временной интервал, когда временные пользователи должны быть удалены. Применяется только в том случае, если ваш IDP использует формат NameID 'transient', и пользователь не выходит из системы вручную. + + + + Pre-authentication flow + Предварительный поток аутентификации + + + + Flow used before authentication. + Поток, используемый перед аутентификацией. + + + + New source + Новый источник + + + + Create a new source. + Создание нового источника. + + + + Sources of identities, which can either be synced into authentik's database, or can be used by users to authenticate and enroll themselves. + Источники идентификационных данных, которые могут либо синхронизироваться с базой данных authentik, либо использоваться пользователями для аутентификации и регистрации. + + + + Source(s) + Источник(и) + + + + Disabled + Отключен + + + + Built-in + Встроенный + + + + Update LDAP Source + Обновить источник LDAP + + + + Not synced yet. + Еще не синхронизировано. + + + + OAuth Source + OAuth источник + + + + + Generic OpenID Connect + Общий OpenID Connect + + + + Unknown provider type + Неизвестный тип провайдера + + + + Details + Подробности + + + + Callback URL + Возвратный URL + + + + Access Key + Ключ доступа + + + + Update OAuth Source + Обновить источник OAuth + + + + Diagram + Диаграмма + + + + Policy Bindings + Привязки политик + + + + These bindings control which users can access this source. + You can only use policies here as access is checked before the user is authenticated. + Эти привязки контролируют, какие пользователи могут получить доступ к этому источнику. + Здесь можно использовать только политики, поскольку доступ проверяется до аутентификации пользователя. + + + Update Plex Source + Обновить источник Plex + + + + Update SAML Source + Обновить источник SAML + + + + Successfully updated mapping. + Сопоставление успешно обновлено. + + + + Successfully created mapping. + Сопоставление успешно создано. + + + + SAML Attribute Name + Имя атрибута SAML + + + + Attribute name used for SAML Assertions. Can be a URN OID, a schema reference, or a any other string. If this property mapping is used for NameID Property, this field is discarded. + Имя атрибута, используемое для утверждений SAML. Это может быть OID URN, ссылка на схему или любая другая строка. Если данное отображение свойства используется для свойства NameID, это поле отбрасывается. + + + + Friendly Name + Поле объекта + + + + Optionally set the 'FriendlyName' value of the Assertion attribute. + Опционально установите значение 'FriendlyName' для атрибута Assertion + + + + Scope name + Имя области + + + + Scope which the client can specify to access these properties. + Область, которую клиент может указать для доступа к этим свойствам. + + + + Description shown to the user when consenting. If left empty, the user won't be informed. + Описание, показываемое пользователю при получении согласия. Если оставить его пустым, пользователь не будет проинформирован. + + + + Example context data + Пример данных контекста + + + + Active Directory User + Пользователь Active Directory + + + + Active Directory Group + Группа Active Directory + + + + New property mapping + Новое сопоставление свойств + + + + Create a new property mapping. + Создание нового сопоставления свойств. + + + + Property Mappings + Сопоставления свойств + + + + Control how authentik exposes and interprets information. + Контролируйте, как authentik раскрывает и интерпретирует информацию. + + + + Property Mapping(s) + Сопоставление(ия) свойств + + + + Test Property Mapping + Тест сопоставления свойств + + + + Hide managed mappings + Скрыть управляемые сопоставления + + + + Successfully updated token. + Токен успешно обновлен. + + + + Successfully created token. + Токен успешно создан. + + + + Unique identifier the token is referenced by. + Уникальный идентификатор, на который ссылается токен. + + + + Intent + Намерение + + + + API Token + API токен + + + + Used to access the API programmatically + Используется для программного доступа к API + + + + App password. + Пароль приложения. + + + + Used to login using a flow executor + Используется для входа в систему с помощью исполнителя потока + + + + Expiring + Истекает + + + + If this is selected, the token will expire. Upon expiration, the token will be rotated. + Если выбрано, срок действия токена истечет. По истечении срока действия токен будет обновлен. + + + + Expires on + Срок действия истекает + + + + API Access + Доступ к API + + + + App password + Пароль приложения + + + + Verification + Верификация + + + + Unknown intent + Неизвестное намерение + + + + Tokens + Токены + + + + Tokens are used throughout authentik for Email validation stages, Recovery keys and API access. + Токены используются в authentik на этапах проверки электронной почты, для ключей восстановления и доступа к API. + + + + Expires? + Истекает? + + + + Expiry date + Дата истечения + + + + Token(s) + Токен(ы) + + + + Create Token + Создать токен + + + + Token is managed by authentik. + Токен управляется authentik. + + + + Update Token + Обновление токена + + + + Domain + Домен + + + + Matching is done based on domain suffix, so if you enter domain.tld, foo.domain.tld will still match. + Соответствие осуществляется на основе суффикса домена, поэтому если вы введете domain.tld, то foo.domain.tld все равно будет соответствовать. + + + + Default + По умолчанию + + + + Branding settings + Настройки брендинга + + + + Title + Название + + + + Branding shown in page title and several other places. + Брендинг указан в заголовке страницы и в нескольких других местах. + + + + Logo + Логотип + + + + Icon shown in sidebar/header and flow executor. + Значок отображается в боковой панели/заголовке и исполнителе потока. + + + + Favicon + Favicon + + + + Icon shown in the browser tab. + Значок, отображаемый на вкладке браузера. + + + + Default flows + Потоки по умолчанию + + + + Flow used to authenticate users. If left empty, the first applicable flow sorted by the slug is used. + Поток, используемый для аутентификации пользователей. Если оставить пустым, будет использоваться первый применимый поток, отсортированный по идентификатору. + + + + Invalidation flow + Поток инвалидации + + + + Flow used to logout. If left empty, the first applicable flow sorted by the slug is used. + Поток, используемый для выхода из системы. Если оставить пустым, будет использоваться первый применимый поток, отсортированный по идентификатору. + + + + Recovery flow + Поток восстановления + + + + Unenrollment flow + Поток отмены регистрации + + + + If set, users are able to unenroll themselves using this flow. If no flow is set, option is not shown. + Если этот параметр установлен, пользователи могут сами деактивировать себя с помощью этого потока. Если поток не установлен, опция не отображается. + + + + User settings flow + Поток пользовательских настроек + + + + If set, users are able to configure details of their profile. + Если этот параметр установлен, пользователи могут настраивать детали своего профиля. + + + + Device code flow + Поток кода устройства + + + + If set, the OAuth Device Code profile can be used, and the selected flow will be used to enter the code. + Если установлено, можно использовать профиль OAuth Device Code, и выбранный поток будет использоваться для ввода кода. + + + + Other global settings + Другие глобальные настройки + + + + Web Certificate + Веб сертификат + + + + Event retention + Сохранение событий + + + + Duration after which events will be deleted from the database. + Срок, по истечении которого события будут удалены из базы данных. + + + + When using an external logging solution for archiving, this can be set to "minutes=5". + Если для архивирования используется внешнее решение для протоколирования, можно установить значение "minutes=5". + + + + This setting only affects new Events, as the expiration is saved per-event. + Эта настройка влияет только на новые события, поскольку срок действия сохраняется для каждого события. + + + + Configure visual settings and defaults for different domains. + Настройте визуальные параметры и значения по умолчанию для разных доменов. + + + + Default? + По умолчанию? + + + + Policies + Политики + + + + Allow users to use Applications based on properties, enforce Password Criteria and selectively apply Stages. + Разрешите пользователям использовать приложения на основе свойств, применяйте критерии паролей и выборочно применяйте этапы. + + + + Assigned to object(s). + Назначен + объекту(ам). + + + + Warning: Policy is not assigned. + Предупреждение: Политика не назначена. + + + + Test Policy + Тест политики + + + + Policy / Policies + Политика / Политики + + + + Successfully cleared policy cache + Кэш политики успешно очищен + + + + Failed to delete policy cache + Не удалось удалить кэш политики + + + + Clear cache + Очистить кэш + + + + Clear Policy cache + Очистить кэш политики + + + + Are you sure you want to clear the policy cache? This will cause all policies to be re-evaluated on their next usage. + Вы уверены, что хотите очистить кэш политик? Это приведет к тому, что все политики будут заново оценены при следующем использовании. + + + Reputation scores + Оценка репутации + + + + Reputation for IP and user identifiers. Scores are decreased for each failed login and increased for each successful login. + Репутация для IP-адресов и идентификаторов пользователей. Баллы уменьшаются за каждый неудачный вход и увеличиваются за каждый успешный вход. + + + + IP + IP + + + + Score + Оценка + + + + Updated + Обновлено + + + + Reputation + Репутация + + + + Groups + Группы + + + + Group users together and give them permissions based on the membership. + Объединяйте пользователей в группы и предоставляйте им разрешения на основе членства. + + + + Superuser privileges? + Привилегии суперпользователя? + + + + Group(s) + Группа(ы) + + + + Create Group + Создать Группу + + + + Create group + Создать группу + + + + Enabling this toggle will create a group named after the user, with the user as member. + При включении этого флажка будет создана группа, названная в честь пользователя, членом которой он является. + + + + Use the username and password below to authenticate. The password can be retrieved later on the Tokens page. + Для аутентификации используйте указанные ниже имя пользователя и пароль. Пароль можно получить позже на странице "Токены". + + + + Password + Пароль + + + + Valid for 360 days, after which the password will automatically rotate. You can copy the password from the Token List. + Действует в течение 360 дней, после чего пароль автоматически сменяется. Пароль можно скопировать из списка токенов. + + + + The following objects use + Следующие объекты используют + + + + + connecting object will be deleted + подключенный объект будет удалён + + + + Successfully updated + Успешно обновлено + + + Failed to update : + Не удалось обновить + : + + + + + Are you sure you want to update ""? + Вы уверены, что хотите обновить + " + "? + + + + Successfully updated password. + Пароль успешно обновлен. + + + + Successfully sent email. + Письмо успешно отправлено. + + + + Email stage + Этап электронной почты + + + + Successfully added user(s). + Пользователь(и) успешно добавлен(ы). + + + + Users to add + Пользователи для добавления + + + + User(s) + Пользователь(и) + + + + Remove Users(s) + Удалить пользователя(ей) + + + + Are you sure you want to remove the selected users from the group ? + Вы уверены, что хотите удалить выбранных пользователей из группы + ? + + + + Remove + Удалить + + + + Impersonate + Имитация + + + + User status + Статус пользователя + + + + Change status + Изменить статус + + + + Deactivate + Деактивировать + + + + Update password + Обновить пароль + + + + Set password + Установить пароль + + + + Successfully generated recovery link + Ссылка для восстановления успешно сгенерирована + + + + No recovery flow is configured. + Поток восстановления не настроен. + + + + Copy recovery link + Скопировать ссылку на восстановление + + + + Send link + Отправить ссылку + + + + Send recovery link to user + Отправить ссылку на восстановление пользователю + + + + Email recovery link + Отправить ссылку + + + + Recovery link cannot be emailed, user has no email address saved. + Ссылка для восстановления не может быть отправлена по электронной почте, у пользователя не сохранен адрес электронной почты. + + + + Add User + Добавить пользователя + + + + Warning: This group is configured with superuser access. Added users will have superuser access. + Предупреждение: Эта группа настроена с доступом суперпользователя. Добавленные пользователи будут иметь доступ суперпользователя. + + + + Add existing user + Добавить существующего пользователя + + + + Create user + Создать пользователя + + + + Create User + Создать Пользователя + + + + Create Service account + Создать сервисный аккаунт + + + + Hide service-accounts + Скрыть сервисные аккаунты + + + + Group Info + Информация о группе + + + + Notes + Записи + + + + Edit the notes attribute of this group to add notes here. + Отредактируйте атрибут заметок этой группы, чтобы добавить сюда заметки. + + + + Users + Пользователи + + + + Root + Корневой каталог + + + + Warning: You're about to delete the user you're logged in as (). Proceed at your own risk. + Предупреждение: Вы собираетесь удалить пользователя, под которым вы вошли в систему ( + ). Действуйте на свой страх и риск. + + + + Hide deactivated user + Скрыть деактивированного пользователя + + + + User folders + Пользовательские папки + + + + Successfully added user to group(s). + Пользователь успешно добавлен в группу(ы). + + + + Groups to add + Группы для добавления + + + + Remove from Group(s) + Удалить из группы (групп) + + + + Are you sure you want to remove user from the following groups? + Вы уверены, что хотите удалить пользователя + из следующих групп? + + + + Add Group + Добавить группу + + + + Add to existing group + Добавить в существующую группу + + + + Add new group + Добавить новую группу + + + + Application authorizations + Авторизации приложения + + + + Revoked? + Аннулирован? + + + + Expires + Истекает + + + + ID Token + ID токен + + + + Refresh Tokens(s) + Refresh токен(ы) + + + + Last IP + Последний IP + + + + Session(s) + Сессия(ии) + + + + Expiry + Истекает + + + + (Current session) + (Текущая сессия) + + + + Permissions + Разрешения + + + + Consent(s) + Согласие(я) + + + + Successfully updated device. + Устройство успешно обновлено. + + + + Static tokens + Статические токены + + + + TOTP Device + Устройство TOTP + + + + Enroll + Зарегистрировать + + + + Device(s) + Устройство (устройства) + + + + Update Device + Обновить устройство + + + + Confirmed + Подтверждено + + + + User Info + Информация о пользователе + + + + Actions over the last week (per 8 hours) + Действия за последнюю неделю (за 8 часов) + + + + Edit the notes attribute of this user to add notes here. + Отредактируйте атрибут заметок этого пользователя, чтобы добавить сюда заметки. + + + + Sessions + Сессии + + + + User events + Пользовательские события + + + + Explicit Consent + Явное Согласие + + + + OAuth Refresh Tokens + OAuth Refresh Токены + + + + MFA Authenticators + Аутентификаторы МФА + + + + Successfully updated invitation. + Приглашение успешно обновлено. + + + + Successfully created invitation. + Приглашение успешно создано. + + + + Flow + Поток + + + + When selected, the invite will only be usable with the flow. By default the invite is accepted on all flows with invitation stages. + Если выбран этот пункт, приглашение можно будет использовать только в этом потоке. По умолчанию приглашение принимается во всех потоках с этапами приглашения. + + + + Optional data which is loaded into the flow's 'prompt_data' context variable. YAML or JSON. + Необязательные данные, которые загружаются в контекстную переменную потока 'prompt_data'. YAML или JSON. + + + + Single use + Однократное применение + + + + When enabled, the invitation will be deleted after usage. + Если эта опция включена, приглашение будет удалено после использования. + + + + Select an enrollment flow + Выбрать поток регистрации + + + + Link to use the invitation. + Ссылка для использования приглашения. + + + + Invitations + Приглашения + + + + Create Invitation Links to enroll Users, and optionally force specific attributes of their account. + Создайте ссылки приглашений для регистрации пользователей и, по желанию, принудительно задействуйте определенные атрибуты их учетной записи. + + + + Created by + Создан + + + + Invitation(s) + Приглашение(я) + + + + Invitation not limited to any flow, and can be used with any enrollment flow. + Приглашение не ограничивается каким-либо потоком и может быть использовано с любым потоком регистрации. + + + + Update Invitation + Обновить приглашение + + + + Create Invitation + Создать приглашение + + + + Warning: No invitation stage is bound to any flow. Invitations will not work as expected. + Внимание: Ни один этап приглашения не привязан к какому-либо потоку. Приглашения не будут работать так, как ожидается. + + + + Auto-detect (based on your browser) + Автоматическое определение (на основе вашего браузера) + + + + Required. + Обязательно. + + + + Continue + Продолжить + + + + Successfully updated prompt. + Запрос успешно обновлен. + + + + Successfully created prompt. + Запрос успешно создан. + + + + Text: Simple Text input + Текст: простой текстовый ввод + + + + Text Area: Multiline text input + Текстовая область: Многострочный текстовый ввод. + + + + Text (read-only): Simple Text input, but cannot be edited. + Текст (только для чтения): Простой текстовый ввод, который нельзя редактировать. + + + + Text Area (read-only): Multiline text input, but cannot be edited. + Текстовая область (только для чтения): Многострочный текстовый ввод, который нельзя редактировать. + + + + Username: Same as Text input, but checks for and prevents duplicate usernames. + Имя пользователя: Аналогично текстовому вводу, но проверяет и предотвращает дублирование имен пользователей. + + + + Email: Text field with Email type. + Email: Текстовое поле с типом Email. + + + + Password: Masked input, multiple inputs of this type on the same prompt need to be identical. + Пароль: маскируемый ввод, несколько вводов этого типа в одном запросе должны быть идентичными. + + + + Number + Номер + + + + Checkbox + Чекбокс + + + + Radio Button Group (fixed choice) + Группа радиокнопок (фиксированный выбор) + + + + Dropdown (fixed choice) + Раскрывающийся список (фиксированный выбор) + + + + Date + Дата + + + + Date Time + Дата и время + + + + File + Файл + + + + Separator: Static Separator Line + Разделитель: Статическая разделительная линия + + + + Hidden: Hidden field, can be used to insert data into form. + Скрыто: Скрытое поле, может быть использовано для вставки данных в форму. + + + + Static: Static value, displayed as-is. + Статический: Статичное значение, отображается как есть. + + + + authentik: Locale: Displays a list of locales authentik supports. + authentik: Locale: Отображает список локализаций, которые поддерживает authentik. + + + + Preview errors + Предпросмотр ошибок + + + + Data preview + Предпросмотр данных + + + + Unique name of this field, used for selecting fields in prompt stages. + Уникальное имя этого поля, используемое для выбора полей на этапах запроса. + + + + Field Key + Ключ поля + + + + Name of the form field, also used to store the value. + Имя поля формы, также используемое для хранения значения. + + + + When used in conjunction with a User Write stage, use attributes.foo to write attributes. + При использовании в сочетании с этапом записи пользователя для записи атрибутов используйте attributes.foo. + + + + Label + Метка + + + + Label shown next to/above the prompt. + Метка, отображаемая рядом с запросом или под ним. + + + + Required + Обязательно + + + + Interpret placeholder as expression + Интерпретировать заполнитель как выражение + + + + When checked, the placeholder will be evaluated in the same way a property mapping is. + If the evaluation fails, the placeholder itself is returned. + Если флажок установлен, то заполнитель будет оцениваться так же, как и сопоставление свойств. + Если оценка не удалась, возвращается сам заполнитель. + + + Placeholder + Заполнитель + + + + Optionally provide a short hint that describes the expected input value. + When creating a fixed choice field, enable interpreting as expression and return a + list to return multiple choices. + По желанию предоставьте короткую подсказку, описывающую ожидаемое значение ввода. + При создании поля с фиксированным выбором включите интерпретацию как выражение и + возвращайте список, чтобы вернуть несколько вариантов. + + + Interpret initial value as expression + Интерпретировать начальное значение как выражение + + + + When checked, the initial value will be evaluated in the same way a property mapping is. + If the evaluation fails, the initial value itself is returned. + Если флажок установлен, то начальное значение будет оцениваться так же, как и сопоставление свойств. + Если оценка не удалась, само начальное значение. + + + Initial value + Начальное значение + + + + Optionally pre-fill the input with an initial value. + When creating a fixed choice field, enable interpreting as expression and + return a list to return multiple default choices. + По желанию предварительно заполните поле ввода начальным значением. + При создании поля с фиксированным выбором включите интерпретацию как выражение и + возвращайте список, чтобы вернуть несколько вариантов по умолчанию. + + + Help text + Вспомогательный текст + + + + Any HTML can be used. + Можно использовать любой HTML. + + + + Prompts + Запросы + + + + Single Prompts that can be used for Prompt Stages. + Одиночные запросы, которые можно использовать для этапов запросов. + + + + Field + Поле + + + + Stages + Этапы + + + + Prompt(s) + Запрос(ы) + + + + Update Prompt + Обновить запрос + + + + Create Prompt + Создать запрос + + + + Target + Цель + + + + Stage + Этап + + + + Evaluate when flow is planned + Оценка, когда поток запланирован + + + + Evaluate policies during the Flow planning process. + Оценка политик во время процесса планирования потока. + + + + Evaluate when stage is run + Оценка когда этап запущен + + + + Evaluate policies before the Stage is present to the user. + Оценивайте политики перед представлением этапа пользователю. + + + + Invalid response behavior + Недопустимое поведение ответа + + + + Returns the error message and a similar challenge to the executor + Возвращает сообщение об ошибке и аналогичный вызов исполнителю + + + + Restarts the flow from the beginning + Перезапуск потока с самого начала + + + + Restarts the flow from the beginning, while keeping the flow context + Перезапускает поток с самого начала, сохраняя контекст потока + + + + Configure how the flow executor should handle an invalid response to a challenge given by this bound stage. + Настройте, как исполнитель потока должен обрабатывать недействительный ответ на вызов, переданный этим связанным этапом. + + + + Successfully updated stage. + Этап успешно обновлен. + + + + Successfully created stage. + Этап успешно создан. + + + + Stage used to configure a duo-based authenticator. This stage should be used for configuration flows. + Этап, используемый для настройки duo аутентификатора. Этот этап должен использоваться для потоков конфигурации. + + + + Authenticator type name + Название типа аутентификатора + + + + Display name of this authenticator, used by users when they enroll an authenticator. + Отображаемое имя этого аутентификатора, используемое пользователями при регистрации аутентификатора. + + + + API Hostname + Имя хоста API + + + + Duo Auth API + Duo Auth API + + + + Integration key + Ключ интеграции + + + + Secret key + Секретный ключ + + + + Duo Admin API (optional) + Duo Admin API (опционально) + + + + When using a Duo MFA, Access or Beyond plan, an Admin API application can be created. + This will allow authentik to import devices automatically. + При использовании тарифного плана Duo MFA, Access или Beyond можно создать приложение Admin API. + Это позволит authentik автоматически импортировать устройства. + + + Stage-specific settings + Настройки, специфичные для этапа + + + + Configuration flow + Поток конфигурации + + + + Flow used by an authenticated user to configure this Stage. If empty, user will not be able to configure this stage. + Поток, используемый аутентифицированным пользователем для настройки этого Этапа. Если пусто, пользователь не сможет настроить этот этап. + + + + Twilio Account SID + SID учетной записи Twilio + + + + Get this value from https://console.twilio.com + Получите это значение с сайта https://console.twilio.com + + + + Twilio Auth Token + Токен аутентификации Twilio + + + + Authentication Type + Тип аутентификации + + + + Basic Auth + Базовая аутентификация + + + + Bearer Token + Bearer токен + + + + External API URL + URL-адрес внешнего API + + + + This is the full endpoint to send POST requests to. + Это полная конечная точка для отправки POST-запросов. + + + + API Auth Username + Имя пользователя API Auth + + + + This is the username to be used with basic auth or the token when used with bearer token + Это имя пользователя, которое будет использоваться при базовой аутентификации, или токен при использовании bearer токена. + + + + API Auth password + Пароль API Auth + + + + This is the password to be used with basic auth + Это пароль, который будет использоваться при базовой авторизации + + + + Mapping + Сопоставление + + + + Modify the payload sent to the custom provider. + Изменить данные, отправляемые пользовательскому провайдеру. + + + + Stage used to configure an SMS-based TOTP authenticator. + Этап, используемый для настройки аутентификатора TOTP на основе SMS. + + + + Twilio + Twilio + + + + Generic + Основной + + + + From number + С номера + + + + Number the SMS will be sent from. + Номер, с которого будет отправлено SMS. + + + + Hash phone number + Хэшировать номер телефона + + + + If enabled, only a hash of the phone number will be saved. This can be done for data-protection reasons. Devices created from a stage with this enabled cannot be used with the authenticator validation stage. + Если эта опция включена, будет сохранен только хэш номера телефона. Это может быть сделано в целях защиты данных. Устройства, созданные на этапе с этой опцией, не могут быть использованы на этапе проверки аутентификатора. + + + + Stage used to configure a static authenticator (i.e. static tokens). This stage should be used for configuration flows. + Этап, используемый для настройки статического аутентификатора (т.е. статических токенов). Этот этап следует использовать для потоков конфигурации. + + + + Token count + Количество токенов + + + + Stage used to configure a TOTP authenticator (i.e. Authy/Google Authenticator). + Этап, используемый для настройки аутентификатора TOTP (например, Authy/Google Authenticator). + + + + Digits + Цифры + + + + 6 digits, widely compatible + 6 цифр, широкая совместимость + + + + 8 digits, not compatible with apps like Google Authenticator + 8 цифр, не совместим с такими приложениями, как Google Authenticator + + + + Stage used to validate any authenticator. This stage should be used during authentication or authorization flows. + Этап, используемый для проверки любого аутентификатора. Этот этап должен использоваться в потоках аутентификации или авторизации. + + + + Device classes + Классы устройств + + + + Static Tokens + Статические токены + + + + TOTP Authenticators + Аутентификаторы TOTP + + + + WebAuthn Authenticators + Аутентификаторы WebAuthn + + + + Duo Authenticators + Аутентификаторы Duo + + + + SMS-based Authenticators + Аутентификаторы на основе SMS + + + + Device classes which can be used to authenticate. + Классы устройств, которые можно использовать для аутентификации + + + + Last validation threshold + Последний порог валидации + + + + Not configured action + Действие не настроено + + + + Force the user to configure an authenticator + Принудить пользователя настроить аутентификатор + + + + Deny the user access + Запрет доступа пользователю + + + + WebAuthn User verification + WebAuthn Верификация пользователя + + + + User verification must occur. + Должна выполняться проверка пользователя. + + + + User verification is preferred if available, but not required. + Верификация пользователя предпочтительна, если она доступна, но не обязательна. + + + + User verification should not occur. + Не должна выполняться проверка пользователя. + + + + Configuration stages + Этапы конфигурации + + + + Stages used to configure Authenticator when user doesn't have any compatible devices. After this configuration Stage passes, the user is not prompted again. + Этапы использованные для конфигурации Аутентификатора когда у пользователя нет совместимых устройств. После этого конфигурационного этапа пользователю больше не запрашивается. + + + + When multiple stages are selected, the user can choose which one they want to enroll. + Если выбрано несколько этапов, пользователь может выбрать, на каком из них он хочет зарегистрироваться. + + + + User verification + Верификация пользователя + + + + Resident key requirement + Требования к ключу резидента + + + + Authenticator Attachment + Вложения аутентификатора + + + + No preference is sent + Предпочтения не отправляются + + + + A non-removable authenticator, like TouchID or Windows Hello + Несъемный аутентификатор, например TouchID или Windows Hello + + + + A "roaming" authenticator, like a YubiKey + Переносной аутентификатор, например YubiKey + + + + This stage checks the user's current session against the Google reCaptcha (or compatible) service. + На этом этапе текущая сессия пользователя проверяется с помощью сервиса Google reCAPTCHA (или совместимого с ним). + + + + Public Key + Публичный ключ + + + + Public key, acquired from https://www.google.com/recaptcha/intro/v3.html. + Открытый ключ, полученный с https://www.google.com/recaptcha/intro/v3.html. + + + + Private Key + Приватный ключ + + + + Private key, acquired from https://www.google.com/recaptcha/intro/v3.html. + Приватный ключ, полученный с https://www.google.com/recaptcha/intro/v3.html. + + + + Advanced settings + Дополнительные настройки + + + + JS URL + JS URL-адрес + + + + URL to fetch JavaScript from, defaults to recaptcha. Can be replaced with any compatible alternative. + URL-адрес, с которого будет браться JavaScript, по умолчанию - recaptcha. Может быть заменен на любую совместимую альтернативу. + + + + API URL + API URL-адрес + + + + URL used to validate captcha response, defaults to recaptcha. Can be replaced with any compatible alternative. + URL, используемый для проверки ответа капчи, по умолчанию - recaptcha. Может быть заменен на любую совместимую альтернативу. + + + + Prompt for the user's consent. The consent can either be permanent or expire in a defined amount of time. + Запрос на согласие пользователя. Согласие может быть постоянным или истекать через определенный промежуток времени. + + + + Always require consent + Всегда требовать согласие + + + + Consent given last indefinitely + Согласие действует бессрочно + + + + Consent expires. + Согласие истекает. + + + + Consent expires in + Согласие истекает через + + + + Offset after which consent expires. + Смещение, после которого истекает срок действия согласия. + + + + Dummy stage used for testing. Shows a simple continue button and always passes. + Фиктивный этап, используемый для тестирования. Показывает простую кнопку продолжения и всегда проходит. + + + + Throw error? + Выбросить ошибку? + + + + SMTP Host + Хост SMTP + + + + SMTP Port + Порт SMTP + + + + SMTP Username + Имя пользователя SMTP + + + + SMTP Password + Пароль SMTP + + + + Use TLS + Использовать TLS + + + + Use SSL + Использовать SSL + + + + From address + От адреса + + + + Verify the user's email address by sending them a one-time-link. Can also be used for recovery to verify the user's authenticity. + Проверка адреса электронной почты пользователя путем отправки ему одноразовой ссылки. Может также использоваться для восстановления, чтобы проверить подлинность пользователя. + + + + Activate pending user on success + Активировать ожидающего пользователя при успехе + + + + When a user returns from the email successfully, their account will be activated. + Когда пользователь успешно вернется из электронной почты, его учетная запись будет активирована. + + + + Use global settings + Использовать глобальные настройки + + + + When enabled, global Email connection settings will be used and connection settings below will be ignored. + Если эта функция включена, будут использоваться глобальные настройки подключения к электронной почте, а настройки подключения, указанные ниже, будут игнорироваться. + + + + Token expiry + Срок действия токена + + + + Time in minutes the token sent is valid. + Время в минутах, в течение которого отправленный токен действителен. + + + + Template + Шаблон + + + + Let the user identify themselves with their username or Email address. + Позволить пользователю идентифицировать себя с помощью имени пользователя или адреса электронной почты. + + + + User fields + Пользовательские поля + + + + UPN + UPN + + + + Fields a user can identify themselves with. If no fields are selected, the user will only be able to use sources. + Поля, по которым пользователь может идентифицировать себя. Если ни одно из полей не выбрано, пользователь сможет использовать только источники. + + + + Password stage + Этап пароля + + + + When selected, a password field is shown on the same page instead of a separate page. This prevents username enumeration attacks. + При выборе этого параметра поле для ввода пароля отображается на той же странице, а не на отдельной. Это предотвращает атаки с перечислением имен пользователей. + + + + Case insensitive matching + Нечувствительное к регистру соответствие + + + + When enabled, user fields are matched regardless of their casing. + Если эта функция включена, пользовательские поля будут сопоставляться независимо от их регистра. + + + + Show matched user + Показать совпадающего пользователя + + + + When a valid username/email has been entered, and this option is enabled, the user's username and avatar will be shown. Otherwise, the text that the user entered will be shown. + Если введено правильное имя пользователя/электронная почта и эта опция включена, будет показано имя пользователя и аватар. В противном случае будет показан текст, который ввел пользователь. + + + + Source settings + Настройки источника + + + + Sources + Источники + + + + Select sources should be shown for users to authenticate with. This only affects web-based sources, not LDAP. + Для аутентификации пользователей необходимо выбрать источники. Это касается только веб-источников, но не LDAP. + + + + Show sources' labels + Показать метки источников + + + + By default, only icons are shown for sources. Enable this to show their full names. + По умолчанию для источников отображаются только значки. Включите эту опцию, чтобы показывать их полные имена. + + + + Passwordless flow + Беспарольный поток + + + + Optional passwordless flow, which is linked at the bottom of the page. When configured, users can use this flow to authenticate with a WebAuthn authenticator, without entering any details. + Дополнительный беспарольный поток, ссылка на который находится в нижней части страницы. При настройке пользователи могут использовать этот поток для аутентификации с помощью аутентификатора WebAuthn, не вводя никаких данных. + + + + Optional enrollment flow, which is linked at the bottom of the page. + Дополнительный поток регистрации, ссылка на который находится в нижней части страницы. + + + + Optional recovery flow, which is linked at the bottom of the page. + Дополнительный поток восстановления доступа, ссылка на который находится в нижней части страницы. + + + + This stage can be included in enrollment flows to accept invitations. + Этот этап может быть включен в потоки регистрации для принятия приглашений. + + + + Continue flow without invitation + Продолжить поток без приглашения + + + + If this flag is set, this Stage will jump to the next Stage when no Invitation is given. By default this Stage will cancel the Flow when no invitation is given. + Если этот флаг установлен, то при отсутствии приглашения этот этап перейдет к следующему этапу. По умолчанию эта стадия отменяет поток, если приглашение не получено. + + + + Validate the user's password against the selected backend(s). + Проверка пароля пользователя на соответствие выбранному бэкэнду (бэкэндам). + + + + Backends + Бэкенды + + + + User database + standard password + База данных пользователей + стандартный пароль + + + + User database + app passwords + База данных пользователей + пароли приложения + + + + User database + LDAP password + База данных пользователей + пароль LDAP + + + + Selection of backends to test the password against. + Выбор бэкендов для проверки пароля. + + + + Flow used by an authenticated user to configure their password. If empty, user will not be able to configure change their password. + Поток, используемый аутентифицированным пользователем для настройки своего пароля. Если он пуст, пользователь не сможет изменить свой пароль. + + + + Failed attempts before cancel + Неудачные попытки до отмены + + + + How many attempts a user has before the flow is canceled. To lock the user out, use a reputation policy and a user_write stage. + Количество попыток пользователя до отмены потока. Чтобы заблокировать пользователя, используйте политику репутации и этап user_write. + + + + Show arbitrary input fields to the user, for example during enrollment. Data is saved in the flow context under the 'prompt_data' variable. + Показывать пользователю произвольные поля ввода, например, во время регистрации. Данные сохраняются в контексте потока в переменной 'prompt_data'. + + + + Fields + Поля + + + + ("", of type ) + + (" + ", типа + ) + + + + Validation Policies + Политики валидации + + + + Selected policies are executed when the stage is submitted to validate the data. + Выбранные политики выполняются при отправке этапа для проверки данных. + + + + Delete the currently pending user. CAUTION, this stage does not ask for confirmation. Use a consent stage to ensure the user is aware of their actions. + Удалить текущего пользователя. ВНИМАНИЕ, на этом этапе не запрашивается подтверждение. Используйте этап согласия, чтобы убедиться, что пользователь осознает свои действия. + + + Log the currently pending user in. + Вход в систему текущим ожидающим пользователем. + + + + Session duration + Продолжительность сеанса + + + + Determines how long a session lasts. Default of 0 seconds means that the sessions lasts until the browser is closed. + Определяет, как долго длится сеанс. Значение по умолчанию 0 секунд означает, что сеанс длится до закрытия браузера. + + + + Different browsers handle session cookies differently, and might not remove them even when the browser is closed. + Разные браузеры по-разному обрабатывают сеансовые файлы cookie и могут не удалять их даже при закрытии браузера. + + + + See here. + См. здесь. + + + + Stay signed in offset + Смещение "Оставаться в системе" + + + + If set to a duration above 0, the user will have the option to choose to "stay signed in", which will extend their session by the time specified here. + Если значение продолжительности больше 0, у пользователя будет возможность выбрать опцию "оставаться в системе", что продлит его сеанс на указанное здесь время. + + + + Terminate other sessions + Прервать другие сеансы + + + + When enabled, all previous sessions of the user will be terminated. + Если включено, все предыдущие сеансы пользователя будут завершены. + + + + Remove the user from the current session. + Удалить пользователя из текущей сессии. + + + + Write any data from the flow's context's 'prompt_data' to the currently pending user. If no user + is pending, a new user is created, and data is written to them. + Запишите любые данные из контекста потока 'prompt_data' текущему пользователю. Если пользователя + нет, создается новый пользователь, и данные записываются ему. + + + Never create users + Никогда не создавать пользователей + + + + When no user is present in the flow context, the stage will fail. + Если в контексте потока нет пользователя, этап завершится неудачей. + + + + Create users when required + Создание пользователей при необходимости + + + + When no user is present in the the flow context, a new user is created. + Если в контексте потока нет пользователя, создается новый пользователь. + + + + Always create new users + Всегда создавать новых пользователей + + + + Create a new user even if a user is in the flow context. + Создать нового пользователя, даже если он уже находится в контексте потока. + + + + Create users as inactive + Создание пользователей как неактивных + + + + Mark newly created users as inactive. + Отмечать вновь созданных пользователей как неактивных. + + + + User path template + Шаблон пути пользователя + + + + Path new users will be created under. If left blank, the default path will be used. + Путь, по которому будут создаваться новые пользователи. Если оставить пустым, будет использоваться путь по умолчанию. + + + + Newly created users are added to this group, if a group is selected. + Вновь созданные пользователи добавляются в эту группу, если группа выбрана. + + + + New stage + Новый этап + + + + Create a new stage. + Создание нового этапа. + + + + Successfully imported device. + Устройство успешно импортировано. + + + + The user in authentik this device will be assigned to. + Пользователь authentik, которому будет назначено это устройство. + + + + Duo User ID + ID пользователя Duo + + + + The user ID in Duo, can be found in the URL after clicking on a user. + Идентификатор пользователя в Duo, можно найти в URL после нажатия на пользователя. + + + + Automatic import + Автоматический импорт + + + + Successfully imported devices. + Успешно импортировано + устройств(а). + + + + Start automatic import + Запуск автоматического импорта + + + + Or manually import + Или импортировать вручную + + + + Stages are single steps of a Flow that a user is guided through. A stage can only be executed from within a flow. + Этапы - это отдельные шаги потока, через которые проходит пользователь. Этап может быть выполнен только внутри потока. + + + + Flows + Потоки + + + + Stage(s) + Этап(ы) + + + + Import + Импорт + + + + Import Duo device + Импорт устройства Duo + + + + Successfully updated flow. + Поток успешно обновлен. + + + + Successfully created flow. + Поток успешно создан. + + + + Shown as the Title in Flow pages. + Указывается в качестве заголовка на страницах потока. + + + + Visible in the URL. + Виден в URL-адресе. + + + + Designation + Назначение + + + + Decides what this Flow is used for. For example, the Authentication flow is redirect to when an un-authenticated user visits authentik. + Определяет, для чего используется данный поток. Например, поток Authentication перенаправляется, когда не прошедший аутентификацию пользователь посещает authentik. + + + + No requirement + Нет требований + + + + Require authentication + Требуется аутентификация + + + + Require no authentication. + Не требуется аутентификация. + + + + Require superuser. + Требуется суперпользователь. + + + + Required authentication level for this flow. + Требуемый уровень аутентификации для этого потока. + + + + Behavior settings + Настройки поведения + + + + Compatibility mode + Режим совместимости + + + + Increases compatibility with password managers and mobile devices. + Повышенная совместимость с менеджерами паролей и мобильными устройствами. + + + + Denied action + Отказано в действии + + + + Will follow the ?next parameter if set, otherwise show a message + Будет следовать за параметром ?next, если он установлен, в противном случае покажет сообщение + + + + Will either follow the ?next parameter or redirect to the default interface + Будет либо следовать параметру ?next, либо перенаправлять на интерфейс по умолчанию. + + + + Will notify the user the flow isn't applicable + Уведомляет пользователя, что поток неприменим. + + + + Decides the response when a policy denies access to this flow for a user. + Определяет ответ, когда политика отказывает пользователю в доступе к этому потоку. + + + + Appearance settings + Настройки внешнего вида + + + + Layout + Макет + + + + Background + Фон + + + + Background shown during execution. + Фон, отображаемый во время выполнения. + + + + Clear background + Убрать фон + + + + Delete currently set background image. + Удаление установленного в данный момент фонового изображения. + + + + Successfully imported flow. + Поток успешно импортирован. + + + + .yaml files, which can be found on goauthentik.io and can be exported by authentik. + Файлы .yaml, которые можно найти на сайте goauthentik.io и экспортировать с помощью authentik. + + + + Flows describe a chain of Stages to authenticate, enroll or recover a user. Stages are chosen based on policies applied to them. + Потоки описывают цепочку этапов для аутентификации, регистрации или восстановления пользователя. Этапы выбираются на основе применяемых к ним политик. + + + + Flow(s) + Поток(и) + + + + Update Flow + Обновить поток + + + + Create Flow + Создать поток + + + + Import Flow + Импортировать поток + + + + Successfully cleared flow cache + Кэш потока успешно очищен + + + + Failed to delete flow cache + Не удалось удалить кэш потока + + + + Clear Flow cache + Очистить кэш потока + + + + Are you sure you want to clear the flow cache? + This will cause all flows to be re-evaluated on their next usage. + Вы уверены, что хотите очистить кэш потока? + Это приведет к тому, что все потоки будут заново оценены при следующем использовании. + + + Stage binding(s) + Привязка (привязки) этапа + + + + Stage type + Тип этапа + + + + Edit Stage + Редактировать этап + + + + Update Stage binding + Обновить привязку этапа + + + + These bindings control if this stage will be applied to the flow. + Эти привязки определяют, будет ли данный этап применяться к потоку. + + + + No Stages bound + Нет привязанных этапов + + + + No stages are currently bound to this flow. + В настоящее время ни один этап не связан с этим потоком. + + + + Create Stage binding + Создать привязку этапа + + + + Bind existing stage + Связать существующий этап + + + + Flow Overview + Обзор потока + + + + Related actions + Связанные действия + + + + Execute flow + Выполнить поток + + + + Normal + Стандартно + + + + with current user + с текущ. польз. + + + + with inspector + с инспектором + + + + Export flow + Экспорт потока + + + + Export + Экспорт + + + + Stage Bindings + Привязки этапа + + + + These bindings control which users can access this flow. + Эти привязки контролируют, какие пользователи могут получить доступ к этому потоку. + + + + Event Log + Журнал событий + + + + Event + Событие + + + + + Event info + Информация о событии + + + + Created + Создано + + + + Successfully updated transport. + Средство доставки успешно обновлено. + + + + Successfully created transport. + Средство доставки успешно создано. + + + + Local (notifications will be created within authentik) + Локальный (уведомления будут создаваться внутри authentik) + + + + Webhook (generic) + Вебхук (обычный) + + + + Webhook (Slack/Discord) + Вебхук (Slack/Discord) + + + + Webhook URL + URL-адрес вебхука + + + + Webhook Mapping + Сопоставление вебхуков + + + + Send once + Отправить единожды + + + + Only send notification once, for example when sending a webhook into a chat channel. + Отправлять уведомление только один раз, например, при отправке вебхука в чат-канал. + + + + Notification Transports + Поставщики уведомлений + + + + Define how notifications are sent to users, like Email or Webhook. + Определите способ отправки уведомлений пользователям, например по электронной почте или с помощью вебхука. + + + + Notification transport(s) + Поставщик(и) уведомлений + + + + Update Notification Transport + Обновление поставщика уведомлений + + + + Create Notification Transport + Создание поставщика уведомлений + + + + Successfully updated rule. + Правило успешно обновлено. + + + + Successfully created rule. + Правило успешно создано. + + + + Select the group of users which the alerts are sent to. If no group is selected the rule is disabled. + Выберите группу пользователей, которым будут отправляться оповещения. Если группа не выбрана, правило отключается. + + + + Transports + Поставщики + + + + Select which transports should be used to notify the user. If none are selected, the notification will only be shown in the authentik UI. + Выберите, какие поставщики должны использоваться для уведомления пользователя. Если ни один из них не выбран, уведомление будет отображаться только в пользовательском интерфейсе authentik. + + + + Severity + Важность + + + + Notification Rules + Правила уведомления + + + + Send notifications whenever a specific Event is created and matched by policies. + Отправляйте уведомления, когда создается определенное событие и сопоставляется с политиками. + + + + Sent to group + Отправляется группе + + + + Notification rule(s) + Правило (правила) уведомления + + + + None (rule disabled) + Отсутствует (правило отключено) + + + + Update Notification Rule + Обновление правила уведомления + + + + Create Notification Rule + Создание правила уведомления + + + + These bindings control upon which events this rule triggers. +Bindings to groups/users are checked against the user of the event. + Эти привязки контролируют, при каких событиях срабатывает данное правило. +Привязки к группам/пользователям проверяются по пользователю события. + + + Outpost Deployment Info + Информация о развертывании внешнего компонента + + + + View deployment documentation + Просмотр документации по развертыванию + + + + Click to copy token + Нажмите, чтобы скопировать токен + + + + If your authentik Instance is using a self-signed certificate, set this value. + Если ваш экземпляр authentik использует самоподписанный сертификат, установите это значение. + + + + If your authentik_host setting does not match the URL you want to login with, add this setting. + Если параметр authentik_host не соответствует URL, с которым вы хотите войти в систему, добавьте этот параметр. + + + + Successfully updated outpost. + Внешний компонент успешно обновлен. + + + + Successfully created outpost. + Внешний компонент успешно создан. + + + + Radius + Radius + + + + Integration + Интеграция + + + + Selecting an integration enables the management of the outpost by authentik. + Выбор интеграции позволяет управлять внешним компонентом с помощью authentik. + + + + Configuration + Конфигурация + + + + See more here: + Подробнее здесь: + + + + Documentation + Документация + + + + Last seen + Последний раз был замечен + + + + , should be + + , должен быть + + + + + Hostname + Имя хоста + + + + Not available + Недоступно + + + + Unknown type + Неизвестный тип + + + + Outposts + Внешние компоненты + + + + Outposts are deployments of authentik components to support different environments and protocols, like reverse proxies. + Внешние компоненты - это развертывание компонентов authentik для поддержки различных сред и протоколов, например обратных прокси. + + + + Health and Version + Здоровье и версия + + + + Warning: authentik Domain is not configured, authentication will not work. + Предупреждение: authentik домен не настроен, аутентификация не будет работать. + + + + Logging in via . + Вход в систему через + . + + + + No integration active + Нет активных интеграций + + + + Update Outpost + Обновить внешний компонент + + + + View Deployment Info + Просмотр информации о развертывании + + + + Detailed health (one instance per column, data is cached so may be out of date) + Подробное состояние здоровья (один экземпляр на колонку, данные кэшируются, поэтому могут быть устаревшими) + + + + Outpost(s) + Внешний (внешние) компонент(ы) + + + + Create Outpost + Создать внешний компонент + + + + Successfully updated integration. + Интеграция успешно обновлена. + + + + Successfully created integration. + Интеграция успешно создана. + + + + Local + Местный + + + + If enabled, use the local connection. Required Docker socket/Kubernetes Integration. + Если включено, используется локальное соединение. Требует Docker сокет/Kubernetes интеграции. + + + + Docker URL + URL-адрес Docker + + + + Can be in the format of 'unix://' when connecting to a local docker daemon, using 'ssh://' to connect via SSH, or 'https://:2376' when connecting to a remote system. + Может иметь формат 'unix://' при подключении к локальному демону docker, 'ssh://' для подключения по SSH или 'https://:2376' при подключении к удаленной системе. + + + + CA which the endpoint's Certificate is verified against. Can be left empty for no validation. + Центр сертификации, по которому проверяется сертификат конечной точки. Можно оставить пустым для отсутствия проверки. + + + + TLS Authentication Certificate/SSH Keypair + Сертификат аутентификации TLS/пара ключей SSH + + + + Certificate/Key used for authentication. Can be left empty for no authentication. + Сертификат/ключ, используемый для аутентификации. Можно оставить пустым для отсутствия аутентификации. + + + + When connecting via SSH, this keypair is used for authentication. + При подключении по SSH эта пара ключей используется для аутентификации. + + + + Kubeconfig + Kubeconfig + + + + Verify Kubernetes API SSL Certificate + Проверка SSL-сертификата API Kubernetes + + + + New outpost integration + Новая интеграции внешнего компонента + + + + Create a new outpost integration. + Создание новой интеграции внешнего компонента + + + + State + Состояние + + + + Unhealthy + Нездоровый + + + + Outpost integration(s) + Интеграция (интеграции) внешнего компонента + + + + Successfully generated certificate-key pair. + Пара сертификат-ключ успешно сгенерирована. + + + + Common Name + Обычное имя + + + + Subject-alt name + Альтернативное имя субъекта + + + + Optional, comma-separated SubjectAlt Names. + Необязательные дополнительные имена субъекта, разделенные запятыми. + + + + Validity days + Срок действия в днях + + + + Successfully updated certificate-key pair. + Пара сертификат-ключ успешно обновлена. + + + + Successfully created certificate-key pair. + Пара сертификат-ключ успешно создана. + + + + PEM-encoded Certificate data. + PEM-закодированные данные сертификата. + + + + Optional Private Key. If this is set, you can use this keypair for encryption. + Дополнительный закрытый ключ. Если этот параметр установлен, вы можете использовать эту пару ключей для шифрования. + + + + Certificate-Key Pairs + Пары сертификат-ключ + + + + Import certificates of external providers or create certificates to sign requests with. + Импортируйте сертификаты внешних провайдеров или создавайте сертификаты для подписания запросов. + + + + Private key available? + Закрытый ключ доступен? + + + + Certificate-Key Pair(s) + Пара(ы) сертификат-ключ + + + + Managed by authentik + Управляется authentik + + + + Managed by authentik (Discovered) + Управляется authentik (Discovered) + + + + Yes () + Да ( + ) + + + + No + Нет + + + + Update Certificate-Key Pair + Обновление пары сертификат-ключ + + + + Certificate Fingerprint (SHA1) + Отпечаток сертификата (SHA1) + + + + Certificate Fingerprint (SHA256) + Отпечаток сертификата (SHA256) + + + + Certificate Subject + Субъект сертификата + + + + Download Certificate + Скачать сертификат + + + + Download Private key + Скачать закрытый ключ + + + + Create Certificate-Key Pair + Создание пары сертификат-ключ + + + + Generate + Сгенерировать + + + + Generate Certificate-Key Pair + Сгенерировать пару сертификат-ключ + + + + Successfully updated instance. + Экземпляр успешно обновлен. + + + + Successfully created instance. + Экземпляр успешно создан. + + + + Disabled blueprints are never applied. + Отключенные чертежи никогда не применяются. + + + + Local path + Локальный путь + + + + OCI Registry + OCI Реестр + + + + Internal + Внутренний + + + + OCI URL, in the format of oci://registry.domain.tld/path/to/manifest. + URL-адрес OCI в формате oci://registry.domain.tld/path/to/manifest. + + + + See more about OCI support here: + Подробнее о поддержке OCI можно узнать здесь: + + + + Blueprint + Чертеж + + + + Configure the blueprint context, used for templating. + Настройте контекст чертежа, используемый для создания шаблонов. + + + + Orphaned + Потерянные + + + + Blueprints + Чертежи + + + + Automate and template configuration within authentik. + Автоматизация и шаблонизация конфигурации в authentik. + + + + Last applied + Последнее применение + + + + Blueprint(s) + Чертеж(и) + + + + Update Blueprint + Обновить чертеж + + + + Create Blueprint Instance + Создание экземпляра чертежа + + + + API Requests + API запросы + + + + Open API Browser + Открыть API браузер + + + + Notifications + Уведомления + + + + unread + + не прочитано + + + + Successfully cleared notifications + Уведомления успешно очищены + + + + Clear all + Очистить все + + + + A newer version of the frontend is available. + Доступна новая версия фронтенда. + + + + You're currently impersonating . Click to stop. + В данный момент вы имитируете + . Нажмите для остановки. + + + + User interface + Интерфейс пользователя + + + + Dashboards + Панели + + + + Events + События + + + + Logs + Логи + + + + Directory + Каталог + + + + System + Система + + + + Certificates + Сертификаты + + + + Outpost Integrations + Интеграции внешнего компонента + + + + API request failed + Не удалось выполнить запрос API + + + + User's avatar + Аватар пользователя + + + + Something went wrong! Please try again later. + Что-то пошло не так! Пожалуйста, повторите попытку позже. + + + + Request ID + ИД запроса + + + + You may close this page now. + Теперь вы можете закрыть эту страницу. + + + + You're about to be redirect to the following URL. + Вы будете перенаправлены на следующий URL-адрес. + + + + Follow redirect + Следовать за перенаправлением + + + + Request has been denied. + Запрос был отклонен. + + + + Not you? + Не вы? + + + + Need an account? + Нужна учетная запись? + + + + Sign up. + Зарегистрироваться. + + + + Forgot username or password? + Забыли имя пользователя или пароль? + + + + Or + Или + + + + Use a security key + Используйте ключ безопасности + + + + Login to continue to . + Войдите, чтобы перейти на + . + + + + Please enter your password + Пожалуйста, введите ваш пароль + + + + Forgot password? + Забыли пароль? + + + + Application requires following permissions: + Приложению необходимы следующие разрешения: + + + + Application already has access to the following permissions: + Приложение уже имеет доступ к следующим разрешениям: + + + + Application requires following new permissions: + Приложение требует следующих новых разрешений: + + + + Check your Inbox for a verification email. + Проверьте свой почтовый ящик, чтобы получить письмо с подтверждением. + + + + Send Email again. + Отправить электронное письмо еще раз. + + + + Successfully copied TOTP Config. + Конфигурация TOTP успешно скопирована. + + + + Copy + Копировать + + + + Code + Код + + + + Please enter your TOTP Code + Пожалуйста, введите ваш код TOTP + + + + Duo activation QR code + QR-код активации Duo + + + + Alternatively, if your current device has Duo installed, click on this link: + Кроме того, если на вашем текущем устройстве установлен Duo, перейдите по этой ссылке: + + + + Duo activation + Duo активация + + + + Check status + Проверить статус + + + + Make sure to keep these tokens in a safe place. + Обязательно храните эти токены в надежном месте. + + + + Phone number + Номер телефона + + + + Please enter your Phone number. + Пожалуйста, введите номер телефона. + + + + Please enter the code you received via SMS + Введите код, полученный по SMS + + + + A code has been sent to you via SMS. + Код был отправлен вам по SMS. + + + + Open your two-factor authenticator app to view your authentication code. + Откройте приложение двухфакторного аутентификатора, чтобы просмотреть код аутентификации. + + + + Static token + Статический токен + + + + Authentication code + Код аутентификации + + + + Please enter your code + Пожалуйста, введите ваш код + + + + Return to device picker + Вернуться к выбору устройства + + + + Retry authentication + Повторить аутентификацию + + + + Duo push-notifications + Duo push-уведомления + + + + Receive a push notification on your device. + Получите push-уведомление на свое устройство. + + + + Authenticator + Аутентификатор + + + + Use a security key to prove your identity. + Используйте ключ безопасности, чтобы подтвердить свою личность. + + + + Traditional authenticator + Традиционный аутентификатор + + + + Use a code-based authenticator. + Используйте аутентификатор на основе кода. + + + + Recovery keys + Ключи восстановления + + + + In case you can't access any other method. + Если вы не можете воспользоваться другим способом. + + + + SMS + СМС + + + + Tokens sent via SMS. + Токены отправляются по SMS. + + + + Select an authentication method. + Выберите метод аутентификации. + + + + Stay signed in? + Оставаться в системе? + + + + Select Yes to reduce the number of times you're asked to sign in. + Выберите Да, чтобы уменьшить количество запросов на вход. + + + + Authenticating with Plex... + Аутентификация с помощью Plex... + + + + Waiting for authentication... + Ожидание аутентификации... + + + + If no Plex popup opens, click the button below. + Если всплывающее окно Plex не открывается, нажмите кнопку ниже. + + + + Open login + Открытый логин + + + + Authenticating with Apple... + Аутентификация с помощью Apple... + + + + Retry + Повторить + + + + Enter the code shown on your device. + Введите код, показанный на вашем устройстве. + + + + Please enter your Code + Пожалуйста, введите ваш код + + + + You've successfully authenticated your device. + Вы успешно прошли проверку подлинности своего устройства. + + + + Flow inspector + Инспектор потока + + + + Next stage + Следующий этап + + + + Stage name + Имя этапа + + + + Stage kind + Вид этапа + + + + Stage object + Объект этапа + + + + This flow is completed. + Этот поток завершен. + + + + Plan history + История плана + + + + Current plan context + Контекст текущего плана + + + + Session ID + ID сессии + + + + Powered by authentik + Основано на authentik + + + + Error creating credential: + Ошибка при создании учетных данных: + + + + + Server validation of credential failed: + Проверка учетных данных на сервере не удалась: + + + + + Refer to documentation + См. документацию + + + No Applications available. + Нет доступных приложений. + + + + Either no applications are defined, or you don’t have access to any. + Приложения либо не определены, либо у вас нет доступа к ним. + + + My Applications + Мои приложения + + + + My applications + Мои приложения + + + + Change your password + Изменить ваш пароль + + + + Change password + Изменить пароль + + + + + + + + + + + Save + Сохранить + + + + Delete account + Удалить аккаунт + + + + Successfully updated details + Детали успешно обновлены. + + + + Open settings + Открыть настройки + + + + No settings flow configured. + Поток настроек не настроен. + + + + Update details + Обновить детали + + + + Successfully disconnected source + Источник успешно отключен + + + + Failed to disconnected source: + Не удалось отключить источник: + + + + + Disconnect + Отключить + + + + Connect + Подключить + + + + Error: unsupported source settings: + Ошибка: неподдерживаемые параметры источника: + + + + + Connect your user account to the services listed below, to allow you to login using the service instead of traditional credentials. + Подключите свою учетную запись к перечисленным ниже сервисам, чтобы можно было входить в систему, используя сервис, а не обычные данные. + + + + No services available. + Нет доступных сервисов. + + + + Create App password + Создать пароль приложения + + + + User details + Информация о пользователе + + + + Consent + Согласие + + + + MFA Devices + MFA-устройства + + + + Connected services + Подключенные сервисы + + + + Tokens and App passwords + Токены и пароли приложений + + + + Unread notifications + Непрочитанные уведомления + + + + Admin interface + Интерфейс администратора + + + + Stop impersonation + Остановить имитацию пользователя + + + + Avatar image + Аватарка + + + + Failed + Не удалось + + + + Unsynced / N/A + Не синхронизировано / N/A + + + + Outdated outposts + Устаревшие внешние компоненты + + + + Unhealthy outposts + Нездоровые внешние компоненты + + + + Next + Далее + + + + Inactive + Неактивный + + + + Regular user + Постоянный пользователь + + + + Activate + Активировать + + + + Use Server URI for SNI verification + Использование URI сервера для проверки SNI + + + Required for servers using TLS 1.3+ + Требуется для серверов, использующих TLS 1.3+ + + + Client certificate keypair to authenticate against the LDAP Server's Certificate. + Пара ключей сертификата клиента для аутентификации по сертификату сервера LDAP. + + + The certificate for the above configured Base DN. As a fallback, the provider uses a self-signed certificate. + Сертификат для вышеуказанного настроенного базового DN. В качестве запасного варианта провайдер использует самоподписанный сертификат. + + + TLS Server name + Имя сервера TLS + + + DNS name for which the above configured certificate should be used. The certificate cannot be detected based on the base DN, as the SSL/TLS negotiation happens before such data is exchanged. + DNS-имя, для которого должен использоваться настроенный выше сертификат. Сертификат не может быть определен на основе базового DN, поскольку согласование SSL/TLS происходит до обмена такими данными. + + + TLS Client authentication certificate + Сертификат аутентификации клиента TLS + + + Model + Модель + + + Match events created by selected model. When left empty, all models are matched. + Соответствовать событиям, созданным выбранной моделью. Если поле оставить пустым, будут соответствовать все модели. + + + Code-based MFA Support + Поддержка MFA на основе кодов + + + When enabled, code-based multi-factor authentication can be used by appending a semicolon and the TOTP code to the password. This should only be enabled if all users that will bind to this provider have a TOTP device configured, as otherwise a password may incorrectly be rejected if it contains a semicolon. + Если эта функция включена, можно использовать многофакторную аутентификацию на основе кода, добавляя к паролю точку с запятой и код TOTP. Эту функцию следует включать только в том случае, если у всех пользователей, которые будут привязываться к этому провайдеру, настроено устройство TOTP, поскольку в противном случае пароль может быть ошибочно отклонен, если он содержит точку с запятой. + + + User type + Тип пользователя + + + Successfully updated license. + Лицензия успешно обновлена. + + + Successfully created license. + Лицензия успешно создана. + + + Install ID + Идентификатор установки + + + License key + Лицензионный ключ + + + Licenses + Лицензии + + + License(s) + Лицензия (лицензии) + + + Cumulative license expiry + Накопительный срок действия лицензии + + + Update License + Обновление лицензии + + + Warning: The current user count has exceeded the configured licenses. + Предупреждение: Текущее количество пользователей превысило количество настроенных лицензий. + + + Click here for more info. + Нажмите здесь для получения дополнительной информации. + + + Enterprise + Enterprise + + + Manage enterprise licenses + Управление enterprise лицензиями + + + No licenses found. + Лицензий не найдено. + + + Send us feedback! + Отправьте нам отзыв! + + + Go to Customer Portal + Перейти на клиентский портал + + + Forecast internal users + Прогноз внутренних пользователей + + + Estimated user count one year from now based on current internal users and forecasted internal users. + Предполагаемое количество пользователей через год на основе текущих внутренних пользователей и прогнозируемых внутренних пользователей. + + + Forecast external users + Прогноз внешних пользователей + + + Estimated user count one year from now based on current external users and forecasted external users. + Предполагаемое количество пользователей через год на основе текущих внешних пользователей и прогнозируемых внешних пользователей. + + + Install + Установить + + + Install License + Установить лицензию + + + Internal users might be users such as company employees, which will get access to the full Enterprise feature set. + Внутренними пользователями могут быть такие пользователи, как сотрудники компании, которые получат доступ к полному набору функций Enterprise. + + + External users might be external consultants or B2C customers. These users don't get access to enterprise features. + Внешние пользователи могут быть внешними консультантами или клиентами B2C. Эти пользователи не получают доступа к enterprise функциям. + + + Service accounts should be used for machine-to-machine authentication or other automations. + Сервисные учетные записи следует использовать для межмашинной аутентификации или других автоматических операций. + + + Less details + Меньше деталей + + + More details + Больше деталей + + + Remove item + Удалить элемент + + + Open API drawer + Открыть историю API + + + Open Notification drawer + Открыть панель уведомлений + + + Restart task + Перезапустить задачу + + + Add provider + Добавить провайдера + + + Open + Открыть + + + Copy token + Копировать токен + + + Add users + Добавить пользователей + + + Add group + Добавить группу + + + Import devices + Импорт устройств + + + Execute + Выполнить + + + Show details + Показать подробности + + + Apply + Применить + + + Settings + Настройки + + + Sign out + Выход + + + The number of tokens generated whenever this stage is used. Every token generated per stage execution will be attached to a single static device. + Количество токенов, генерируемых при каждом использовании этого этапа. Каждый токен, сгенерированный за время выполнения этапа, будет прикреплен к одному статическому устройству. + + + Token length + Длина токена + + + The length of the individual generated tokens. Can be increased to improve security. + Длина отдельных генерируемых токенов. Может быть увеличена для повышения безопасности. + + + Internal: + Внутренний: + + + External: + Внешний: + + + Statically deny the flow. To use this stage effectively, disable *Evaluate when flow is planned* on the respective binding. + Статически запретите поток. Чтобы эффективно использовать этот этап, отключите *Оценивать, когда планируется поток* на соответствующей привязке. + + + Create and bind Policy + Создать и привязать политику + + + Federation and Social login + Федерации и соц. вход + + + Create and bind Stage + Создать и привязать этап + + + Flows and Stages + Потоки и этапы + + + New version available + Доступна новая версия + + + Failure result + Результат сбоя + + + Pass + Пропуск + + + Don't pass + Отказ пропуска + + + Result used when policy execution fails. + Результат, используемый при сбое выполнения политики. + + + Required: User verification must occur. + Обязательно: Проверка пользователя должна выполняться. + + + Preferred: User verification is preferred if available, but not required. + Предпочтительно: Проверка пользователя предпочтительна, если доступна, но не обязательна. + + + Discouraged: User verification should not occur. + Не рекомендуется: Проверка пользователя не должна выполняться. + + + Required: The authenticator MUST create a dedicated credential. If it cannot, the RP is prepared for an error to occur + Обязательно: Средство аутентификации ДОЛЖНО создать отдельные учетные данные. Если это невозможно, RP готов к возникновению ошибки. + + + Preferred: The authenticator can create and store a dedicated credential, but if it doesn't that's alright too + Предпочтительно: Аутентификатор может создавать и хранить отдельные учетные данные, но если он этого не делает, это тоже нормально. + + + Discouraged: The authenticator should not create a dedicated credential + Не рекомендуется: Аутентификатор не должен создавать отдельные учетные данные. + + + Lock the user out of this system + Заблокировать доступ пользователя к этой системе + + + Allow the user to log in and use this system + Разрешить пользователю входить в систему и использовать ее + + + Temporarily assume the identity of this user + Временно принять личность этого пользователя. + + + Enter a new password for this user + Введите новый пароль для этого пользователя + + + Create a link for this user to reset their password + Создать ссылку для этого пользователя, чтобы сбросить его пароль + + + WebAuthn requires this page to be accessed via HTTPS. + WebAuthn требует, чтобы доступ к этой странице осуществлялся по протоколу HTTPS. + + + WebAuthn not supported by browser. + WebAuthn не поддерживается браузером. + + + Use this provider with nginx's auth_request or traefik's forwardAuth. Each application/domain needs its own provider. Additionally, on each domain, /outpost.goauthentik.io must be routed to the outpost (when using a managed outpost, this is done for you). + Используйте этот провайдер с auth_request от nginx или forwardAuth от traefik. Для каждого приложения/домена нужен свой провайдер. Кроме того, на каждом домене необходимо направить /outpost.goauthentik.io на внешний компонент (при использовании управляемого внешнего компонента это будет сделано за вас). + + + Default relay state + Состояние реле по умолчанию + + + When using IDP-initiated logins, the relay state will be set to this value. + При использовании входов, инициированных IDP, состояние реле будет установлено в это значение. + + + Flow Info + Информация о потоке + + + Stage used to configure a WebAuthn authenticator (i.e. Yubikey, FaceID/Windows Hello). + Этап, используемый для настройки аутентификатора WebAuthn (например, Yubikey, FaceID/Windows Hello). + +<<<<<<< HEAD + + Internal application name used in URLs. + Внутреннее имя приложения, используемое в URL-адресах. + + + Submit + Отправить + + + UI Settings + Настройки пользовательского интерфейса + + + Transparent Reverse Proxy + Прозрачный обратный прокси + + + For transparent reverse proxies with required authentication + Для прозрачных обратных прокси с необходимой аутентификацией + + + Configure SAML provider manually + Настроить SAML провайдера вручную + + + Configure RADIUS provider manually + Настроить RADIUS провайдера вручную + + + Configure SCIM provider manually + Настроить SCIM провайдера вручную + + + Saving Application... + Сохранение приложения... + + + Authentik was unable to save this application: + Authentik не смог сохранить это приложение: + + + Your application has been saved + Ваше приложение было сохранено + + + Method's display Name. + Отображаемое имя метода. + + + Use this provider with nginx's auth_request or traefik's + forwardAuth. Each application/domain needs its own provider. + Additionally, on each domain, /outpost.goauthentik.io must be + routed to the outpost (when using a managed outpost, this is done for you). + Используйте этого провайдера с параметром в nginx auth_request или в traefik с параметром + forwardAuth. Каждое приложение или домен требуют собственного провайдера. + Дополнительно, в каждом домене, /outpost.goauthentik.io должен быть + направлен на внешний компонент (когда используется управляемый внешний компонент, это будет сделано автоматически). + + + Custom attributes + Пользовательские атрибуты + + + Don't show this message again. + Больше не показывать это сообщение. + + + Failed to fetch + Не удалось получить + + + Failed to fetch data. + Не удалось получить данные. + + + Successfully assigned permission. + Разрешение успешно назначено. + + + Role + Роль + + + Assign + Назначить + + + Assign permission to role + Назначить разрешение для роли + + + Assign to new role + Назначить для новой роли + + + Directly assigned + Назначено напрямую + + + Assign permission to user + Назначить разрешение пользователю + + + Assign to new user + Назначить для нового пользователя + + + User Object Permissions + Разрешения пользователя к объекту + + + Role Object Permissions + Разрешения роли к объекту + + + Roles + Роли + + + Select roles to grant this groups' users' permissions from the selected roles. + Выберите роли, чтобы предоставить пользователям этой группы разрешения от выбранных ролей. + + + Update Permissions + Обновление разрешений + + + Editing is disabled for managed tokens + Редактирование отключено для управляемых токенов + + + Permissions to add + Разрешения для добавления + + + Select permissions + Выберите разрешения + + + Assign permission + Назначить разрешение + + + Permission(s) + Разрешение(я) + + + Permission + Разрешение + + + User doesn't have view permission so description cannot be retrieved. + Пользователь не имеет права на просмотр, поэтому описание не может быть получено. + + + Assigned global permissions + Назначенные глобальные разрешения + + + Assigned object permissions + Назначенные разрешения объекта + + + Successfully updated role. + Роль успешно обновлена. + + + Successfully created role. + Роль успешно создана. + + + Manage roles which grant permissions to objects within authentik. + Управление ролями, которые предоставляют права на объекты в authentik. + + + Role(s) + Роль(и) + + + Update Role + Обновить роль + + + Create Role + Создать роль + + + Role doesn't have view permission so description cannot be retrieved. + Роль не имеет права на просмотр, поэтому описание не может быть получено. + + + Role + Роль + + + Role Info + Информация о роли + + + Pseudolocale (for testing) + Псевдолокаль (для тестирования) + + + Create With Wizard + Создать с помощью мастера + + + One hint, 'New Application Wizard', is currently hidden + Одна подсказка, "Мастер создания нового приложения", в настоящее время скрыта + + + External applications that use authentik as an identity provider via protocols like OAuth2 and SAML. All applications are shown here, even ones you cannot access. + Внешние приложения, использующие authentik в качестве поставщика идентификационных данных по таким протоколам, как OAuth2 и SAML. Здесь показаны все приложения, даже те, к которым вы не можете получить доступ. + + + Deny message + Запретить сообщение + + + Message shown when this stage is run. + Сообщение, отображаемое при выполнении этого этапа. + + + Open Wizard + Открыть мастер + + + Demo Wizard + Демо мастер + + + Run the demo wizard + Запустить демо мастер + + + OAuth2/OIDC (Open Authorization/OpenID Connect) + OAuth2/OIDC (Open Authorization/OpenID Connect) + + + LDAP (Lightweight Directory Access Protocol) + LDAP (Lightweight Directory Access Protocol) + + + Forward Auth (Single Application) + Прямая аутентификации (одно приложение) + + + Forward Auth (Domain Level) + Прямая аутентификация (уровень домена) + + + SAML (Security Assertion Markup Language) + SAML (Security Assertion Markup Language) + + + RADIUS (Remote Authentication Dial-In User Service) + RADIUS (Remote Authentication Dial-In User Service) + + + SCIM (System for Cross-domain Identity Management) + SCIM (System for Cross-domain Identity Management) + + + The token has been copied to your clipboard + Токен был скопирован в ваш буфер обмена + + + The token was displayed because authentik does not have permission to write to the clipboard + Токен был отображен, потому что у authentik нет разрешения на запись в буфер обмена + + + A copy of this recovery link has been placed in your clipboard + Копия этой ссылки на восстановление была помещена в ваш буфер обмена + + + Create recovery link + Создание ссылки на восстановление + + + Create Recovery Link + Создать ссылку + + + External + Внешний + + + Service account + Сервисный аккаунт + + + Service account (internal) + Сервисный аккаунт (внутренний) + + + Check the release notes + Просмотреть примечания к выпуску + + + User Statistics + Статистика пользователей + + + <No name set> + <No name set> + + + For nginx's auth_request or traefik's forwardAuth + Для auth_request в nginx или forwardAuth в traefik + + + For nginx's auth_request or traefik's forwardAuth per root domain + Для nginx's auth_request или traefik's forwardAuth для корневого домена + + + RBAC is in preview. + RBAC находится в предварительной версии. + + + User type used for newly created users. + Тип пользователя, используемый для вновь созданных пользователей. + + + Users created + Создано пользователей + + + Failed logins + Неудачные входы в систему + + + Also known as Client ID. + Также известен как Client ID. + + + Also known as Client Secret. + Также известен как Client Secret. + + + Global status + Глобальный статус + + + Vendor + Поставщик + + + No sync status. + Нет состояния синхронизации. + + + Sync currently running. + Синхронизация текущих запущенных. + + + Connectivity + Связанность + + + 0: Too guessable: risky password. (guesses &lt; 10^3) + 0: Слишком легко угадываемый: рискованный пароль. (попыток < 10^3) + + + 1: Very guessable: protection from throttled online attacks. (guesses &lt; 10^6) + 1: Очень легко угадываемый: защита от дросселируемых онлайн-атак. (попыток < 10^6) + + + 2: Somewhat guessable: protection from unthrottled online attacks. (guesses &lt; 10^8) + 2: Относительно легко угадываемый: защита от неконтролируемых онлайн-атак. (попыток < 10^8) + + + 3: Safely unguessable: moderate protection from offline slow-hash scenario. (guesses &lt; 10^10) + 3: Безопасный не угадываемый: умеренная защита от сценария медленного хэширования в автономном режиме. (попыток < 10^10) + + + 4: Very unguessable: strong protection from offline slow-hash scenario. (guesses &gt;= 10^10) + 4: Очень не угадываемый: надежная защита от сценария медленного хэширования в автономном режиме. (попыток >= 10^10) + + + Successfully created user and added to group + Пользователь успешно создан и добавлен в группу + + + This user will be added to the group "". + Этот пользователь будет добавлен в группу &quot;&quot;. + + + Pretend user exists + Делать вид, что пользователь существует + + + When enabled, the stage will always accept the given user identifier and continue. + Если включено, этап всегда будет принимать заданный идентификатор пользователя и продолжать работу. + + + There was an error in the application. + В приложении произошла ошибка. + + + Review the application. + Проверить приложение. + + + There was an error in the provider. + В провайдере произошла ошибка. + + + Review the provider. + Проверить провайдера. + + + There was an error + Произошла ошибка + + + There was an error creating the application, but no error message was sent. Please review the server logs. + При создании приложения произошла ошибка, но сообщение об ошибке не было отправлено. Пожалуйста, просмотрите логи сервера. + + + Configure LDAP Provider + Настроить LDAP Провайдера + + + Configure OAuth2/OpenId Provider + Настроить OAuth2/OpenId Провайдера + + + Configure Proxy Provider + Настроить Прокси Провайдера + + + Configure Radius Provider + Настроить Radius Провайдера + + + Configure SAML Provider + Настроить SAML Провайдера + + + Property mappings used for user mapping. + Сопоставления свойств, используемые для сопоставления пользователя + + + Configure SCIM Provider + Настроить SCIM Провайдера + + + Property mappings used for group creation. + Сопоставления свойств, используемые для создания групп. + + + Event volume + Объем событий + + + Require Outpost (flow can only be executed from an outpost). + Требовать внешний компонент (поток может быть выполнен только с аванпоста). + + + Connection settings. + Настройки подключения + + + Successfully updated endpoint. + Конечная точка успешно обновлена. + + + Successfully created endpoint. + Конечная точка успешно создана. + + + Protocol + Протокол + + + RDP + RDP + + + SSH + SSH + + + VNC + VNC + + + Host + Хост + + + Hostname/IP to connect to. + Имя хоста/IP для подключения. + + + Endpoint(s) + Конечная (конечные) точка (точки) + + + Update Endpoint + Обновление конечной точки + + + These bindings control which users will have access to this endpoint. Users must also have access to the application. + Эти привязки контролируют, какие пользователи будут иметь доступ к этой конечной точке. Пользователи также должны иметь доступ к приложению. + + + Create Endpoint + Создать конечную точку + + + RAC is in preview. + RAC находится в предварительной версии. + + + Update RAC Provider + Обновить RAC провайдера + + + Endpoints + Конечные точки + + + General settings + Основные настройки + + + RDP settings + Настройки RDP + + + Ignore server certificate + Игнорировать сертификат сервера + + + Enable wallpaper + Включить обои + + + Enable font-smoothing + Включить сглаживание шрифтов + + + Enable full window dragging + Включить перетаскивание всего окна + + + Network binding + Привязка к сети + + + No binding + Нет привязки + + + Bind ASN + Привязать ASN + + + Bind ASN and Network + Привязать ASN и Сеть + + + Bind ASN, Network and IP + Привязать ASN, Сеть и IP + + + Configure if sessions created by this stage should be bound to the Networks they were created in. + Настройте, должны ли сессии, созданные на этом этапе, быть привязаны к сетям, в которых они были созданы. + + + GeoIP binding + Привязка к GeoIP + + + Bind Continent + Привязать Континент + + + Bind Continent and Country + Привязать Континент и Страну + + + Bind Continent, Country and City + Привязать Континент, Страну и Город + + + Configure if sessions created by this stage should be bound to their GeoIP-based location + Настройте, должны ли сеансы, созданные на этом этапе, привязываться к местоположению на основе GeoIP. + + + RAC + RAC + + + Connection failed after attempts. + Подключение не удалось после попытки(ок). + + + Re-connecting in second(s). + Повторное подключение через сек. + + + Connecting... + Подключение... + + + Select endpoint to connect to + Выберите конечную точку для подключения + + + Connection expiry + Истечение срока подключения + + + Determines how long a session lasts before being disconnected and requiring re-authorization. + Определяет, как долго длится сеанс, прежде чем он будет отключен и потребует повторной авторизации. + + + Learn more + Подробнее + + + Maximum concurrent connections + Максимальное количество одновременных подключений + + + Maximum concurrent allowed connections to this endpoint. Can be set to -1 to disable the limit. + Максимальное количество одновременных разрешенных подключений к этой конечной точке. Можно установить значение -1, чтобы отключить ограничение. + + + Korean + Корейский + + + Dutch + Голландский + + + Brand + Бренд + + + Successfully updated brand. + Бренд успешно обновлен. + + + Successfully created brand. + Бренд успешно создан. + + + Use this brand for each domain that doesn't have a dedicated brand. + Использовать этот бренд для каждого домена, у которого нет собственного бренда. + + + Set custom attributes using YAML or JSON. Any attributes set here will be inherited by users, if the request is handled by this brand. + Задайте пользовательские атрибуты с помощью YAML или JSON. Любые атрибуты, заданные здесь, будут наследоваться пользователями, если запрос будет обработан этим брендом. + + + Brands + Бренды + + + Brand(s) + Бренд(ы) + + + Update Brand + Обновить бренд + + + Create Brand + Создать бренд + + + To let a user directly reset a their password, configure a recovery flow on the currently active brand. + Чтобы позволить пользователю напрямую сбросить свой пароль, настройте поток восстановления на активном в данный момент бренде. + + + The current brand must have a recovery flow configured to use a recovery link + Для текущего бренда должен быть настроен поток восстановления с использованием ссылки восстановления + + + Successfully updated settings. + Настройки успешно обновлены. + + + Avatars + Аватарки + + + Configure how authentik should show avatars for users. The following values can be set: + Настройте, как authentik должен показывать аватары для пользователей. Можно задать следующие значения: + + + Disables per-user avatars and just shows a 1x1 pixel transparent picture + Отключает аватары для каждого пользователя и просто показывает прозрачную картинку 1x1 пиксель + + + Uses gravatar with the user's email address + Использование gravatar с адресом электронной почты пользователя + + + Generated avatars based on the user's name + Генерирование аватаров на основе имени пользователя + + + Any URL: If you want to use images hosted on another server, you can set any URL. Additionally, these placeholders can be used: + Любой URL: Если вы хотите использовать изображения, размещенные на другом сервере, вы можете задать любой URL. Кроме того, можно использовать эти заполнители: + + + The user's username + Имя пользователя + + + The email address, md5 hashed + Адрес электронной почты, хэшированный md5 + + + The user's UPN, if set (otherwise an empty string) + UPN пользователя, если установлен (в противном случае пустая строка) + + + An attribute path like + attributes.something.avatar, which can be used in + combination with the file field to allow users to upload custom + avatars for themselves. + Путь к атрибуту, например + attributes.something.avatar, который может быть использован в + сочетании с полем файла, чтобы позволить пользователям загружать пользовательские + аватары для себя. + + + Multiple values can be set, comma-separated, and authentik will fallback to the next mode when no avatar could be found. + Можно задать несколько значений, разделив их запятыми, и authentik перейдет к следующему режиму, если аватар не будет найден. + + + For example, setting this to gravatar,initials will + attempt to get an avatar from Gravatar, and if the user has not + configured on there, it will fallback to a generated avatar. + Например, установив параметр в gravatar,initials система будет + попытаться получить аватар с Gravatar, и если пользователь там не + настроен, то вернется к сгенерированному аватару. + + + Allow users to change name + Разрешить пользователям изменять имя + + + Enable the ability for users to change their name. + Включение возможности изменения пользователями своего имени. + + + Allow users to change email + Разрешить пользователям изменять электронную почту + + + Enable the ability for users to change their email. + Включение возможности для пользователей изменять свой адрес электронной почты. + + + Allow users to change username + Разрешить пользователям изменять имя пользователя + + + Enable the ability for users to change their username. + Включение возможности изменения пользователями своего имени пользователя + + + Footer links + Ссылки в нижнем колонтитуле + + + GDPR compliance + Соблюдение GDPR + + + When enabled, all the events caused by a user will be deleted upon the user's deletion. + Если включено, все события, вызванные пользователем, будут удалены после его удаления. + + + Impersonation + Имитация пользователя + + + Globally enable/disable impersonation. + Глобально включить/отключить имитацию пользователей. + + + System settings + Системные настройки + + + Changes made: + Внесены изменения: + + + Key + Ключ + + + Previous value + Предыдущее значение + + + New value + Новое значение + + + Raw event info + Необработанная информация о событии + + + Anonymous user + Анонимный пользователь + + + Add All Available + Добавить все доступные + + + Remove All Available + Удалить все доступные + + + Remove All + Удалить все + + + Available options + Доступные варианты + + + Selected options + Выбранные варианты + + + item(s) marked to add. + элемент(а/ов) отмечено для добавления. + + + item(s) selected. + элемент(а/ов) выбран(о). + + + item(s) marked to remove. + элемент(а/ов) помечен(о) для удаления. + + + Available Applications + Доступные приложения + + + Selected Applications + Выбранные приложения + + + This option configures the footer links on the flow executor pages. It must be a valid YAML or JSON list and can be used as follows: + Этот параметр настраивает ссылки нижнего колонтитула на страницах исполнителей потока. Это должен быть корректный YAML или JSON, который можно использовать следующим образом: + + + Last used + Послед. использование + + + OAuth Access Tokens + OAuth Access токены + + + Credentials / Tokens + Учетные данные / токены + + + Permissions set on users which affect this object. + Разрешения, установленные для пользователей, которые влияют на этот объект. + + + Permissions set on roles which affect this object. + Разрешения, установленные для ролей, которые влияют на этот объект. + + + Permissions assigned to this user which affect all object instances of a given type. + Назначенные этому пользователю разрешения, которые влияют на все экземпляры объектов данного типа. + + + Permissions assigned to this user affecting specific object instances. + Назначенные этому пользователю разрешения, влияющие на конкретные экземпляры объектов. + + + Permissions assigned to this role which affect all object instances of a given type. + Назначенные этой роли разрешения, которые влияют на все экземпляры объектов данного типа. + + + JWT payload + JWT данные + + + Preview for user + Предпросмотр для пользователя + + + Brand name + Имя бренда + + + Remote Access Provider + Провайдер удаленного доступа + + + Remotely access computers/servers via RDP/SSH/VNC + Удаленный доступ к компьютерам/серверам через RDP/SSH/VNC + + + Configure Remote Access Provider Provider + Конфигурация провайдера удаленного доступа Remote Access + + + Delete authorization on disconnect + Удалить авторизацию при отключении + + + When enabled, connection authorizations will be deleted when a client disconnects. This will force clients with flaky internet connections to re-authorize the endpoint. + Если эта функция включена, авторизация соединения будет удаляться при отключении клиента. Это заставит клиентов с нестабильным интернет-соединением повторно авторизоваться на конечной точке. + + + Connection Token(s) + Токен(ы) подключения + + + Endpoint + Конечная точка + + + Connections + Соединения + + + Unconfigured + Не настроено + + + This option will not be changed by this mapping. + Этот параметр не будет изменен данным сопоставлением. + + + RAC Connections + Соединения RAC + + + Sending Duo push notification... + Отправка push-уведомления Duo... + + + Failed to authenticate + Не удалось аутентифицироваться + + + Authenticating... + Аутентификация... + + + Customization + Персонализация + + + Authentication failed. Please try again. + Аутентификация не удалась. Пожалуйста, попробуйте еще раз + + + Failed to register. Please try again. + Не удалось зарегистрироваться. Пожалуйста, попробуйте еще раз + + + Registering... + Регистрация... + + + Failed to register + Не удалось зарегистрироваться + + + Retry registration + Повторить регистрацию + + + Select one of the options below to continue. + Выберите один из вариантов ниже, чтобы продолжить. + + + Latest version unknown + Последняя версия неизвестна + + + Timestamp + Временная метка + + + Time + Время + + + Level + Уровень + + + Event + Событие + + + Logger + Логгер + + + Update internal password on login + Обновить внутренний пароль при входе + + + When the user logs in to authentik using this source password backend, update their credentials in authentik. + При входе пользователя в систему Authentik с использованием этого источника паролей, обновлять его учетные данные в Authentik + + + Source + Источник + + + Resume timeout + Тайм-аут возобновления + + + Amount of time a user can take to return from the source to continue the flow. + Количество времени, которое пользователь может потратить на возвращение от источника для продолжения потока. + + + Your Install ID + Ваш идентификатор установки + + + Enter the email associated with your account, and we'll send you a link to reset your password. + Введите адрес электронной почты, связанный с вашей учетной записью, и мы отправим вам ссылку для сброса пароля. + + + Stage name: + Название этапа: + + + Please scan the QR code above using the Microsoft Authenticator, Google Authenticator, or other authenticator apps on your device, and enter the code the device displays below to finish setting up the MFA device. + Пожалуйста, отсканируйте приведенный выше QR-код с помощью Microsoft Authenticator, Google Authenticator или других приложений-аутентификаторов на вашем устройстве и введите код, который устройство отобразит ниже, чтобы завершить настройку устройства MFA. + + + Inject an OAuth or SAML Source into the flow execution. This allows for additional user verification, or to dynamically access different sources for different user identifiers (username, email address, etc). + Вставьте источник OAuth или SAML в процесс выполнения потока. Это позволяет проводить дополнительную проверку пользователя или динамически получать доступ к различным источникам для разных идентификаторов пользователя (имя пользователя, адрес электронной почты и т. д.). + + + A selection is required + Выбор обязателен + + + Device type restrictions + Ограничения типа устройства + + + Available Device types + Доступные типы устройств + + + Selected Device types + Выбранные типы устройств + + + Optionally restrict which WebAuthn device types may be used. When no device types are selected, all devices are allowed. + Опционально ограничьте типы устройств WebAuthn, которые могут быть использованы. Если типы устройств не выбраны, разрешены все устройства. + + + If the user has successfully authenticated with a device in the classes listed above within this configured duration, this stage will be skipped. + Если пользователь успешно прошел аутентификацию на устройстве из перечисленных выше классов в течение этого заданного времени, этот этап будет пропущен. + + + WebAuthn-specific settings + Настройки, специфичные для WebAuthn + + + WebAuthn Device type restrictions + Ограничения типа устройства WebAuthn + + + This restriction only applies to devices created in authentik 2024.4 or later. + Это ограничение распространяется только на устройства, созданные в authentik 2024.4 или более поздней версии. + + + Default token duration + Срок действия токена по умолчанию + + + Default duration for generated tokens + Срок действия по умолчанию для сгенерированных токенов + + + Default token length + Длина токена по умолчанию + + + Default length of generated tokens + Длина генерируемых токенов по умолчанию + + + deleted + стерто + + + Select permissions to assign + Выберите разрешения для назначения + + + SCIM Source is in preview. + SCIM источник находится в стадии предварительного просмотра. + + + Update SCIM Source + Обновить источник SCIM + + + SCIM Base URL + Базовый SCIM URL + + + Provisioned Users + Предоставлено пользователям + + + Provisioned Groups + Предоставлено группам + + + removed + удалено + + + Verifying... + Верификация... + + + Request failed. Please try again later. + Запрос не выполнен. Пожалуйста, повторите попытку позже. + + + Available Roles + Доступные роли + + + Selected Roles + Выбранные роли + + + Internal Service accounts are created and managed by authentik and cannot be created manually. + Учетные записи внутренних служб создаются и управляются authentik и не могут быть созданы вручную. + + + Private key Algorithm + Алгоритм закрытого ключа + + + RSA + RSA + + + ECDSA + ECDSA + + + Algorithm used to generate the private key. + Алгоритм, используемый для генерации закрытого ключа. + + + Added ID + Добавлен ИД + + + Removed ID + Удален ИД + + + Cleared + Очищено + + + Google Workspace Provider + Google Workspace Провайдер + + + Credentials + Учетные данные + + + Delegated Subject + Делегированный субъект + + + Default group email domain + Почтовый домен группы по умолчанию + + + Default domain that is used to generate a group's email address. Can be customized using property mappings. + Домен по умолчанию, который используется для создания адреса электронной почты группы. Может быть настроен с помощью сопоставления свойств. + + + User deletion action + Действие удаления пользователя + + + User is deleted + Пользователь удален + + + Suspend + Приостановить + + + User is suspended, and connection to user in authentik is removed. + Пользователь приостановлен, и соединение с пользователем в authentik удалено. + + + Do Nothing + Ничего не делать + + + The connection is removed but the user is not modified + Соединение удалено, но пользователь не изменен + + + Determines what authentik will do when a User is deleted. + Определяет, что будет делать authentik при удалении пользователя. + + + Group deletion action + Действие удаления группы + + + Group is deleted + Группа удалена + + + The connection is removed but the group is not modified + Соединение удалено, но группа не изменена + + + Determines what authentik will do when a Group is deleted. + Определяет, что будет делать authentik при удалении группы. + + + Google Workspace Provider is in preview. + Google Workspace Provider находится в стадии предварительного просмотра. + + + Microsoft Entra Provider + Microsoft Entra Провайдер + + + Google Cloud credentials file. + Файл учетных данных Google Cloud. + + + Email address of the user the actions of authentik will be delegated to. + Адрес электронной почты пользователя, которому будут делегированы действия authentik. + + + Client ID for the app registration. + ID клиента для регистрации приложения. + + + Client secret for the app registration. + Секрет клиента для регистрации приложения. + + + Tenant ID + ID арендатора + + + ID of the tenant accounts will be synced into. + ID учетной записи арендатора, с которым она будет синхронизирована. + + + Microsoft Entra Provider is in preview. + Microsoft Entra провайдер находится в стадии предварительного просмотра. + + + Update Microsoft Entra Provider + Обновить провайдера Microsoft Entra + + + Finished successfully + Успешно завершено + + + Finished with errors + Закончено с ошибками + + + Finished () + Завершено () + + + Sync currently running + Синхронизация текущих запущенных + + + Update Google Workspace Provider + Обновить провадера Google Workspace + + + Enterprise only + Только для Enterprise + + + Icon + Иконка + + + (build ) + (релиз ) + + + (FIPS) + (FIPS) + + + Score minimum threshold + Минимальный порог баллов + + + Minimum required score to allow continuing + Минимальный балл, необходимый для продолжения + + + Score maximum threshold + Максимальный порог баллов + + + Maximum allowed score to allow continuing + Максимальный балл, необходимый для продолжения + + + Error on invalid score + Ошибка при неверной оценке + + + When enabled and the resultant score is outside the threshold, the user will not be able to continue. When disabled, the user will be able to continue and the score can be used in policies to customize further stages. + Если эта функция включена и полученная оценка находится за пределами порогового значения, пользователь не сможет продолжить работу. При отключении пользователь сможет продолжить, а оценка может быть использована в политиках для настройки дальнейших этапов. + + + Microsoft Entra Group(s) + Microsoft Entra Группа(ы) + + + Microsoft Entra User(s) + Microsoft Entra Пользователь(и) + + + Google Workspace Group(s) + Google Workspace Группа(ы) + + + Google Workspace User(s) + Google Workspace Пользователь(и) + + + SCIM Group(s) + SCIM Группа(ы) + + + SCIM User(s) + SCIM Пользователь(и) + + + FIPS compliance: passing + Соответствие требованиям FIPS: проходит + + + Unverified + Непроверенные + + + FIPS compliance: unverified + Соответствие требованиям FIPS: не проходит + + + FIPS Status + FIPS статус + + + Search returned no results. + Поиск не дал никаких результатов. + + + No messages found + Сообщения не найдены + + + Reputation score(s) + Оценка(и) репутации + + + See documentation + См. документацию + + + Close dialog + Закрыть диалог + + + Pagination + Нумерация + + + Application Details + Подробная информация о заявке + + + Provider Configuration + Конфигурация Провайдера + + + Submit Application + Отправить заявку + + + Restore Application Wizard Hint + Восстановить подсказку Мастера создания Приложения + + + Your authentik password + Ваш пароль authentik + + + Internal Service account + Внутренний сервисный аккаунт + + + Global + Глобально + + + Outpost integrations + Интеграции внешнего компонента + + + Outpost integrations define how authentik connects to external platforms to manage and deploy Outposts. + Интеграции внешнего компонента определяют, как authentik подключается к внешним платформам для управления и развертывания внешних компонентов. + + + Operation failed to complete + Не удалось завершить операцию + + + Failed to fetch objects: + Не удалось получить объекты: + + + Available Scopes + Доступные области + + + Selected Scopes + Выбранные области + + + Available Property Mappings + Доступные сопоставления свойств + + + Selected Property Mappings + Выбранные сопоставления свойств + + + Available User Property Mappings + Доступные сопоставления свойств пользователя + + + Selected User Property Mappings + Выбранные сопоставления свойств пользователя + + + Available Group Property Mappings + Доступные сопоставления свойств группы + + + Selected Group Property Mappings + Выбранные сопоставления свойств группы + + + Ensure the user satisfies requirements of geography or network topology, based on IP address. If any of the configured values match, the policy passes. + Проверка, что пользователь удовлетворяет требованиям географии или топологии сети, основываясь на IP-адресе. Если любое из настроенных значений совпадает, политика проходит. + + + ASNs + ASNs + + + List of autonomous system numbers. Comma separated. E.g. 13335, 15169, 20940 + Список номеров автономных систем. Разделяются запятыми. Например, 13335, 15169, 20940 + + + Countries + Страны + + + Available Countries + Доступные Страны + + + Selected Countries + Выбранные Страны + + + Bind existing policy/group/user + Связать существующую политику/группу/пользователя + + + Property mappings for user creation. + Сопоставления свойств для создания пользователя + + + Property mappings for group creation. + Сопоставления свойств для создания группы + + + Link to a group with identical name. Can have security implications when a group is used with another source + Связать с группой с идентичным именем. Это может иметь последствия для безопасности, если группа используется с другим источником + + + Use the group's name, but deny enrollment when the name already exists + Использовать имя группы, но отказывать в регистрации, если имя уже существует. + + + Group matching mode + Режим сопоставления группы + + + OAuth Attribute mapping + Сопоставление атрибутов OAuth + + + Plex Attribute mapping + Сопоставление атрибутов Plex + + + Encryption Certificate + Сертификат шифрования + + + When selected, encrypted assertions will be decrypted using this keypair. + При выборе этого параметра зашифрованные утверждения будут расшифровываться с помощью этой пары ключей. + + + SAML Attribute mapping + Сопоставление атрибутов SAML + + + SCIM Attribute mapping + Сопоставление атрибутов SCIM + + + External user settings + Настройки внешнего пользователя + + + Default application + Приложение по умолчанию + + + When configured, external users will automatically be redirected to this application when not attempting to access a different application + Если настроено, внешние пользователи будут автоматически перенаправляться на это приложение, когда не пытаются получить доступ к другому приложению + + + Warning: One or more license(s) have expired. + Внимание: Срок действия одной или нескольких лицензий истек. + + + Warning: One or more license(s) will expire within the next 2 weeks. + Внимание: Срок действия одной или нескольких лицензий истекает в течение ближайших 2 недель. + + + Caution: This authentik instance has entered read-only mode due to expired/exceeded licenses. + Внимание: Этот экземпляр authentik перешел в режим "только чтение" из-за истекших/превышенных лицензий. + + + This authentik instance uses a Trial license. + Этот экземпляр authentik использует Пробную лицензию. + + + This authentik instance uses a Non-production license. + Этот экземпляр authentik использует Non-production лицензию. + + + Access Tokens(s) + Access токен(ы) + + + Created at + Создано в + + + Last updated at + Послед. обновление в + + + Last used at + Послед. использование в + + + Provide users with a 'show password' button. + Предоставить пользователям кнопку "показать пароль". + + + Show password + Показать пароль + + + Hide password + Скрыть пароль + + + An outpost is on an incorrect version! + + + Russian + + + Last seen: () + + + + diff --git a/web/xliff/tr.xlf b/web/xliff/tr.xlf index 54d97ed7c53b..4c842077c727 100644 --- a/web/xliff/tr.xlf +++ b/web/xliff/tr.xlf @@ -2065,9 +2065,6 @@ doesn't pass when either or both of the selected options are equal or above the No policies are currently bound to this object. Hiçbir ilke şu anda bu nesneye bağlı değildir. - - Bind existing policy - Warning: Application is not used by any Outpost. Uyarı: Uygulama herhangi bir Üs tarafından kullanılmıyor. @@ -2170,10 +2167,6 @@ doesn't pass when either or both of the selected options are equal or above the LDAP Attribute mapping LDAP Öznitelik eşlemesi - - Property mappings used to user creation. - Kullanıcı oluşturma için kullanılan özellik eşlemeleri. - Additional settings Ek ayarlar @@ -2538,14 +2531,6 @@ doesn't pass when either or both of the selected options are equal or above the Successfully created mapping. Eşleme başarıyla oluşturuldu. - - Object field - Nesne alanı - - - Field of the user object this value is written to. - Bu değerin yazıldığı kullanıcı nesnesinin alanı. - SAML Attribute Name SAML Öznitelik Adı @@ -2756,10 +2741,6 @@ doesn't pass when either or both of the selected options are equal or above the Recovery flow Kurtarma akışı - - Recovery flow. If left empty, the first applicable flow sorted by the slug is used. - Kurtarma akışı. Boş bırakılırsa, kısa isme göre sıralanan ilk uygulanabilir akış kullanılır. - Unenrollment flow Kayıt dışı akış @@ -4285,10 +4266,6 @@ doesn't pass when either or both of the selected options are equal or above the Create Stage binding Aşama bağlama oluştur - - Bind stage - Bağlama aşaması - Bind existing stage @@ -4520,11 +4497,6 @@ Bindings to groups/users are checked against the user of the event. Not available Mevcut değil - - Last seen: - Son görüldü: - - Unknown type @@ -5874,9 +5846,6 @@ Bindings to groups/users are checked against the user of the event. Configure Proxy Provider - - AdditionalScopes - Configure Radius Provider @@ -6033,9 +6002,6 @@ Bindings to groups/users are checked against the user of the event. Dutch - - Failed to fetch objects: - Brand @@ -6640,6 +6606,144 @@ Bindings to groups/users are checked against the user of the event. Outpost integrations define how authentik connects to external platforms to manage and deploy Outposts. + + + Operation failed to complete + + + Failed to fetch objects: + + + Available Scopes + + + Selected Scopes + + + Available Property Mappings + + + Selected Property Mappings + + + Available User Property Mappings + + + Selected User Property Mappings + + + Available Group Property Mappings + + + Selected Group Property Mappings + + + Ensure the user satisfies requirements of geography or network topology, based on IP address. If any of the configured values match, the policy passes. + + + ASNs + + + List of autonomous system numbers. Comma separated. E.g. 13335, 15169, 20940 + + + Countries + + + Available Countries + + + Selected Countries + + + Bind existing policy/group/user + + + Property mappings for user creation. + + + Property mappings for group creation. + + + Link to a group with identical name. Can have security implications when a group is used with another source + + + Use the group's name, but deny enrollment when the name already exists + + + Group matching mode + + + OAuth Attribute mapping + + + Plex Attribute mapping + + + Encryption Certificate + + + When selected, encrypted assertions will be decrypted using this keypair. + + + SAML Attribute mapping + + + SCIM Attribute mapping + + + External user settings + + + Default application + + + When configured, external users will automatically be redirected to this application when not attempting to access a different application + + + Warning: One or more license(s) have expired. + + + Warning: One or more license(s) will expire within the next 2 weeks. + + + Caution: This authentik instance has entered read-only mode due to expired/exceeded licenses. + + + This authentik instance uses a Trial license. + + + This authentik instance uses a Non-production license. + + + Access Tokens(s) + + + Created at + + + Last updated at + + + Last used at + + + Provide users with a 'show password' button. + + + Show password + + + Hide password + + + An outpost is on an incorrect version! + + + Russian + + + Last seen: () diff --git a/web/xliff/zh-CN.xlf b/web/xliff/zh-CN.xlf index bcc25a57d057..ec13da2f5af9 100644 --- a/web/xliff/zh-CN.xlf +++ b/web/xliff/zh-CN.xlf @@ -992,9 +992,6 @@ Configure how long tokens are valid for. - - AdditionalScopes - Additional scope mappings, which are passed to the proxy. @@ -1917,9 +1914,6 @@ doesn't pass when either or both of the selected options are equal or above the Create and bind Policy - - Bind existing policy - Update Permissions @@ -2127,9 +2121,6 @@ doesn't pass when either or both of the selected options are equal or above the LDAP Attribute mapping - - Property mappings used to user creation. - Additional settings @@ -2431,12 +2422,6 @@ doesn't pass when either or both of the selected options are equal or above the Successfully created mapping. - - Object field - - - Field of the user object this value is written to. - General settings @@ -2620,9 +2605,6 @@ doesn't pass when either or both of the selected options are equal or above the Recovery flow - - Recovery flow. If left empty, the first applicable flow sorted by the slug is used. - Unenrollment flow @@ -4141,9 +4123,6 @@ doesn't pass when either or both of the selected options are equal or above the Create Stage binding - - Bind stage - Create and bind Stage @@ -4331,9 +4310,6 @@ Bindings to groups/users are checked against the user of the event. Not available - - Last seen: - Unknown type @@ -4955,9 +4931,6 @@ Bindings to groups/users are checked against the user of the event. Connected services - - Failed to fetch objects: - Brand @@ -5563,6 +5536,144 @@ Bindings to groups/users are checked against the user of the event. Outpost integrations define how authentik connects to external platforms to manage and deploy Outposts. + + Operation failed to complete + + + Failed to fetch objects: + + + Available Scopes + + + Selected Scopes + + + Available Property Mappings + + + Selected Property Mappings + + + Available User Property Mappings + + + Selected User Property Mappings + + + Available Group Property Mappings + + + Selected Group Property Mappings + + + Ensure the user satisfies requirements of geography or network topology, based on IP address. If any of the configured values match, the policy passes. + + + ASNs + + + List of autonomous system numbers. Comma separated. E.g. 13335, 15169, 20940 + + + Countries + + + Available Countries + + + Selected Countries + + + Bind existing policy/group/user + + + Property mappings for user creation. + + + Property mappings for group creation. + + + Link to a group with identical name. Can have security implications when a group is used with another source + + + Use the group's name, but deny enrollment when the name already exists + + + Group matching mode + + + OAuth Attribute mapping + + + Plex Attribute mapping + + + Encryption Certificate + + + When selected, encrypted assertions will be decrypted using this keypair. + + + SAML Attribute mapping + + + SCIM Attribute mapping + + + External user settings + + + Default application + + + When configured, external users will automatically be redirected to this application when not attempting to access a different application + + + Warning: One or more license(s) have expired. + + + Warning: One or more license(s) will expire within the next 2 weeks. + + + Caution: This authentik instance has entered read-only mode due to expired/exceeded licenses. + + + This authentik instance uses a Trial license. + + + This authentik instance uses a Non-production license. + + + Access Tokens(s) + + + Created at + + + Last updated at + + + Last used at + + + Provide users with a 'show password' button. + + + Show password + + + Hide password + + + An outpost is on an incorrect version! + + + Russian + + + Last seen: () + diff --git a/web/xliff/zh-Hans.xlf b/web/xliff/zh-Hans.xlf index cdc789193de8..2031f48699f1 100644 --- a/web/xliff/zh-Hans.xlf +++ b/web/xliff/zh-Hans.xlf @@ -2744,11 +2744,6 @@ doesn't pass when either or both of the selected options are equal or above the No policies are currently bound to this object. 当前没有策略绑定到此对象。 - - - Bind existing policy - 绑定已有策略 - Warning: Application is not used by any Outpost. @@ -2879,11 +2874,6 @@ doesn't pass when either or both of the selected options are equal or above the LDAP Attribute mapping LDAP 属性映射 - - - Property mappings used to user creation. - 用于创建用户的属性映射。 - Additional settings @@ -3366,16 +3356,6 @@ doesn't pass when either or both of the selected options are equal or above the Successfully created mapping. 已成功创建映射。 - - - Object field - 对象字段 - - - - Field of the user object this value is written to. - 写入此值的用户对象的字段。 - SAML Attribute Name @@ -3651,11 +3631,6 @@ doesn't pass when either or both of the selected options are equal or above the Recovery flow 恢复流程 - - - Recovery flow. If left empty, the first applicable flow sorted by the slug is used. - 恢复流程。如果留空,则使用按 Slug 排序的第一个适用流程。 - Unenrollment flow @@ -5727,11 +5702,6 @@ doesn't pass when either or both of the selected options are equal or above the Create Stage binding 创建阶段绑定 - - - Bind stage - 绑定阶段 - Bind existing stage @@ -6036,12 +6006,6 @@ Bindings to groups/users are checked against the user of the event. Not available 不可用 - - - Last seen: - 上次出现: - - Unknown type @@ -7837,10 +7801,6 @@ Bindings to groups/users are checked against the user of the event. Configure Proxy Provider 配置代理提供程序 - - AdditionalScopes - 额外的作用域 - Configure Radius Provider 配置 Radius 提供程序 @@ -8049,10 +8009,6 @@ Bindings to groups/users are checked against the user of the event. Dutch 荷兰语 - - Failed to fetch objects: - 获取对象失败: - Brand 品牌 @@ -8862,6 +8818,144 @@ Bindings to groups/users are checked against the user of the event. Outpost integrations define how authentik connects to external platforms to manage and deploy Outposts. 前哨集成定义了 authentik 如何连接到外部平台以管理和部署前哨。 + + + Operation failed to complete + + + Failed to fetch objects: + + + Available Scopes + + + Selected Scopes + + + Available Property Mappings + + + Selected Property Mappings + + + Available User Property Mappings + + + Selected User Property Mappings + + + Available Group Property Mappings + + + Selected Group Property Mappings + + + Ensure the user satisfies requirements of geography or network topology, based on IP address. If any of the configured values match, the policy passes. + + + ASNs + + + List of autonomous system numbers. Comma separated. E.g. 13335, 15169, 20940 + + + Countries + + + Available Countries + + + Selected Countries + + + Bind existing policy/group/user + + + Property mappings for user creation. + + + Property mappings for group creation. + + + Link to a group with identical name. Can have security implications when a group is used with another source + + + Use the group's name, but deny enrollment when the name already exists + + + Group matching mode + + + OAuth Attribute mapping + + + Plex Attribute mapping + + + Encryption Certificate + + + When selected, encrypted assertions will be decrypted using this keypair. + + + SAML Attribute mapping + + + SCIM Attribute mapping + + + External user settings + + + Default application + + + When configured, external users will automatically be redirected to this application when not attempting to access a different application + + + Warning: One or more license(s) have expired. + + + Warning: One or more license(s) will expire within the next 2 weeks. + + + Caution: This authentik instance has entered read-only mode due to expired/exceeded licenses. + + + This authentik instance uses a Trial license. + + + This authentik instance uses a Non-production license. + + + Access Tokens(s) + + + Created at + + + Last updated at + + + Last used at + + + Provide users with a 'show password' button. + + + Show password + + + Hide password + + + An outpost is on an incorrect version! + + + Russian + + + Last seen: () diff --git a/web/xliff/zh-Hant.xlf b/web/xliff/zh-Hant.xlf index 8cbd2c1cc312..be3244e944ff 100644 --- a/web/xliff/zh-Hant.xlf +++ b/web/xliff/zh-Hant.xlf @@ -2085,9 +2085,6 @@ doesn't pass when either or both of the selected options are equal or above the No policies are currently bound to this object. 当前没有策略绑定到此对象。 - - Bind existing policy - Warning: Application is not used by any Outpost. 警告:应用程序未被任何 Outpost 使用。 @@ -2190,10 +2187,6 @@ doesn't pass when either or both of the selected options are equal or above the LDAP Attribute mapping LDAP 属性映射 - - Property mappings used to user creation. - 用于创建用户的属性映射。 - Additional settings 其他设置 @@ -2560,14 +2553,6 @@ doesn't pass when either or both of the selected options are equal or above the Successfully created mapping. 已成功创建映射。 - - Object field - 对象字段 - - - Field of the user object this value is written to. - 写入此值的用户对象的字段。 - SAML Attribute Name SAML 属性名称 @@ -2780,10 +2765,6 @@ doesn't pass when either or both of the selected options are equal or above the Recovery flow 恢复流程 - - Recovery flow. If left empty, the first applicable flow sorted by the slug is used. - 恢复流程。如果留空,则使用按辅助信息块排序的第一个适用流程。 - Unenrollment flow 取消注册流程 @@ -4325,10 +4306,6 @@ doesn't pass when either or both of the selected options are equal or above the Create Stage binding 创建 Stage 绑定 - - Bind stage - Bind 阶段 - Bind existing stage @@ -4562,11 +4539,6 @@ Bindings to groups/users are checked against the user of the event. Not available 不可用 - - Last seen: - 最后显示: - - Unknown type @@ -5922,9 +5894,6 @@ Bindings to groups/users are checked against the user of the event. Configure Proxy Provider - - AdditionalScopes - Configure Radius Provider @@ -6081,9 +6050,6 @@ Bindings to groups/users are checked against the user of the event. Dutch - - Failed to fetch objects: - Brand @@ -6688,6 +6654,144 @@ Bindings to groups/users are checked against the user of the event. Outpost integrations define how authentik connects to external platforms to manage and deploy Outposts. + + + Operation failed to complete + + + Failed to fetch objects: + + + Available Scopes + + + Selected Scopes + + + Available Property Mappings + + + Selected Property Mappings + + + Available User Property Mappings + + + Selected User Property Mappings + + + Available Group Property Mappings + + + Selected Group Property Mappings + + + Ensure the user satisfies requirements of geography or network topology, based on IP address. If any of the configured values match, the policy passes. + + + ASNs + + + List of autonomous system numbers. Comma separated. E.g. 13335, 15169, 20940 + + + Countries + + + Available Countries + + + Selected Countries + + + Bind existing policy/group/user + + + Property mappings for user creation. + + + Property mappings for group creation. + + + Link to a group with identical name. Can have security implications when a group is used with another source + + + Use the group's name, but deny enrollment when the name already exists + + + Group matching mode + + + OAuth Attribute mapping + + + Plex Attribute mapping + + + Encryption Certificate + + + When selected, encrypted assertions will be decrypted using this keypair. + + + SAML Attribute mapping + + + SCIM Attribute mapping + + + External user settings + + + Default application + + + When configured, external users will automatically be redirected to this application when not attempting to access a different application + + + Warning: One or more license(s) have expired. + + + Warning: One or more license(s) will expire within the next 2 weeks. + + + Caution: This authentik instance has entered read-only mode due to expired/exceeded licenses. + + + This authentik instance uses a Trial license. + + + This authentik instance uses a Non-production license. + + + Access Tokens(s) + + + Created at + + + Last updated at + + + Last used at + + + Provide users with a 'show password' button. + + + Show password + + + Hide password + + + An outpost is on an incorrect version! + + + Russian + + + Last seen: () diff --git a/web/xliff/zh_TW.xlf b/web/xliff/zh_TW.xlf index bdabe2897f31..6941ca63dfce 100644 --- a/web/xliff/zh_TW.xlf +++ b/web/xliff/zh_TW.xlf @@ -2723,11 +2723,6 @@ doesn't pass when either or both of the selected options are equal or above the No policies are currently bound to this object. 目前沒有附加到此物件的政策。 - - - Bind existing policy - 附加到現存的政策 - Warning: Application is not used by any Outpost. @@ -2858,11 +2853,6 @@ doesn't pass when either or both of the selected options are equal or above the LDAP Attribute mapping LDAP 特徵碼對應 - - - Property mappings used to user creation. - 用於建立使用者的屬性對應。 - Additional settings @@ -3343,16 +3333,6 @@ doesn't pass when either or both of the selected options are equal or above the Successfully created mapping. 成功建立對應。 - - - Object field - 物件欄位 - - - - Field of the user object this value is written to. - 此值寫入到使用者物件的欄位。 - SAML Attribute Name @@ -3628,11 +3608,6 @@ doesn't pass when either or both of the selected options are equal or above the Recovery flow 救援流程 - - - Recovery flow. If left empty, the first applicable flow sorted by the slug is used. - 用於各類救援的流程。如果為空則按縮寫順序使用第一個符合的流程。 - Unenrollment flow @@ -5681,11 +5656,6 @@ doesn't pass when either or both of the selected options are equal or above the Create Stage binding 建立階段附加 - - - Bind stage - 附加階段 - Bind existing stage @@ -5986,11 +5956,6 @@ Bindings to groups/users are checked against the user of the event. Not available 無法使用 - - - Last seen: - 最後上線時間: - Unknown type @@ -7770,9 +7735,6 @@ Bindings to groups/users are checked against the user of the event. Configure Proxy Provider - - AdditionalScopes - Configure Radius Provider @@ -7929,9 +7891,6 @@ Bindings to groups/users are checked against the user of the event. Dutch - - Failed to fetch objects: - Brand @@ -8536,6 +8495,144 @@ Bindings to groups/users are checked against the user of the event. Outpost integrations define how authentik connects to external platforms to manage and deploy Outposts. + + + Operation failed to complete + + + Failed to fetch objects: + + + Available Scopes + + + Selected Scopes + + + Available Property Mappings + + + Selected Property Mappings + + + Available User Property Mappings + + + Selected User Property Mappings + + + Available Group Property Mappings + + + Selected Group Property Mappings + + + Ensure the user satisfies requirements of geography or network topology, based on IP address. If any of the configured values match, the policy passes. + + + ASNs + + + List of autonomous system numbers. Comma separated. E.g. 13335, 15169, 20940 + + + Countries + + + Available Countries + + + Selected Countries + + + Bind existing policy/group/user + + + Property mappings for user creation. + + + Property mappings for group creation. + + + Link to a group with identical name. Can have security implications when a group is used with another source + + + Use the group's name, but deny enrollment when the name already exists + + + Group matching mode + + + OAuth Attribute mapping + + + Plex Attribute mapping + + + Encryption Certificate + + + When selected, encrypted assertions will be decrypted using this keypair. + + + SAML Attribute mapping + + + SCIM Attribute mapping + + + External user settings + + + Default application + + + When configured, external users will automatically be redirected to this application when not attempting to access a different application + + + Warning: One or more license(s) have expired. + + + Warning: One or more license(s) will expire within the next 2 weeks. + + + Caution: This authentik instance has entered read-only mode due to expired/exceeded licenses. + + + This authentik instance uses a Trial license. + + + This authentik instance uses a Non-production license. + + + Access Tokens(s) + + + Created at + + + Last updated at + + + Last used at + + + Provide users with a 'show password' button. + + + Show password + + + Hide password + + + An outpost is on an incorrect version! + + + Russian + + + Last seen: () diff --git a/website/integrations/services/frappe/frappe1.png b/website/integrations/services/frappe/frappe1.png new file mode 100644 index 000000000000..565ba3b56d53 Binary files /dev/null and b/website/integrations/services/frappe/frappe1.png differ diff --git a/website/integrations/services/frappe/frappe2.png b/website/integrations/services/frappe/frappe2.png new file mode 100644 index 000000000000..3b2f557306f3 Binary files /dev/null and b/website/integrations/services/frappe/frappe2.png differ diff --git a/website/integrations/services/frappe/frappe3.png b/website/integrations/services/frappe/frappe3.png new file mode 100644 index 000000000000..3928417ec517 Binary files /dev/null and b/website/integrations/services/frappe/frappe3.png differ diff --git a/website/integrations/services/frappe/frappe4.png b/website/integrations/services/frappe/frappe4.png new file mode 100644 index 000000000000..c2c16aea124b Binary files /dev/null and b/website/integrations/services/frappe/frappe4.png differ diff --git a/website/integrations/services/frappe/index.md b/website/integrations/services/frappe/index.md new file mode 100644 index 000000000000..1752cd62d508 --- /dev/null +++ b/website/integrations/services/frappe/index.md @@ -0,0 +1,86 @@ +--- +title: Frappe Helpdesk +--- + +Support level: Community + +:::note +These instructions apply to all projects in the Frappe Family. +::: + +## What is Frappe Helpdesk + +> Frappe Helpdesk is an open source ticketing tool based on Frappe Framework. +> +> -- https://frappe.io/helpdesk + +## Preparation + +The following placeholders will be used: + +- `frappe.company` is the FQDN of the Frappe install. +- `authentik.company` is the FQDN of the authentik install. +- `provider` is the name for the social login provider in Frappe. + +## authentik configuration + +1. Log in to authentik as an admin, and go to the Admin interface. +2. Create a new OAuth2/OpenID Provider under **Applications** -> **Providers** using the following settings: + + - **Name**: Frappe + - **Client type**: Confidential + - **Client ID**: Use the auto-populated ID + - **Client Secret**: Use the auto-populated secret + - **Redirect URIs/Origins (RegEx)**: + - `https://frappe.company/api/method/frappe.integrations.oauth2_logins.custom/provider` + - **Scopes**: `email`, `openid`, `profile` + - **Subject mode**: `Based on the Users's username` + - **Include claims in id_token**: `True` + - Leave everything else as default + + Take note of **Client ID** and **Client Secret** as you will need them later. + +3. Create a new application under **Applications** -> **Applications**, pick a name and a slug, and assign the provider that you have just created. + +## Frappe configuration + +1. From the Frappe main menu, navigate to **Integrations**, then to **Social Login Key**. + +Add a new Social login Key using the black button on top right. +![](./frappe1.png) + +2. Enter the following settings: + + - In the **Client Credentials** section: + - Enable Social Login: Turn the checkmark to the _on_ position. + - Client ID: _client-id-from-authentik_ + - Client Secret: _client-secret-from-authentik_ + + - In the **Configuration** section: + - Sign ups: Allow + + ![](./frappe2.png) + + - In the **Identity Details** section: + - Base URL: `https://authentik.company/` + - In Client URLs section: + - Authorize URL: `/application/o/authorize/` + - Access Token URL: `/application/o/token/` + - Redirect URL: `/api/method/frappe.integrations.oauth2_logins.custom/provider/` + - API Endpoint: `/application/o/userinfo/` + + ![](./frappe3.png) + + - In the **Client Information** section: + - Auth URL Data: `{"response_type": "code", "scope": "email profile openid"}` + + ![](./frappe4.png) + +3. Press the black **Save** button on the top right. + +## Verification + +1. Go to `https://frappe.company` from Incognito mode. +2. Click **Login with provider** on the login screen. +3. Authorize with authentik. +4. You will be redirected to home screen of Frappe application. diff --git a/website/integrations/services/semgrep/index.md b/website/integrations/services/semgrep/index.md new file mode 100644 index 000000000000..c4e428960884 --- /dev/null +++ b/website/integrations/services/semgrep/index.md @@ -0,0 +1,64 @@ +--- +title: Semgrep +--- + +Support level: Community + +## What is Semgrep + +> **Semgrep**: An application security solution that combines SAST, SCA, and secret detection. +> +> -- https://semgrep.dev + +## Preparation + +The following placeholders will be used: + +- `authentik.company` is the FQDN of the authentik install. +- `devcompany` is the organization name on Semgrep Cloud platform. + +## authentik configuration + +1. Log in to your authentik instance as an administrator. +2. Go to the admin interface. +3. Navigate to **Customization** -> **Property mappings**. +4. Create a new SAML property mapping with these parameters: + - **Name**: `semgrep-name` + - **SAML Attribute name**: `name` + - **Expression**: `return request.user.name` +5. Create another SAML property mapping with these parameters: + - **Name**: `semgrep-email` + - **SAML Attribute name**: `email` + - **Expression**: `return request.user.email` +6. Navigate to **System** -> **Certificates**. +7. Generate a new RSA certificate. +8. Download the generated certificate, as you will need it later. +9. Create a new SAML provider under **Applications** -> **Providers** using the following settings: + - **ACS URL**: `https://semgrep.dev/api/auth/saml/devcompany/` + - **Issuer**: `https://authentik.company` + - **Audience**: `semgrep-dev` + - **Service Provider Binding**: `Post` + - **Signing Keypair**: Choose the RSA certificate you generated earlier. + - **Property mappings**: `semgrep-name` and `semgrep-email` +10. Create a new application under **Applications** -> **Applications**, pick a name and a slug, and assign the provider that you just created. + +## Semgrep configuration + +1. Log in to Semgrep Cloud platform as an administrator. +2. Click **Settings** on bottom left corner. +3. Navigate to **Access** -> **Login methods**. +4. Locate Single sign-on entry, click **Add SSO configuration**, select **SAML2 SSO** from the drop down. +5. Fill in the following: + - **Display name**: Anything you like. + - **Email domain**: `company` + - **IdP SSO URL**: `https://authentik.company/application/saml//sso/binding/post/` + - **IdP Issuer ID**: `https://authentik.company` + - **Upload/paste certificate**: Downloaded from the previous step. + +## Verification + +1. Open an Incognito window and navigate to `https://semgrep.dev/login` +2. Click **Use SSO** on the login screen. +3. Enter the email address associated with the domain you provided earlier. +4. Log in to authentik. +5. You will be redirected to the home screen of Semgrep Cloud platform. diff --git a/website/sidebarsIntegrations.js b/website/sidebarsIntegrations.js index 10a87eb77000..7faee66f55bb 100644 --- a/website/sidebarsIntegrations.js +++ b/website/sidebarsIntegrations.js @@ -96,6 +96,7 @@ module.exports = { "services/powerdns-admin/index", "services/proftpd/index", "services/qnap-nas/index", + "services/semgrep/index", "services/synology-dsm/index", "services/skyhigh/index", "services/snipe-it/index", @@ -123,6 +124,7 @@ module.exports = { label: "Miscellaneous", items: [ "services/engomo/index", + "services/frappe/index", "services/freshrss/index", "services/gravitee/index", "services/home-assistant/index",