Compare commits

..

1260 Commits

Author SHA1 Message Date
Owen Schwartz 8b50f1fb65 Merge pull request #3218 from fosrl/dev
Fix installer
2026-06-04 11:21:59 -07:00
Owen 2d78a4b628 Fix installer 2026-06-04 11:21:40 -07:00
Owen Schwartz 527d4cc777 Merge pull request #3215 from fosrl/dev
1.19.0-rc.0
2026-06-04 10:34:20 -07:00
Owen Schwartz 01361884eb Potential fix for pull request finding 'CodeQL / Insecure randomness'
Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
2026-06-04 10:33:15 -07:00
Owen 6c4cbcab5d Fix eslint errors 2026-06-04 10:22:29 -07:00
Owen Schwartz aac25f0a53 Merge pull request #3214 from marcschaeferger/dev
Prevent cross-org site binding in target create/update
2026-06-04 10:11:53 -07:00
miloschwartz 4a3c201741 improve mfa autofill 2026-06-03 21:54:55 -07:00
miloschwartz f5ab837cce remove idp user if unassociate idp, warn, and fix create user form bug 2026-06-03 21:42:18 -07:00
Owen Schwartz 00ec7a5c66 Merge pull request #3211 from fosrl/crowdin_dev
New Crowdin updates
2026-06-03 21:40:33 -07:00
Owen Schwartz 03df4d03ed New translations en-us.json (Spanish)
[ci skip]
2026-06-03 21:39:34 -07:00
Owen Schwartz 8488edd707 New translations en-us.json (Norwegian Bokmal)
[ci skip]
2026-06-03 21:39:32 -07:00
Owen Schwartz 920dbba2a3 New translations en-us.json (Chinese Simplified)
[ci skip]
2026-06-03 21:39:31 -07:00
Owen Schwartz 71e065a8bc New translations en-us.json (Turkish)
[ci skip]
2026-06-03 21:39:29 -07:00
Owen Schwartz e125c762b2 New translations en-us.json (Russian)
[ci skip]
2026-06-03 21:39:27 -07:00
Owen Schwartz 4f01f7c072 New translations en-us.json (Portuguese)
[ci skip]
2026-06-03 21:39:25 -07:00
Owen Schwartz 9a5ee9d489 New translations en-us.json (Polish)
[ci skip]
2026-06-03 21:39:24 -07:00
Owen Schwartz 665da931f1 New translations en-us.json (Dutch)
[ci skip]
2026-06-03 21:39:22 -07:00
Owen Schwartz 7595cf7ac7 New translations en-us.json (Korean)
[ci skip]
2026-06-03 21:39:20 -07:00
Owen Schwartz aa6232d0fc New translations en-us.json (Italian)
[ci skip]
2026-06-03 21:39:18 -07:00
Owen Schwartz beaf5dc843 New translations en-us.json (German)
[ci skip]
2026-06-03 21:39:17 -07:00
Owen Schwartz 7158855052 New translations en-us.json (Czech)
[ci skip]
2026-06-03 21:39:15 -07:00
Owen Schwartz 765b2d795f New translations en-us.json (Bulgarian)
[ci skip]
2026-06-03 21:39:13 -07:00
Owen Schwartz 66f00fcf94 New translations en-us.json (French)
[ci skip]
2026-06-03 21:39:11 -07:00
Owen e408e735be Make alias cross compatable 2026-06-03 17:58:59 -07:00
Owen e826d0dea6 Add better loading spinner 2026-06-03 17:41:56 -07:00
Owen bc6fd0b399 Get user resources from the right table 2026-06-03 16:53:39 -07:00
Owen d00b737412 Pull the sso from the policies as well 2026-06-03 16:16:42 -07:00
Owen 1f43713986 Fix saving the rules 2026-06-03 16:02:17 -07:00
Owen cc5bec1d83 Pull the rules and the policy information 2026-06-03 15:33:15 -07:00
Owen 40125c717c Pull things in proper order 2026-06-03 14:52:36 -07:00
Owen 2b402f8fec Quiet logs 2026-06-03 14:48:51 -07:00
Owen 8e9071a336 Converting to use both inline and shared policy 2026-06-03 14:41:43 -07:00
Owen 18bcf40174 Merge branch 'dev' of github.com:fosrl/pangolin into dev 2026-06-03 13:50:54 -07:00
Owen Schwartz 42e9b913f1 Merge pull request #3201 from Fredkiss3/refactor/standardize-dropdowns
refactor: standardize dropdowns accross tables
2026-06-03 13:50:40 -07:00
Fred KISSIE fcb73f78ea 🏷️ fix type imports 2026-06-03 20:23:32 +02:00
Fred KISSIE a21569bd00 🏷️ fix types imports from a client component 2026-06-03 20:14:43 +02:00
Fred KISSIE 565727ad36 🏷️ import types correctly 2026-06-03 19:51:44 +02:00
Fred KISSIE 00dce19997 Merge branch 'dev' into refactor/standardize-dropdowns 2026-06-03 19:34:22 +02:00
Fred KISSIE 29717e19db ♻️ update machine client labels cell 2026-06-03 19:17:24 +02:00
Fred KISSIE 97aeee541a ♻️ Label table cell optimization 2026-06-03 19:15:44 +02:00
Owen b70a2bee58 Native ssh push users is working 2026-06-02 22:00:29 -07:00
Owen f2f56dc6c2 Properly paywall the new resource types 2026-06-02 18:06:42 -07:00
Owen 128db20755 Remove migration test 2026-06-02 17:13:10 -07:00
Owen 12cbd40596 Fix types 2026-06-02 16:56:58 -07:00
Owen ffd0d17b58 Add proxy protocl support in blueprints 2026-06-02 16:42:26 -07:00
Owen 33fad57bf7 Restrict the number of sites in the api 2026-06-02 16:38:04 -07:00
Owen 8bcc130947 Make sure the right type of select shows 2026-06-02 16:33:05 -07:00
Owen 19feaf4bf2 Add the policy information into missing places 2026-06-02 15:47:55 -07:00
Owen 88ea4391e0 Show new types of resources right 2026-06-02 15:31:33 -07:00
Owen fba37b7ad0 Add command to make other user server admin 2026-06-02 15:31:21 -07:00
Fred KISSIE 6c1798a8c5 💄 use checkbox for column filter with dropdown 2026-06-02 17:43:45 +02:00
Owen b6d688f15e Support pin,pass,whitelist correctly on login 2026-06-01 21:34:39 -07:00
Owen 8a57d8dd9c Resource rules go first 2026-06-01 21:02:59 -07:00
Owen 8e0e32c2be Overriding is working 2026-06-01 20:54:37 -07:00
Owen 6b3a0a2113 Remove the admin from the picker 2026-06-01 20:33:37 -07:00
Owen 4d6ed7eec5 Pull from the policies to show to users 2026-06-01 17:49:09 -07:00
Owen 1625dd1add Include the new policy tables in the data 2026-06-01 17:04:33 -07:00
Owen 605dd2f3c9 Add tcp and udp specific pages 2026-06-01 16:05:20 -07:00
Owen 51bb149fd5 Update to latest badger 2026-06-01 15:27:34 -07:00
Owen 2ae4c29418 Add missing set 2026-06-01 15:27:30 -07:00
Owen ba71016f87 Add inline policy migration 2026-06-01 15:18:40 -07:00
Owen 85c2bd807e Handle the new added mode column 2026-06-01 14:49:41 -07:00
Owen 517e1d15c8 Add 1.19.0 migrations 2026-06-01 14:42:32 -07:00
Owen 3d6d5f176a Hide verify button 2026-06-01 14:10:08 -07:00
Owen 5dd19edb56 Hold the hp error message until after 18 tries 2026-06-01 14:05:19 -07:00
Owen c6a52ffc75 Dont run migration again when rc 2026-06-01 13:58:04 -07:00
Owen 09b2671759 Send hp error to olm 2026-06-01 13:57:54 -07:00
Owen d11a244caa Push mode and sign key adjustments for native mode 2026-06-01 11:41:55 -07:00
miloschwartz bf79768e05 update links 2026-05-31 20:20:37 -07:00
Owen 08a2923cfc Move proxy and client to public and private 2026-05-31 17:30:31 -07:00
Owen b99e9a6468 Working on ui 2026-05-31 17:25:03 -07:00
Owen cb2ee9c489 Fixing visual issues 2026-05-31 16:36:13 -07:00
Owen c1d933259a Fix some ui form issues 2026-05-31 11:57:01 -07:00
Owen 3cf6abdf27 Rename internal resource -> private 2026-05-31 11:28:04 -07:00
Owen 0f2132e565 Merge branch 'main' into dev 2026-05-31 11:12:30 -07:00
Owen 5cc88dc73f Pull the session from badger 2026-05-31 11:11:26 -07:00
Owen Schwartz ebe1c7a297 Improve OpenAPI response payload typing for Swagger data schemas (#3102)
* Fix custom parser OpenAPI types and add structured default response schema

Agent-Logs-Url: https://github.com/fosrl/pangolin/sessions/73990123-9c27-444b-bc6e-77e890a0d57c

Co-authored-by: oschwartz10612 <4999704+oschwartz10612@users.noreply.github.com>

* Document all registerPath responses and normalize OpenAPI parser schemas

Agent-Logs-Url: https://github.com/fosrl/pangolin/sessions/73990123-9c27-444b-bc6e-77e890a0d57c

Co-authored-by: oschwartz10612 <4999704+oschwartz10612@users.noreply.github.com>

* Add concrete OpenAPI data schemas for selected routes

Agent-Logs-Url: https://github.com/fosrl/pangolin/sessions/7b395a8e-7fae-4f4d-952e-4030fea08262

Co-authored-by: oschwartz10612 <4999704+oschwartz10612@users.noreply.github.com>

* Reformat generated OpenAPI response schemas for readability

Agent-Logs-Url: https://github.com/fosrl/pangolin/sessions/7b395a8e-7fae-4f4d-952e-4030fea08262

Co-authored-by: oschwartz10612 <4999704+oschwartz10612@users.noreply.github.com>

* Remove obsolete stoi import from blueprint OpenAPI route

Agent-Logs-Url: https://github.com/fosrl/pangolin/sessions/7b395a8e-7fae-4f4d-952e-4030fea08262

Co-authored-by: oschwartz10612 <4999704+oschwartz10612@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: oschwartz10612 <4999704+oschwartz10612@users.noreply.github.com>
2026-05-31 11:10:38 -07:00
Owen 0943cf5d4c Dont strip session 2026-05-30 12:10:06 -07:00
Owen 3b82ac568f Give auth feedback 2026-05-30 11:56:32 -07:00
Owen b695f34dc8 Native ssh auth working 2026-05-30 11:54:01 -07:00
Owen 6df4bba3b6 Bump version 2026-05-29 17:12:26 -07:00
Owen 9f83c0a0e8 Show error right 2026-05-29 17:11:44 -07:00
Marc Schäfer f617f93a94 test(middleware): add regression tests for cross-org site binding prevention
Test the org-match logic in verifySiteAccess:
- Same org: allowed
- Cross-org: rejected with 403
- No prior org context (site-only routes): check skipped, normal flow

Test route stack ordering:
- verifySiteAccess runs after verifyResourceAccess/verifyTargetAccess
- verifySiteAccess runs before the target create/update handler

Test security scenarios for both WireGuard and newt site types.

Signed-off-by: Marc Schäfer <git@marcschaeferger.de>
2026-05-29 22:57:39 +00:00
Marc Schäfer 51629247a5 fix(middleware): prevent cross-org site binding in target create/update
Extend verifySiteAccess to check that when req.userOrgId is already set
by a prior middleware (e.g. verifyResourceAccess/verifyTargetAccess), the
site from req.body.siteId belongs to the same organization. This prevents
the cross-organization tunnel boundary bypass where an attacker with
resource access in one org binds that resource's target to a site in
another org.

Add verifySiteAccess to both target route stacks:
- PUT /resource/:resourceId/target (after verifyResourceAccess)
- POST /target/:targetId (after verifyTargetAccess)

The org-match check runs before req.userOrg is overwritten, so the
resource's organization context is preserved for comparison.

Signed-off-by: Marc Schäfer <git@marcschaeferger.de>
2026-05-29 22:44:16 +00:00
Owen 0ab1854125 Fix import 2026-05-29 15:38:37 -07:00
Owen b071fa2c9f Be able to pull users from the proxy 2026-05-29 15:34:34 -07:00
Owen 8e2a79a0f5 Move to private 2026-05-29 15:23:40 -07:00
Owen 71756812b6 Adjusting the ui 2026-05-29 10:57:28 -07:00
Owen 76cd716caa Add user id 2026-05-29 10:57:16 -07:00
Shlee b0d1291cff Installer: Bootstrap optional PostgreSQL/Redis (#3152)
* Make optional postgres and redis in installer
2026-05-29 09:43:59 -07:00
Owen 9617eb2bd7 Add login formatting 2026-05-28 21:38:40 -07:00
Owen c1ef5b4fbe Add allowedDevOrigins 2026-05-28 21:23:55 -07:00
Owen 8e14bdec95 Remove cloud 2026-05-28 21:20:12 -07:00
dependabot[bot] b26dfaf57f Bump the prod-minor-updates group with 9 updates
Bumps the prod-minor-updates group with 9 updates:

| Package | From | To |
| --- | --- | --- |
| [@aws-sdk/client-s3](https://github.com/aws/aws-sdk-js-v3/tree/HEAD/clients/client-s3) | `3.1047.0` | `3.1056.0` |
| [@hookform/resolvers](https://github.com/react-hook-form/resolvers) | `5.2.2` | `5.4.0` |
| [helmet](https://github.com/helmetjs/helmet) | `8.1.0` | `8.2.0` |
| [ioredis](https://github.com/luin/ioredis) | `5.10.1` | `5.11.0` |
| [next-intl](https://github.com/amannn/next-intl) | `4.12.0` | `4.13.0` |
| [pg](https://github.com/brianc/node-postgres/tree/HEAD/packages/pg) | `8.20.0` | `8.21.0` |
| [posthog-node](https://github.com/PostHog/posthog-js/tree/HEAD/packages/node) | `5.34.1` | `5.35.6` |
| [react-hook-form](https://github.com/react-hook-form/react-hook-form) | `7.75.0` | `7.76.1` |
| [ws](https://github.com/websockets/ws) | `8.20.1` | `8.21.0` |

Updates `@aws-sdk/client-s3` from 3.1047.0 to 3.1056.0
- [Release notes](https://github.com/aws/aws-sdk-js-v3/releases)
- [Changelog](https://github.com/aws/aws-sdk-js-v3/blob/main/clients/client-s3/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-js-v3/commits/v3.1056.0/clients/client-s3)

Updates `@hookform/resolvers` from 5.2.2 to 5.4.0
- [Release notes](https://github.com/react-hook-form/resolvers/releases)
- [Commits](https://github.com/react-hook-form/resolvers/compare/v5.2.2...v5.4.0)

Updates `helmet` from 8.1.0 to 8.2.0
- [Changelog](https://github.com/helmetjs/helmet/blob/main/CHANGELOG.md)
- [Commits](https://github.com/helmetjs/helmet/compare/v8.1.0...v8.2.0)

Updates `ioredis` from 5.10.1 to 5.11.0
- [Release notes](https://github.com/luin/ioredis/releases)
- [Changelog](https://github.com/redis/ioredis/blob/main/CHANGELOG.md)
- [Commits](https://github.com/luin/ioredis/compare/v5.10.1...v5.11.0)

Updates `next-intl` from 4.12.0 to 4.13.0
- [Release notes](https://github.com/amannn/next-intl/releases)
- [Changelog](https://github.com/amannn/next-intl/blob/main/CHANGELOG.md)
- [Commits](https://github.com/amannn/next-intl/compare/v4.12.0...v4.13.0)

Updates `pg` from 8.20.0 to 8.21.0
- [Changelog](https://github.com/brianc/node-postgres/blob/master/CHANGELOG.md)
- [Commits](https://github.com/brianc/node-postgres/commits/pg@8.21.0/packages/pg)

Updates `posthog-node` from 5.34.1 to 5.35.6
- [Release notes](https://github.com/PostHog/posthog-js/releases)
- [Changelog](https://github.com/PostHog/posthog-js/blob/main/packages/node/CHANGELOG.md)
- [Commits](https://github.com/PostHog/posthog-js/commits/posthog-node@5.35.6/packages/node)

Updates `react-hook-form` from 7.75.0 to 7.76.1
- [Release notes](https://github.com/react-hook-form/react-hook-form/releases)
- [Changelog](https://github.com/react-hook-form/react-hook-form/blob/master/CHANGELOG.md)
- [Commits](https://github.com/react-hook-form/react-hook-form/compare/v7.75.0...v7.76.1)

Updates `ws` from 8.20.1 to 8.21.0
- [Release notes](https://github.com/websockets/ws/releases)
- [Commits](https://github.com/websockets/ws/compare/8.20.1...8.21.0)

---
updated-dependencies:
- dependency-name: "@aws-sdk/client-s3"
  dependency-version: 3.1056.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod-minor-updates
- dependency-name: "@hookform/resolvers"
  dependency-version: 5.4.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod-minor-updates
- dependency-name: helmet
  dependency-version: 8.2.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod-minor-updates
- dependency-name: ioredis
  dependency-version: 5.11.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod-minor-updates
- dependency-name: next-intl
  dependency-version: 4.13.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod-minor-updates
- dependency-name: pg
  dependency-version: 8.21.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod-minor-updates
- dependency-name: posthog-node
  dependency-version: 5.35.6
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod-minor-updates
- dependency-name: react-hook-form
  dependency-version: 7.76.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod-minor-updates
- dependency-name: ws
  dependency-version: 8.21.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod-minor-updates
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-05-28 21:15:00 -07:00
dependabot[bot] 1a1c19b24e Bump the dev-patch-updates group with 4 updates
Bumps the dev-patch-updates group with 4 updates: [@tanstack/react-query-devtools](https://github.com/TanStack/query/tree/HEAD/packages/react-query-devtools), [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react), [postcss](https://github.com/postcss/postcss) and [tsx](https://github.com/privatenumber/tsx).


Updates `@tanstack/react-query-devtools` from 5.100.10 to 5.100.14
- [Release notes](https://github.com/TanStack/query/releases)
- [Changelog](https://github.com/TanStack/query/blob/main/packages/react-query-devtools/CHANGELOG.md)
- [Commits](https://github.com/TanStack/query/commits/@tanstack/react-query-devtools@5.100.14/packages/react-query-devtools)

Updates `@types/react` from 19.2.14 to 19.2.15
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react)

Updates `postcss` from 8.5.14 to 8.5.15
- [Release notes](https://github.com/postcss/postcss/releases)
- [Changelog](https://github.com/postcss/postcss/blob/main/CHANGELOG.md)
- [Commits](https://github.com/postcss/postcss/compare/8.5.14...8.5.15)

Updates `tsx` from 4.22.0 to 4.22.3
- [Release notes](https://github.com/privatenumber/tsx/releases)
- [Changelog](https://github.com/privatenumber/tsx/blob/master/release.config.cjs)
- [Commits](https://github.com/privatenumber/tsx/compare/v4.22.0...v4.22.3)

---
updated-dependencies:
- dependency-name: "@tanstack/react-query-devtools"
  dependency-version: 5.100.14
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-patch-updates
- dependency-name: "@types/react"
  dependency-version: 19.2.15
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-patch-updates
- dependency-name: postcss
  dependency-version: 8.5.15
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-patch-updates
- dependency-name: tsx
  dependency-version: 4.22.3
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-patch-updates
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-05-28 21:14:14 -07:00
dependabot[bot] 9d214b18af Bump stripe from 20.4.1 to 22.2.0
Bumps [stripe](https://github.com/stripe/stripe-node) from 20.4.1 to 22.2.0.
- [Release notes](https://github.com/stripe/stripe-node/releases)
- [Changelog](https://github.com/stripe/stripe-node/blob/master/CHANGELOG.md)
- [Commits](https://github.com/stripe/stripe-node/compare/v20.4.1...v22.2.0)

---
updated-dependencies:
- dependency-name: stripe
  dependency-version: 22.2.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-05-28 21:14:14 -07:00
dependabot[bot] e67b50b356 Bump lucide-react from 0.577.0 to 1.17.0
Bumps [lucide-react](https://github.com/lucide-icons/lucide/tree/HEAD/packages/lucide-react) from 0.577.0 to 1.17.0.
- [Release notes](https://github.com/lucide-icons/lucide/releases)
- [Commits](https://github.com/lucide-icons/lucide/commits/1.17.0/packages/lucide-react)

---
updated-dependencies:
- dependency-name: lucide-react
  dependency-version: 1.17.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-05-28 21:14:14 -07:00
rinseaid 616caf76cb Auto-create roles referenced in blueprints
When a blueprint references a role that doesn't exist, create it
automatically with default permissions (getOrg, getResource,
listResources) instead of throwing an error or silently dropping
the association.
2026-05-28 21:14:14 -07:00
Owen 9a1db4948b Shape the ssh/vnc/rdp login ui to match auth 2026-05-28 21:14:13 -07:00
Owen Schwartz 1215aa8122 Merge pull request #3184 from fosrl/dependabot/npm_and_yarn/prod-minor-updates-1701004488
Bump the prod-minor-updates group with 9 updates
2026-05-28 20:36:43 -07:00
Owen Schwartz d318a756a8 Merge pull request #3183 from fosrl/dependabot/npm_and_yarn/dev-patch-updates-60744307c2
Bump the dev-patch-updates group with 4 updates
2026-05-28 20:36:17 -07:00
Owen Schwartz b3c1e49c0c Merge pull request #3185 from fosrl/dependabot/npm_and_yarn/stripe-22.2.0
Bump stripe from 20.4.1 to 22.2.0
2026-05-28 20:35:52 -07:00
Owen Schwartz dc12b00502 Merge pull request #3186 from fosrl/dependabot/npm_and_yarn/lucide-react-1.17.0
Bump lucide-react from 0.577.0 to 1.17.0
2026-05-28 20:35:39 -07:00
Owen Schwartz 5b814e37c4 Merge pull request #2434 from NHClaessens/feature-share-link-redirect-path
feat: Add path setting to share links (resourceAccessToken)
2026-05-28 20:28:28 -07:00
Owen 8483616b04 Unstage ignored files 2026-05-28 20:27:25 -07:00
Owen ffe198839a Reset translations 2026-05-28 20:25:34 -07:00
NHClaessens db5d1d4a16 Update postgres schema 2026-05-28 20:20:34 -07:00
NHClaessens ad7dcddf24 Add translations 2026-05-28 20:20:33 -07:00
Owen 94408aad21 Add path onto redirectUrl 2026-05-28 20:19:19 -07:00
NHClaessens b84a7996a9 Adjust validation to allow creation with (optional) path 2026-05-28 20:15:22 -07:00
Owen a9b0bd8b47 Alter schema + add form field 2026-05-28 20:15:13 -07:00
Owen a32acf7c69 Fix ui 2026-05-28 20:14:39 -07:00
Owen Schwartz 1e27acbf88 Merge pull request #2980 from rinseaid/blueprint-auto-create-roles
Auto-create roles referenced in blueprints
2026-05-28 20:10:53 -07:00
dependabot[bot] 4012cc658d Bump lucide-react from 0.577.0 to 1.17.0
Bumps [lucide-react](https://github.com/lucide-icons/lucide/tree/HEAD/packages/lucide-react) from 0.577.0 to 1.17.0.
- [Release notes](https://github.com/lucide-icons/lucide/releases)
- [Commits](https://github.com/lucide-icons/lucide/commits/1.17.0/packages/lucide-react)

---
updated-dependencies:
- dependency-name: lucide-react
  dependency-version: 1.17.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-05-29 01:44:09 +00:00
dependabot[bot] 84d7a87609 Bump stripe from 20.4.1 to 22.2.0
Bumps [stripe](https://github.com/stripe/stripe-node) from 20.4.1 to 22.2.0.
- [Release notes](https://github.com/stripe/stripe-node/releases)
- [Changelog](https://github.com/stripe/stripe-node/blob/master/CHANGELOG.md)
- [Commits](https://github.com/stripe/stripe-node/compare/v20.4.1...v22.2.0)

---
updated-dependencies:
- dependency-name: stripe
  dependency-version: 22.2.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-05-29 01:43:42 +00:00
dependabot[bot] 9a92be532a Bump the prod-minor-updates group with 9 updates
Bumps the prod-minor-updates group with 9 updates:

| Package | From | To |
| --- | --- | --- |
| [@aws-sdk/client-s3](https://github.com/aws/aws-sdk-js-v3/tree/HEAD/clients/client-s3) | `3.1047.0` | `3.1056.0` |
| [@hookform/resolvers](https://github.com/react-hook-form/resolvers) | `5.2.2` | `5.4.0` |
| [helmet](https://github.com/helmetjs/helmet) | `8.1.0` | `8.2.0` |
| [ioredis](https://github.com/luin/ioredis) | `5.10.1` | `5.11.0` |
| [next-intl](https://github.com/amannn/next-intl) | `4.12.0` | `4.13.0` |
| [pg](https://github.com/brianc/node-postgres/tree/HEAD/packages/pg) | `8.20.0` | `8.21.0` |
| [posthog-node](https://github.com/PostHog/posthog-js/tree/HEAD/packages/node) | `5.34.1` | `5.35.6` |
| [react-hook-form](https://github.com/react-hook-form/react-hook-form) | `7.75.0` | `7.76.1` |
| [ws](https://github.com/websockets/ws) | `8.20.1` | `8.21.0` |


Updates `@aws-sdk/client-s3` from 3.1047.0 to 3.1056.0
- [Release notes](https://github.com/aws/aws-sdk-js-v3/releases)
- [Changelog](https://github.com/aws/aws-sdk-js-v3/blob/main/clients/client-s3/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-js-v3/commits/v3.1056.0/clients/client-s3)

Updates `@hookform/resolvers` from 5.2.2 to 5.4.0
- [Release notes](https://github.com/react-hook-form/resolvers/releases)
- [Commits](https://github.com/react-hook-form/resolvers/compare/v5.2.2...v5.4.0)

Updates `helmet` from 8.1.0 to 8.2.0
- [Changelog](https://github.com/helmetjs/helmet/blob/main/CHANGELOG.md)
- [Commits](https://github.com/helmetjs/helmet/compare/v8.1.0...v8.2.0)

Updates `ioredis` from 5.10.1 to 5.11.0
- [Release notes](https://github.com/luin/ioredis/releases)
- [Changelog](https://github.com/redis/ioredis/blob/main/CHANGELOG.md)
- [Commits](https://github.com/luin/ioredis/compare/v5.10.1...v5.11.0)

Updates `next-intl` from 4.12.0 to 4.13.0
- [Release notes](https://github.com/amannn/next-intl/releases)
- [Changelog](https://github.com/amannn/next-intl/blob/main/CHANGELOG.md)
- [Commits](https://github.com/amannn/next-intl/compare/v4.12.0...v4.13.0)

Updates `pg` from 8.20.0 to 8.21.0
- [Changelog](https://github.com/brianc/node-postgres/blob/master/CHANGELOG.md)
- [Commits](https://github.com/brianc/node-postgres/commits/pg@8.21.0/packages/pg)

Updates `posthog-node` from 5.34.1 to 5.35.6
- [Release notes](https://github.com/PostHog/posthog-js/releases)
- [Changelog](https://github.com/PostHog/posthog-js/blob/main/packages/node/CHANGELOG.md)
- [Commits](https://github.com/PostHog/posthog-js/commits/posthog-node@5.35.6/packages/node)

Updates `react-hook-form` from 7.75.0 to 7.76.1
- [Release notes](https://github.com/react-hook-form/react-hook-form/releases)
- [Changelog](https://github.com/react-hook-form/react-hook-form/blob/master/CHANGELOG.md)
- [Commits](https://github.com/react-hook-form/react-hook-form/compare/v7.75.0...v7.76.1)

Updates `ws` from 8.20.1 to 8.21.0
- [Release notes](https://github.com/websockets/ws/releases)
- [Commits](https://github.com/websockets/ws/compare/8.20.1...8.21.0)

---
updated-dependencies:
- dependency-name: "@aws-sdk/client-s3"
  dependency-version: 3.1056.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod-minor-updates
- dependency-name: "@hookform/resolvers"
  dependency-version: 5.4.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod-minor-updates
- dependency-name: helmet
  dependency-version: 8.2.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod-minor-updates
- dependency-name: ioredis
  dependency-version: 5.11.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod-minor-updates
- dependency-name: next-intl
  dependency-version: 4.13.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod-minor-updates
- dependency-name: pg
  dependency-version: 8.21.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod-minor-updates
- dependency-name: posthog-node
  dependency-version: 5.35.6
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod-minor-updates
- dependency-name: react-hook-form
  dependency-version: 7.76.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod-minor-updates
- dependency-name: ws
  dependency-version: 8.21.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod-minor-updates
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-05-29 01:43:25 +00:00
dependabot[bot] 18ac542e30 Bump the dev-patch-updates group with 4 updates
Bumps the dev-patch-updates group with 4 updates: [@tanstack/react-query-devtools](https://github.com/TanStack/query/tree/HEAD/packages/react-query-devtools), [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react), [postcss](https://github.com/postcss/postcss) and [tsx](https://github.com/privatenumber/tsx).


Updates `@tanstack/react-query-devtools` from 5.100.10 to 5.100.14
- [Release notes](https://github.com/TanStack/query/releases)
- [Changelog](https://github.com/TanStack/query/blob/main/packages/react-query-devtools/CHANGELOG.md)
- [Commits](https://github.com/TanStack/query/commits/@tanstack/react-query-devtools@5.100.14/packages/react-query-devtools)

Updates `@types/react` from 19.2.14 to 19.2.15
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react)

Updates `postcss` from 8.5.14 to 8.5.15
- [Release notes](https://github.com/postcss/postcss/releases)
- [Changelog](https://github.com/postcss/postcss/blob/main/CHANGELOG.md)
- [Commits](https://github.com/postcss/postcss/compare/8.5.14...8.5.15)

Updates `tsx` from 4.22.0 to 4.22.3
- [Release notes](https://github.com/privatenumber/tsx/releases)
- [Changelog](https://github.com/privatenumber/tsx/blob/master/release.config.cjs)
- [Commits](https://github.com/privatenumber/tsx/compare/v4.22.0...v4.22.3)

---
updated-dependencies:
- dependency-name: "@tanstack/react-query-devtools"
  dependency-version: 5.100.14
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-patch-updates
- dependency-name: "@types/react"
  dependency-version: 19.2.15
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-patch-updates
- dependency-name: postcss
  dependency-version: 8.5.15
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-patch-updates
- dependency-name: tsx
  dependency-version: 4.22.3
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-patch-updates
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-05-29 01:36:20 +00:00
Owen 322475fb5c Fix errors 2026-05-28 17:59:21 -07:00
Owen 2f124bffc4 Merge branch 'main' into dev 2026-05-28 17:46:42 -07:00
Owen Schwartz 86367383e7 Merge pull request #3026 from immanuwell/fix-validator-test-exit
fix: make validators test failures exit non-zero
2026-05-28 17:43:43 -07:00
Owen Schwartz d22ba3566d Merge pull request #2618 from LunarECL/fix-docker-label-partial-validation
Skip invalid Docker resources instead of failing entire blueprint (#1784)
2026-05-28 17:41:15 -07:00
Owen Schwartz c74b423bae Merge pull request #3119 from Adityakk9031/#3086
Sort resource filter options in audit logs
2026-05-28 15:50:27 -07:00
Owen f8a757c55f Merge branch 'resource-policies' into dev 2026-05-28 15:30:16 -07:00
Owen 6aea3f1643 Merge branch 'auto-update' into dev 2026-05-28 13:59:34 -07:00
Owen 073dc34522 Merge branch 'rdp-ssh' into dev 2026-05-28 13:59:14 -07:00
Owen 3f5970a1f9 Merge branch 'dev' of github.com:fosrl/pangolin into dev 2026-05-28 13:56:18 -07:00
Owen e2f2608358 Merge branch 'main' into dev 2026-05-28 13:56:08 -07:00
Owen Schwartz 6d17bb04c4 Merge pull request #3167 from shleeable/patch-1
Installer: format main.go
2026-05-28 12:13:45 -07:00
Owen Schwartz 957e7ba127 Merge pull request #3175 from shleeable/patch-4
Fix:  OLM token rate limit uses wrong field name
2026-05-28 12:13:04 -07:00
Owen Schwartz def710cba8 Merge pull request #3176 from shleeable/patch-5
Fix: Update external.ts windowMs rate limit for milliseconds
2026-05-28 12:12:39 -07:00
Owen Schwartz 44da854575 Merge pull request #3177 from shleeable/patch-6
Fix: Missing return
2026-05-28 12:11:40 -07:00
miloschwartz d3d2474855 update blueprints to say blueprints log 2026-05-28 12:11:20 -07:00
Owen Schwartz d7d37c6f6e Merge pull request #3179 from fosrl/dependabot/npm_and_yarn/dev-minor-updates-545c73ecbb
Bump the dev-minor-updates group across 1 directory with 6 updates
2026-05-28 12:10:40 -07:00
dependabot[bot] 3c80b9a229 Bump the dev-minor-updates group across 1 directory with 6 updates
Bumps the dev-minor-updates group with 6 updates in the / directory:

| Package | From | To |
| --- | --- | --- |
| [@dotenvx/dotenvx](https://github.com/dotenvx/dotenvx) | `1.66.0` | `1.69.1` |
| [@react-email/ui](https://github.com/resend/react-email/tree/HEAD/packages/ui) | `6.1.4` | `6.5.0` |
| [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) | `25.8.0` | `25.9.1` |
| [eslint](https://github.com/eslint/eslint) | `10.3.0` | `10.4.0` |
| [react-email](https://github.com/resend/react-email/tree/HEAD/packages/react-email) | `6.1.4` | `6.5.0` |
| [typescript-eslint](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint) | `8.59.3` | `8.60.0` |



Updates `@dotenvx/dotenvx` from 1.66.0 to 1.69.1
- [Release notes](https://github.com/dotenvx/dotenvx/releases)
- [Changelog](https://github.com/dotenvx/dotenvx/blob/main/CHANGELOG.md)
- [Commits](https://github.com/dotenvx/dotenvx/compare/v1.66.0...v1.69.1)

Updates `@react-email/ui` from 6.1.4 to 6.5.0
- [Release notes](https://github.com/resend/react-email/releases)
- [Changelog](https://github.com/resend/react-email/blob/canary/packages/ui/CHANGELOG.md)
- [Commits](https://github.com/resend/react-email/commits/@react-email/ui@6.5.0/packages/ui)

Updates `@types/node` from 25.8.0 to 25.9.1
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)

Updates `eslint` from 10.3.0 to 10.4.0
- [Release notes](https://github.com/eslint/eslint/releases)
- [Commits](https://github.com/eslint/eslint/compare/v10.3.0...v10.4.0)

Updates `react-email` from 6.1.4 to 6.5.0
- [Release notes](https://github.com/resend/react-email/releases)
- [Changelog](https://github.com/resend/react-email/blob/canary/packages/react-email/CHANGELOG.md)
- [Commits](https://github.com/resend/react-email/commits/react-email@6.5.0/packages/react-email)

Updates `typescript-eslint` from 8.59.3 to 8.60.0
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/typescript-eslint/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.60.0/packages/typescript-eslint)

---
updated-dependencies:
- dependency-name: "@dotenvx/dotenvx"
  dependency-version: 1.69.1
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: dev-minor-updates
- dependency-name: "@react-email/ui"
  dependency-version: 6.5.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: dev-minor-updates
- dependency-name: "@types/node"
  dependency-version: 25.9.1
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: dev-minor-updates
- dependency-name: eslint
  dependency-version: 10.4.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: dev-minor-updates
- dependency-name: react-email
  dependency-version: 6.5.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: dev-minor-updates
- dependency-name: typescript-eslint
  dependency-version: 8.60.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: dev-minor-updates
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-05-28 19:10:09 +00:00
Owen Schwartz a998a35482 Merge pull request #3181 from fosrl/remove-resend
Remove resend
2026-05-28 12:07:20 -07:00
Owen 20e0e5ebd0 Remove resend 2026-05-28 12:06:29 -07:00
Owen Schwartz 4d831effe1 Merge pull request #3180 from fosrl/dependabot/npm_and_yarn/prod-patch-updates-203742b32f
Bump the prod-patch-updates group across 1 directory with 5 updates
2026-05-28 12:06:08 -07:00
dependabot[bot] 80f4dd0e60 Bump the prod-patch-updates group across 1 directory with 5 updates
Bumps the prod-patch-updates group with 5 updates in the / directory:

| Package | From | To |
| --- | --- | --- |
| [@simplewebauthn/server](https://github.com/MasterKale/SimpleWebAuthn/tree/HEAD/packages/server) | `13.3.0` | `13.3.1` |
| [@tanstack/react-query](https://github.com/TanStack/query/tree/HEAD/packages/react-query) | `5.100.10` | `5.100.14` |
| [nodemailer](https://github.com/nodemailer/nodemailer) | `8.0.7` | `8.0.9` |
| [resend](https://github.com/resend/resend-node) | `6.12.3` | `6.12.4` |
| [semver](https://github.com/npm/node-semver) | `7.8.0` | `7.8.1` |



Updates `@simplewebauthn/server` from 13.3.0 to 13.3.1
- [Release notes](https://github.com/MasterKale/SimpleWebAuthn/releases)
- [Changelog](https://github.com/MasterKale/SimpleWebAuthn/blob/master/CHANGELOG.md)
- [Commits](https://github.com/MasterKale/SimpleWebAuthn/commits/v13.3.1/packages/server)

Updates `@tanstack/react-query` from 5.100.10 to 5.100.14
- [Release notes](https://github.com/TanStack/query/releases)
- [Changelog](https://github.com/TanStack/query/blob/main/packages/react-query/CHANGELOG.md)
- [Commits](https://github.com/TanStack/query/commits/@tanstack/react-query@5.100.14/packages/react-query)

Updates `nodemailer` from 8.0.7 to 8.0.9
- [Release notes](https://github.com/nodemailer/nodemailer/releases)
- [Changelog](https://github.com/nodemailer/nodemailer/blob/master/CHANGELOG.md)
- [Commits](https://github.com/nodemailer/nodemailer/compare/v8.0.7...v8.0.9)

Updates `resend` from 6.12.3 to 6.12.4
- [Release notes](https://github.com/resend/resend-node/releases)
- [Commits](https://github.com/resend/resend-node/compare/v6.12.3...v6.12.4)

Updates `semver` from 7.8.0 to 7.8.1
- [Release notes](https://github.com/npm/node-semver/releases)
- [Changelog](https://github.com/npm/node-semver/blob/main/CHANGELOG.md)
- [Commits](https://github.com/npm/node-semver/compare/v7.8.0...v7.8.1)

---
updated-dependencies:
- dependency-name: "@simplewebauthn/server"
  dependency-version: 13.3.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod-patch-updates
- dependency-name: "@tanstack/react-query"
  dependency-version: 5.100.14
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod-patch-updates
- dependency-name: nodemailer
  dependency-version: 8.0.9
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod-patch-updates
- dependency-name: resend
  dependency-version: 6.12.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod-patch-updates
- dependency-name: semver
  dependency-version: 7.8.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod-patch-updates
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-05-28 19:02:31 +00:00
Owen Schwartz eafa3076d8 Merge pull request #3137 from fosrl/dependabot/npm_and_yarn/qs-6.15.2
Bump qs from 6.15.1 to 6.15.2
2026-05-28 12:01:50 -07:00
Owen Schwartz fef3cd8354 Merge pull request #2908 from fosrl/dependabot/github_actions/actions/setup-node-6.4.0
Bump actions/setup-node from 6.3.0 to 6.4.0
2026-05-28 12:00:48 -07:00
Owen Schwartz 36ada0705e Merge pull request #3044 from fosrl/dependabot/github_actions/sigstore/cosign-installer-4.1.2
Bump sigstore/cosign-installer from 4.1.1 to 4.1.2
2026-05-28 12:00:38 -07:00
Owen Schwartz 8ae3c06df7 Merge pull request #3143 from fosrl/dependabot/github_actions/actions/stale-10.3.0
Bump actions/stale from 10.2.0 to 10.3.0
2026-05-28 12:00:25 -07:00
dependabot[bot] ba127a8536 Bump qs from 6.15.1 to 6.15.2
Bumps [qs](https://github.com/ljharb/qs) from 6.15.1 to 6.15.2.
- [Changelog](https://github.com/ljharb/qs/blob/main/CHANGELOG.md)
- [Commits](https://github.com/ljharb/qs/compare/v6.15.1...v6.15.2)

---
updated-dependencies:
- dependency-name: qs
  dependency-version: 6.15.2
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-05-28 18:59:36 +00:00
Owen Schwartz 5c024f3a3a Merge pull request #3142 from fosrl/dependabot/github_actions/docker/login-action-4.2.0
Bump docker/login-action from 4.1.0 to 4.2.0
2026-05-28 11:57:53 -07:00
Owen Schwartz 4fdb8583f6 Merge pull request #3178 from fosrl/sec-updates
Advance security updates to main
2026-05-28 11:56:57 -07:00
Owen Schwartz 2946df3b8e Merge pull request #3085 from marcschaeferger-org/security-updates
Normalize request parameters and update dependencies for Security
2026-05-28 11:54:23 -07:00
Shlee c3b0c4e5e9 Update verifyApiKeyOrgAccess.ts 2026-05-28 15:55:34 +09:30
Shlee a79d0f1677 Update external.ts 2026-05-28 15:45:06 +09:30
Shlee bfd7a7f561 Update external.ts 2026-05-28 15:31:45 +09:30
Owen a5332bb0cc Update tsconfig 2026-05-27 21:38:19 -07:00
Owen b3963cc34b Middleware -> proxy 2026-05-27 21:38:12 -07:00
Owen Schwartz ddb132f9fa Merge pull request #3085 from marcschaeferger-org/security-updates
Normalize request parameters and update dependencies for Security
2026-05-27 21:37:50 -07:00
Owen 64c901d91f Properly lock the ip selection through writes to db 2026-05-27 21:08:45 -07:00
Owen cd9e56fdb7 Make the destination optional 2026-05-27 17:52:04 -07:00
Owen 1b6b112e92 Add auth daemon to blueprints 2026-05-27 17:29:19 -07:00
Owen 0ff0e83c9f Complete removal of http and protocol from public 2026-05-27 17:19:04 -07:00
Owen 6d491b7bb9 Cache wildcard certs for easy lookup 2026-05-27 14:58:36 -07:00
miloschwartz cdc50ed47a remove shadow from labels 2026-05-27 14:23:04 -07:00
Owen 06cc13c637 Moving to mode replacing http and protocol fields 2026-05-27 12:04:00 -07:00
Owen 464d4990df Fix cascading errors 2026-05-27 11:34:34 -07:00
miloschwartz e2441ce284 adjust label overflow 2026-05-26 23:59:49 -07:00
miloschwartz 0b6a3234a5 auto close labels dropdown on select but not on checkbox 2026-05-26 22:47:05 -07:00
miloschwartz ae8599c723 dont close label filter after select 2026-05-26 22:30:55 -07:00
miloschwartz 938e9b0d49 more ui/ux enhancements around labels and tables 2026-05-26 22:26:54 -07:00
miloschwartz 05e4ad3200 minor visual adjustments to tags 2026-05-26 21:34:15 -07:00
Owen cb90672573 Trying to get these forms to work 2026-05-26 21:20:34 -07:00
Milo Schwartz 9eb55ba68c Merge pull request #3130 from Fredkiss3/feat/filter-on-label-column
feat: add label filter column to sites, resource & client tables
2026-05-26 21:01:22 -07:00
Owen e19b6ebc82 Hide the destination and the alias 2026-05-26 20:38:04 -07:00
Owen 5a6de12f74 Revert to the mode on top and make it 2 x 2 2026-05-26 20:30:33 -07:00
Owen 6e6c91a27c Move site down 2026-05-26 20:16:54 -07:00
Shlee cf12ab1ac3 Update main.go 2026-05-27 12:12:48 +09:30
Owen aa7004b2ff Add new ssh config for private resources 2026-05-26 17:50:46 -07:00
Owen eca87b66f0 Use the create api 2026-05-26 17:11:45 -07:00
Owen cc8c89eeae Cleaning up some react 2026-05-26 16:53:22 -07:00
Fred KISSIE 6d14a4df49 💄 fix blueprint toast color 2026-05-27 01:36:45 +02:00
Owen 6ea4aa1920 Suppoter key 2026-05-26 16:35:28 -07:00
Owen f12451b8f9 Consolidate target components 2026-05-26 16:33:54 -07:00
Owen 0d4bb65a92 Adjusting the create ui 2026-05-26 16:10:06 -07:00
Owen d47ad9ac40 Fix height problem 2026-05-26 16:08:52 -07:00
Fred KISSIE 94949aa3fd ♻️ fix search params on other tables too 2026-05-27 00:44:18 +02:00
Fred KISSIE df098f55ba ♻️ pass default user search params query to user devices table 2026-05-27 00:23:48 +02:00
Owen f81ae24ba7 Clean up the ui a bit 2026-05-26 15:05:30 -07:00
Fred KISSIE facbb8f0a4 label filter column on the clients table 2026-05-26 23:46:56 +02:00
Fred KISSIE 36fbd8818c label filter column for private resources 2026-05-26 23:36:07 +02:00
Owen df1e28aabd Pass one on the new create screen 2026-05-26 14:29:13 -07:00
Fred KISSIE 91883397e6 label filter column 2026-05-26 22:45:41 +02:00
Fred KISSIE fd1813f3a7 Merge branch 'dev' into feat/filter-on-label-column 2026-05-26 22:26:18 +02:00
Owen Schwartz ddabfb5ca1 Merge pull request #3154 from RitwijParmar/codex/pangolin-refresh-live-log-window
fix(logs): refresh default end time
2026-05-26 11:52:10 -07:00
Owen Schwartz ec0666a612 Merge pull request #3151 from shleeable/patch-1
Installer: Handle both Maxmind Country and ASN databases.
2026-05-26 09:50:08 -07:00
Shlee bbf42c5802 Update main.go 2026-05-26 17:14:06 +09:30
Ritwij Aryan Parmar 6aa1d3b094 fix(logs): refresh default end time 2026-05-26 01:26:53 -04:00
miloschwartz 0d820df797 add ce or ee to issue template 2026-05-25 21:40:02 -07:00
Shlee f1ec1a2fb1 Update docker-compose.yml 2026-05-26 13:49:06 +09:30
Shlee 32fcf90467 Update docker-compose.yml 2026-05-26 13:48:00 +09:30
Shlee 5a53f88fd6 Update main.go 2026-05-26 13:37:28 +09:30
Shlee 51971c7ef2 Update config.yml 2026-05-26 13:36:01 +09:30
Shlee 491096109a Update main.go 2026-05-26 13:31:07 +09:30
Shlee 802a41b1bd Update main.go 2026-05-26 13:25:53 +09:30
Shlee f59fbabede Update main.go 2026-05-26 13:12:48 +09:30
Shlee 5a7d54058e Update main.go 2026-05-26 13:06:35 +09:30
Owen Schwartz 5ef4490692 Merge pull request #3148 from bishnubista/fix-audit-log-replica-routing
fix(audit-logs): route request audit log reads through logsDb
2026-05-25 12:02:24 -07:00
bishnubista 817e848d08 fix(audit-logs): route request audit log reads through logsDb
Route the read paths in queryRequestAuditLog.ts and
queryRequestAnalytics.ts through `logsDb` instead of
`primaryLogsDb`, matching the existing private audit log routes
(queryActionAuditLog, queryAccessAuditLog, queryConnectionAuditLog
all already use `logsDb`). In PostgreSQL deployments configured
with a read replica via `withReplicas` (see server/db/pg/logsDriver.ts),
this keeps high-volume audit log reads off the primary. No-op
in OSS-SQLite where `logsDb === primaryDb`.

Investigated rewriting `queryUniqueFilterAttributes` per the
in-line TODO ("SOMEONE PLEASE OPTIMIZE THIS!!!!!"). A candidate
rewrite using UNION ALL with six GROUP BY...LIMIT 500 arms
benchmarked 48-61% slower than the current SELECT DISTINCT
LIMIT 501 approach on SQLite (100k/300k/1M rows, 20 runs each):
each grouped arm materializes a temp B-tree before applying LIMIT,
while DISTINCT short-circuits via hash dedup with early exit.
A materialized facets table is likely the right long-term fix,
not a query-shape rewrite.
2026-05-25 10:37:47 -07:00
dependabot[bot] 166c8326c5 Bump actions/stale from 10.2.0 to 10.3.0
Bumps [actions/stale](https://github.com/actions/stale) from 10.2.0 to 10.3.0.
- [Release notes](https://github.com/actions/stale/releases)
- [Changelog](https://github.com/actions/stale/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/stale/compare/b5d41d4e1d5dceea10e7104786b73624c18a190f...eb5cf3af3ac0a1aa4c9c45633dd1ae542a27a899)

---
updated-dependencies:
- dependency-name: actions/stale
  dependency-version: 10.3.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-05-25 01:52:46 +00:00
dependabot[bot] 673f1e93f4 Bump docker/login-action from 4.1.0 to 4.2.0
Bumps [docker/login-action](https://github.com/docker/login-action) from 4.1.0 to 4.2.0.
- [Release notes](https://github.com/docker/login-action/releases)
- [Commits](https://github.com/docker/login-action/compare/4907a6ddec9925e35a0a9e82d7399ccc52663121...650006c6eb7dba73a995cc03b0b2d7f5ca915bee)

---
updated-dependencies:
- dependency-name: docker/login-action
  dependency-version: 4.2.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-05-25 01:52:42 +00:00
Owen 4c1e1daf07 All page types are there and look mostly correct 2026-05-22 17:37:37 -07:00
Owen 7c54df7ed1 Rework page to be functional 2026-05-22 16:09:02 -07:00
Owen 9d77fcc457 Make the first ssh page and conditional http page 2026-05-22 15:12:37 -07:00
Owen 454449ec8a Add support for push pam users 2026-05-22 12:12:55 -07:00
Owen fe67e8e384 Clean up types 2026-05-22 12:12:46 -07:00
Owen 715b957660 Support not push ssh method 2026-05-22 11:19:35 -07:00
Owen f1e4bf8d36 Add hint about invoices for the license key 2026-05-22 10:30:41 -07:00
Fred KISSIE 76aea311a4 add label filter column to sitesTable 2026-05-22 04:07:49 +02:00
Owen 3539b9ddb4 Working 2026-05-21 17:30:06 -07:00
Owen Schwartz 1a3cf2094b Merge pull request #3117 from Fredkiss3/refactor/loading-animation-on-request-logs
feat: Show a loading animation on http request logs table
2026-05-21 17:28:20 -07:00
Owen 4530aac4f3 Update setting is working
Adjust the ui

Adjust description
2026-05-21 16:34:32 -07:00
Fred KISSIE 09cb20a084 push 2026-05-22 00:44:29 +02:00
Owen 6d4afd0953 Control updates from the ui 2026-05-21 15:43:31 -07:00
Owen d1fb2e19d3 Fix cache import to be dynamic 2026-05-21 14:43:50 -07:00
Owen dee0ca6864 Add permissions check, shasum check, & build info 2026-05-21 14:34:16 -07:00
Fred KISSIE 2934bbdd20 ♻️ use react query for network logs 2026-05-21 23:27:02 +02:00
Fred KISSIE 2b46e8eaba ♻️ use useQuery for network action logs 2026-05-21 23:23:49 +02:00
Owen ed73d089d0 Auto update newt 2026-05-21 14:13:32 -07:00
Owen 3b89104a59 Add regional redis cache 2026-05-21 14:07:09 -07:00
Fred KISSIE 5bf8b336c5 ♻️ useQuery for fetching access logs 2026-05-21 23:05:34 +02:00
Fred KISSIE 21a144753d Add access react query 2026-05-21 22:50:15 +02:00
Fred KISSIE c1b8dfc863 ♻️ refactor 2026-05-21 22:44:24 +02:00
Fred KISSIE 5efcd4479a Merge branch 'dev' into refactor/loading-animation-on-request-logs 2026-05-21 22:31:16 +02:00
Owen e4e8b33e9f Enforce absolute paths for sudo commands 2026-05-21 12:14:52 -07:00
Owen Schwartz 35ad235f49 Merge pull request #3129 from fosrl/fix-site-delete
Improve delete function speed & order of ops
2026-05-21 12:06:18 -07:00
Owen 834672c846 Improve delete function speed & order of ops 2026-05-21 12:05:16 -07:00
Owen af13790c93 Fix pasting the device code not working 2026-05-20 16:28:12 -07:00
Owen Schwartz b8180d848a Merge pull request #3118 from Adityakk9031/#3105
Fix public resource health with unknown WireGuard targets
2026-05-20 16:20:25 -07:00
Owen Schwartz fef7563e14 Merge pull request #3125 from fosrl/fix-3104
Fix #3104
2026-05-20 16:15:21 -07:00
Owen 6337cf4359 Fix #3104 2026-05-20 16:14:47 -07:00
Owen 87bcd8ec1b Merge branch 'main' into dev 2026-05-20 15:59:01 -07:00
Owen Schwartz b3cfe82dff Merge pull request #3124 from fosrl/fix-logoUrl
Fix logo url
2026-05-20 14:19:29 -07:00
Owen d65128671c Fix logo url 2026-05-20 14:18:55 -07:00
Owen Schwartz 41fdd5de74 Merge pull request #3122 from fosrl/button-to-rebuild-association
Add button to rebuid cache
2026-05-20 12:08:47 -07:00
Owen 2704202ba9 Add button to rebuid cache 2026-05-20 12:08:20 -07:00
Owen Schwartz 72ef0ae020 Merge pull request #3121 from fosrl/patch-rebuild-sites
patch rebuild sites
2026-05-20 11:48:33 -07:00
Owen 1442faa740 Prevent concurrent rebuilds 2026-05-20 11:46:59 -07:00
Owen 6aa589e612 Block adds to clients in jit mode 2026-05-20 11:35:15 -07:00
Owen 4b1a8e14c4 Put long running into the background to end transaction 2026-05-20 11:18:47 -07:00
Owen 1a0db10b1a Verify button to verify cache 2026-05-20 11:15:15 -07:00
Owen b7634086db Just accept any url for now 2026-05-20 10:47:37 -07:00
Aditya kumar singh 73e9e830c3 Sort resource filter options in audit logs 2026-05-20 11:13:50 +05:30
Aditya kumar singh a6469e67a8 Fix public resource health with unknown WireGuard targets 2026-05-20 09:05:05 +05:30
Owen 23ca3efbf4 Merge branch 'dev' into rdp-ssh 2026-05-19 20:12:05 -07:00
Owen 0f9100fd3a Merge branch 'rdp-ssh' of github.com:fosrl/pangolin into rdp-ssh 2026-05-19 20:06:48 -07:00
Owen Schwartz c47c411161 Merge pull request #3114 from Fredkiss3/fix/tag-input-scroll
fix: make tag input wrap around instead of scrolling
2026-05-19 20:03:59 -07:00
Owen Schwartz e88e262abe Merge pull request #3004 from Fredkiss3/feat/labels-on-sites-and-resources
feat: site & resource labels
2026-05-19 20:03:22 -07:00
Owen 832d45e32b Move pages back 2026-05-19 20:02:27 -07:00
Owen 69e3ac3cd4 Move login page locations 2026-05-19 20:02:27 -07:00
Owen 50865f4265 Remove terminate button 2026-05-19 20:02:27 -07:00
Owen 0d1a8d9695 Only switch if we are actually connected 2026-05-19 20:02:27 -07:00
Owen 5d8486dd7f Sure up some things with browserAccessType 2026-05-19 20:02:27 -07:00
Owen 3c25932787 Adjust page to be editable 2026-05-19 20:02:27 -07:00
Owen 1d0e1eb126 Temp credential storage 2026-05-19 20:02:27 -07:00
Owen 57c0dc8618 Support private key 2026-05-19 20:02:27 -07:00
Owen 526a147570 Clean up toasts 2026-05-19 20:02:27 -07:00
Owen 0938997548 Add crud for browser targets 2026-05-19 20:02:27 -07:00
Owen 0876b482f8 Remove extra fields 2026-05-19 20:02:27 -07:00
Owen d558c31f88 Standardize the ui 2026-05-19 20:02:26 -07:00
Owen 6010515da0 Pull in the destination from the api 2026-05-19 20:02:26 -07:00
Owen 868bcd8e34 USe right table 2026-05-19 20:02:26 -07:00
Owen 20c4904965 Add internal api get for proxy information 2026-05-19 20:02:26 -07:00
Owen 5a5536b38c Reinstall packages 2026-05-19 20:02:26 -07:00
Owen 53e2296de8 Clean up forms a bit 2026-05-19 20:02:26 -07:00
Owen d2423919e9 Add favicon passthrough 2026-05-19 20:02:26 -07:00
Owen 2250fcd177 Serve the resource from the right place 2026-05-19 20:02:26 -07:00
Owen 2a33256d17 Add gateway endpoints into the traefik config 2026-05-19 20:02:26 -07:00
Owen 117aa750f8 Working on new target type 2026-05-19 20:02:26 -07:00
Owen 15f161274f Add browserGatewayTarget table 2026-05-19 20:02:26 -07:00
Owen 09779aca3e Add basic vnc test 2026-05-19 20:02:25 -07:00
Owen 1d1f7cecf4 Support rdp 2026-05-19 20:02:25 -07:00
Owen dc00668cbe Add first iteration of ssh proxy 2026-05-19 20:02:25 -07:00
Owen 57701e13eb Comment out some fields 2026-05-19 20:02:25 -07:00
Owen 46545cb003 Initial rdp working 2026-05-19 20:02:21 -07:00
Fred KISSIE a163cc3678 💄 show loading animation on http request logs table 2026-05-20 04:50:49 +02:00
Fred KISSIE 1dfb3408e8 ♻️ use react query for fetching instead of useEfffect 2026-05-20 01:00:56 +02:00
Fred KISSIE 67fb2beba1 Merge branch 'dev' into refactor/loading-animation-on-request-logs 2026-05-19 23:54:21 +02:00
Fred KISSIE 6cacc9b83f 💄 limit tag width 2026-05-19 22:52:44 +02:00
Fred KISSIE 1f1791feb7 💄 make tag input wrap around instead of scrolling 2026-05-19 22:48:15 +02:00
Owen Schwartz 1ba75092f9 Merge pull request #3113 from fosrl/dev
derived only from roles that the user holds AND are assigned to the target resource
2026-05-19 10:56:30 -07:00
Owen 08a08e73b3 derived only from roles that the user holds AND are assigned to the target resource 2026-05-19 10:53:54 -07:00
Fred KISSIE c500979099 Merge branch 'dev' into refactor/loading-animation-on-request-logs 2026-05-18 22:52:27 +02:00
Fred KISSIE 2d9c082607 💄 UI 2026-05-18 22:17:49 +02:00
Fred KISSIE 7968c4357b edit org label 2026-05-18 22:14:49 +02:00
Fred KISSIE 25c08e7279 Create label dialog 2026-05-18 21:57:44 +02:00
copilot-swe-agent[bot] 81ed391efb Remove obsolete stoi import from blueprint OpenAPI route
Agent-Logs-Url: https://github.com/fosrl/pangolin/sessions/7b395a8e-7fae-4f4d-952e-4030fea08262

Co-authored-by: oschwartz10612 <4999704+oschwartz10612@users.noreply.github.com>
2026-05-17 21:30:23 +00:00
copilot-swe-agent[bot] f3bee70c23 Reformat generated OpenAPI response schemas for readability
Agent-Logs-Url: https://github.com/fosrl/pangolin/sessions/7b395a8e-7fae-4f4d-952e-4030fea08262

Co-authored-by: oschwartz10612 <4999704+oschwartz10612@users.noreply.github.com>
2026-05-17 21:28:39 +00:00
copilot-swe-agent[bot] 15a9eb28d9 Add concrete OpenAPI data schemas for selected routes
Agent-Logs-Url: https://github.com/fosrl/pangolin/sessions/7b395a8e-7fae-4f4d-952e-4030fea08262

Co-authored-by: oschwartz10612 <4999704+oschwartz10612@users.noreply.github.com>
2026-05-17 21:25:53 +00:00
copilot-swe-agent[bot] a0a093ed0b Document all registerPath responses and normalize OpenAPI parser schemas
Agent-Logs-Url: https://github.com/fosrl/pangolin/sessions/73990123-9c27-444b-bc6e-77e890a0d57c

Co-authored-by: oschwartz10612 <4999704+oschwartz10612@users.noreply.github.com>
2026-05-17 06:43:10 +00:00
copilot-swe-agent[bot] 9cec711427 Fix custom parser OpenAPI types and add structured default response schema
Agent-Logs-Url: https://github.com/fosrl/pangolin/sessions/73990123-9c27-444b-bc6e-77e890a0d57c

Co-authored-by: oschwartz10612 <4999704+oschwartz10612@users.noreply.github.com>
2026-05-17 06:38:44 +00:00
Owen Schwartz 82745c701a Merge pull request #3094 from fosrl/dev
Sync dev
2026-05-16 20:46:12 -07:00
Owen 68e775659b Merge branch 'main' into dev 2026-05-16 20:45:39 -07:00
Owen 1c5e3000b6 Merge branch 'dev' of github.com:fosrl/pangolin into dev 2026-05-16 20:45:31 -07:00
Owen 3b93fd99a1 Remove workflows 2026-05-16 20:44:36 -07:00
dependabot[bot] e4fd2b656d Bump sigstore/cosign-installer from 4.1.1 to 4.1.2
Bumps [sigstore/cosign-installer](https://github.com/sigstore/cosign-installer) from 4.1.1 to 4.1.2.
- [Release notes](https://github.com/sigstore/cosign-installer/releases)
- [Commits](https://github.com/sigstore/cosign-installer/compare/v4.1.1...6f9f17788090df1f26f669e9d70d6ae9567deba6)

---
updated-dependencies:
- dependency-name: sigstore/cosign-installer
  dependency-version: 4.1.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-05-16 21:55:15 +00:00
Owen Schwartz 159e91a07c Merge pull request #3090 from fosrl/github-action-cosign
Upgrade cosign installer to v4.1.2 and pin cosign version
2026-05-16 14:53:24 -07:00
miloschwartz 530b5082bd make online/connected styling consistent 2026-05-16 12:34:17 -07:00
Marc Schäfer 3322f1ccb4 Update cosign installer version in CI workflow 2026-05-16 16:21:13 +02:00
Marc Schäfer 1b17fba19f Upgrade cosign installer to v4.1.2 and pin cosign version
Updated cosign installer to version 4.1.2 and specified cosign release version.
2026-05-16 16:17:45 +02:00
Owen 987b5d580e Sure up some things with browserAccessType 2026-05-15 17:26:58 -07:00
Owen cb75ffc3b7 Adjust page to be editable 2026-05-15 16:46:43 -07:00
Owen 540f0a754d Temp credential storage 2026-05-15 16:11:23 -07:00
Owen 0f9a6fd968 Support private key 2026-05-15 16:07:14 -07:00
Owen 82112abc34 Clean up toasts 2026-05-15 15:01:37 -07:00
Owen 75b5afd544 Add crud for browser targets 2026-05-15 14:09:33 -07:00
Owen 00e1675f7b Remove extra fields 2026-05-15 12:08:40 -07:00
Owen 2ddbdf977b Standardize the ui 2026-05-15 12:06:05 -07:00
Owen 4c8f0cc9ec Pull in the destination from the api 2026-05-15 11:48:13 -07:00
Marc Schäfer 18d380ce30 fix(security): normalize request parameters and update dependencies
Signed-off-by: Marc Schäfer <git@marcschaeferger.de>
2026-05-15 18:35:58 +00:00
Owen e822b681cd Merge branch 'dev' into rdp-ssh 2026-05-15 11:18:31 -07:00
Owen dd1f7ba544 Make crowdsec --crowdsec 2026-05-14 21:46:26 -07:00
Owen Schwartz 8c2e6965f1 Merge pull request #3081 from fosrl/dev
Update sidebar
2026-05-14 21:21:03 -07:00
Owen b414f04cce Remove funding 2026-05-14 21:20:34 -07:00
Owen Schwartz 9c71922dda Merge pull request #3079 from fosrl/dev
Add site information to user api
2026-05-14 20:17:19 -07:00
Owen 6e4a28f227 Add site information as well 2026-05-14 18:02:42 -07:00
Owen Schwartz 64d8f035a2 Merge pull request #3077 from fosrl/dev
1.18.4-s.5
2026-05-14 17:41:51 -07:00
Owen 0a5780a3b3 Merge branch 'dev' of github.com:fosrl/pangolin into dev 2026-05-14 17:41:00 -07:00
Owen d58b96f4b1 Add port and icmp information to api endpoint 2026-05-14 17:39:22 -07:00
Owen Schwartz f778f5c941 Merge pull request #3071 from fosrl/crowdin_dev
New Crowdin updates
2026-05-14 17:20:50 -07:00
Owen 6422208f69 Optimize get all relays 2026-05-14 16:59:15 -07:00
Owen c3ebc423b5 Each node should only update its own sites 2026-05-14 16:51:09 -07:00
Fred KISSIE 68d7b0a416 🚧 wip: label 2026-05-14 22:43:29 +02:00
Fred KISSIE 43546c84eb 🚧 wip: create label dialog 2026-05-14 22:42:01 +02:00
Fred KISSIE eac36ee442 delete label 2026-05-14 22:15:43 +02:00
Owen Schwartz 92f992728f Merge pull request #3074 from fosrl/dev
Optimize building aliases in jit mode
2026-05-14 12:25:44 -07:00
Owen 78ad2d17c7 Optimize building aliases in jit mode 2026-05-14 12:25:05 -07:00
Fred KISSIE 9a88394efe 🛂 gate label endpoints behing subscription 2026-05-14 21:17:58 +02:00
Fred KISSIE 173562654b delete org label endpoint 2026-05-14 21:09:48 +02:00
Owen Schwartz b29bb7384d Merge pull request #3073 from fosrl/dev
Further optimizations
2026-05-14 12:00:25 -07:00
Owen 5a8de8210b Further optimizations 2026-05-14 11:59:59 -07:00
Owen Schwartz d5181454f4 Merge pull request #3072 from fosrl/dev
Optimize this
2026-05-14 11:34:56 -07:00
Owen 0e0666cacf Optimize this 2026-05-14 11:34:09 -07:00
Owen e1583a58aa USe right table 2026-05-14 11:33:42 -07:00
Owen Schwartz 02ba2393b9 New translations en-us.json (German)
[ci skip]
2026-05-14 11:08:12 -07:00
Fred KISSIE 8f7e5ab1ed 🚧 wip: org labels page 2026-05-14 19:31:53 +02:00
Fred KISSIE 4334480675 ♻️ refactor 2026-05-14 18:33:29 +02:00
Fred KISSIE 6aa406927a 🐛 fix error message 2026-05-14 18:20:26 +02:00
Fred KISSIE 5b50024712 Merge branch 'dev' into feat/labels-on-sites-and-resources 2026-05-14 18:15:14 +02:00
Owen 7d922ac95f Add internal api get for proxy information 2026-05-13 21:54:58 -07:00
Owen 795a3d351e Reinstall packages 2026-05-13 21:16:40 -07:00
Owen 4b4c86b4b7 Clean up forms a bit 2026-05-13 21:16:00 -07:00
Owen 013af49137 Add favicon passthrough 2026-05-13 21:11:25 -07:00
Owen a6ae9290f2 Serve the resource from the right place 2026-05-13 18:01:36 -07:00
Owen de70d72e0d Add gateway endpoints into the traefik config 2026-05-13 17:33:16 -07:00
Owen Schwartz daf260cf61 Merge pull request #3064 from fosrl/dev
1.18.4-s.1
2026-05-13 14:40:50 -07:00
Owen 92a06e0ea3 Handle jit mode with syncs 2026-05-13 14:00:43 -07:00
Owen c16d2ff2ed Fix log message 2026-05-13 13:52:35 -07:00
Owen 73a4d7d351 Quiet log message 2026-05-13 11:57:02 -07:00
Owen 4e07e9c52c Working on new target type 2026-05-13 11:56:23 -07:00
Owen 743621eb25 Add browserGatewayTarget table 2026-05-12 21:48:59 -07:00
Owen e9df995e76 Merge branch 'dev' into resource-policies 2026-05-12 21:12:40 -07:00
Owen 943923ff4b Add basic vnc test 2026-05-12 21:12:01 -07:00
Owen 3f17f1a468 Support rdp 2026-05-12 21:12:01 -07:00
Owen 436996a43d Add first iteration of ssh proxy 2026-05-12 21:12:01 -07:00
Owen d42b6076d2 Comment out some fields 2026-05-12 21:12:01 -07:00
Owen 89cc99f915 Initial rdp working 2026-05-12 21:12:00 -07:00
Owen Schwartz 1860b4b862 Merge pull request #3061 from fosrl/dev
Add 1.18.4 migration
2026-05-12 21:01:39 -07:00
Owen efb1d69ac9 Add migration 2026-05-12 20:59:58 -07:00
Owen Schwartz 0601b55f22 Merge pull request #3060 from fosrl/dev
Translations
2026-05-12 20:48:55 -07:00
Owen Schwartz 107986d848 Merge pull request #3059 from fosrl/crowdin_dev
New Crowdin updates
2026-05-12 20:45:53 -07:00
Owen Schwartz b6c8fbe43b New translations en-us.json (Spanish)
[ci skip]
2026-05-12 20:41:30 -07:00
Owen Schwartz 4208a9f372 New translations en-us.json (Norwegian Bokmal)
[ci skip]
2026-05-12 20:41:28 -07:00
Owen Schwartz 3c82a228fb New translations en-us.json (Chinese Simplified)
[ci skip]
2026-05-12 20:41:26 -07:00
Owen Schwartz a4aa29e48a New translations en-us.json (Turkish)
[ci skip]
2026-05-12 20:41:25 -07:00
Owen Schwartz 0f82ba6627 New translations en-us.json (Russian)
[ci skip]
2026-05-12 20:41:23 -07:00
Owen Schwartz 1df5d9fac8 New translations en-us.json (Portuguese)
[ci skip]
2026-05-12 20:41:21 -07:00
Owen Schwartz 5189583d73 New translations en-us.json (Polish)
[ci skip]
2026-05-12 20:41:20 -07:00
Owen Schwartz b794d2aa40 New translations en-us.json (Dutch)
[ci skip]
2026-05-12 20:41:18 -07:00
Owen Schwartz c69059b227 New translations en-us.json (Korean)
[ci skip]
2026-05-12 20:41:17 -07:00
Owen Schwartz b27b62d4c8 New translations en-us.json (Italian)
[ci skip]
2026-05-12 20:41:15 -07:00
Owen Schwartz ee8290d68c New translations en-us.json (German)
[ci skip]
2026-05-12 20:41:13 -07:00
Owen Schwartz 82e8e79b16 New translations en-us.json (Czech)
[ci skip]
2026-05-12 20:41:12 -07:00
Owen Schwartz 2d428d2fa0 New translations en-us.json (Bulgarian)
[ci skip]
2026-05-12 20:41:10 -07:00
Owen Schwartz 0005c11a0a New translations en-us.json (French)
[ci skip]
2026-05-12 20:41:08 -07:00
Owen Schwartz 559cbeb7d5 Merge pull request #3058 from fosrl/dev
1.18.4
2026-05-12 20:20:10 -07:00
Owen f91d914ec6 Show when a domain is config managed 2026-05-12 20:14:12 -07:00
Owen Schwartz e975f56445 Merge pull request #3008 from AstralDestiny/patch-2
Update references of SSL alone to be TLS to align with proper wording…
2026-05-12 13:57:11 -07:00
Fred KISSIE ce746a2a21 Handle labels for machine clients 2026-05-12 22:32:56 +02:00
Fred KISSIE 7120ab4b22 ♻️ filter sites & resources by labels 2026-05-12 20:45:12 +02:00
Fred KISSIE 12e777b32e Add labels column to private resources table 2026-05-12 20:25:32 +02:00
Fred KISSIE 9378103ddd handle private resources filtering by labels 2026-05-12 20:24:34 +02:00
Fred KISSIE ec794d5de2 attach/detach private resources 2026-05-12 20:01:33 +02:00
Fred KISSIE 12b18a3e8c attach labels to private resources 2026-05-12 19:58:44 +02:00
Fred KISSIE 91e8a13e59 🗃️ Add site resource labels schema 2026-05-12 17:55:56 +02:00
Fred KISSIE 931ba0f540 💄 px-2 button 2026-05-12 17:46:46 +02:00
miloschwartz b6caeda0a5 improve targets round robin warning 2026-05-11 22:06:43 -07:00
Owen 77d17af15b Add global hide_powered_by and make it backward 2026-05-11 16:18:57 -07:00
Owen 264c6bf4e8 Use the right param for user 2026-05-11 12:06:36 -07:00
Fred KISSIE d321d7275c 🚧 tried to memo proxy resource table, failed 2026-05-11 21:06:20 +02:00
Owen 4aa72eb1a3 Confirm delete of share links 2026-05-11 11:49:51 -07:00
Owen a066a68e1a Pick the most specific domain
Fixes #3047
2026-05-11 11:28:32 -07:00
Fred KISSIE 3855486a00 ️ prevent SitetableCell from rerendering unnecessarily 2026-05-11 19:27:00 +02:00
Fred KISSIE ab494521b1 labels on proxy resources 2026-05-11 18:37:16 +02:00
Fred KISSIE 549e1ead1d handle labels in resources too 2026-05-11 18:30:23 +02:00
Fred KISSIE a0759a79a1 🗃️ add unique indexes to site & resource labels in sqlite 2026-05-11 18:28:40 +02:00
Fred KISSIE 14e1a119d3 🚧 WIP: showing labels in proxy resources table 2026-05-11 18:24:47 +02:00
Fred KISSIE 6e066d38b0 🚚 Make label badge its own component 2026-05-11 18:17:29 +02:00
Fred KISSIE 21f72639b6 🚧 make labels column paid, and cleanup 2026-05-11 18:13:19 +02:00
Fred KISSIE 8a0c2031d4 search list by labels too 2026-05-11 18:02:59 +02:00
Fred KISSIE 56d3a466e5 💄 make controlled data table input a search input 2026-05-11 18:02:44 +02:00
Fred KISSIE 563e505cc1 💸 add labels to paid features 2026-05-11 18:02:15 +02:00
Fred KISSIE c44c02b8ba 💄 make site labels column design nicer 2026-05-11 17:04:44 +02:00
Fred KISSIE b9ab35a05b 🐛 handle idempotency when adding/removing labels from sites/resources 2026-05-11 16:57:53 +02:00
miloschwartz 9fb677e952 allow editing self and owner user roles 2026-05-08 17:48:43 -07:00
Owen Schwartz e253195fdd Merge pull request #3035 from fosrl/dev
Add new log streaming and client endpoint to connection log
2026-05-08 17:18:16 -07:00
Owen Schwartz 88d8414eb8 Merge pull request #3016 from fosrl/crowdin_dev
New Crowdin updates
2026-05-08 17:17:30 -07:00
Owen Schwartz 5f3fafb1b0 New translations en-us.json (Spanish)
[ci skip]
2026-05-08 17:16:31 -07:00
Owen Schwartz de1338a8cd New translations en-us.json (Norwegian Bokmal)
[ci skip]
2026-05-08 17:16:29 -07:00
Owen Schwartz 0800aa2a61 New translations en-us.json (Chinese Simplified)
[ci skip]
2026-05-08 17:16:28 -07:00
Owen Schwartz 4959d66ac1 New translations en-us.json (Turkish)
[ci skip]
2026-05-08 17:16:26 -07:00
Owen Schwartz 9320df8be6 New translations en-us.json (Russian)
[ci skip]
2026-05-08 17:16:24 -07:00
Owen Schwartz 13ec6b6620 New translations en-us.json (Portuguese)
[ci skip]
2026-05-08 17:16:23 -07:00
Owen Schwartz 2ca3ef019c New translations en-us.json (Polish)
[ci skip]
2026-05-08 17:16:21 -07:00
Owen Schwartz 724e41a54f New translations en-us.json (Dutch)
[ci skip]
2026-05-08 17:16:19 -07:00
Owen Schwartz ce5e62d216 New translations en-us.json (Korean)
[ci skip]
2026-05-08 17:16:17 -07:00
Owen Schwartz 874dc2b33e New translations en-us.json (Italian)
[ci skip]
2026-05-08 17:16:16 -07:00
Owen Schwartz 3b2622d590 New translations en-us.json (German)
[ci skip]
2026-05-08 17:16:14 -07:00
Owen Schwartz c81d855741 New translations en-us.json (Czech)
[ci skip]
2026-05-08 17:16:12 -07:00
Owen Schwartz 3bce8d3596 New translations en-us.json (Bulgarian)
[ci skip]
2026-05-08 17:16:10 -07:00
Owen Schwartz ee2a1e2bc3 New translations en-us.json (French)
[ci skip]
2026-05-08 17:16:09 -07:00
Owen Schwartz a0f3ee74f9 New translations en-us.json (Spanish)
[ci skip]
2026-05-08 17:14:09 -07:00
Owen Schwartz 82a36fd632 New translations en-us.json (Norwegian Bokmal)
[ci skip]
2026-05-08 17:14:07 -07:00
Owen Schwartz c5084137ab New translations en-us.json (Chinese Simplified)
[ci skip]
2026-05-08 17:14:06 -07:00
Owen Schwartz 65ec8da100 New translations en-us.json (Turkish)
[ci skip]
2026-05-08 17:14:04 -07:00
Owen Schwartz e76e7581a5 New translations en-us.json (Russian)
[ci skip]
2026-05-08 17:14:02 -07:00
Owen Schwartz a97a4b6ec1 New translations en-us.json (Portuguese)
[ci skip]
2026-05-08 17:14:00 -07:00
Owen Schwartz e38bbde348 New translations en-us.json (Polish)
[ci skip]
2026-05-08 17:13:58 -07:00
Owen Schwartz 026260ddfb New translations en-us.json (Dutch)
[ci skip]
2026-05-08 17:13:57 -07:00
Owen Schwartz 97be5eb7d5 New translations en-us.json (Korean)
[ci skip]
2026-05-08 17:13:55 -07:00
Owen Schwartz d7b96ba3f5 New translations en-us.json (Italian)
[ci skip]
2026-05-08 17:13:53 -07:00
Owen Schwartz b42672530f New translations en-us.json (German)
[ci skip]
2026-05-08 17:13:51 -07:00
Owen Schwartz b6b2dbd8ab New translations en-us.json (Czech)
[ci skip]
2026-05-08 17:13:50 -07:00
Owen Schwartz 975f3a01f5 New translations en-us.json (Bulgarian)
[ci skip]
2026-05-08 17:13:48 -07:00
Owen Schwartz 4de2dfff85 New translations en-us.json (French)
[ci skip]
2026-05-08 17:13:46 -07:00
Owen 27d230647f Merge branch 's3' into dev 2026-05-08 17:05:39 -07:00
Owen 114486608e Add client endpoint to network log 2026-05-08 17:04:58 -07:00
Owen 10fa9274d0 Add streaming errors for debug 2026-05-08 16:27:40 -07:00
Fred KISSIE 2fd519e102 add and toggle site labels 2026-05-08 22:31:36 +02:00
Fred KISSIE a63c1ec364 💄 label selector (with create label) 2026-05-08 21:49:20 +02:00
Fred KISSIE e61ef2ca2a 🚧 wip: label selector 2026-05-08 20:06:42 +02:00
Fred KISSIE 39b09b7f3f Merge branch 'dev' into feat/labels-on-sites-and-resources 2026-05-08 18:21:46 +02:00
Fred KISSIE 840cc214e3 🚧 wip 2026-05-08 18:21:09 +02:00
Owen cbdc74768f Implement s3 streaming destination 2026-05-07 21:09:21 -07:00
Owen Schwartz 10f95896aa Merge pull request #3030 from fosrl/dev
1.18.3-s.2 fix
2026-05-07 20:08:05 -07:00
Owen 5b8994d143 Cange to use primaryDb 2026-05-07 20:07:06 -07:00
Owen c46ef2fe9c Fix ts type issue 2026-05-07 20:03:48 -07:00
Fred KISSIE 72524db52d 💄 shrink button 2026-05-08 02:48:47 +02:00
Fred KISSIE ab8fc11ab3 🚧 add labels button 2026-05-08 02:46:16 +02:00
Owen Schwartz 4cd025dd91 Merge pull request #3029 from fosrl/dev
1.18.3-s.2
2026-05-07 17:44:35 -07:00
Owen ce04ea9720 Fix not including today
Fixes #3028
2026-05-07 16:15:13 -07:00
Owen a3ce382725 Pick up other domains in the sans field 2026-05-07 15:49:12 -07:00
Owen 4eb49e3e60 Make the rebuild long running function background 2026-05-07 15:40:34 -07:00
Fred KISSIE 1831ca4e75 ♻️ detach label from site/resoirce 2026-05-08 00:33:47 +02:00
Owen 2a9481023a Dont show link when wildcard 2026-05-07 15:15:03 -07:00
Owen 8ed01372b8 Add org to logs 2026-05-07 15:14:44 -07:00
immanuwell 0611ceb5c3 fix: make validators test failures exit non-zero 2026-05-07 20:13:56 +04:00
Owen Schwartz 6a7d4fd385 Merge pull request #3021 from fosrl/dev
If not exists on trial table
2026-05-06 20:00:55 -07:00
Owen 7bc08c0425 If not exists on trial table 2026-05-06 20:00:23 -07:00
Owen Schwartz 451f3d24a8 New translations en-us.json (French)
[ci skip]
2026-05-06 17:13:33 -07:00
Owen Schwartz 36a47c4cfb Merge pull request #3015 from fosrl/dev
Dev
2026-05-06 16:59:02 -07:00
Owen 7dce4500ec Merge branch 'dev' of github.com:fosrl/pangolin into dev 2026-05-06 16:58:39 -07:00
Owen 72e48a56df Remove explicit call 2026-05-06 16:58:28 -07:00
Owen Schwartz 293d9865b4 Merge pull request #3014 from fosrl/dev
1.18.3
2026-05-06 16:30:36 -07:00
Owen Schwartz 45a2a07747 Merge pull request #3012 from fosrl/crowdin_dev
New Crowdin updates
2026-05-06 16:21:45 -07:00
Owen Schwartz 181bcffe7d New translations en-us.json (Spanish)
[ci skip]
2026-05-06 16:17:46 -07:00
Owen Schwartz ed35d25598 New translations en-us.json (Norwegian Bokmal)
[ci skip]
2026-05-06 16:17:44 -07:00
Owen Schwartz 05e738e0f4 New translations en-us.json (Chinese Simplified)
[ci skip]
2026-05-06 16:17:42 -07:00
Owen Schwartz c95e66d531 New translations en-us.json (Turkish)
[ci skip]
2026-05-06 16:17:40 -07:00
Owen Schwartz cc2a416a92 New translations en-us.json (Russian)
[ci skip]
2026-05-06 16:17:39 -07:00
Owen Schwartz 70bb42f1fc New translations en-us.json (Portuguese)
[ci skip]
2026-05-06 16:17:37 -07:00
Owen Schwartz 10d2bc1e9e New translations en-us.json (Polish)
[ci skip]
2026-05-06 16:17:35 -07:00
Owen Schwartz 385f57ec93 New translations en-us.json (Dutch)
[ci skip]
2026-05-06 16:17:33 -07:00
Owen Schwartz 9c8ffdb661 New translations en-us.json (Korean)
[ci skip]
2026-05-06 16:17:32 -07:00
Owen Schwartz 5a5feccc76 New translations en-us.json (Italian)
[ci skip]
2026-05-06 16:17:30 -07:00
Owen Schwartz 36e7054386 New translations en-us.json (German)
[ci skip]
2026-05-06 16:17:28 -07:00
Owen Schwartz 19de12b12e New translations en-us.json (Czech)
[ci skip]
2026-05-06 16:17:26 -07:00
Owen Schwartz d96e930679 New translations en-us.json (Bulgarian)
[ci skip]
2026-05-06 16:17:25 -07:00
Owen Schwartz 5e51b8ad74 New translations en-us.json (French)
[ci skip]
2026-05-06 16:17:23 -07:00
Owen Schwartz 885b9e638d New translations en-us.json (Spanish)
[ci skip]
2026-05-06 16:15:56 -07:00
Owen Schwartz 56ef3a934a New translations en-us.json (Norwegian Bokmal)
[ci skip]
2026-05-06 16:15:55 -07:00
Owen Schwartz 98bc199c8e New translations en-us.json (Chinese Simplified)
[ci skip]
2026-05-06 16:15:53 -07:00
Owen Schwartz 0444d3490b New translations en-us.json (Turkish)
[ci skip]
2026-05-06 16:15:51 -07:00
Owen Schwartz 54820d1db0 New translations en-us.json (Russian)
[ci skip]
2026-05-06 16:15:49 -07:00
Owen Schwartz 961cbfcacc New translations en-us.json (Portuguese)
[ci skip]
2026-05-06 16:15:47 -07:00
Owen Schwartz a784cd307e New translations en-us.json (Polish)
[ci skip]
2026-05-06 16:15:46 -07:00
Owen Schwartz b46c948522 New translations en-us.json (Dutch)
[ci skip]
2026-05-06 16:15:44 -07:00
Owen Schwartz 7eab2cc0bb New translations en-us.json (Korean)
[ci skip]
2026-05-06 16:15:42 -07:00
Owen Schwartz 5ff2569ece New translations en-us.json (Italian)
[ci skip]
2026-05-06 16:15:40 -07:00
Owen Schwartz c59505be8d New translations en-us.json (German)
[ci skip]
2026-05-06 16:15:38 -07:00
Owen Schwartz 2b0e6649fa New translations en-us.json (Czech)
[ci skip]
2026-05-06 16:15:37 -07:00
Owen Schwartz 428e9b546e New translations en-us.json (Bulgarian)
[ci skip]
2026-05-06 16:15:35 -07:00
Owen Schwartz 5089660381 New translations en-us.json (French)
[ci skip]
2026-05-06 16:15:33 -07:00
Owen 998364b09d Properly respect flags.disableEnterpriseFeatures 2026-05-06 16:13:07 -07:00
Owen ac0d88d9b7 Merge branch 'dev' of github.com:fosrl/pangolin into dev 2026-05-06 16:02:31 -07:00
Owen Schwartz 401f04b53e Merge pull request #3011 from fosrl/copilot/fix-create-alert-visibility
Hide alerting UI when disable_enterprise_features is true
2026-05-06 16:02:22 -07:00
Owen b046ab7513 Add locks to allocations 2026-05-06 15:58:51 -07:00
Owen 65ee9b9544 Add transaction to alias address picking 2026-05-06 15:53:46 -07:00
Owen 49c7319342 Format and make the error a warning 2026-05-06 15:51:05 -07:00
Owen ce7df5ddaa Update log message 2026-05-06 15:19:13 -07:00
Owen af1739fbcb Bump version 2026-05-06 15:15:03 -07:00
Owen f01c9ee41c Try to fix time issue
Fixes #3007
2026-05-06 14:45:18 -07:00
Owen 19f8956218 Support flattened data fields 2026-05-06 14:30:57 -07:00
Owen a8c50b8618 Add clear certificates pangctl command 2026-05-06 14:08:28 -07:00
Owen e86a381ed5 Fix the input to be tags 2026-05-06 14:05:18 -07:00
Owen dd18375f23 Fix org selectors 2026-05-06 13:57:17 -07:00
Owen Schwartz 46b72b9e8c New translations en-us.json (Spanish)
[ci skip]
2026-05-06 11:14:54 -07:00
Owen Schwartz 7bb2a5a0a5 New translations en-us.json (Norwegian Bokmal)
[ci skip]
2026-05-06 11:14:52 -07:00
Owen Schwartz 4b777b1488 New translations en-us.json (Chinese Simplified)
[ci skip]
2026-05-06 11:14:50 -07:00
Owen Schwartz 428f91b5fa New translations en-us.json (Turkish)
[ci skip]
2026-05-06 11:14:48 -07:00
Owen Schwartz caaae77f74 New translations en-us.json (Russian)
[ci skip]
2026-05-06 11:14:46 -07:00
Owen Schwartz 4df27b316c New translations en-us.json (Portuguese)
[ci skip]
2026-05-06 11:14:43 -07:00
Owen Schwartz 8f52a48937 New translations en-us.json (Polish)
[ci skip]
2026-05-06 11:14:41 -07:00
Owen Schwartz a53da85fb4 New translations en-us.json (Dutch)
[ci skip]
2026-05-06 11:14:39 -07:00
Owen Schwartz 08a5785cc5 New translations en-us.json (Korean)
[ci skip]
2026-05-06 11:14:37 -07:00
Owen Schwartz ff928b846d New translations en-us.json (Italian)
[ci skip]
2026-05-06 11:14:35 -07:00
Owen Schwartz 47b3d26d0e New translations en-us.json (German)
[ci skip]
2026-05-06 11:14:32 -07:00
Owen Schwartz 6270dce86a New translations en-us.json (Czech)
[ci skip]
2026-05-06 11:14:30 -07:00
Owen Schwartz 864d1d5cc4 New translations en-us.json (Bulgarian)
[ci skip]
2026-05-06 11:14:28 -07:00
Owen Schwartz b63eda64f4 New translations en-us.json (French)
[ci skip]
2026-05-06 11:14:26 -07:00
Owen Schwartz b8e942478d New translations en-us.json (Spanish)
[ci skip]
2026-05-06 11:09:41 -07:00
Owen Schwartz 6d9bfbf08f New translations en-us.json (Norwegian Bokmal)
[ci skip]
2026-05-06 11:09:39 -07:00
Owen Schwartz 35ce947e19 New translations en-us.json (Chinese Simplified)
[ci skip]
2026-05-06 11:09:37 -07:00
Owen Schwartz b17ba96235 New translations en-us.json (Turkish)
[ci skip]
2026-05-06 11:09:35 -07:00
Owen Schwartz f1bdb25497 New translations en-us.json (Russian)
[ci skip]
2026-05-06 11:09:33 -07:00
Owen Schwartz e11527b430 New translations en-us.json (Portuguese)
[ci skip]
2026-05-06 11:09:31 -07:00
Owen Schwartz 31d3b314e9 New translations en-us.json (Polish)
[ci skip]
2026-05-06 11:09:29 -07:00
Owen Schwartz 3bce57c65c New translations en-us.json (Dutch)
[ci skip]
2026-05-06 11:09:27 -07:00
Owen Schwartz d649a83535 New translations en-us.json (Korean)
[ci skip]
2026-05-06 11:09:25 -07:00
Owen Schwartz 3c6b1781bc New translations en-us.json (Italian)
[ci skip]
2026-05-06 11:09:23 -07:00
Owen Schwartz 7dd50f65fc New translations en-us.json (German)
[ci skip]
2026-05-06 11:09:20 -07:00
Owen Schwartz 342b4aeddf New translations en-us.json (Czech)
[ci skip]
2026-05-06 11:09:18 -07:00
Owen Schwartz 65908fa00f New translations en-us.json (Bulgarian)
[ci skip]
2026-05-06 11:09:16 -07:00
Owen Schwartz 223e0d0706 New translations en-us.json (French)
[ci skip]
2026-05-06 11:09:14 -07:00
Owen 5426031cd4 Remove duplicate ssl toggle 2026-05-06 11:05:08 -07:00
Owen adf4a1ffda Link to http private resources 2026-05-06 11:03:38 -07:00
Owen 780feba19c Translate the member page 2026-05-06 10:26:20 -07:00
Owen c4b3656fad Update UI to support additions on the resource 2026-05-06 10:09:05 -07:00
copilot-swe-agent[bot] 3ac315b52e Fix useEffect dependency array in create alert page
Agent-Logs-Url: https://github.com/fosrl/pangolin/sessions/4337e8e4-2110-45ae-bbf9-63f273d2a9a3

Co-authored-by: oschwartz10612 <4999704+oschwartz10612@users.noreply.github.com>
2026-05-06 16:55:38 +00:00
copilot-swe-agent[bot] 1b183d32c0 Hide alerting features when disable_enterprise_features is set
Agent-Logs-Url: https://github.com/fosrl/pangolin/sessions/4337e8e4-2110-45ae-bbf9-63f273d2a9a3

Co-authored-by: oschwartz10612 <4999704+oschwartz10612@users.noreply.github.com>
2026-05-06 16:54:58 +00:00
copilot-swe-agent[bot] 0c643e91a6 Initial plan 2026-05-06 16:52:05 +00:00
Owen 54c1dd3bae Make path the default 2026-05-05 21:05:42 -07:00
Owen a8f4d2b7d1 Add new user and role selectors for pagination 2026-05-05 20:53:36 -07:00
Owen fab53ba26a Dont show the link if not the org owner 2026-05-05 20:40:59 -07:00
Owen 62e19a2f4e Remove the hover effect 2026-05-05 20:10:14 -07:00
Owen 7d67fb9984 Make sure the domain is defined on a http resource 2026-05-05 20:07:06 -07:00
AstralDestiny 9f67134ce2 Update references of SSL alone to be TLS to align with proper wording and terms. 2026-05-05 21:30:36 -04:00
Owen 51f1693dbd Merge branch 'dev' into resource-policies 2026-05-05 18:02:27 -07:00
Owen Schwartz 7436aebca7 Merge pull request #2893 from Fredkiss3/feat/roles-and-user-multi-selectors
feat: roles & users selector
2026-05-05 17:36:40 -07:00
miloschwartz 66fda553e4 introduce caching in calculate func 2026-05-05 14:12:02 -07:00
Owen Schwartz 432dc81875 Merge pull request #3006 from fosrl/dev
don't await second calculate func
2026-05-05 13:46:05 -07:00
miloschwartz 2ecf076c0f don't await second calculate func 2026-05-05 12:37:52 -07:00
Fred KISSIE 0d04cc365f attach label to item 2026-05-05 21:35:10 +02:00
Owen Schwartz 9b71c426c7 Merge pull request #3005 from fosrl/dev
1.18.2-s.4
2026-05-05 12:12:09 -07:00
miloschwartz e06dda27cb dont wait rebuild 2026-05-05 12:10:55 -07:00
Fred KISSIE 09baf2f32e 🗃️ add sqlite table for labels 2026-05-05 21:08:22 +02:00
Fred KISSIE 3253d60900 🚧 Add CRUD endpoints and tables for labels 2026-05-05 20:53:16 +02:00
miloschwartz 18f6e0f75d add subscribed check back 2026-05-05 11:52:31 -07:00
miloschwartz 3b232bcc58 set orgId to undefined 2026-05-05 11:31:58 -07:00
Owen c575bb76e7 Fix only using acme.json in dir
Ref #2978
2026-05-05 11:11:43 -07:00
Owen Schwartz 87e6c7ba36 Merge pull request #3003 from fosrl/dev
1.18.2-s.3
2026-05-05 10:54:48 -07:00
Owen b33a6e6fac Wipe the old tables if you are using inline 2026-05-04 20:54:43 -07:00
Owen fc2c13a686 Add policies to blueprints 2026-05-04 20:44:04 -07:00
Owen f4602a120e Merge branch 'dev' into resource-policies 2026-05-04 17:57:09 -07:00
Owen c8e7e0ee1e WAL off default ENABLE_SQLITE_WAL_MODE to enable 2026-05-04 17:54:28 -07:00
Owen 7ccceeea0d Ignore extra sqlite files 2026-05-04 17:43:02 -07:00
Owen f81f78f294 Merge branch 'dev' into resource-policies 2026-05-04 17:41:49 -07:00
Owen 6cab223f12 Adjust verify session queries to use policies 2026-05-04 17:30:10 -07:00
Owen Schwartz 0e7aafd364 Merge pull request #2998 from Josh-Voyles/mem-fix-2
fix: deterministically finalize SQLite prepared statements to prevent native memory leak (#2120)
2026-05-04 17:29:45 -07:00
Owen 7b05c02508 Adjust translation 2026-05-04 16:19:04 -07:00
Owen 5922bfb1a0 Fix API endpoint action issues 2026-05-04 16:01:40 -07:00
Owen 43f2e32231 Paywall resource policies 2026-05-04 15:30:49 -07:00
Owen 20ebdc6289 Fix openapi zod issue error 2026-05-04 15:04:54 -07:00
Owen a80ae49a33 Support multiple roles 2026-05-04 14:54:20 -07:00
miloschwartz 91f1bae3e9 fix alignement in info sections 2026-05-04 14:51:17 -07:00
Owen 660197eef1 Merge branch 'feat/resource-policies' into resource-policies 2026-05-04 14:40:44 -07:00
miloschwartz 53c138ce3e use consistent button spacing 2026-05-04 14:34:32 -07:00
miloschwartz 969db14a3c remove delay in oidc validate 2026-05-04 13:14:35 -07:00
Fred KISSIE 1ca1059673 ♻️ 10 users/roles per page 2026-05-04 20:59:46 +02:00
Owen Schwartz 9410a18404 Merge pull request #2997 from fosrl/dev
Translations
2026-05-04 11:49:26 -07:00
Owen Schwartz c1c387bdd8 Merge pull request #2996 from fosrl/crowdin_dev
New Crowdin updates
2026-05-04 11:48:58 -07:00
Owen Schwartz 6e83d77a87 New translations en-us.json (Spanish)
[ci skip]
2026-05-04 11:48:00 -07:00
Owen Schwartz ba9a1efa4c New translations en-us.json (Norwegian Bokmal)
[ci skip]
2026-05-04 11:47:58 -07:00
Owen Schwartz 9e046b9608 New translations en-us.json (Chinese Simplified)
[ci skip]
2026-05-04 11:47:56 -07:00
Owen Schwartz 37794eb299 New translations en-us.json (Turkish)
[ci skip]
2026-05-04 11:47:55 -07:00
Owen Schwartz 4e66b0e74b New translations en-us.json (Russian)
[ci skip]
2026-05-04 11:47:53 -07:00
Owen Schwartz 44fa873977 New translations en-us.json (Portuguese)
[ci skip]
2026-05-04 11:47:51 -07:00
Owen Schwartz 505461a533 New translations en-us.json (Polish)
[ci skip]
2026-05-04 11:47:49 -07:00
Owen Schwartz a88c5b1428 New translations en-us.json (Dutch)
[ci skip]
2026-05-04 11:47:47 -07:00
Owen Schwartz 97ef1d605c New translations en-us.json (Korean)
[ci skip]
2026-05-04 11:47:45 -07:00
Owen Schwartz 3fc1c9d948 New translations en-us.json (Italian)
[ci skip]
2026-05-04 11:47:44 -07:00
Owen Schwartz 68bd37ab6c New translations en-us.json (German)
[ci skip]
2026-05-04 11:47:42 -07:00
Owen Schwartz 5c317c535b New translations en-us.json (Czech)
[ci skip]
2026-05-04 11:47:40 -07:00
Owen Schwartz 37c6b11899 New translations en-us.json (Bulgarian)
[ci skip]
2026-05-04 11:47:38 -07:00
Owen Schwartz 45c567ffa0 New translations en-us.json (French)
[ci skip]
2026-05-04 11:47:36 -07:00
Fred KISSIE 49d22498fc ♻️ only select one role in CE and if user is non paying 2026-05-04 20:47:00 +02:00
Owen Schwartz 23f4302186 Merge pull request #2995 from fosrl/dev
1.18.2-s.2
2026-05-04 11:43:24 -07:00
Owen Schwartz 775ea64b55 Merge pull request #2977 from fosrl/newt-install-commands
fix(newt): update Helm install credentials and client flag handling
2026-05-04 11:40:19 -07:00
Owen 64ad7641af Add migration
Fixes #2968
Fixes #2990
2026-05-04 11:35:07 -07:00
Fred KISSIE 81274960f6 🚧 refactor 2026-05-04 20:22:16 +02:00
Owen d724f5bb5d Add missing redirects and threshold to api
Fixes #2987
2026-05-04 10:46:11 -07:00
Fred KISSIE 30e627cca8 Merge branch 'dev' into feat/roles-and-user-multi-selectors 2026-05-04 18:49:19 +02:00
Fred KISSIE 53c1e2e742 ♻️ refactor 2026-05-04 18:45:31 +02:00
Owen Schwartz fb4bda077b Merge pull request #2983 from fosrl/dev
1.18.2-s.1
2026-05-03 14:59:12 -07:00
Owen d4f7c4a9c4 Merge branch 'dev' of github.com:fosrl/pangolin into dev 2026-05-03 14:46:59 -07:00
miloschwartz 1cc0e9b689 consolidate org idps in login form 2026-05-03 14:46:48 -07:00
Owen 584be4dbd2 Add badge 2026-05-03 14:45:42 -07:00
Owen c33e295ce7 Add a banner showing that you are on a trial 2026-05-03 14:42:43 -07:00
Owen 1a926a7127 Handle trial limit lifecycle 2026-05-03 14:31:05 -07:00
miloschwartz eb515a8f7f consolidate orgidps in import list 2026-05-03 14:16:36 -07:00
Owen 81b8a8a9e3 Fix ns cert generation 2026-05-03 12:29:48 -07:00
Owen bcd164219f Try to speed up 2026-05-03 12:29:48 -07:00
Owen Schwartz c90e405105 Merge pull request #2843 from Blacks-Army/dev
Exclude local/private/CGNAT IPs from geo-block rules (fixes  issue #2239)
2026-05-03 11:19:36 -07:00
rinseaid 4786fc3a31 Auto-create roles referenced in blueprints
When a blueprint references a role that doesn't exist, create it
automatically with default permissions (getOrg, getResource,
listResources) instead of throwing an error or silently dropping
the association.
2026-05-03 13:37:47 -04:00
Mustafa b2c8311b26 Merge branch 'fosrl:dev' into dev 2026-05-03 18:53:48 +02:00
Josh Voyles 2154811ffb removed possible introduced HA Redis bug; improved comment 2026-05-03 09:39:27 -04:00
Marc Schäfer 1772ac220f fix(newt): update Helm install credentials and client flag handling
Use a Kubernetes Secret for Newt Helm chart credentials and configure the chart
with auth.existingSecretName instead of passing credential values through
auth.keys.*.

Add Helm-specific acceptClients handling so the generated Kubernetes command sets
newtInstances[0].acceptClients=true when client connections are enabled.
2026-05-03 15:07:42 +02:00
Josh Voyles 9bd33072f4 cleaned comments - more concise 2026-05-03 00:00:11 -04:00
Owen Schwartz cf596d980f Merge pull request #2971 from fosrl/dev
1.18.2
2026-05-02 20:59:51 -07:00
Owen Schwartz 70f619b726 Merge pull request #2970 from fosrl/crowdin_dev
New Crowdin updates
2026-05-02 20:59:16 -07:00
Owen Schwartz 7743e3890b New translations en-us.json (Spanish)
[ci skip]
2026-05-02 20:57:57 -07:00
Owen Schwartz d8df250555 New translations en-us.json (Norwegian Bokmal)
[ci skip]
2026-05-02 20:57:55 -07:00
Owen Schwartz 45c9f217c6 New translations en-us.json (Chinese Simplified)
[ci skip]
2026-05-02 20:57:54 -07:00
Owen Schwartz 8371692cc5 New translations en-us.json (Turkish)
[ci skip]
2026-05-02 20:57:52 -07:00
Owen Schwartz 5377dc7a1c New translations en-us.json (Russian)
[ci skip]
2026-05-02 20:57:51 -07:00
Owen Schwartz 02649468e0 New translations en-us.json (Portuguese)
[ci skip]
2026-05-02 20:57:49 -07:00
Owen Schwartz c5ef00fb0e New translations en-us.json (Polish)
[ci skip]
2026-05-02 20:57:48 -07:00
Owen Schwartz 6f4325e9a0 New translations en-us.json (Dutch)
[ci skip]
2026-05-02 20:57:45 -07:00
Owen Schwartz a2a031dfe7 New translations en-us.json (Korean)
[ci skip]
2026-05-02 20:57:44 -07:00
Owen Schwartz e34a4c82eb New translations en-us.json (Italian)
[ci skip]
2026-05-02 20:57:42 -07:00
Owen Schwartz 52fd7df727 New translations en-us.json (German)
[ci skip]
2026-05-02 20:57:41 -07:00
Owen Schwartz d5f08437d7 New translations en-us.json (Czech)
[ci skip]
2026-05-02 20:57:39 -07:00
Owen Schwartz 9ee07ba343 New translations en-us.json (Bulgarian)
[ci skip]
2026-05-02 20:57:38 -07:00
Owen Schwartz 4baaa5fc14 New translations en-us.json (French)
[ci skip]
2026-05-02 20:57:36 -07:00
Owen 61de100630 Fix imports 2026-05-02 20:46:52 -07:00
miloschwartz 3694f43ae8 dont early return on multi org 2026-05-02 20:38:14 -07:00
Owen 279211142d Bump version 2026-05-02 13:48:25 -07:00
Owen b8822b4d25 Fix CE not processing alert status
Fixes #2968
2026-05-02 13:38:05 -07:00
Josh Voyles 0655ba9423 fix: revert investigative changes, keep root cause fixes only
Reverts diagnostic instrumentation and defensive hardening added during
memory leak investigation. Only root cause fixes survive.

Root causes fixed:
- SQLite driver: auto-finalize wrapper + PRAGMAs
- WS routers: delete clientConfigVersions on disconnect (unbounded Map leak)
- WS private router: same + Redis key cleanup

Reverted:
- Memory monitor, rate limiting, request timeouts (diagnostic/hardening)
- shutdownAuditLogger wiring, audit re-queue change, debug logs (cleanup/secondary)
- package-lock.json drift
2026-05-02 16:33:13 -04:00
Owen e1afbc226c Allow configuring the webhook body 2026-05-02 13:26:54 -07:00
miloschwartz 96c450fd08 update private resources screenshot 2026-05-02 13:19:00 -07:00
Owen Schwartz 587e4d104b New translations en-us.json (Spanish)
[ci skip]
2026-05-02 13:16:28 -07:00
Owen Schwartz 368c5c374f New translations en-us.json (Norwegian Bokmal)
[ci skip]
2026-05-02 13:16:26 -07:00
Owen Schwartz 7675b6409c New translations en-us.json (Chinese Simplified)
[ci skip]
2026-05-02 13:16:24 -07:00
Owen Schwartz d31da1a41e New translations en-us.json (Turkish)
[ci skip]
2026-05-02 13:16:23 -07:00
Owen Schwartz 49e259e259 New translations en-us.json (Russian)
[ci skip]
2026-05-02 13:16:21 -07:00
Owen Schwartz f4684c1858 New translations en-us.json (Portuguese)
[ci skip]
2026-05-02 13:16:19 -07:00
Owen Schwartz 6e223bb363 New translations en-us.json (Polish)
[ci skip]
2026-05-02 13:16:18 -07:00
Owen Schwartz 22e7038b2c New translations en-us.json (Dutch)
[ci skip]
2026-05-02 13:16:16 -07:00
Owen Schwartz 76ba4c1fdf New translations en-us.json (Korean)
[ci skip]
2026-05-02 13:16:14 -07:00
Owen Schwartz 7f25d94a83 New translations en-us.json (Italian)
[ci skip]
2026-05-02 13:16:13 -07:00
Owen Schwartz 769ba27e3a New translations en-us.json (German)
[ci skip]
2026-05-02 13:16:11 -07:00
Owen Schwartz a188552ba0 New translations en-us.json (Czech)
[ci skip]
2026-05-02 13:16:09 -07:00
Owen Schwartz 208132082e New translations en-us.json (Bulgarian)
[ci skip]
2026-05-02 13:16:08 -07:00
Owen Schwartz fcd5789221 New translations en-us.json (French)
[ci skip]
2026-05-02 13:16:06 -07:00
Josh Voyles 2c85bcd06b fix(db): deterministically finalize prepared statements after execution
Wrap Statement .all()/.get()/.run() via autoFinalizeStatement() with
try/finally calling stmt.finalize() post-execution, releasing native
sqlite3_stmt memory immediately instead of waiting for GC.

Safe because:
- Drizzle one-time queries invoke each statement once only
- Drizzle does not access statement after .all()/.get()/.run() returns
- Migration scripts use isolated new Database() instances (unpatched)
- No app code holds persistent .prepare() refs on main db
2026-05-02 15:50:54 -04:00
miloschwartz c6a8b09cff log in page improvements 2026-05-02 12:46:39 -07:00
miloschwartz 380ff381fc fix credenza scroll extra spacing above footer 2026-05-02 12:19:00 -07:00
Owen Schwartz 5eb3951f00 New translations en-us.json (Spanish)
[ci skip]
2026-05-02 12:13:08 -07:00
Owen Schwartz c30e94da98 New translations en-us.json (Norwegian Bokmal)
[ci skip]
2026-05-02 12:13:06 -07:00
Owen Schwartz 6ca24d51a1 New translations en-us.json (Chinese Simplified)
[ci skip]
2026-05-02 12:13:05 -07:00
Owen Schwartz 13f512aed6 New translations en-us.json (Turkish)
[ci skip]
2026-05-02 12:13:03 -07:00
Owen Schwartz 2bdbc9d688 New translations en-us.json (Russian)
[ci skip]
2026-05-02 12:13:02 -07:00
Owen Schwartz 8e2f30d8de New translations en-us.json (Portuguese)
[ci skip]
2026-05-02 12:13:00 -07:00
Owen Schwartz a84e1cc9e0 New translations en-us.json (Polish)
[ci skip]
2026-05-02 12:12:58 -07:00
Owen Schwartz 6b28f0c81e New translations en-us.json (Dutch)
[ci skip]
2026-05-02 12:12:56 -07:00
Owen Schwartz d28d3ba6ea New translations en-us.json (Korean)
[ci skip]
2026-05-02 12:12:55 -07:00
Owen Schwartz 6efaf9f40d New translations en-us.json (Italian)
[ci skip]
2026-05-02 12:12:53 -07:00
Owen Schwartz 5379b32959 New translations en-us.json (German)
[ci skip]
2026-05-02 12:12:51 -07:00
Owen Schwartz 9bb936a40d New translations en-us.json (Czech)
[ci skip]
2026-05-02 12:12:50 -07:00
Owen Schwartz 960fe760f1 New translations en-us.json (Bulgarian)
[ci skip]
2026-05-02 12:12:48 -07:00
Owen Schwartz 2f2105a085 New translations en-us.json (French)
[ci skip]
2026-05-02 12:12:46 -07:00
miloschwartz de92a28435 update mac models 2026-05-02 12:09:55 -07:00
Owen d8c3484ed5 Have to import from private 2026-05-02 12:00:51 -07:00
Owen 726e000154 Show remote nodes update in table 2026-05-02 11:55:01 -07:00
Josh Voyles d6abe83fdc fix: memory improvements
- SQLite: enable WAL mode and PRAGMA performance settings

- ws.ts (public + private): fix clientConfigVersions memory leak

- internal server: add rate limiting and request timeouts

- audit log: fix flush re-queue feedback loop

- memory: add monitoring instrumentation

- security: remove debug log of full request body
2026-05-02 07:37:18 -04:00
Owen Schwartz 9df46f7014 Merge pull request #2966 from fosrl/dev
Try to pull domains from host regex
2026-05-01 20:54:09 -07:00
Owen 908f0d54e2 Try to pull domains from host regex 2026-05-01 20:53:39 -07:00
Milo Schwartz f0010ea12a Merge pull request #2965 from fosrl/dev
add new screenshots
2026-05-01 17:35:29 -07:00
miloschwartz cab8be1a9a add new screenshots 2026-05-01 17:34:05 -07:00
Owen Schwartz 0a9dab7cca Merge pull request #2964 from fosrl/dev
Update translations
2026-05-01 17:02:41 -07:00
Owen Schwartz 889ab1f8a8 Merge pull request #2963 from fosrl/crowdin_dev
New Crowdin updates
2026-05-01 17:02:10 -07:00
Owen Schwartz a9019cfb23 New translations en-us.json (Spanish)
[ci skip]
2026-05-01 17:00:49 -07:00
Owen Schwartz 441d4bce6e New translations en-us.json (Norwegian Bokmal)
[ci skip]
2026-05-01 17:00:47 -07:00
Owen Schwartz dd1e681a9c New translations en-us.json (Chinese Simplified)
[ci skip]
2026-05-01 17:00:45 -07:00
Owen Schwartz a882619eaf New translations en-us.json (Turkish)
[ci skip]
2026-05-01 17:00:43 -07:00
Owen Schwartz f43baaaf1f New translations en-us.json (Russian)
[ci skip]
2026-05-01 17:00:41 -07:00
Owen Schwartz c3dc0bd015 New translations en-us.json (Portuguese)
[ci skip]
2026-05-01 17:00:39 -07:00
Owen Schwartz 1fd2a0fae2 New translations en-us.json (Polish)
[ci skip]
2026-05-01 17:00:37 -07:00
Owen Schwartz 8ba5b43569 New translations en-us.json (Dutch)
[ci skip]
2026-05-01 17:00:35 -07:00
Owen Schwartz 6deefcd003 New translations en-us.json (Korean)
[ci skip]
2026-05-01 17:00:33 -07:00
Owen Schwartz 4d6cea5fcd New translations en-us.json (Italian)
[ci skip]
2026-05-01 17:00:31 -07:00
Owen Schwartz f175ac774f New translations en-us.json (German)
[ci skip]
2026-05-01 17:00:29 -07:00
Owen Schwartz 0fe2b24f6b New translations en-us.json (Czech)
[ci skip]
2026-05-01 17:00:27 -07:00
Owen Schwartz 6ad06e6faf New translations en-us.json (Bulgarian)
[ci skip]
2026-05-01 17:00:25 -07:00
Owen Schwartz d47faeced1 New translations en-us.json (French)
[ci skip]
2026-05-01 17:00:23 -07:00
Owen Schwartz 498f586eeb New translations en-us.json (Spanish)
[ci skip]
2026-05-01 16:57:38 -07:00
Owen Schwartz e94fc6bc65 New translations en-us.json (Norwegian Bokmal)
[ci skip]
2026-05-01 16:57:37 -07:00
Owen Schwartz 0a1fe1b725 New translations en-us.json (Chinese Simplified)
[ci skip]
2026-05-01 16:57:35 -07:00
Owen Schwartz eb40b04b43 New translations en-us.json (Turkish)
[ci skip]
2026-05-01 16:57:33 -07:00
Owen Schwartz 6685afdcf9 New translations en-us.json (Russian)
[ci skip]
2026-05-01 16:57:32 -07:00
Owen Schwartz 49232e32bf New translations en-us.json (Portuguese)
[ci skip]
2026-05-01 16:57:30 -07:00
Owen Schwartz aec0aed211 New translations en-us.json (Polish)
[ci skip]
2026-05-01 16:57:28 -07:00
Owen Schwartz d43b3176f5 New translations en-us.json (Dutch)
[ci skip]
2026-05-01 16:57:26 -07:00
Owen Schwartz 190074ea0c New translations en-us.json (Korean)
[ci skip]
2026-05-01 16:57:24 -07:00
Owen Schwartz c5a7719239 New translations en-us.json (Italian)
[ci skip]
2026-05-01 16:57:22 -07:00
Owen Schwartz 5eac131d2e New translations en-us.json (German)
[ci skip]
2026-05-01 16:57:21 -07:00
Owen Schwartz 0bc3276ee2 New translations en-us.json (Czech)
[ci skip]
2026-05-01 16:57:18 -07:00
Owen Schwartz 5073507b90 New translations en-us.json (Bulgarian)
[ci skip]
2026-05-01 16:57:16 -07:00
Owen Schwartz 805e6f856a New translations en-us.json (French)
[ci skip]
2026-05-01 16:57:14 -07:00
Owen Schwartz 412a9b5294 Merge pull request #2962 from fosrl/dev
1.18.1-s.6
2026-05-01 16:54:37 -07:00
Owen fbf95c5363 Start creating ns one level down 2026-05-01 16:51:42 -07:00
Owen b907850344 Add missing heading 2026-05-01 16:51:42 -07:00
miloschwartz 22116373e3 increase target site selector width 2026-05-01 16:33:40 -07:00
miloschwartz 9757c3d8b6 show newt version on site 2026-05-01 16:26:45 -07:00
miloschwartz f8b85d4b4e fix sidebar product updates spacing 2026-05-01 16:14:06 -07:00
Owen 4651f19c53 Support acme_json_path as a directory of acme file
Fixes #2961
2026-05-01 16:06:37 -07:00
Owen 4524bdc094 Add http cert syncing for use with the controller 2026-05-01 15:42:38 -07:00
Owen Schwartz 741850880e Merge pull request #2959 from fosrl/dev
1.18.1-s.4
2026-05-01 15:05:59 -07:00
Owen 53e096f7cb Allow deleting account with trial 2026-05-01 15:01:48 -07:00
Owen 3dfd7e8a43 Update limits 2026-05-01 11:47:14 -07:00
Owen db6e60d0a3 Adjust language 2026-05-01 10:48:09 -07:00
Owen 54d2d689c1 Run messaging for delete in the background as well 2026-04-30 14:38:03 -07:00
Owen Schwartz bb5853827b Merge pull request #2948 from fosrl/dev
1.18.1-s.3
2026-04-30 14:11:16 -07:00
Owen 68f5512732 Handle messaging in the background; dont time out 2026-04-30 14:00:32 -07:00
Fred KISSIE 657072dd17 💄 fix input styles for tags 2026-04-30 22:06:36 +02:00
Fred KISSIE 443a19165f ♻️ refactor 2026-04-30 22:02:23 +02:00
Fred KISSIE b4906ec9ba ♻️ replace roles tag with roles selector in role config fields 2026-04-30 22:01:46 +02:00
Owen 416e124c02 Rotate the secret on the new things using it 2026-04-30 11:53:55 -07:00
Owen d3e4d8cda8 Fix pr blueprints not picking up site 2026-04-30 11:39:37 -07:00
Owen 81972dbb73 Add name to migration
Fixes #2943
2026-04-30 10:56:12 -07:00
Fred KISSIE 39bf64bc35 Merge branch 'dev' into feat/roles-and-user-multi-selectors 2026-04-30 16:55:25 +02:00
Owen Schwartz b715786a1e Merge pull request #2939 from fosrl/dev
1.18.1-s.2
2026-04-29 21:33:03 -07:00
Owen ae24eb2d2c Disable the alerts and hc when downgrading 2026-04-29 21:31:02 -07:00
Owen 20fc59dcda Delete trial when upgrading 2026-04-29 21:25:58 -07:00
Owen 93b09de425 Adjust cloud api endpoints 2026-04-29 21:04:11 -07:00
Owen bacc130453 Clean up sign and verify 2026-04-29 17:14:22 -07:00
Owen Schwartz 79541ec7b8 Merge pull request #2936 from fosrl/dev
1.18.1 patch over
2026-04-29 16:43:06 -07:00
Owen 81197f8a86 Update the database if the wildcard changes 2026-04-29 16:42:10 -07:00
miloschwartz dcfc7822f4 hide cert in public resources col on oss 2026-04-29 16:03:59 -07:00
Owen Schwartz 269bd9aa0f Merge pull request #2934 from fosrl/dev
1.18.1-s.1
2026-04-29 15:18:28 -07:00
Owen 0a0817b860 Restrict alerting 2026-04-29 15:15:53 -07:00
Owen Schwartz b7a903ab32 Merge pull request #2933 from fosrl/dev
1.18.1
2026-04-29 15:00:29 -07:00
Owen Schwartz ab60438aa7 Merge pull request #2917 from fosrl/crowdin_dev
New Crowdin updates
2026-04-29 14:55:53 -07:00
Owen Schwartz b9f3f90de6 New translations en-us.json (Spanish)
[ci skip]
2026-04-29 14:54:32 -07:00
Owen Schwartz b53cc397be New translations en-us.json (Norwegian Bokmal)
[ci skip]
2026-04-29 14:54:30 -07:00
Owen Schwartz 994fb456c2 New translations en-us.json (Chinese Simplified)
[ci skip]
2026-04-29 14:54:29 -07:00
Owen Schwartz b36927c7a0 New translations en-us.json (Turkish)
[ci skip]
2026-04-29 14:54:27 -07:00
Owen Schwartz 1c57473b6d New translations en-us.json (Russian)
[ci skip]
2026-04-29 14:54:25 -07:00
Owen Schwartz c02c3eaa4a New translations en-us.json (Portuguese)
[ci skip]
2026-04-29 14:54:23 -07:00
Owen Schwartz 3c265ee577 New translations en-us.json (Polish)
[ci skip]
2026-04-29 14:54:22 -07:00
Owen Schwartz 98dfd05f06 New translations en-us.json (Dutch)
[ci skip]
2026-04-29 14:54:20 -07:00
Owen Schwartz faa2e97530 New translations en-us.json (Korean)
[ci skip]
2026-04-29 14:54:18 -07:00
Owen Schwartz 175f10a51d New translations en-us.json (Italian)
[ci skip]
2026-04-29 14:54:16 -07:00
Owen Schwartz 6284930fce New translations en-us.json (German)
[ci skip]
2026-04-29 14:54:15 -07:00
Owen Schwartz 6c93aca444 New translations en-us.json (Czech)
[ci skip]
2026-04-29 14:54:13 -07:00
Owen Schwartz d83318cbfc New translations en-us.json (Bulgarian)
[ci skip]
2026-04-29 14:54:11 -07:00
Owen Schwartz 143f362a48 New translations en-us.json (French)
[ci skip]
2026-04-29 14:54:09 -07:00
miloschwartz 698cd868a8 show cert status in public reosurces table 2026-04-29 14:47:34 -07:00
Owen a55842ffff Scrape certs from ALL resolvers 2026-04-29 14:29:15 -07:00
Owen 2ffe254879 Dont include site resources on the cloud 2026-04-29 14:08:42 -07:00
miloschwartz e173f59d89 visual improvements 2026-04-29 13:44:35 -07:00
miloschwartz d3870f4920 cert status in priv resources table first pass 2026-04-29 13:05:26 -07:00
miloschwartz 227501d8f8 fix rounded buttons in target input 2026-04-29 12:39:08 -07:00
miloschwartz a16f805709 fix style for unknown status 2026-04-29 12:36:47 -07:00
miloschwartz a029b107ae dont show site online status for local sites 2026-04-29 12:35:08 -07:00
miloschwartz f03389a9a0 fix cert styling 2026-04-29 12:18:52 -07:00
Owen 78fff6bfde Filter to only allow newt sites 2026-04-29 12:18:28 -07:00
Owen bc585c24fc Calculate actual resource status
Fixes #2930
2026-04-29 12:07:32 -07:00
miloschwartz 0f6c66dc67 use localfont and updated mona sans closes #2924 2026-04-29 11:58:06 -07:00
Owen 6be150bafe Handle possible not null for tcp, udp, and icmp
Fixes #2929
2026-04-29 11:42:18 -07:00
Owen 1eac7741a5 Show the certs elsewhere when required 2026-04-29 11:34:10 -07:00
Owen b8ca0499af Dont show the cert box oss and dont check license 2026-04-29 11:28:30 -07:00
Owen b39a2bcfb1 Quiet logs 2026-04-29 11:25:43 -07:00
Owen d45b727dca Dont show cert status because not saved yet 2026-04-29 11:06:14 -07:00
Owen 5c31d35e28 Handle sans in the acme.json 2026-04-29 10:59:49 -07:00
Owen 8c645315f3 Handle when siteIds is not provided 2026-04-29 10:59:36 -07:00
Milo Schwartz ab6377e086 Merge pull request #2923 from fosrl/miloschwartz-patch-2
Update README.md
2026-04-28 23:03:31 -07:00
Milo Schwartz 8685cf4208 Update README.md 2026-04-29 02:03:18 -04:00
Fred KISSIE a3f30eff02 ♻️ remove unused code and imports 2026-04-29 07:29:20 +02:00
Fred KISSIE 081940dff8 replace roles & users in uptime alert section 2026-04-29 07:29:05 +02:00
Owen Schwartz 26fe1259da Merge pull request #2922 from fosrl/dev
1.18.0-s.2
2026-04-28 22:28:35 -07:00
Owen 3bcbeb24f3 Query the right column 2026-04-28 22:27:35 -07:00
Owen 1d0a92c83e Its in the transaction so we wait 2026-04-28 22:22:06 -07:00
Owen a44100c2bd Handle deleting client and orphaning resources 2026-04-28 22:19:22 -07:00
Fred KISSIE c4cf4cdec4 ♻️ show idp name in user selector 2026-04-29 06:57:49 +02:00
miloschwartz 2203ebf723 show user idp in devices 2026-04-28 21:27:11 -07:00
Owen Schwartz 70958185bd Merge pull request #2921 from fosrl/dev
1.18.0-s.1
2026-04-28 21:03:36 -07:00
Owen 7e374baee9 Update if the ssl toggle changes 2026-04-28 20:45:20 -07:00
Owen 4cf6ca1d55 Force tcp and udp ports when http mode 2026-04-28 20:27:27 -07:00
Fred KISSIE 85f2165a1e ♻️ refactor multi select components 2026-04-29 05:19:36 +02:00
Fred KISSIE 1bc7175dd4 replace user select in resource auth and alert rule field 2026-04-29 05:19:23 +02:00
Owen Schwartz 2957d6592d Merge pull request #2919 from fosrl/dev
Add missing imports
2026-04-28 16:52:53 -07:00
Owen de2a22aad8 Add missing imports 2026-04-28 16:52:35 -07:00
Owen Schwartz b96db4f133 Merge pull request #2918 from fosrl/dev
Use logsDb for the status history
2026-04-28 16:38:43 -07:00
Owen 2a29062659 Use logsDb for the status history 2026-04-28 16:38:13 -07:00
Owen Schwartz 8ed9adbfae New translations en-us.json (German)
[ci skip]
2026-04-28 16:21:16 -07:00
Owen Schwartz 98406f63af Merge pull request #2916 from fosrl/dev
1.18.0
2026-04-28 15:53:31 -07:00
Owen 85415176ab Clean imports 2026-04-28 15:41:00 -07:00
Owen b81ae3d998 Seed satatus data for resources, sites, and hc 2026-04-28 15:15:09 -07:00
Owen 208289f498 Select all networks to prevent delete issues 2026-04-28 12:02:21 -07:00
Owen 8783c47a3c Dont allow clicking the wildcard resource link 2026-04-28 11:21:32 -07:00
Owen 592ca64253 Fix delete 2026-04-28 09:57:46 -07:00
Owen Schwartz 1de6e58eef Merge pull request #2912 from fosrl/crowdin_dev
New Crowdin updates
2026-04-27 21:23:34 -07:00
Owen Schwartz 92822a20e8 New translations en-us.json (Spanish) 2026-04-27 20:25:22 -07:00
Owen Schwartz 4a3035d597 New translations en-us.json (Norwegian Bokmal) 2026-04-27 20:25:20 -07:00
Owen Schwartz bd866a5fd2 New translations en-us.json (Chinese Simplified) 2026-04-27 20:25:18 -07:00
Owen Schwartz 1c6cd57c31 New translations en-us.json (Turkish) 2026-04-27 20:25:16 -07:00
Owen Schwartz a0619868be New translations en-us.json (Russian) 2026-04-27 20:25:15 -07:00
Owen Schwartz 6c2dd4331a New translations en-us.json (Portuguese) 2026-04-27 20:25:13 -07:00
Owen Schwartz 5e6171263b New translations en-us.json (Polish) 2026-04-27 20:25:11 -07:00
Owen Schwartz d33c704f76 New translations en-us.json (Dutch) 2026-04-27 20:25:09 -07:00
Owen Schwartz 3cb1cd9f2f New translations en-us.json (Korean) 2026-04-27 20:25:07 -07:00
Owen Schwartz 926fe5e474 New translations en-us.json (Italian) 2026-04-27 20:25:06 -07:00
Owen Schwartz 243da6379b New translations en-us.json (German) 2026-04-27 20:25:04 -07:00
Owen Schwartz 68ea7d1d98 New translations en-us.json (Czech) 2026-04-27 20:25:02 -07:00
Owen Schwartz c0a4541455 New translations en-us.json (Bulgarian) 2026-04-27 20:25:00 -07:00
Owen Schwartz e4bf2da2e5 New translations en-us.json (French) 2026-04-27 20:24:58 -07:00
Fred KISSIE ddaa9c32a7 ♻️ replace roles & user selectors in machines & create user 2026-04-28 05:08:20 +02:00
Owen 85334f082c Only support alerts and newt sync on saas 2026-04-27 18:20:30 -07:00
Owen c771722127 Dont include rewrite to 2026-04-27 17:52:41 -07:00
Owen f89b0a17ac Set the default to unknown 2026-04-27 17:15:44 -07:00
Owen 81a6fb8d00 Dont import from postgres 2026-04-27 17:04:04 -07:00
Owen dbee049ac8 Fix oss build issues 2026-04-27 16:30:54 -07:00
Owen c03519b7f5 Send updates when the full domain changes 2026-04-27 16:19:37 -07:00
Owen 7affaf63d0 Update get cert to now allow restarting 2026-04-27 16:19:37 -07:00
Owen 08e9cb862d Fix deleting resource 2026-04-27 16:19:36 -07:00
miloschwartz cbb2388a46 add multi site help link 2026-04-27 15:38:19 -07:00
Owen 24f437e260 Cap degraded in the mail 2026-04-27 15:24:16 -07:00
Owen 3439a3690f Fix site offline not respecting hc enabled 2026-04-27 15:24:16 -07:00
Owen b88469f901 Hide the icmp and snmp for now 2026-04-27 15:24:16 -07:00
miloschwartz e573125934 update wildcard resources link 2026-04-27 15:14:29 -07:00
Owen c5072bed80 Fix healthcheck not showing data 2026-04-27 14:33:28 -07:00
Owen 28dd06c41f Add caching to the hc and fix resource stuff 2026-04-27 14:29:57 -07:00
Owen 61aaa5a832 Wrap in transactions 2026-04-27 13:46:15 -07:00
Owen 512ba2150b Fix sanitizing the domain causing problems 2026-04-27 13:46:15 -07:00
Owen d1f7a9c6df Add health to the resource 2026-04-27 13:46:15 -07:00
miloschwartz 1cdb261f7e add loading indicator to resources 2026-04-27 12:31:31 -07:00
Owen 17631599a2 Remove delay 2026-04-26 21:25:53 -07:00
Owen 7563b37cd0 Add missing health column 2026-04-26 21:25:14 -07:00
Owen 7318c86cca Fix display and query issues 2026-04-26 20:33:58 -07:00
Owen 467cd70b72 Handle delete correctly 2026-04-26 20:26:03 -07:00
dependabot[bot] f286d66cbc Bump actions/setup-node from 6.3.0 to 6.4.0
Bumps [actions/setup-node](https://github.com/actions/setup-node) from 6.3.0 to 6.4.0.
- [Release notes](https://github.com/actions/setup-node/releases)
- [Commits](https://github.com/actions/setup-node/compare/53b83947a5a98c8d113130e565377fae1a50d02f...48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e)

---
updated-dependencies:
- dependency-name: actions/setup-node
  dependency-version: 6.4.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-04-27 01:36:02 +00:00
Owen 8ca72a39da Handle deleting targets 2026-04-26 17:55:26 -07:00
Owen 4ff811c5bd Use http by default 2026-04-26 17:38:24 -07:00
Owen ca2370e31d Add logging when manually changing the hc status 2026-04-26 17:29:20 -07:00
miloschwartz 06af53c4d6 increase refresh rate 2026-04-26 16:57:10 -07:00
miloschwartz 6befdfe01e improve cert restart button style 2026-04-26 16:50:52 -07:00
Owen 5695137280 Dont create alerts with 300 second cooldowns 2026-04-26 16:43:28 -07:00
miloschwartz e2e0936f43 improve cert status style 2026-04-26 11:27:53 -07:00
miloschwartz 32d8bde96d adjust wildcard placeholder 2026-04-26 11:15:23 -07:00
miloschwartz f24f867684 add hyphens to random blueprint name 2026-04-26 11:11:31 -07:00
miloschwartz 491636851f Merge branch 'dev' of https://github.com/fosrl/pangolin into dev 2026-04-26 10:23:36 -07:00
Owen bf1870608b Exclude wildcard resources 2026-04-25 15:51:39 -07:00
miloschwartz 6f6c24b6df use semibold 2026-04-25 15:42:19 -07:00
Owen 7c7d1f641e Support unknown and degraded status 2026-04-25 15:34:04 -07:00
Owen 82212af643 Add resource degraded 2026-04-25 15:34:04 -07:00
miloschwartz 8e16ff07a9 move switch toggle above tabs on health check dialog 2026-04-25 15:23:22 -07:00
miloschwartz 56816c7584 change column order on sites table 2026-04-25 15:17:39 -07:00
miloschwartz 477712b73c show site resources 2026-04-25 15:08:08 -07:00
Fred KISSIE 27b2ec309d 🚧 users selector 2026-04-25 06:18:13 +02:00
Fred KISSIE 91ce8bea4b 🔨 add local mailer for catching emails 2026-04-25 05:59:43 +02:00
Fred KISSIE 2ea9d27237 machine selector 2026-04-25 05:26:41 +02:00
Fred KISSIE 95cbaaae21 new multi select tag input 2026-04-25 04:47:31 +02:00
Fred KISSIE 955aa41f53 revert changes modifying existing tag input 2026-04-25 04:47:17 +02:00
Fred KISSIE cb3fa028c3 ♻️ create custom autocomplete tag input 2026-04-25 04:10:54 +02:00
Owen ecacb26445 Merge branch 'dev' of github.com:fosrl/pangolin into dev 2026-04-24 17:32:28 -07:00
Owen cca7cea2f1 Handeling the different health status 2026-04-24 17:30:54 -07:00
miloschwartz 07154d2a16 add links to view resources on site 2026-04-24 17:07:11 -07:00
miloschwartz b509c8aeec dont distribute info section cols 2026-04-24 16:57:53 -07:00
miloschwartz a2c76cbb24 set standard filter popover width 2026-04-24 16:44:57 -07:00
miloschwartz 960ada4d66 add site column and filter to public resources 2026-04-24 16:24:26 -07:00
Owen 34296e5f40 Fix health check status 2026-04-24 16:19:35 -07:00
miloschwartz 33f1662c91 support site filter in private resources table 2026-04-24 16:12:15 -07:00
Owen 29f26021df Add the right pending record 2026-04-24 16:07:44 -07:00
Owen 15f02cf79a Quiet up messages 2026-04-24 16:06:19 -07:00
Owen 2a5d836747 Fix gear icon 2026-04-24 16:06:04 -07:00
Owen 593a7fdd69 Merge branch 'dev' of github.com:fosrl/pangolin into dev 2026-04-24 15:13:25 -07:00
miloschwartz 99f9b68efe fix full sudo mode calculation 2026-04-24 14:53:11 -07:00
miloschwartz 9655f119a5 fix text 2026-04-24 13:47:54 -07:00
Owen 48ddc700a0 Catch the domains the right way 2026-04-24 13:40:31 -07:00
Owen 0473d5f639 Get the cert correctly 2026-04-24 12:18:50 -07:00
Owen 537f9ae66b Always update the domain even if wildcard changes 2026-04-24 12:14:06 -07:00
Owen d08f276794 Use the provided host in the cookie 2026-04-24 11:55:09 -07:00
Fred KISSIE c746e1bc8d 🚧 wip 2026-04-24 08:33:43 +02:00
Owen 6a96f743aa Update exchange session to support wildcards 2026-04-23 21:38:12 -07:00
Owen b4f0b4e285 Handle matching wildcards 2026-04-23 21:25:13 -07:00
Owen 07c7501669 New columns 2026-04-23 20:30:34 -07:00
Owen 009bac64bf Adding guiderails 2026-04-23 18:02:32 -07:00
Owen 5e293e8364 Handle getting resources 2026-04-23 17:14:05 -07:00
Fred KISSIE da4dd88fdd Merge branch 'dev' into feat/roles-and-user-multi-selectors 2026-04-24 00:40:17 +02:00
Owen 1ba7fca798 Update traefik config 2026-04-23 15:08:55 -07:00
Owen e7a9a19816 Basic crud working? 2026-04-23 15:01:43 -07:00
Owen fa117198a0 Pass one at getting it into the db 2026-04-23 14:05:08 -07:00
Owen f03d0cd47f Merge branch 'dev' of github.com:fosrl/pangolin into dev 2026-04-23 13:37:44 -07:00
Owen Schwartz 925a59c080 Merge pull request #2873 from sidd190/fix/crowdsec-traefik-logrotate
(fix): Added a logrotate function to the crowdsec.go installer file
2026-04-23 12:18:00 -07:00
Owen a7c7319407 Deprecated sites should be optional 2026-04-23 12:09:22 -07:00
Fred KISSIE b9bee2836b 🚧 wip 2026-04-23 06:33:57 +02:00
Owen 230f77118a Also check when getting the cert 2026-04-22 21:11:52 -07:00
Owen bcb5b7b4a7 Show status in messages 2026-04-22 20:44:35 -07:00
Owen 90a2ed2f10 Create pending cert 2026-04-22 20:39:04 -07:00
Owen fc69364feb Show cert status 2026-04-22 20:36:00 -07:00
Fred KISSIE 53c48e6f04 🌐 update french translations 2026-04-23 05:17:33 +02:00
Fred KISSIE 9db5ff9ff7 ♻️ small refactor 2026-04-23 04:22:18 +02:00
Owen 245755a140 Use transactions 2026-04-22 18:13:15 -07:00
Owen dcbd22b4ad Handle all of the alerting from the functions 2026-04-22 18:13:15 -07:00
miloschwartz 8481b0a073 dont filter admin role in role selector for alerts 2026-04-22 17:52:31 -07:00
miloschwartz f651ca84fa remove empty table state lines 2026-04-22 17:43:29 -07:00
miloschwartz 6b83d3c3f1 add meta titles to alert pages 2026-04-22 17:27:30 -07:00
Owen d463a578c2 Handle *. wildcard domains in the db 2026-04-22 17:06:22 -07:00
Owen 9d0a8ecb09 Update placeholder and handle wildcard certs 2026-04-22 16:48:51 -07:00
Owen af5394d464 Add more information about caches 2026-04-22 16:48:51 -07:00
miloschwartz c956e0d401 add meta titles to auth pages 2026-04-22 16:09:16 -07:00
miloschwartz 2a281ec002 update telemetry 2026-04-22 15:06:37 -07:00
miloschwartz 4c000c1d49 add site online indicator to selector 2026-04-22 14:33:28 -07:00
miloschwartz ea4ff75552 cosmetic adjustments 2026-04-22 14:25:06 -07:00
Owen c78b866087 Add translations 2026-04-22 14:04:21 -07:00
miloschwartz 48b6e98bbc visual improvements 2026-04-22 12:25:01 -07:00
Owen 3d5260b13e Fix strings and local sites 2026-04-22 12:23:59 -07:00
miloschwartz d0b0d95b9a fix squished alert card when disabled 2026-04-22 12:16:39 -07:00
miloschwartz c2c8b7a631 disable overflow on header row for tables 2026-04-22 12:08:57 -07:00
Owen 9bc11b8717 Merge branch 'main' into dev 2026-04-22 11:38:14 -07:00
miloschwartz 1d53211fe0 fix logo size 2026-04-21 23:16:06 -07:00
Owen Schwartz 81922f54d5 Merge pull request #2889 from fosrl/dev
Fix type imports
2026-04-21 22:18:14 -07:00
Owen 9474792e14 Fix type imports 2026-04-21 22:17:49 -07:00
Owen 0c6acfe282 Fix types 2026-04-21 22:11:06 -07:00
Owen Schwartz 0ae20c0b25 Merge pull request #2888 from fosrl/dev
Fix imports
2026-04-21 22:05:41 -07:00
Owen bcd3bee148 Properly resolve import issues 2026-04-21 22:05:01 -07:00
Owen e2814517d6 Fix stub wrong function name 2026-04-21 21:54:46 -07:00
Owen Schwartz c24db3df0e Merge pull request #2887 from fosrl/dev
Fix cert vars issue in stub
2026-04-21 21:49:31 -07:00
Owen 7ecfc9cbd3 Fix cert vars issue in stub 2026-04-21 21:48:54 -07:00
Owen Schwartz 0b18194397 Merge pull request #2885 from fosrl/dev
1.18.0-rc.0
2026-04-21 21:41:23 -07:00
Owen Schwartz 18dfc21197 Merge pull request #2884 from fosrl/crowdin_dev
New Crowdin updates
2026-04-21 21:36:27 -07:00
Owen Schwartz e178ed12ab New translations en-us.json (Spanish) 2026-04-21 21:35:26 -07:00
Owen Schwartz 7a0b7dc17b New translations en-us.json (Norwegian Bokmal) 2026-04-21 21:35:24 -07:00
Owen Schwartz c40dd7bb43 New translations en-us.json (Chinese Simplified) 2026-04-21 21:35:22 -07:00
Owen Schwartz 059ea57b88 New translations en-us.json (Turkish) 2026-04-21 21:35:20 -07:00
Owen Schwartz 1ce11d0f5f New translations en-us.json (Russian) 2026-04-21 21:35:18 -07:00
Owen Schwartz cba1a67b8f New translations en-us.json (Portuguese) 2026-04-21 21:35:16 -07:00
Owen Schwartz a218f5dc82 New translations en-us.json (Polish) 2026-04-21 21:35:15 -07:00
Owen Schwartz a83126a67e New translations en-us.json (Dutch) 2026-04-21 21:35:13 -07:00
Owen Schwartz 0620fed9c1 New translations en-us.json (Korean) 2026-04-21 21:35:11 -07:00
Owen Schwartz 87e09dd407 New translations en-us.json (Italian) 2026-04-21 21:35:10 -07:00
Owen Schwartz 77b38c757a New translations en-us.json (German) 2026-04-21 21:35:08 -07:00
Owen Schwartz 5e29572f49 New translations en-us.json (Czech) 2026-04-21 21:35:06 -07:00
Owen Schwartz 520cc0d0bf New translations en-us.json (Bulgarian) 2026-04-21 21:35:04 -07:00
Owen Schwartz ebb4630472 New translations en-us.json (French) 2026-04-21 21:35:02 -07:00
Owen Schwartz c7b8e9c5b9 Merge pull request #2792 from fosrl/dependabot/github_actions/actions/setup-go-6.4.0
Bump actions/setup-go from 6.3.0 to 6.4.0
2026-04-21 21:34:26 -07:00
Owen Schwartz 0a65e200b6 Merge pull request #2793 from fosrl/dependabot/github_actions/docker/login-action-4.1.0
Bump docker/login-action from 4.0.0 to 4.1.0
2026-04-21 21:34:19 -07:00
Owen Schwartz 70b87c04aa Merge pull request #2810 from fosrl/dependabot/npm_and_yarn/drizzle-orm-0.45.2
Bump drizzle-orm from 0.45.1 to 0.45.2
2026-04-21 21:33:43 -07:00
Owen Schwartz 1a8e9072b4 Merge pull request #2814 from fosrl/dependabot/npm_and_yarn/nodemailer-8.0.5
Bump nodemailer from 8.0.4 to 8.0.5
2026-04-21 21:33:17 -07:00
Owen Schwartz 55261c43f8 Merge pull request #2820 from fosrl/dependabot/go_modules/install/minor-updates-f42dbfae3f
Bump golang.org/x/term from 0.41.0 to 0.42.0 in /install in the minor-updates group across 1 directory
2026-04-21 21:33:04 -07:00
Owen Schwartz e02545ada7 Merge pull request #2822 from fosrl/dependabot/npm_and_yarn/lodash-4.18.1
Bump lodash from 4.17.23 to 4.18.1
2026-04-21 21:32:52 -07:00
Owen Schwartz 4edeb26e32 Merge pull request #2838 from fosrl/dependabot/npm_and_yarn/axios-1.15.0
Bump axios from 1.13.5 to 1.15.0
2026-04-21 21:32:05 -07:00
Owen Schwartz 6f007da609 Merge pull request #2844 from fosrl/dependabot/github_actions/actions/upload-artifact-7.0.1
Bump actions/upload-artifact from 7.0.0 to 7.0.1
2026-04-21 21:31:28 -07:00
Owen Schwartz c3e59b73b9 Merge pull request #2855 from fosrl/dependabot/npm_and_yarn/next-15.5.15
Bump next from 15.5.14 to 15.5.15
2026-04-21 21:31:14 -07:00
miloschwartz cc44b46d91 fix url parse error 2026-04-21 21:30:38 -07:00
Owen Schwartz dfe4888123 Merge pull request #2863 from fosrl/dependabot/npm_and_yarn/follow-redirects-1.16.0
Bump follow-redirects from 1.15.11 to 1.16.0
2026-04-21 21:29:59 -07:00
Owen 45fb24d0c8 Remove hardcoding 2026-04-21 21:20:47 -07:00
Owen 3f1c5d305b Merge branch 'dev' of github.com:fosrl/pangolin into dev 2026-04-21 21:20:24 -07:00
Owen c9caa44c06 Making the alerts work 2026-04-21 21:13:31 -07:00
miloschwartz 19e0452d84 remove arrow icon on server admin 2026-04-21 20:54:57 -07:00
miloschwartz 7f5c164e16 change logging 2026-04-21 20:51:59 -07:00
miloschwartz 4df3613df7 add table empty state 2026-04-21 20:40:56 -07:00
miloschwartz 4f9f235398 add way to reject a pending site 2026-04-21 20:29:05 -07:00
miloschwartz a7c212ffa4 badge fixes 2026-04-21 20:20:33 -07:00
miloschwartz 320543f7f8 change titles 2026-04-21 19:37:38 -07:00
miloschwartz 88eb1649e4 add server filters to health check table 2026-04-21 18:35:38 -07:00
miloschwartz 6f07156075 adjust email template for alerts 2026-04-21 18:19:38 -07:00
Owen b3aafa5fe6 Handle toggles 2026-04-21 18:05:17 -07:00
miloschwartz f71355fe7a remove domain picker modal 2026-04-21 17:48:45 -07:00
Owen 6ea3f69fea Fix cache 2026-04-21 17:40:39 -07:00
miloschwartz 95fc30f21d Merge branch 'dev' of https://github.com/fosrl/pangolin into dev 2026-04-21 17:39:24 -07:00
miloschwartz a2d8386b4a fix uptime graph styles 2026-04-21 17:39:16 -07:00
Owen 73a59bc1de Fix missing arg 2026-04-21 17:23:36 -07:00
miloschwartz 0434b1a656 fix site and resource filters on alert 2026-04-21 17:22:50 -07:00
Owen 13afa90d28 Fix the linking out and deleting for target ones 2026-04-21 17:02:21 -07:00
Owen 90eb6d66c0 Merge branch 'dev' of github.com:fosrl/pangolin into dev 2026-04-21 16:55:42 -07:00
miloschwartz 22a6dabeb2 fix alerting layout 2026-04-21 16:54:28 -07:00
Owen 84346fc23e Add missing header 2026-04-21 16:52:45 -07:00
Owen 09744cf2f0 Make paid feature 2026-04-21 16:52:45 -07:00
Owen 38f1387db1 Update package lock 2026-04-21 16:52:44 -07:00
miloschwartz db2942447a make alerts and health checks table server side 2026-04-21 16:49:54 -07:00
Owen b22ac17178 Remove self call 2026-04-21 16:45:55 -07:00
miloschwartz 709f2c187d remove loading state on the alert rule 2026-04-21 16:27:27 -07:00
miloschwartz ccfa165632 show all sites|resources|health-checks in alert table 2026-04-21 16:23:08 -07:00
miloschwartz a68ba9e04d Merge branch 'dev' of https://github.com/fosrl/pangolin into dev 2026-04-21 16:23:03 -07:00
Owen 23293da845 Fix the insert 2026-04-21 16:19:48 -07:00
miloschwartz b5dd20e499 fix cant save form 2026-04-21 16:19:32 -07:00
Owen 38243ad887 Create the new networks for each site resource 2026-04-21 16:13:39 -07:00
Owen 5b18612426 Only works on saas 2026-04-21 16:13:39 -07:00
miloschwartz 8dbe0a4bfe add server side filter and sort to alerts 2026-04-21 15:57:23 -07:00
Owen 7d9a0cd0cc Add 1.18 migrations 2026-04-21 15:46:27 -07:00
miloschwartz e1efae7426 add help banners to alerts 2026-04-21 15:35:55 -07:00
miloschwartz f9a4e25dc9 more cosmetic changes to alert rules 2026-04-21 15:30:49 -07:00
Owen 85029ff518 Merge branch 'trial' into dev 2026-04-21 15:05:23 -07:00
Owen adf15bdc87 Merge branch 'alerting-rules' into dev 2026-04-21 15:05:12 -07:00
miloschwartz a20111043f Merge branch 'alerting-rules' of https://github.com/fosrl/pangolin into alerting-rules 2026-04-21 15:03:10 -07:00
miloschwartz 177ce20dda remove graph 2026-04-21 15:02:56 -07:00
Owen 1a0bde2ee9 Merge branch 'alerting-rules' into trial 2026-04-21 14:57:25 -07:00
Owen ff1ca7eafb Just use the targetHealthCheckId as the id 2026-04-21 14:56:25 -07:00
Owen dc299a740b Add the site to the ui and allow picking 2026-04-21 14:34:28 -07:00
Owen 7b3c10c7b0 Handle crud to newt with new hcs 2026-04-21 14:21:58 -07:00
Owen b1293e6f56 Add siteId to api 2026-04-21 14:12:05 -07:00
Owen 6969671fc4 Log status inside of the trigger api calls 2026-04-21 14:04:38 -07:00
Owen e765f661a7 Fix errors 2026-04-21 12:17:24 -07:00
Owen 7da3719a00 Add descriptions and adjust ui 2026-04-21 12:09:19 -07:00
Owen 206b3a7d22 Adding external actions 2026-04-21 11:52:15 -07:00
Owen 4ce4e63a0a Accept nice id when creating 2026-04-21 09:57:22 -07:00
Owen ed327626bb Working on newt compat 2026-04-21 09:47:20 -07:00
Milo Schwartz 30c4010c8b Merge pull request #2696 from Fredkiss3/feat/paginate-user-roles-table
feat: paginate users & roles table
2026-04-20 22:06:01 -07:00
miloschwartz 85f7c1e87b support server side table for admin users table 2026-04-20 22:05:29 -07:00
miloschwartz 6f06f98cc1 add filter by idp and role in users table 2026-04-20 21:51:53 -07:00
miloschwartz e3aabc6b2d Merge branch 'dev' into feat/paginate-user-roles-table 2026-04-20 21:27:51 -07:00
Owen b59262b7af Merge branch 'dev' into alerting-rules 2026-04-20 21:21:03 -07:00
Owen 8093904d47 Adjust ui 2026-04-20 21:20:45 -07:00
miloschwartz 66c0ed5bf0 slightly improve add user form 2026-04-20 21:15:55 -07:00
Owen 725603101b Support the all types in the schema and engine 2026-04-20 21:00:28 -07:00
miloschwartz 7f0264dec3 fix collapsed sidebar bottom padding issue 2026-04-20 20:48:50 -07:00
Owen 5e88862e29 Support all resources,sites,health checks 2026-04-20 20:48:14 -07:00
miloschwartz b3bc70875b fix count on list domains endpoint 2026-04-20 20:46:38 -07:00
miloschwartz 34dc4c2d07 remove tcp/udp text to reduce cloud confusion 2026-04-20 20:41:38 -07:00
miloschwartz 2ef7a709d3 use new tabs in devices modal 2026-04-20 20:36:15 -07:00
Owen d7a9e1a517 Polish the create and link to table 2026-04-20 20:14:25 -07:00
Owen f938e9c3c0 Paginate the tables with queries 2026-04-20 20:05:59 -07:00
Owen c8d560d78f Reorder sidebar 2026-04-20 18:25:04 -07:00
Owen 3641969dd4 Remove bruno 2026-04-20 18:23:43 -07:00
Owen 49b3163bbe Making form and lang better 2026-04-20 18:14:30 -07:00
Owen 1a36475afa Add inline creation 2026-04-20 18:02:14 -07:00
miloschwartz 335de04a4e adjust theme 2026-04-20 18:00:22 -07:00
Owen f38069623b Add resource 2026-04-20 17:48:44 -07:00
Owen 0a70896080 Add toggle types 2026-04-20 17:37:01 -07:00
Owen 5a09062070 roleIds are numbers 2026-04-20 17:19:44 -07:00
miloschwartz 47be3dbdf9 hide add idp button when no mode set 2026-04-20 17:06:56 -07:00
Owen 9f5f89c9eb Remove debug log 2026-04-20 17:05:47 -07:00
Owen 2e8d170114 Hide protocol by default 2026-04-20 17:05:12 -07:00
Owen bf1787acd5 Merge branch 'dev' into alerting-rules 2026-04-20 16:54:20 -07:00
miloschwartz 78ff835ac9 Merge branch 'dev' of https://github.com/fosrl/pangolin into dev 2026-04-20 16:50:00 -07:00
miloschwartz 3c005c9ab1 rename log tabls for clarity and update font 2026-04-20 16:49:45 -07:00
Owen 54adcd2c56 Show the endpoint if its there 2026-04-20 15:08:48 -07:00
Owen 9a6408d28c Refresh domains for latest status 2026-04-20 14:57:24 -07:00
Owen 2dad97cb6b Add ability to predefine a root api key 2026-04-20 12:19:21 -07:00
Siddharth Bansal 473bce856d Pass installdir as a parameter 2026-04-20 21:36:42 +05:30
dependabot[bot] 86ec8eedac Bump golang.org/x/term in /install in the minor-updates group
Bumps the minor-updates group in /install with 1 update: [golang.org/x/term](https://github.com/golang/term).


Updates `golang.org/x/term` from 0.41.0 to 0.42.0
- [Commits](https://github.com/golang/term/compare/v0.41.0...v0.42.0)

---
updated-dependencies:
- dependency-name: golang.org/x/term
  dependency-version: 0.42.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: minor-updates
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-04-20 01:36:49 +00:00
Siddharth Bansal 2c8b7b5ca5 (fix): Added a logrotate function to the crowdsec.go installer file 2026-04-19 12:33:59 +05:30
Owen 55989c2019 Add trial system 2026-04-18 13:40:50 -07:00
Owen b2d5a1ffdf Remove weird extra status history component 2026-04-17 17:45:49 -07:00
Owen a5b8a44e78 Add the status to the resources and ajust location 2026-04-17 17:40:00 -07:00
Owen df8104fe56 Write the resource status as well 2026-04-17 17:25:51 -07:00
Owen 8214700eaa More refreshing and status history displays 2026-04-17 17:18:15 -07:00
Owen 74165aa1cc Cleaning up ui 2026-04-17 17:01:55 -07:00
Owen 0872fd5818 Make the healch checks tabs 2026-04-17 15:38:38 -07:00
Owen 008ad0a1de Showing the paid feature 2026-04-17 15:33:26 -07:00
Owen f74791111e Paywalling 2026-04-17 15:14:01 -07:00
Owen 408eaf55f6 Merge branch 'dev' into alerting-rules 2026-04-17 14:29:36 -07:00
Owen bd89867ecb Fix form not updating correctly 2026-04-16 21:42:48 -07:00
Owen 3645cc5759 Update websocket to be consistant with streaming 2026-04-16 21:27:06 -07:00
Owen f932cc7aca Fix status history and show on the health check 2026-04-16 20:55:21 -07:00
Owen c1782a2650 Add uptime tracking 2026-04-16 18:25:25 -07:00
Owen d6c15c8b81 Add resource column to hc and remove — 2026-04-16 17:42:30 -07:00
Owen b958537f3e Adjust the form 2026-04-16 17:05:25 -07:00
Owen 597cae2b78 Poll for status to show updates 2026-04-16 16:53:18 -07:00
Owen c4308aaa69 Working on ui 2026-04-16 16:30:28 -07:00
Owen a9d68bd0cf Standardize the healch check form between the two 2026-04-16 16:20:30 -07:00
Owen 5fcb80a193 Merge branch 'dev' into alerting-rules 2026-04-16 15:53:43 -07:00
Owen 57579e635c Working on alerting 2026-04-16 11:49:48 -07:00
Owen 1a1d1cfb83 Not null removed 2026-04-15 20:40:23 -07:00
Owen 1397e61643 Create hcs freely 2026-04-15 20:32:02 -07:00
Owen a04e2a5e00 Transititioning the hc table and firing the alerts 2026-04-15 17:46:04 -07:00
Owen b169a872a7 Fix header 2026-04-15 16:40:15 -07:00
Owen 1d4b2b1da1 seperate out the offline checker logic 2026-04-15 16:40:04 -07:00
Owen ad15b7c3c6 Add new intervals and tcp mode to health checks 2026-04-15 16:31:15 -07:00
Owen b070570cb6 Sites and health checks are many to one 2026-04-15 15:57:25 -07:00
Owen 55595ec042 Trying to use more consistant components 2026-04-15 15:51:41 -07:00
Owen 5e505224d0 Basic ui is working 2026-04-15 15:26:27 -07:00
Owen 3c6775992d Merge branch 'private-http-ha' into alerting-rules 2026-04-15 14:59:50 -07:00
Owen bf64e226d3 Many to one on sites and health checks 2026-04-15 14:58:33 -07:00
Owen f379986a59 Allow many to one on the receipients on the rules 2026-04-15 14:48:50 -07:00
Owen 22ead84aa7 Update license year 2026-04-15 14:42:48 -07:00
Owen 570ff75164 Merge branch 'dev' into alerting-rules 2026-04-15 14:41:29 -07:00
Owen 87a554b6ef Add crud 2026-04-15 14:33:55 -07:00
Owen cf741a6f87 Add stub 2026-04-15 14:26:34 -07:00
dependabot[bot] 06e7c1d6cb Bump follow-redirects from 1.15.11 to 1.16.0
Bumps [follow-redirects](https://github.com/follow-redirects/follow-redirects) from 1.15.11 to 1.16.0.
- [Release notes](https://github.com/follow-redirects/follow-redirects/releases)
- [Commits](https://github.com/follow-redirects/follow-redirects/compare/v1.15.11...v1.16.0)

---
updated-dependencies:
- dependency-name: follow-redirects
  dependency-version: 1.16.0
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-04-15 19:35:30 +00:00
Owen 7d50703c26 First pass 2026-04-14 21:58:36 -07:00
Owen 33182bcf85 Add init alert schema 2026-04-14 21:43:16 -07:00
Owen fb29efeff3 Merge branch 'dev' into alerting-rules 2026-04-14 21:10:10 -07:00
Owen 49ae5eecb6 Filter only approved sites 2026-04-13 21:56:35 -07:00
Owen 646e440dec Merge branch 'dev' into private-http-ha 2026-04-13 20:52:47 -07:00
Owen 1b9a395432 Add logging for debugging 2026-04-13 17:56:55 -07:00
Owen 3996e14e70 Add comment 2026-04-13 17:56:51 -07:00
Owen 7a40084bf4 Rename for better understanding 2026-04-13 17:21:34 -07:00
Owen 30fd48a14a HA site crud working 2026-04-13 17:17:28 -07:00
dependabot[bot] 1c95d46eaa Bump next from 15.5.14 to 15.5.15
Bumps [next](https://github.com/vercel/next.js) from 15.5.14 to 15.5.15.
- [Release notes](https://github.com/vercel/next.js/releases)
- [Changelog](https://github.com/vercel/next.js/blob/canary/release.js)
- [Commits](https://github.com/vercel/next.js/compare/v15.5.14...v15.5.15)

---
updated-dependencies:
- dependency-name: next
  dependency-version: 15.5.15
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-04-14 00:05:43 +00:00
Owen 173a81ead8 Fixing up the crud for multiple sites 2026-04-13 16:22:22 -07:00
Owen 676eacc9cf Invert logic for pangolin dns 2026-04-13 16:06:23 -07:00
Owen 561a9ab379 Merge branch 'private-site-ha' into private-http-ha 2026-04-13 10:25:49 -07:00
dependabot[bot] 7a483ab1e2 Bump actions/upload-artifact from 7.0.0 to 7.0.1
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 7.0.0 to 7.0.1.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/bbbca2ddaa5d8feaa63e36b76fdaad77386f024f...043fb46d1a93c77aae656e7c1c64a875d1fc6a0a)

---
updated-dependencies:
- dependency-name: actions/upload-artifact
  dependency-version: 7.0.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-04-13 01:35:57 +00:00
Owen 71497a7887 Merge branch 'dev' into private-site-ha 2026-04-12 17:54:07 -07:00
Owen aa41a63430 Dont run the acme in saas or when we control dns 2026-04-12 17:50:27 -07:00
Owen 0db55daff6 Merge branch 'private-http' of github.com:fosrl/pangolin into private-http 2026-04-12 17:47:59 -07:00
Owen 9b271950d2 Push down certs when they are detected 2026-04-12 17:31:51 -07:00
Owen 89b6b1fb56 Placeholder screen and certs are working 2026-04-12 16:49:49 -07:00
Owen 789b991c56 Logging and http working 2026-04-12 15:08:17 -07:00
miloschwartz 0cbcc0c29c remove extra sites query 2026-04-12 14:58:55 -07:00
miloschwartz b5e239d1ad adjust button size 2026-04-12 12:24:52 -07:00
miloschwartz 5f79e8ebbd Merge branch 'private-http' of https://github.com/fosrl/pangolin into private-http 2026-04-12 12:17:57 -07:00
miloschwartz 1564c4bee7 add multi site selector for ha on private resources 2026-04-12 12:17:45 -07:00
Owen 0cf385b718 CRUD and newt mode http mostly working 2026-04-12 12:15:29 -07:00
Mustafa 8e1905a695 Exclude local/private/CGNAT IPs from COUNTRY=ALL and ASN=ALL/AS0 geo-blocking rules 2026-04-12 20:19:32 +02:00
dependabot[bot] 63a38de059 Bump axios from 1.13.5 to 1.15.0
Bumps [axios](https://github.com/axios/axios) from 1.13.5 to 1.15.0.
- [Release notes](https://github.com/axios/axios/releases)
- [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md)
- [Commits](https://github.com/axios/axios/compare/v1.13.5...v1.15.0)

---
updated-dependencies:
- dependency-name: axios
  dependency-version: 1.15.0
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-04-12 10:39:44 +00:00
Owen 83ecf53776 Add logging 2026-04-11 21:56:39 -07:00
Owen 5803da4893 Crud working 2026-04-11 21:09:12 -07:00
Owen fc4633db91 Add domain component to the site resource 2026-04-11 17:19:18 -07:00
Owen 9e50569c31 Merge branch 'private-http' of github.com:fosrl/pangolin into private-http 2026-04-10 17:23:06 -04:00
Owen a19f0acfb9 Working 2026-04-10 17:21:54 -04:00
dependabot[bot] 4430042419 Bump lodash from 4.17.23 to 4.18.1
Bumps [lodash](https://github.com/lodash/lodash) from 4.17.23 to 4.18.1.
- [Release notes](https://github.com/lodash/lodash/releases)
- [Commits](https://github.com/lodash/lodash/compare/4.17.23...4.18.1)

---
updated-dependencies:
- dependency-name: lodash
  dependency-version: 4.18.1
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-04-10 03:58:55 +00:00
miloschwartz 8a47d69d0d fix domain picker 2026-04-09 22:48:43 -04:00
miloschwartz 73482c2a05 disable ssh access tab on http mode 2026-04-09 22:38:04 -04:00
miloschwartz 79751c208d basic ui working 2026-04-09 22:24:39 -04:00
Owen 510931e7d6 Add ssl to schema 2026-04-09 21:02:20 -04:00
Owen 584a8e7d1d Generate certs and add placeholder screen 2026-04-09 20:53:03 -04:00
miloschwartz a74378e1d3 show domain and destination with port in table 2026-04-09 18:17:08 -04:00
Owen c027c8958b Add scheme 2026-04-09 17:54:17 -04:00
miloschwartz a730f4da1d dont show wildcard in domain picker 2026-04-09 17:54:08 -04:00
miloschwartz d73796b92e add new modes, port input, and domain picker 2026-04-09 17:49:22 -04:00
Owen 96b9123306 Merge branch 'dev' into private-site-ha 2026-04-09 17:39:45 -04:00
Owen e4cbf088b4 Working on defining the schema to send down 2026-04-09 17:23:24 -04:00
Owen 333ccb8438 Restrict to make sure there is an alias 2026-04-09 17:10:48 -04:00
Owen eb771ceda4 Add http to mode and put destinationPort back 2026-04-09 17:02:08 -04:00
Owen 1efd2af44b Sync acme certs into the database 2026-04-09 15:38:36 -04:00
dependabot[bot] efc1f67017 Bump nodemailer from 8.0.4 to 8.0.5
Bumps [nodemailer](https://github.com/nodemailer/nodemailer) from 8.0.4 to 8.0.5.
- [Release notes](https://github.com/nodemailer/nodemailer/releases)
- [Changelog](https://github.com/nodemailer/nodemailer/blob/master/CHANGELOG.md)
- [Commits](https://github.com/nodemailer/nodemailer/compare/v8.0.4...v8.0.5)

---
updated-dependencies:
- dependency-name: nodemailer
  dependency-version: 8.0.5
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-04-09 00:15:55 +00:00
dependabot[bot] 3dc819eb31 Bump drizzle-orm from 0.45.1 to 0.45.2
Bumps [drizzle-orm](https://github.com/drizzle-team/drizzle-orm) from 0.45.1 to 0.45.2.
- [Release notes](https://github.com/drizzle-team/drizzle-orm/releases)
- [Commits](https://github.com/drizzle-team/drizzle-orm/compare/0.45.1...0.45.2)

---
updated-dependencies:
- dependency-name: drizzle-orm
  dependency-version: 0.45.2
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-04-08 06:57:05 +00:00
dependabot[bot] e8d1b779cc Bump docker/login-action from 4.0.0 to 4.1.0
Bumps [docker/login-action](https://github.com/docker/login-action) from 4.0.0 to 4.1.0.
- [Release notes](https://github.com/docker/login-action/releases)
- [Commits](https://github.com/docker/login-action/compare/b45d80f862d83dbcd57f89517bcf500b2ab88fb2...4907a6ddec9925e35a0a9e82d7399ccc52663121)

---
updated-dependencies:
- dependency-name: docker/login-action
  dependency-version: 4.1.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-04-06 01:35:40 +00:00
dependabot[bot] d9000b55e3 Bump actions/setup-go from 6.3.0 to 6.4.0
Bumps [actions/setup-go](https://github.com/actions/setup-go) from 6.3.0 to 6.4.0.
- [Release notes](https://github.com/actions/setup-go/releases)
- [Commits](https://github.com/actions/setup-go/compare/4b73464bb391d4059bd26b0524d20df3927bd417...4a3601121dd01d1626a1e23e37211e3254c1c06c)

---
updated-dependencies:
- dependency-name: actions/setup-go
  dependency-version: 6.4.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-04-06 01:35:36 +00:00
Fred KISSIE 543542713b ♻️ refactor 2026-03-31 22:44:18 +02:00
Fred KISSIE a4d8789c20 ♻️ move from react.forwardref to normal ref prop 2026-03-31 21:13:23 +02:00
Fred KISSIE 152b452bee Merge branch 'dev' into feat/paginate-user-roles-table 2026-03-31 18:55:21 +02:00
miloschwartz 4cce6e0820 add node graph and editor 2026-03-29 20:25:17 -07:00
miloschwartz 2841c5ed4e basic rules 2026-03-29 14:19:26 -07:00
Fred KISSIE efb2e78d9d 🐛 fix imports 2026-03-23 21:34:58 +01:00
Fred KISSIE 294532ecbb roles table 2026-03-23 21:34:44 +01:00
Fred KISSIE 062bec23b6 🌐 update translation for single user edit 2026-03-23 21:11:12 +01:00
Fred KISSIE 0461b5a764 finish users table 2026-03-23 21:09:49 +01:00
Fred KISSIE 6d0e10a4aa 🚧 user table pagination 2026-03-23 20:02:53 +01:00
Owen 02033f611f First pass at HA 2026-03-23 11:44:02 -07:00
Fred KISSIE b648aa605c 🔧 un comment volumes in docker compose 2026-03-23 18:50:09 +01:00
Owen 1366901e24 Adjust build functions 2026-03-22 14:40:57 -07:00
Owen c4f48f5748 WIP - more conversion 2026-03-22 14:29:47 -07:00
Owen c48bc71443 Update crud endpoints and ui 2026-03-22 14:18:34 -07:00
Owen d85496453f Change SSH WIP 2026-03-21 10:40:12 -07:00
Owen 21b91374a3 Merge branch 'private-site-ha' of github.com:fosrl/pangolin into private-site-ha 2026-03-20 17:24:27 -07:00
Owen a1ce7f54a0 Continue to rebase 2026-03-20 09:17:10 -07:00
Owen 87524fe8ae Remove siteSiteResources 2026-03-19 21:53:52 -07:00
Owen 2093bb5357 Remove siteSiteResources 2026-03-19 21:44:59 -07:00
Owen 6f2e37948c Its many to one now 2026-03-19 21:30:00 -07:00
Owen b7421e47cc Switch to using networks 2026-03-19 21:22:04 -07:00
Owen 7cbe3d42a1 Working on refactoring 2026-03-19 12:10:04 -07:00
Owen d8b511b198 Adjust create and update to be many to one 2026-03-18 20:54:49 -07:00
Owen 102a235407 Adjust schema for many to one site resources 2026-03-18 20:54:38 -07:00
Fred KISSIE f3eb823bc3 🐛 fix sqlite tables 2026-03-12 22:36:29 +01:00
Fred KISSIE 61c13db090 Merge branch 'dev' into feat/resource-policies 2026-03-12 22:19:37 +01:00
Fred KISSIE ccbd793f52 💬 show error 2026-03-12 22:13:27 +01:00
Fred KISSIE d13e6896a8 ♻️ update 2026-03-12 22:11:39 +01:00
Fred KISSIE 83a36ead10 ♻️ show success toast on resource policy update 2026-03-12 20:22:16 +01:00
Fred KISSIE b61b74b0b5 💬 update text 2026-03-12 20:04:02 +01:00
Fred KISSIE 01b068c50f ♻️ do not edit tags if readonly 2026-03-12 18:53:18 +01:00
Fred KISSIE fee44ce960 navigate to policy to edit 2026-03-12 18:52:13 +01:00
Fred KISSIE 1906504a86 update shared policy when selected 2026-03-12 18:35:50 +01:00
Fred KISSIE 36bcba332c 🚧 wip 2026-03-11 05:18:22 +01:00
Fred KISSIE 304ab1964c 🚧 wip 2026-03-11 04:21:55 +01:00
Fred KISSIE b286096c7b 🌐 text 2026-03-11 03:47:31 +01:00
Fred KISSIE a22a4b6e74 ♻️ mark forms as readonly 2026-03-11 03:47:15 +01:00
Fred KISSIE 9a680d2374 update resource should update policy 2026-03-11 03:46:40 +01:00
Fred KISSIE f80e212b07 🚧 wip 2026-03-11 00:27:27 +01:00
Fred KISSIE 8a39b3fd45 🙈 do not include solo.yml to git 2026-03-10 18:55:12 +01:00
Fred KISSIE 61ec938b00 🚧 WIP 2026-03-10 18:54:26 +01:00
Fred KISSIE 6686de6788 ♻️ refactor 2026-03-10 17:48:17 +01:00
Fred KISSIE 79636cbb30 ♻️ delete default resource policy ID when deleting a resource 2026-03-10 17:38:19 +01:00
LunarECL 90d6178a0b Skip invalid Docker resources instead of failing entire blueprint (#1784) 2026-03-09 02:42:21 +09:00
Fred KISSIE 2fa1bc6cdc 🚧 wip 2026-03-07 03:55:30 +01:00
Fred KISSIE c5f6d822ca ♻️ refactor auth info to use resource policies 2026-03-07 03:45:10 +01:00
Fred KISSIE 4de4bf9625 use resource policies for auth check 2026-03-07 03:35:26 +01:00
Fred KISSIE 5d956080f2 create default policy when creating a resource 2026-03-07 02:29:36 +01:00
Fred KISSIE f8e18de2fc ♻️ prevent deleting resource policies if they have attached resources 2026-03-07 01:12:10 +01:00
Fred KISSIE 884482ec35 ♻️ delete resource policy endpoint 2026-03-06 23:57:23 +01:00
Fred KISSIE 9b43948fa4 delete resource policy endpoint 2026-03-06 22:39:44 +01:00
Fred KISSIE bcd6cd99cc 🚧 wip 2026-03-06 04:37:57 +01:00
Fred KISSIE 37ceba6b81 💄 show attached resources in policy list 2026-03-06 04:36:12 +01:00
Fred KISSIE dfe42e9016 ♻️ refactor 2026-03-06 04:03:40 +01:00
Fred KISSIE 38aa2dace8 ♻️ show list of resources on policy list 2026-03-06 04:03:25 +01:00
Fred KISSIE 136c3eff0c ♻️ padding bottom 2026-03-05 19:46:16 +01:00
Fred KISSIE 642999c8b1 ♻️ separate create form into multiple ones 2026-03-05 19:45:13 +01:00
Fred KISSIE c5fc49b4fa 🚧 wip 2026-03-05 19:31:19 +01:00
Fred KISSIE cd5a38b1eb 🚧 WIP: create policy form 2026-03-05 18:56:35 +01:00
Fred KISSIE 595842c2c9 finish create policy endpoint 2026-03-05 18:48:33 +01:00
Fred KISSIE 82d5276ade 🚧 wip: create resource policy 2026-03-05 18:24:04 +01:00
Fred KISSIE 51eb782831 🚧 wip 2026-03-05 18:14:46 +01:00
Fred KISSIE de2980e1bc apply rules on resource policies 2026-03-05 18:13:30 +01:00
Fred KISSIE 8a3c0d9a08 ♻️ add openapi schema types 2026-03-05 17:51:55 +01:00
Fred KISSIE 1a5e9f1005 🚧 resource policy rules 2026-03-04 19:31:59 +01:00
Fred KISSIE f42c013f33 ♻️ refactor 2026-03-04 17:41:55 +01:00
Fred KISSIE 42c9bda939 Merge branch 'dev' into feat/resource-policies 2026-03-04 16:46:33 +01:00
Fred KISSIE cbce9fae3a 🚧 wip 2026-03-04 16:36:49 +01:00
Fred KISSIE e44b15ecd5 set opt email whitelist 2026-03-04 01:54:50 +01:00
Fred KISSIE 7f6ca31757 🚧 Email whiteList for resource policy 2026-03-04 01:46:56 +01:00
Fred KISSIE a1eb248474 🔨 remove docker compose mail 2026-03-04 01:10:48 +01:00
Fred KISSIE be2b1fd1ce 🚧 wip: email whitelist 2026-03-03 20:26:17 +01:00
Fred KISSIE 20b65f549e Update resource policy pincode 2026-03-03 19:49:24 +01:00
Fred KISSIE 1dc8be373c 🚧 wip: add password 2026-03-03 18:54:35 +01:00
Fred KISSIE 22b2e6b3d4 🚧 wip: separating form sections 2026-03-03 18:41:04 +01:00
Fred KISSIE 89e7107a47 ♻️ use put and return 200 OK 2026-03-03 03:31:43 +01:00
Fred KISSIE 0a69131c38 ♻️ merge header auth & extended compability to one table 2026-03-03 03:27:02 +01:00
Fred KISSIE 590f2c29b3 🚧 prepare tables for auth methods 2026-03-03 03:20:03 +01:00
Fred KISSIE 0ddcce6fe1 🗃️ create resource policy specific tables for auth methods 2026-03-03 02:47:21 +01:00
Fred KISSIE 8a54fb7f23 🚧 auth methods 2026-03-03 02:11:05 +01:00
Fred KISSIE 5c280b024e update policy access control 2026-03-03 01:33:37 +01:00
Fred KISSIE 033cc62ce7 🚧 wip 2026-03-02 19:37:23 +01:00
Fred KISSIE 4c69b7a64e update policy access control 2026-03-02 19:26:51 +01:00
Fred KISSIE e7ab9b3f37 🚧 wip 2026-03-02 18:32:08 +01:00
Fred KISSIE 3143662f82 Merge branch 'dev' into feat/resource-policies 2026-03-02 15:53:00 +01:00
Fred KISSIE 18964ba2a3 🚧 wip 2026-02-28 14:22:41 +01:00
Fred KISSIE f862404c5c Merge branch 'dev' into feat/resource-policies 2026-02-28 01:17:51 +01:00
Fred KISSIE c292578f80 Merge branch 'dev' into feat/resource-policies 2026-02-28 01:08:12 +01:00
Fred KISSIE 7b02d4104d 🚧 wip 2026-02-28 00:47:27 +01:00
Fred KISSIE 2ef5d90e13 ♻️ update policy in integration API 2026-02-27 04:24:33 +01:00
Fred KISSIE d6a8021613 🚧 wip: update resource policy form 2026-02-27 04:21:20 +01:00
Fred KISSIE c5231d37f6 🚧 wip 2026-02-26 19:20:15 +01:00
Fred KISSIE 4d803a40c9 🚧 wip 2026-02-25 06:00:19 +01:00
Fred KISSIE 1d709b551a create policy endpoitn 2026-02-24 06:31:43 +01:00
Fred KISSIE 335411de4c ♻️ create table for resource policies associations with users 2026-02-24 03:05:51 +01:00
Fred KISSIE 0e4abdf4b6 ♻️ usewatch 2026-02-20 02:06:23 +01:00
Fred KISSIE 267b40b73c 🚧 wip 2026-02-19 05:27:05 +01:00
Fred KISSIE ba9a0c5e3c ♻️ refactor 2026-02-19 05:23:20 +01:00
Fred KISSIE 9e0b7ff0d7 ♻️ some other ux changes 2026-02-19 05:22:06 +01:00
Fred KISSIE 003bf7fdf3 🚸 hide otp, rules and resource rules config by default 2026-02-19 04:59:51 +01:00
Fred KISSIE c3fdda026b ♻️ separate into diff components 2026-02-19 04:36:42 +01:00
Fred KISSIE a53363d064 💄 include rules in create policy form 2026-02-19 03:23:54 +01:00
Fred KISSIE ee21e1faa7 🚧 list authentication items from policy APIs 2026-02-18 05:08:42 +01:00
Fred KISSIE e409a34a09 🚧 create policy form 2026-02-18 05:08:27 +01:00
Fred KISSIE 7177ab7f77 🚧 create resource policy table 2026-02-14 05:08:41 +01:00
Fred KISSIE 801f6fb661 🚚 move policies page to (private) folder 2026-02-14 05:03:40 +01:00
Fred KISSIE 805d82b8d9 policies table 2026-02-14 04:59:35 +01:00
Fred KISSIE bd6d790495 Merge branch 'refactor/paginated-tables' into feat/resource-policies 2026-02-14 04:25:43 +01:00
Fred KISSIE 2305163474 🚧 wip 2026-02-14 03:24:01 +01:00
Fred KISSIE dda53dcb16 Merge branch 'refactor/paginated-tables' into feat/resource-policies 2026-02-13 06:05:32 +01:00
Fred KISSIE 2c3e768867 🚧 wip: list resource endpoints finished 2026-02-13 05:54:45 +01:00
Fred KISSIE 8d682ed9ad 🚧 list policies endpoint + list policies table 2026-02-13 05:39:35 +01:00
Fred KISSIE 47fe497ca1 🚧 add sidebar item for policies 2026-02-13 05:39:16 +01:00
Fred KISSIE 4d5f364663 ♻️ use the correct types 2026-02-13 05:38:57 +01:00
Fred KISSIE c3db8b972f ♻️ schema updates for policies 2026-02-13 05:36:42 +01:00
Fred KISSIE cfced63ba1 Merge branch 'dev' into feat/resource-policies 2026-02-13 02:14:14 +01:00
Fred KISSIE 51aa55f963 revert changes already included in another PR 2026-02-13 00:25:00 +01:00
Fred KISSIE e7df24841e ♻️ update sqlite DB 2026-02-12 03:50:30 +01:00
Fred KISSIE e6fd4c32c4 ♻️ update DB 2026-02-12 03:50:09 +01:00
Fred KISSIE f6590aedbd ♻️ add default sso: true to resource policy table 2026-02-12 03:22:24 +01:00
Fred KISSIE 3cb9e02533 ♻️ make resourcePolicyId non nullable 2026-02-12 02:56:45 +01:00
Fred KISSIE 4d792350ef 🗃️ add resource policy table 2026-02-12 02:53:04 +01:00
812 changed files with 81429 additions and 23321 deletions
+5
View File
@@ -0,0 +1,5 @@
---
alwaysApply: true
---
Always localize strings and use the `t` function to convert keys to strings. Add the keys to the en-us.json file. Never edit the other language files, as en-us.json is the single source of truth.
+7
View File
@@ -0,0 +1,7 @@
---
description:
alwaysApply: true
---
Proxy resources = public resources
Private resources = client resources = site resources
+1
View File
@@ -34,3 +34,4 @@ build.ts
tsconfig.json
Dockerfile*
drizzle.config.ts
allowedDevOrigins.json
-3
View File
@@ -1,3 +0,0 @@
# These are supported funding model platforms
github: [fosrl]
+3 -2
View File
@@ -14,12 +14,13 @@ body:
label: Environment
description: Please fill out the relevant details below for your environment.
value: |
- OS Type & Version: (e.g., Ubuntu 22.04)
- OS Type & Version:
- Pangolin Version:
- Edition (Community or Enterprise):
- Gerbil Version:
- Traefik Version:
- Newt Version:
- Olm Version: (if applicable)
- Client Version:
validations:
required: true
+36 -92
View File
@@ -77,7 +77,7 @@ jobs:
fi
- name: Log in to Docker Hub
uses: docker/login-action@b45d80f862d83dbcd57f89517bcf500b2ab88fb2 # v4.0.0
uses: docker/login-action@650006c6eb7dba73a995cc03b0b2d7f5ca915bee # v4.2.0
with:
registry: docker.io
username: ${{ secrets.DOCKER_HUB_USERNAME }}
@@ -149,7 +149,7 @@ jobs:
fi
- name: Log in to Docker Hub
uses: docker/login-action@b45d80f862d83dbcd57f89517bcf500b2ab88fb2 # v4.0.0
uses: docker/login-action@650006c6eb7dba73a995cc03b0b2d7f5ca915bee # v4.2.0
with:
registry: docker.io
username: ${{ secrets.DOCKER_HUB_USERNAME }}
@@ -204,7 +204,7 @@ jobs:
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- name: Log in to Docker Hub
uses: docker/login-action@b45d80f862d83dbcd57f89517bcf500b2ab88fb2 # v4.0.0
uses: docker/login-action@650006c6eb7dba73a995cc03b0b2d7f5ca915bee # v4.2.0
with:
registry: docker.io
username: ${{ secrets.DOCKER_HUB_USERNAME }}
@@ -264,7 +264,7 @@ jobs:
shell: bash
- name: Install Go
uses: actions/setup-go@4b73464bb391d4059bd26b0524d20df3927bd417 # v6.3.0
uses: actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c # v6.4.0
with:
go-version: 1.25
@@ -299,7 +299,7 @@ jobs:
shell: bash
- name: Upload artifacts from /install/bin
uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7.0.0
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
with:
name: install-bin
path: install/bin/
@@ -407,35 +407,27 @@ jobs:
shell: bash
- name: Login to GitHub Container Registry (for cosign)
uses: docker/login-action@b45d80f862d83dbcd57f89517bcf500b2ab88fb2 # v4.0.0
uses: docker/login-action@650006c6eb7dba73a995cc03b0b2d7f5ca915bee # v4.2.0
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Install cosign
# cosign is used to sign and verify container images (key and keyless)
uses: sigstore/cosign-installer@cad07c2e89fa2edd6e2d7bab4c1aa38e53f76003 # v4.1.1
# cosign is used to sign container images using keyless (OIDC) signing
uses: sigstore/cosign-installer@6f9f17788090df1f26f669e9d70d6ae9567deba6 # v4.1.2
with:
cosign-release: v3.0.6
- name: Dual-sign and verify (GHCR & Docker Hub)
# Sign each image by digest using keyless (OIDC) and key-based signing,
# then verify both the public key signature and the keyless OIDC signature.
- name: Sign (GHCR, keyless)
# Sign each GHCR image by digest using keyless (OIDC) signing via Sigstore/Rekor.
# Signatures are stored in the registry alongside the image.
env:
TAG: ${{ env.TAG }}
COSIGN_PRIVATE_KEY: ${{ secrets.COSIGN_PRIVATE_KEY }}
COSIGN_PASSWORD: ${{ secrets.COSIGN_PASSWORD }}
COSIGN_PUBLIC_KEY: ${{ secrets.COSIGN_PUBLIC_KEY }}
COSIGN_YES: "true"
run: |
set -euo pipefail
issuer="https://token.actions.githubusercontent.com"
id_regex="^https://github.com/${{ github.repository }}/.+" # accept this repo (all workflows/refs)
# Track failures
FAILED_TAGS=()
SUCCESSFUL_TAGS=()
# Determine if this is an RC release
IS_RC="false"
if [[ "$TAG" == *"-rc."* ]]; then
@@ -463,95 +455,47 @@ jobs:
)
fi
# Sign each image variant for both registries
for BASE_IMAGE in "${GHCR_IMAGE}" "${DOCKERHUB_IMAGE}"; do
for IMAGE_TAG in "${IMAGE_TAGS[@]}"; do
echo "Processing ${BASE_IMAGE}:${IMAGE_TAG}"
TAG_FAILED=false
FAILED_TAGS=()
SUCCESSFUL_TAGS=()
# Wrap the entire tag processing in error handling
(
set -e
DIGEST="$(skopeo inspect --retry-times 3 docker://${BASE_IMAGE}:${IMAGE_TAG} | jq -r '.Digest')"
REF="${BASE_IMAGE}@${DIGEST}"
echo "Resolved digest: ${REF}"
for IMAGE_TAG in "${IMAGE_TAGS[@]}"; do
echo "Processing ${GHCR_IMAGE}:${IMAGE_TAG}"
TAG_FAILED=false
echo "==> cosign sign (keyless) --recursive ${REF}"
cosign sign --recursive "${REF}"
(
set -e
DIGEST="$(skopeo inspect --retry-times 3 docker://${GHCR_IMAGE}:${IMAGE_TAG} | jq -r '.Digest')"
REF="${GHCR_IMAGE}@${DIGEST}"
echo "Resolved digest: ${REF}"
echo "==> cosign sign (key) --recursive ${REF}"
cosign sign --key env://COSIGN_PRIVATE_KEY --recursive "${REF}"
echo "==> cosign sign (keyless) --recursive ${REF}"
cosign sign --recursive "${REF}"
) || TAG_FAILED=true
# Retry wrapper for verification to handle registry propagation delays
retry_verify() {
local cmd="$1"
local attempts=6
local delay=5
local i=1
until eval "$cmd"; do
if [ $i -ge $attempts ]; then
echo "Verification failed after $attempts attempts"
return 1
fi
echo "Verification not yet available. Retry $i/$attempts after ${delay}s..."
sleep $delay
i=$((i+1))
delay=$((delay*2))
# Cap the delay to avoid very long waits
if [ $delay -gt 60 ]; then delay=60; fi
done
return 0
}
echo "==> cosign verify (public key) ${REF}"
if retry_verify "cosign verify --key env://COSIGN_PUBLIC_KEY '${REF}' -o text"; then
VERIFIED_INDEX=true
else
VERIFIED_INDEX=false
fi
echo "==> cosign verify (keyless policy) ${REF}"
if retry_verify "cosign verify --certificate-oidc-issuer '${issuer}' --certificate-identity-regexp '${id_regex}' '${REF}' -o text"; then
VERIFIED_INDEX_KEYLESS=true
else
VERIFIED_INDEX_KEYLESS=false
fi
# Check if verification succeeded
if [ "${VERIFIED_INDEX}" != "true" ] && [ "${VERIFIED_INDEX_KEYLESS}" != "true" ]; then
echo "⚠️ WARNING: Verification not available for ${BASE_IMAGE}:${IMAGE_TAG}"
echo "This may be due to registry propagation delays. Continuing anyway."
fi
) || TAG_FAILED=true
if [ "$TAG_FAILED" = "true" ]; then
echo "⚠️ WARNING: Failed to sign/verify ${BASE_IMAGE}:${IMAGE_TAG}"
FAILED_TAGS+=("${BASE_IMAGE}:${IMAGE_TAG}")
else
echo "✓ Successfully signed and verified ${BASE_IMAGE}:${IMAGE_TAG}"
SUCCESSFUL_TAGS+=("${BASE_IMAGE}:${IMAGE_TAG}")
fi
done
if [ "$TAG_FAILED" = "true" ]; then
echo "⚠️ WARNING: Failed to sign ${GHCR_IMAGE}:${IMAGE_TAG}"
FAILED_TAGS+=("${GHCR_IMAGE}:${IMAGE_TAG}")
else
echo "✓ Successfully signed ${GHCR_IMAGE}:${IMAGE_TAG}"
SUCCESSFUL_TAGS+=("${GHCR_IMAGE}:${IMAGE_TAG}")
fi
done
# Report summary
echo ""
echo "=========================================="
echo "Sign and Verify Summary"
echo "Sign Summary"
echo "=========================================="
echo "Successful: ${#SUCCESSFUL_TAGS[@]}"
echo "Failed: ${#FAILED_TAGS[@]}"
echo ""
if [ ${#FAILED_TAGS[@]} -gt 0 ]; then
echo "Failed tags:"
for tag in "${FAILED_TAGS[@]}"; do
echo " - $tag"
done
echo ""
echo "⚠️ WARNING: Some tags failed to sign/verify, but continuing anyway"
echo "⚠️ WARNING: Some tags failed to sign, but continuing anyway"
else
echo "✓ All images signed and verified successfully!"
echo "✓ All images signed successfully!"
fi
shell: bash
+1 -1
View File
@@ -24,7 +24,7 @@ jobs:
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- name: Set up Node.js
uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6.3.0
uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0
with:
node-version: '24'
+1 -1
View File
@@ -23,7 +23,7 @@ jobs:
skopeo --version
- name: Install cosign
uses: sigstore/cosign-installer@cad07c2e89fa2edd6e2d7bab4c1aa38e53f76003 # v4.1.1
uses: sigstore/cosign-installer@6f9f17788090df1f26f669e9d70d6ae9567deba6 # v4.1.2
- name: Input check
run: |
-39
View File
@@ -1,39 +0,0 @@
name: Restart Runners
on:
schedule:
- cron: '0 0 */7 * *'
permissions:
id-token: write
contents: read
jobs:
ec2-maintenance-prod:
runs-on: ubuntu-latest
permissions: write-all
steps:
- name: Configure AWS credentials
uses: aws-actions/configure-aws-credentials@v6
with:
role-to-assume: arn:aws:iam::${{ secrets.AWS_ACCOUNT_ID }}:role/${{ secrets.AWS_ROLE_NAME }}
role-duration-seconds: 3600
aws-region: ${{ secrets.AWS_REGION }}
- name: Verify AWS identity
run: aws sts get-caller-identity
- name: Start EC2 instance
run: |
aws ec2 start-instances --instance-ids ${{ secrets.EC2_INSTANCE_ID_ARM_RUNNER }}
aws ec2 start-instances --instance-ids ${{ secrets.EC2_INSTANCE_ID_AMD_RUNNER }}
echo "EC2 instances started"
- name: Wait
run: sleep 600
- name: Stop EC2 instance
run: |
aws ec2 stop-instances --instance-ids ${{ secrets.EC2_INSTANCE_ID_ARM_RUNNER }}
aws ec2 stop-instances --instance-ids ${{ secrets.EC2_INSTANCE_ID_AMD_RUNNER }}
echo "EC2 instances stopped"
-160
View File
@@ -1,160 +0,0 @@
name: SAAS Pipeline
# CI/CD workflow for building, publishing, mirroring, signing container images and building release binaries.
# Actions are pinned to specific SHAs to reduce supply-chain risk. This workflow triggers on tag push events.
permissions:
contents: read
packages: write # for GHCR push
id-token: write # for Cosign Keyless (OIDC) Signing
on:
push:
tags:
- "[0-9]+.[0-9]+.[0-9]+-s.[0-9]+"
concurrency:
group: ${{ github.ref }}
cancel-in-progress: true
jobs:
pre-run:
runs-on: ubuntu-latest
permissions: write-all
steps:
- name: Configure AWS credentials
uses: aws-actions/configure-aws-credentials@v6
with:
role-to-assume: arn:aws:iam::${{ secrets.AWS_ACCOUNT_ID }}:role/${{ secrets.AWS_ROLE_NAME }}
role-duration-seconds: 3600
aws-region: ${{ secrets.AWS_REGION }}
- name: Verify AWS identity
run: aws sts get-caller-identity
- name: Start EC2 instances
run: |
aws ec2 start-instances --instance-ids ${{ secrets.EC2_INSTANCE_ID_ARM_RUNNER }}
echo "EC2 instances started"
release-arm:
name: Build and Release (ARM64)
runs-on: [self-hosted, linux, arm64, us-east-1]
needs: [pre-run]
if: >-
${{
needs.pre-run.result == 'success'
}}
# Job-level timeout to avoid runaway or stuck runs
timeout-minutes: 120
env:
# Target images
AWS_IMAGE: ${{ secrets.aws_account_id }}.dkr.ecr.us-east-1.amazonaws.com/${{ github.event.repository.name }}
steps:
- name: Checkout code
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- name: Download MaxMind GeoLite2 databases
env:
MAXMIND_LICENSE_KEY: ${{ secrets.MAXMIND_LICENSE_KEY }}
run: |
echo "Downloading MaxMind GeoLite2 databases..."
# Download GeoLite2-Country
curl -L "https://download.maxmind.com/app/geoip_download?edition_id=GeoLite2-Country&license_key=${MAXMIND_LICENSE_KEY}&suffix=tar.gz" \
-o GeoLite2-Country.tar.gz
# Download GeoLite2-ASN
curl -L "https://download.maxmind.com/app/geoip_download?edition_id=GeoLite2-ASN&license_key=${MAXMIND_LICENSE_KEY}&suffix=tar.gz" \
-o GeoLite2-ASN.tar.gz
# Extract the .mmdb files
tar -xzf GeoLite2-Country.tar.gz --strip-components=1 --wildcards '*.mmdb'
tar -xzf GeoLite2-ASN.tar.gz --strip-components=1 --wildcards '*.mmdb'
# Verify files exist
if [ ! -f "GeoLite2-Country.mmdb" ]; then
echo "ERROR: Failed to download GeoLite2-Country.mmdb"
exit 1
fi
if [ ! -f "GeoLite2-ASN.mmdb" ]; then
echo "ERROR: Failed to download GeoLite2-ASN.mmdb"
exit 1
fi
# Clean up tar files
rm -f GeoLite2-Country.tar.gz GeoLite2-ASN.tar.gz
echo "MaxMind databases downloaded successfully"
ls -lh GeoLite2-*.mmdb
- name: Monitor storage space
run: |
THRESHOLD=75
USED_SPACE=$(df / | grep / | awk '{ print $5 }' | sed 's/%//g')
echo "Used space: $USED_SPACE%"
if [ "$USED_SPACE" -ge "$THRESHOLD" ]; then
echo "Used space is below the threshold of 75% free. Running Docker system prune."
echo y | docker system prune -a
else
echo "Storage space is above the threshold. No action needed."
fi
- name: Configure AWS credentials
uses: aws-actions/configure-aws-credentials@v6
with:
role-to-assume: arn:aws:iam::${{ secrets.aws_account_id }}:role/${{ secrets.AWS_ROLE_NAME }}
role-duration-seconds: 3600
aws-region: ${{ secrets.AWS_REGION }}
- name: Login to Amazon ECR
id: login-ecr
uses: aws-actions/amazon-ecr-login@v2
- name: Extract tag name
id: get-tag
run: echo "TAG=${GITHUB_REF#refs/tags/}" >> $GITHUB_ENV
shell: bash
- name: Update version in package.json
run: |
TAG=${{ env.TAG }}
sed -i "s/export const APP_VERSION = \".*\";/export const APP_VERSION = \"$TAG\";/" server/lib/consts.ts
cat server/lib/consts.ts
shell: bash
- name: Build and push Docker images (Docker Hub - ARM64)
run: |
TAG=${{ env.TAG }}
make build-saas tag=$TAG
echo "Built & pushed ARM64 images to: ${{ env.AWS_IMAGE }}:${TAG}"
shell: bash
post-run:
needs: [pre-run, release-arm]
if: >-
${{
always() &&
needs.pre-run.result == 'success' &&
(needs.release-arm.result == 'success' || needs.release-arm.result == 'skipped' || needs.release-arm.result == 'failure')
}}
runs-on: ubuntu-latest
permissions: write-all
steps:
- name: Configure AWS credentials
uses: aws-actions/configure-aws-credentials@v6
with:
role-to-assume: arn:aws:iam::${{ secrets.AWS_ACCOUNT_ID }}:role/${{ secrets.AWS_ROLE_NAME }}
role-duration-seconds: 3600
aws-region: ${{ secrets.AWS_REGION }}
- name: Verify AWS identity
run: aws sts get-caller-identity
- name: Stop EC2 instances
run: |
aws ec2 stop-instances --instance-ids ${{ secrets.EC2_INSTANCE_ID_ARM_RUNNER }}
echo "EC2 instances stopped"
+1 -1
View File
@@ -14,7 +14,7 @@ jobs:
stale:
runs-on: ubuntu-latest
steps:
- uses: actions/stale@b5d41d4e1d5dceea10e7104786b73624c18a190f # v10.2.0
- uses: actions/stale@eb5cf3af3ac0a1aa4c9c45633dd1ae542a27a899 # v10.3.0
with:
days-before-stale: 14
days-before-close: 14
+1 -1
View File
@@ -17,7 +17,7 @@ jobs:
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- name: Install Node
uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6.3.0
uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0
with:
node-version: '24'
+4 -2
View File
@@ -17,9 +17,9 @@ yarn-error.log*
*.tsbuildinfo
next-env.d.ts
*.db
*.sqlite
*.sqlite*
!Dockerfile.sqlite
*.sqlite3
*.sqlite3*
*.log
.machinelogs*.json
*-audit.json
@@ -54,3 +54,5 @@ hydrateSaas.ts
CLAUDE.md
drizzle.config.ts
server/setup/migrations.ts
solo.yml
allowedDevOrigins.json
+5 -5
View File
@@ -41,7 +41,7 @@
</strong>
</p>
Pangolin is an open-source, identity-based remote access platform built on WireGuard that enables secure, seamless connectivity to private and public resources. Pangolin combines reverse proxy and VPN capabilities into one platform, providing browser-based access to web applications and client-based access to any private resources with NAT traversal, all with granular access controls.
Pangolin is an open-source, identity-based remote access platform built on WireGuard® that enables secure, seamless connectivity to private and public resources. Pangolin combines reverse proxy and VPN capabilities into one platform, providing browser-based access to web applications and client-based access to any private resources with NAT traversal, all with granular access controls.
## Installation
@@ -53,9 +53,9 @@ Pangolin is an open-source, identity-based remote access platform built on WireG
## Deployment Options
- **Pangolin Cloud** Fully managed service - no infrastructure required.
- **Self-Host: Community Edition** Free, open source, and licensed under AGPL-3.
- **Self-Host: Enterprise Edition** Licensed under Fossorial Commercial License. Free for personal and hobbyist use, and for businesses making less than \$100K USD gross annual revenue.
- **Pangolin Cloud** - Fully managed service - no infrastructure required.
- **Self-Host: Community Edition** - Free, open source, and licensed under AGPL-3.
- **Self-Host: Enterprise Edition** - Licensed under Fossorial Commercial License. Free for personal and hobbyist use, and for businesses making less than \$100K USD gross annual revenue.
## Key Features
@@ -107,7 +107,7 @@ the docs to illustrate some basic ideas.
## Licensing
Pangolin is dual licensed under the AGPL-3 and the [Fossorial Commercial License](https://pangolin.net/fcl.html). For inquiries about commercial licensing, please contact us at [contact@pangolin.net](mailto:contact@pangolin.net).
Pangolin is dual licensed under the AGPL-3 and the [Fossorial Commercial License](https://pangolin.net/fcl). For inquiries about commercial licensing, please contact us at [contact@pangolin.net](mailto:contact@pangolin.net).
## Contributions
-17
View File
@@ -1,17 +0,0 @@
meta {
name: Create API Key
type: http
seq: 1
}
put {
url: http://localhost:3000/api/v1/api-key
body: json
auth: inherit
}
body:json {
{
"isRoot": true
}
}
-11
View File
@@ -1,11 +0,0 @@
meta {
name: Delete API Key
type: http
seq: 2
}
delete {
url: http://localhost:3000/api/v1/api-key/dm47aacqxxn3ubj
body: none
auth: inherit
}
-11
View File
@@ -1,11 +0,0 @@
meta {
name: List API Key Actions
type: http
seq: 6
}
get {
url: http://localhost:3000/api/v1/api-key/ex0izu2c37fjz9x/actions
body: none
auth: inherit
}
-11
View File
@@ -1,11 +0,0 @@
meta {
name: List Org API Keys
type: http
seq: 4
}
get {
url: http://localhost:3000/api/v1/org/home-lab/api-keys
body: none
auth: inherit
}
-11
View File
@@ -1,11 +0,0 @@
meta {
name: List Root API Keys
type: http
seq: 3
}
get {
url: http://localhost:3000/api/v1/root/api-keys
body: none
auth: inherit
}
-17
View File
@@ -1,17 +0,0 @@
meta {
name: Set API Key Actions
type: http
seq: 5
}
post {
url: http://localhost:3000/api/v1/api-key/ex0izu2c37fjz9x/actions
body: json
auth: inherit
}
body:json {
{
"actionIds": ["listSites"]
}
}
-17
View File
@@ -1,17 +0,0 @@
meta {
name: Set API Key Orgs
type: http
seq: 7
}
post {
url: http://localhost:3000/api/v1/api-key/ex0izu2c37fjz9x/orgs
body: json
auth: inherit
}
body:json {
{
"orgIds": ["home-lab"]
}
}
-3
View File
@@ -1,3 +0,0 @@
meta {
name: API Keys
}
-18
View File
@@ -1,18 +0,0 @@
meta {
name: 2fa-disable
type: http
seq: 6
}
post {
url: http://localhost:3000/api/v1/auth/2fa/disable
body: json
auth: none
}
body:json {
{
"password": "aaaaa-1A",
"code": "377289"
}
}
-17
View File
@@ -1,17 +0,0 @@
meta {
name: 2fa-enable
type: http
seq: 4
}
post {
url: http://localhost:3000/api/v1/auth/2fa/enable
body: json
auth: none
}
body:json {
{
"code": "374138"
}
}
-17
View File
@@ -1,17 +0,0 @@
meta {
name: 2fa-request
type: http
seq: 5
}
post {
url: http://localhost:3000/api/v1/auth/2fa/request
body: json
auth: none
}
body:json {
{
"password": "aaaaa-1A"
}
}
-18
View File
@@ -1,18 +0,0 @@
meta {
name: change-password
type: http
seq: 9
}
post {
url: http://localhost:3000/api/v1/auth/change-password
body: json
auth: none
}
body:json {
{
"oldPassword": "",
"newPassword": ""
}
}
-18
View File
@@ -1,18 +0,0 @@
meta {
name: login
type: http
seq: 1
}
post {
url: http://localhost:3000/api/v1/auth/login
body: json
auth: none
}
body:json {
{
"email": "admin@fosrl.io",
"password": "Password123!"
}
}
-11
View File
@@ -1,11 +0,0 @@
meta {
name: logout
type: http
seq: 3
}
post {
url: http://localhost:4000/api/v1/auth/logout
body: none
auth: none
}
-17
View File
@@ -1,17 +0,0 @@
meta {
name: reset-password-request
type: http
seq: 10
}
post {
url: http://localhost:3000/api/v1/auth/reset-password/request
body: json
auth: none
}
body:json {
{
"email": "milo@pangolin.net"
}
}
-19
View File
@@ -1,19 +0,0 @@
meta {
name: reset-password
type: http
seq: 11
}
post {
url: http://localhost:3000/api/v1/auth/reset-password
body: json
auth: none
}
body:json {
{
"token": "3uhsbom72dwdhboctwrtntyd6jrlg4jtf5oaxy4k",
"newPassword": "aaaaa-1A",
"code": "6irqCGR3"
}
}
-18
View File
@@ -1,18 +0,0 @@
meta {
name: signup
type: http
seq: 2
}
put {
url: http://localhost:3000/api/v1/auth/signup
body: json
auth: none
}
body:json {
{
"email": "numbat@pangolin.net",
"password": "Password123!"
}
}
-11
View File
@@ -1,11 +0,0 @@
meta {
name: verify-email-request
type: http
seq: 8
}
post {
url: http://localhost:3000/api/v1/auth/verify-email/request
body: none
auth: none
}
-17
View File
@@ -1,17 +0,0 @@
meta {
name: verify-email
type: http
seq: 7
}
post {
url: http://localhost:3000/api/v1/auth/verify-email
body: json
auth: none
}
body:json {
{
"code": "50317187"
}
}
-15
View File
@@ -1,15 +0,0 @@
meta {
name: verify-user
type: http
seq: 4
}
get {
url: http://localhost:3001/api/v1/badger/verify-user?sessionId=mb52273jkb6t3oys2bx6ur5x7rcrkl26c7warg3e
body: none
auth: none
}
params:query {
sessionId: mb52273jkb6t3oys2bx6ur5x7rcrkl26c7warg3e
}
-22
View File
@@ -1,22 +0,0 @@
meta {
name: createClient
type: http
seq: 1
}
put {
url: http://localhost:3000/api/v1/site/1/client
body: json
auth: none
}
body:json {
{
"siteId": 1,
"name": "test",
"type": "olm",
"subnet": "100.90.129.4/30",
"olmId": "029yzunhx6nh3y5",
"secret": "l0ymp075y3d4rccb25l6sqpgar52k09etunui970qq5gj7x6"
}
}
-11
View File
@@ -1,11 +0,0 @@
meta {
name: pickClientDefaults
type: http
seq: 2
}
get {
url: http://localhost:3000/api/v1/site/1/pick-client-defaults
body: none
auth: none
}
-22
View File
@@ -1,22 +0,0 @@
meta {
name: Create OIDC Provider
type: http
seq: 1
}
put {
url: http://localhost:3000/api/v1/org/home-lab/idp/oidc
body: json
auth: inherit
}
body:json {
{
"clientId": "JJoSvHCZcxnXT2sn6CObj6a21MuKNRXs3kN5wbys",
"clientSecret": "2SlGL2wOGgMEWLI9yUuMAeFxre7qSNJVnXMzyepdNzH1qlxYnC4lKhhQ6a157YQEkYH3vm40KK4RCqbYiF8QIweuPGagPX3oGxEj2exwutoXFfOhtq4hHybQKoFq01Z3",
"authUrl": "http://localhost:9000/application/o/authorize/",
"tokenUrl": "http://localhost:9000/application/o/token/",
"scopes": ["email", "openid", "profile"],
"userIdentifier": "email"
}
}
-11
View File
@@ -1,11 +0,0 @@
meta {
name: Generate OIDC URL
type: http
seq: 2
}
get {
url: http://localhost:3000/api/v1
body: none
auth: inherit
}
-3
View File
@@ -1,3 +0,0 @@
meta {
name: IDP
}
-11
View File
@@ -1,11 +0,0 @@
meta {
name: Traefik Config
type: http
seq: 1
}
get {
url: http://localhost:3001/api/v1/traefik-config
body: none
auth: inherit
}
-3
View File
@@ -1,3 +0,0 @@
meta {
name: Internal
}
-11
View File
@@ -1,11 +0,0 @@
meta {
name: Create Newt
type: http
seq: 2
}
get {
url: http://localhost:3000/api/v1/newt
body: none
auth: none
}
-18
View File
@@ -1,18 +0,0 @@
meta {
name: Get Token
type: http
seq: 1
}
get {
url: http://localhost:3000/api/v1/auth/newt/get-token
body: json
auth: none
}
body:json {
{
"newtId": "o0d4rdxq3stnz7b",
"secret": "sy7l09fnaesd03iwrfp9m3qf0ryn19g0zf3dqieaazb4k7vk"
}
}
-15
View File
@@ -1,15 +0,0 @@
meta {
name: createOlm
type: http
seq: 1
}
put {
url: http://localhost:3000/api/v1/olm
body: none
auth: inherit
}
settings {
encodeUrl: true
}
-8
View File
@@ -1,8 +0,0 @@
meta {
name: Olm
seq: 15
}
auth {
mode: inherit
}
-11
View File
@@ -1,11 +0,0 @@
meta {
name: Check Id
type: http
seq: 2
}
get {
url: http://localhost:3000/api/v1/org/checkId
body: none
auth: none
}
-11
View File
@@ -1,11 +0,0 @@
meta {
name: listOrgs
type: http
seq: 1
}
get {
url:
body: none
auth: none
}
@@ -1,11 +0,0 @@
meta {
name: createRemoteExitNode
type: http
seq: 1
}
put {
url: http://localhost:4000/api/v1/org/org_i21aifypnlyxur2/remote-exit-node
body: none
auth: none
}
-11
View File
@@ -1,11 +0,0 @@
meta {
name: listResourcesByOrg
type: http
seq: 1
}
get {
url:
body: none
auth: none
}
-16
View File
@@ -1,16 +0,0 @@
meta {
name: listResourcesBySite
type: http
seq: 2
}
get {
url: http://localhost:3000/api/v1/site/1/resources?limit=10&offset=0
body: none
auth: none
}
params:query {
limit: 10
offset: 0
}
-11
View File
@@ -1,11 +0,0 @@
meta {
name: Get Site
type: http
seq: 2
}
get {
url: http://localhost:3000/api/v1/org/test/sites/mexican-mole-lizard-windy
body: none
auth: none
}
-11
View File
@@ -1,11 +0,0 @@
meta {
name: listSites
type: http
seq: 1
}
get {
url:
body: none
auth: none
}
-16
View File
@@ -1,16 +0,0 @@
meta {
name: listTargets
type: http
seq: 1
}
get {
url: http://localhost:3000/api/v1/resource/web.main.localhost/targets?limit=10&offset=0
body: none
auth: none
}
params:query {
limit: 10
offset: 0
}
-11
View File
@@ -1,11 +0,0 @@
meta {
name: Test
type: http
seq: 2
}
get {
url: http://localhost:3000/api/v1
body: none
auth: inherit
}
-11
View File
@@ -1,11 +0,0 @@
meta {
name: traefik-config
type: http
seq: 1
}
get {
url: http://localhost:3001/api/v1/traefik-config
body: none
auth: none
}
-11
View File
@@ -1,11 +0,0 @@
meta {
name: adminListUsers
type: http
seq: 2
}
get {
url: http://localhost:3000/api/v1/users
body: none
auth: none
}
-11
View File
@@ -1,11 +0,0 @@
meta {
name: adminRemoveUser
type: http
seq: 3
}
delete {
url: http://localhost:3000/api/v1/user/ky5r7ivqs8wc7u4
body: none
auth: none
}
-11
View File
@@ -1,11 +0,0 @@
meta {
name: getUser
type: http
seq: 1
}
get {
url:
body: none
auth: none
}
-13
View File
@@ -1,13 +0,0 @@
{
"version": "1",
"name": "Pangolin",
"type": "collection",
"ignore": [
"node_modules",
".git"
],
"presets": {
"requestType": "http",
"requestUrl": "http://localhost:3000/api/v1"
}
}
+28
View File
@@ -0,0 +1,28 @@
import { CommandModule } from "yargs";
import { db, certificates } from "@server/db";
type ClearCertificatesArgs = {};
export const clearCertificates: CommandModule<{}, ClearCertificatesArgs> = {
command: "clear-certificates",
describe: "Delete all entries from the certificates table",
builder: (yargs) => {
return yargs;
},
handler: async (argv: {}) => {
try {
console.log("Clearing all certificates from the database...");
const deleted = await db.delete(certificates).returning();
console.log(
`Deleted ${deleted.length} certificate(s) from the database`
);
process.exit(0);
} catch (error) {
console.error("Error:", error);
process.exit(1);
}
}
};
+60
View File
@@ -0,0 +1,60 @@
import { CommandModule } from "yargs";
import { db, users } from "@server/db";
import { eq } from "drizzle-orm";
/**
* Disable 2FA for a user by email address.
*/
type DisableUser2faArgs = {
email: string;
};
export const disableUser2fa: CommandModule<{}, DisableUser2faArgs> = {
command: "disable-user-2fa",
describe: "Disable 2FA for a user (sets twoFactorEnabled=false, clears secret)",
builder: (yargs) => {
return yargs.option("email", {
type: "string",
demandOption: true,
describe: "User email address"
});
},
handler: async (argv: { email: string }) => {
try {
const { email } = argv;
console.log(`Looking for user with email: ${email}`);
// Find the user by email
const [user] = await db
.select()
.from(users)
.where(eq(users.email, email))
.limit(1);
if (!user) {
console.error(`User with email '${email}' not found`);
process.exit(1);
}
if (!user.twoFactorEnabled) {
console.log(`2FA is already disabled for user '${email}'.`);
process.exit(0);
}
// Update user: disable 2FA and clear secret
await db.update(users)
.set({
twoFactorEnabled: false,
twoFactorSecret: null,
twoFactorSetupRequested: false
})
.where(eq(users.userId, user.userId));
console.log(`2FA disabled for user '${email}'.`);
process.exit(0);
} catch (error) {
console.error("Error disabling 2FA:", error);
process.exit(1);
}
}
};
+133 -1
View File
@@ -1,5 +1,5 @@
import { CommandModule } from "yargs";
import { db, idpOidcConfig, licenseKey } from "@server/db";
import { db, idpOidcConfig, licenseKey, certificates, eventStreamingDestinations, alertWebhookActions } from "@server/db";
import { encrypt, decrypt } from "@server/lib/crypto";
import { configFilePath1, configFilePath2 } from "@server/lib/consts";
import { eq } from "drizzle-orm";
@@ -129,9 +129,15 @@ export const rotateServerSecret: CommandModule<
console.log("\nReading encrypted data from database...");
const idpConfigs = await db.select().from(idpOidcConfig);
const licenseKeys = await db.select().from(licenseKey);
const certs = await db.select().from(certificates);
const streamingDestinations = await db.select().from(eventStreamingDestinations);
const webhookActions = await db.select().from(alertWebhookActions);
console.log(`Found ${idpConfigs.length} OIDC IdP configuration(s)`);
console.log(`Found ${licenseKeys.length} license key(s)`);
console.log(`Found ${certs.length} certificate(s)`);
console.log(`Found ${streamingDestinations.length} event streaming destination(s)`);
console.log(`Found ${webhookActions.length} alert webhook action(s)`);
// Prepare all decrypted and re-encrypted values
console.log("\nDecrypting and re-encrypting values...");
@@ -149,8 +155,27 @@ export const rotateServerSecret: CommandModule<
encryptedInstanceId: string;
};
type CertUpdate = {
certId: number;
encryptedCertFile: string | null;
encryptedKeyFile: string | null;
};
type StreamingDestinationUpdate = {
destinationId: number;
encryptedConfig: string;
};
type WebhookActionUpdate = {
webhookActionId: number;
encryptedConfig: string;
};
const idpUpdates: IdpUpdate[] = [];
const licenseKeyUpdates: LicenseKeyUpdate[] = [];
const certUpdates: CertUpdate[] = [];
const streamingDestinationUpdates: StreamingDestinationUpdate[] = [];
const webhookActionUpdates: WebhookActionUpdate[] = [];
// Process idpOidcConfig entries
for (const idpConfig of idpConfigs) {
@@ -217,6 +242,70 @@ export const rotateServerSecret: CommandModule<
}
}
// Process certificate entries
for (const cert of certs) {
try {
const encryptedCertFile = cert.certFile
? encrypt(decrypt(cert.certFile, oldSecret), newSecret)
: null;
const encryptedKeyFile = cert.keyFile
? encrypt(decrypt(cert.keyFile, oldSecret), newSecret)
: null;
certUpdates.push({
certId: cert.certId,
encryptedCertFile,
encryptedKeyFile
});
} catch (error) {
console.error(
`Error processing certificate ${cert.certId} (${cert.domain}):`,
error
);
throw error;
}
}
// Process eventStreamingDestinations entries
for (const dest of streamingDestinations) {
try {
const decryptedConfig = decrypt(dest.config, oldSecret);
const encryptedConfig = encrypt(decryptedConfig, newSecret);
streamingDestinationUpdates.push({
destinationId: dest.destinationId,
encryptedConfig
});
} catch (error) {
console.error(
`Error processing event streaming destination ${dest.destinationId}:`,
error
);
throw error;
}
}
// Process alertWebhookActions entries
for (const webhook of webhookActions) {
try {
if (webhook.config == null) continue;
const decryptedConfig = decrypt(webhook.config, oldSecret);
const encryptedConfig = encrypt(decryptedConfig, newSecret);
webhookActionUpdates.push({
webhookActionId: webhook.webhookActionId,
encryptedConfig
});
} catch (error) {
console.error(
`Error processing alert webhook action ${webhook.webhookActionId}:`,
error
);
throw error;
}
}
// Perform all database updates in a single transaction
console.log("\nUpdating database in transaction...");
await db.transaction(async (trx) => {
@@ -250,10 +339,50 @@ export const rotateServerSecret: CommandModule<
instanceId: update.encryptedInstanceId
});
}
// Update certificate entries
for (const update of certUpdates) {
await trx
.update(certificates)
.set({
certFile: update.encryptedCertFile,
keyFile: update.encryptedKeyFile
})
.where(eq(certificates.certId, update.certId));
}
// Update event streaming destination entries
for (const update of streamingDestinationUpdates) {
await trx
.update(eventStreamingDestinations)
.set({ config: update.encryptedConfig })
.where(
eq(
eventStreamingDestinations.destinationId,
update.destinationId
)
);
}
// Update alert webhook action entries
for (const update of webhookActionUpdates) {
await trx
.update(alertWebhookActions)
.set({ config: update.encryptedConfig })
.where(
eq(
alertWebhookActions.webhookActionId,
update.webhookActionId
)
);
}
});
console.log(`Rotated ${idpUpdates.length} OIDC IdP configuration(s)`);
console.log(`Rotated ${licenseKeyUpdates.length} license key(s)`);
console.log(`Rotated ${certUpdates.length} certificate(s)`);
console.log(`Rotated ${streamingDestinationUpdates.length} event streaming destination(s)`);
console.log(`Rotated ${webhookActionUpdates.length} alert webhook action(s)`);
// Update config file with new secret
console.log("\nUpdating config file...");
@@ -270,6 +399,9 @@ export const rotateServerSecret: CommandModule<
console.log(`\nSummary:`);
console.log(` - OIDC IdP configurations: ${idpUpdates.length}`);
console.log(` - License keys: ${licenseKeyUpdates.length}`);
console.log(` - Certificates: ${certUpdates.length}`);
console.log(` - Event streaming destinations: ${streamingDestinationUpdates.length}`);
console.log(` - Alert webhook actions: ${webhookActionUpdates.length}`);
console.log(
`\n IMPORTANT: Restart the server for the new secret to take effect.`
);
+51
View File
@@ -0,0 +1,51 @@
import { CommandModule } from "yargs";
import { db, users } from "@server/db";
import { eq } from "drizzle-orm";
type SetServerAdminArgs = {
email: string;
};
export const setServerAdmin: CommandModule<{}, SetServerAdminArgs> = {
command: "set-server-admin",
describe: "Mark any user as a server admin by email address",
builder: (yargs) => {
return yargs.option("email", {
type: "string",
demandOption: true,
describe: "User email address"
});
},
handler: async (argv: { email: string }) => {
try {
const email = argv.email.trim().toLowerCase();
const [user] = await db
.select()
.from(users)
.where(eq(users.email, email))
.limit(1);
if (!user) {
console.error(`User with email '${email}' not found`);
process.exit(1);
}
if (user.serverAdmin) {
console.log(`User '${email}' is already a server admin`);
process.exit(0);
}
await db
.update(users)
.set({ serverAdmin: true })
.where(eq(users.userId, user.userId));
console.log(`User '${email}' has been marked as a server admin`);
process.exit(0);
} catch (error) {
console.error("Error:", error);
process.exit(1);
}
}
};
+6
View File
@@ -9,6 +9,9 @@ import { rotateServerSecret } from "./commands/rotateServerSecret";
import { clearLicenseKeys } from "./commands/clearLicenseKeys";
import { deleteClient } from "./commands/deleteClient";
import { generateOrgCaKeys } from "./commands/generateOrgCaKeys";
import { clearCertificates } from "./commands/clearCertificates";
import { disableUser2fa } from "./commands/disableUser2fa";
import { setServerAdmin } from "./commands/setServerAdmin";
yargs(hideBin(process.argv))
.scriptName("pangctl")
@@ -19,5 +22,8 @@ yargs(hideBin(process.argv))
.command(clearLicenseKeys)
.command(deleteClient)
.command(generateOrgCaKeys)
.command(clearCertificates)
.command(disableUser2fa)
.command(setServerAdmin)
.demandCommand()
.help().argv;
+15 -22
View File
@@ -1,54 +1,47 @@
api:
insecure: true
dashboard: true
providers:
http:
endpoint: "http://pangolin:3001/api/v1/traefik-config"
pollInterval: "5s"
endpoint: http://pangolin:3001/api/v1/traefik-config
pollInterval: 5s
file:
filename: "/etc/traefik/dynamic_config.yml"
filename: /etc/traefik/dynamic_config.yml
experimental:
plugins:
badger:
moduleName: "github.com/fosrl/badger"
version: "{{.BadgerVersion}}"
moduleName: github.com/fosrl/badger
version: v1.4.1
log:
level: "INFO"
format: "common"
level: INFO
format: common
maxSize: 100
maxBackups: 3
maxAge: 3
compress: true
certificatesResolvers:
letsencrypt:
acme:
httpChallenge:
entryPoint: web
email: "{{.LetsEncryptEmail}}"
storage: "/letsencrypt/acme.json"
caServer: "https://acme-v02.api.letsencrypt.org/directory"
email: '{{.LetsEncryptEmail}}'
storage: /letsencrypt/acme.json
caServer: https://acme-v02.api.letsencrypt.org/directory
entryPoints:
web:
address: ":80"
address: ':80'
websecure:
address: ":443"
address: ':443'
transport:
respondingTimeouts:
readTimeout: "30m"
readTimeout: 30m
http:
tls:
certResolver: "letsencrypt"
certResolver: letsencrypt
encodedCharacters:
allowEncodedSlash: true
allowEncodedQuestionMark: true
serversTransport:
insecureSkipVerify: true
ping:
entryPoint: "web"
entryPoint: web
+12
View File
@@ -0,0 +1,12 @@
services:
mailer:
image: axllent/mailpit
ports:
- 8025:8025
- 1025:1025
volumes:
- mailpit-storage:/data
environment:
- MP_DATABASE=/data/mailpit.db
volumes:
mailpit-storage:
+2 -2
View File
@@ -7,8 +7,8 @@ services:
POSTGRES_DB: postgres # Default database name
POSTGRES_USER: postgres # Default user
POSTGRES_PASSWORD: password # Default password (change for production!)
# volumes:
# - ./config/postgres:/var/lib/postgresql/data
volumes:
- ./config/postgres:/var/lib/postgresql/data
ports:
- "5432:5432" # Map host port 5432 to container port 5432
restart: no
+1 -1
View File
@@ -1,4 +1,4 @@
import { APP_PATH } from "@server/lib/consts";
import { APP_PATH } from "./server/lib/consts";
import { defineConfig } from "drizzle-kit";
import path from "path";
+5 -1
View File
@@ -22,7 +22,8 @@ server:
methods: ["GET", "POST", "PUT", "DELETE", "PATCH"]
allowed_headers: ["X-CSRF-Token", "Content-Type"]
credentials: false
{{if .EnableGeoblocking}}maxmind_db_path: "./config/GeoLite2-Country.mmdb"{{end}}
{{if .EnableMaxMind}}maxmind_db_path: "./config/GeoLite2-Country.mmdb"{{end}}
{{if .EnableMaxMind}}maxmind_asn_path: "./config/GeoLite2-ASN.mmdb"{{end}}
{{if .EnableEmail}}
email:
smtp_host: "{{.EmailSMTPHost}}"
@@ -36,3 +37,6 @@ flags:
disable_signup_without_invite: true
disable_user_create_org: false
allow_raw_resources: true
{{if .IsPostgreSQL}}postgres:
connection_string: postgresql://pangolin:{{.IsPostgreSQLPass}}@postgres:5432/pangolin{{end}}
+60 -11
View File
@@ -1,15 +1,23 @@
name: pangolin
services:
pangolin:
image: docker.io/fosrl/pangolin:{{if .IsEnterprise}}ee-{{end}}{{.PangolinVersion}}
image: docker.io/fosrl/pangolin:{{if .IsEnterprise}}ee-{{end}}{{if .IsPostgreSQL}}postgresql-{{end}}{{.PangolinVersion}}
container_name: pangolin
restart: unless-stopped
deploy:
resources:
limits:
memory: 1g
memory: 2g
reservations:
memory: 256m
memory: 512m
{{if or .IsPostgreSQL .IsRedis}}depends_on:
{{if .IsPostgreSQL}}postgres:
condition: service_healthy{{end}}
{{if .IsRedis}}redis:
condition: service_healthy{{end}}
networks:
- default
- backend{{end}}
volumes:
- ./config:/app/config
healthcheck:
@@ -17,8 +25,8 @@ services:
interval: "10s"
timeout: "10s"
retries: 15
{{if .InstallGerbil}}
gerbil:
{{if .InstallGerbil}}gerbil:
image: docker.io/fosrl/gerbil:{{.GerbilVersion}}
container_name: gerbil
restart: unless-stopped
@@ -39,17 +47,16 @@ services:
- 21820:21820/udp
- 443:443
- 443:443/udp # For http3 QUIC if desired
- 80:80
{{end}}
- 80:80{{end}}
traefik:
image: docker.io/traefik:v3.6
container_name: traefik
restart: unless-stopped
{{if .InstallGerbil}} network_mode: service:gerbil # Ports appear on the gerbil service{{end}}{{if not .InstallGerbil}}
{{if .InstallGerbil}}network_mode: service:gerbil # Ports appear on the gerbil service{{end}}{{if not .InstallGerbil}}
ports:
- 443:443
- 80:80
{{end}}
- 80:80{{end}}
depends_on:
pangolin:
condition: service_healthy
@@ -60,8 +67,50 @@ services:
- ./config/letsencrypt:/letsencrypt # Volume to store the Let's Encrypt certificates
- ./config/traefik/logs:/var/log/traefik # Volume to store Traefik logs
{{if .IsPostgreSQL}}postgres:
image: postgres:18
container_name: postgres
restart: unless-stopped
environment:
POSTGRES_USER: pangolin
POSTGRES_PASSWORD: {{.IsPostgreSQLPass}}
POSTGRES_DB: pangolin
volumes:
- ./postgres18:/var/lib/postgresql
healthcheck:
test: ["CMD-SHELL", "pg_isready -U pangolin"]
interval: 10s
timeout: 5s
retries: 5
networks:
- backend{{end}}
{{if .IsRedis}}redis:
image: redis:8-trixie
container_name: redis
restart: unless-stopped
command: >
redis-server
--save 3600 1000
--appendonly yes
--requirepass {{.IsRedisPass}}
volumes:
- ./redis8:/data
healthcheck:
test: ["CMD", "redis-cli", "-a", "{{.IsRedisPass}}", "ping"]
interval: 10s
timeout: 3s
retries: 3
start_period: 10s
networks:
- backend{{end}}
networks:
default:
driver: bridge
name: pangolin
name: pangolin_frontend
{{if .EnableIPv6}} enable_ipv6: true{{end}}
{{if or .IsPostgreSQL .IsRedis}} backend:
driver: bridge
name: pangolin_backend
internal: true{{end}}
+4
View File
@@ -0,0 +1,4 @@
{{if .IsRedis}}redis:
host: "redis"
port: 6379
password: "{{.IsRedisPass}}"{{end}}
+70 -1
View File
@@ -6,12 +6,13 @@ import (
"log"
"os"
"os/exec"
"path/filepath"
"strings"
"gopkg.in/yaml.v3"
)
func installCrowdsec(config Config) error {
func installCrowdsec(config Config, installDir string) error {
if err := stopContainers(config.InstallationContainerType); err != nil {
return fmt.Errorf("failed to stop containers: %v", err)
@@ -40,6 +41,8 @@ func installCrowdsec(config Config) error {
os.Exit(1)
}
setupTraefikLogRotate(installDir)
if err := copyDockerService("config/crowdsec/docker-compose.yml", "docker-compose.yml", "crowdsec"); err != nil {
fmt.Printf("Error copying docker service: %v\n", err)
os.Exit(1)
@@ -208,3 +211,69 @@ func CheckAndAddCrowdsecDependency(composePath string) error {
fmt.Println("Added dependency of crowdsec to traefik")
return nil
}
// setupTraefikLogRotate writes a logrotate config for the Traefik access log
// that CrowdSec depends on. This is only needed when CrowdSec is installed
// because the default Pangolin install does not enable Traefik access logs.
//
// copytruncate is used so Traefik does not need to be restarted or sent a
// signal after rotation — it keeps writing to the same file descriptor while
// the rotated copy is made and the original is truncated in place.
func setupTraefikLogRotate(installDir string) {
const logrotateDir = "/etc/logrotate.d"
const logrotateFile = "/etc/logrotate.d/pangolin-traefik"
logPath := filepath.Join(installDir, "config/traefik/logs/access.log")
if os.Geteuid() != 0 {
fmt.Println("\n[logrotate] Skipping automatic logrotate setup: not running as root.")
fmt.Println("[logrotate] To prevent unbounded growth of the Traefik access log used by CrowdSec,")
fmt.Println("[logrotate] create the file /etc/logrotate.d/pangolin-traefik manually with:")
printLogrotateConfig(logPath)
return
}
config := fmt.Sprintf(`# Logrotate config for Traefik access logs used by CrowdSec.
# Generated by the Pangolin installer. Safe to edit.
%s {
daily
rotate 7
compress
delaycompress
missingok
notifempty
copytruncate
}
`, logPath)
if err := os.MkdirAll(logrotateDir, 0755); err != nil {
fmt.Printf("[logrotate] Warning: could not create %s: %v\n", logrotateDir, err)
return
}
if err := os.WriteFile(logrotateFile, []byte(config), 0644); err != nil {
fmt.Printf("[logrotate] Warning: could not write %s: %v\n", logrotateFile, err)
fmt.Println("[logrotate] Set it up manually:")
printLogrotateConfig(logPath)
return
}
fmt.Printf("[logrotate] Wrote logrotate config to %s\n", logrotateFile)
fmt.Println("[logrotate] Traefik access logs will be rotated daily, keeping 7 compressed copies.")
}
// printLogrotateConfig prints a logrotate config block to stdout so users can
// set it up manually when the installer cannot write to /etc.
func printLogrotateConfig(logPath string) {
fmt.Printf(`
%s {
daily
rotate 7
compress
delaycompress
missingok
notifempty
copytruncate
}
`, logPath)
}
+2 -2
View File
@@ -5,7 +5,7 @@ go 1.25.0
require (
github.com/charmbracelet/huh v1.0.0
github.com/charmbracelet/lipgloss v1.1.0
golang.org/x/term v0.41.0
golang.org/x/term v0.43.0
gopkg.in/yaml.v3 v3.0.1
)
@@ -33,6 +33,6 @@ require (
github.com/rivo/uniseg v0.4.7 // indirect
github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e // indirect
golang.org/x/sync v0.15.0 // indirect
golang.org/x/sys v0.42.0 // indirect
golang.org/x/sys v0.44.0 // indirect
golang.org/x/text v0.23.0 // indirect
)
+4 -4
View File
@@ -69,10 +69,10 @@ golang.org/x/sync v0.15.0 h1:KWH3jNZsfyT6xfAfKiz6MRNmd46ByHDYaZ7KSkCtdW8=
golang.org/x/sync v0.15.0/go.mod h1:1dzgHSNfp02xaA81J2MS99Qcpr2w7fw1gpm99rleRqA=
golang.org/x/sys v0.0.0-20210809222454-d867a43fc93e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.42.0 h1:omrd2nAlyT5ESRdCLYdm3+fMfNFE/+Rf4bDIQImRJeo=
golang.org/x/sys v0.42.0/go.mod h1:4GL1E5IUh+htKOUEOaiffhrAeqysfVGipDYzABqnCmw=
golang.org/x/term v0.41.0 h1:QCgPso/Q3RTJx2Th4bDLqML4W6iJiaXFq2/ftQF13YU=
golang.org/x/term v0.41.0/go.mod h1:3pfBgksrReYfZ5lvYM0kSO0LIkAl4Yl2bXOkKP7Ec2A=
golang.org/x/sys v0.44.0 h1:ildZl3J4uzeKP07r2F++Op7E9B29JRUy+a27EibtBTQ=
golang.org/x/sys v0.44.0/go.mod h1:4GL1E5IUh+htKOUEOaiffhrAeqysfVGipDYzABqnCmw=
golang.org/x/term v0.43.0 h1:S4RLU2sB31O/NCl+zFN9Aru9A/Cq2aqKpTZJ6B+DwT4=
golang.org/x/term v0.43.0/go.mod h1:lrhlHNdQJHO+1qVYiHfFKVuVioJIheAc3fBSMFYEIsk=
golang.org/x/text v0.23.0 h1:D71I7dUrlY+VX0gQShAThNGHFxZ13dGLBHQLVl1mJlY=
golang.org/x/text v0.23.0/go.mod h1:/BLNzu4aZCJ1+kcD0DNRotWKage4q2rGVAg4o22unh4=
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM=
+58 -21
View File
@@ -4,6 +4,7 @@ import (
"crypto/rand"
"embed"
"encoding/base64"
"flag"
"fmt"
"io"
"io/fs"
@@ -53,9 +54,13 @@ type Config struct {
InstallGerbil bool
TraefikBouncerKey string
DoCrowdsecInstall bool
EnableGeoblocking bool
EnableMaxMind bool
Secret string
IsEnterprise bool
IsPostgreSQL bool
IsPostgreSQLPass string
IsRedis bool
IsRedisPass string
}
type SupportedContainer string
@@ -66,8 +71,14 @@ const (
Undefined SupportedContainer = "undefined"
)
var redisFlag *bool
func main() {
crowdsecFlag := flag.Bool("crowdsec", false, "Enable the CrowdSec installation prompt")
redisFlag = flag.Bool("redis", false, "Install Redis as cacheing solution. Required for HA. Not required for the Enterprise version.")
flag.Parse()
// print a banner about prerequisites - opening port 80, 443, 51820, and 21820 on the VPS and firewall and pointing your domain to the VPS IP with a records. Docs are at http://localhost:3000/Getting%20Started/dns-networking
fmt.Println("Welcome to the Pangolin installer!")
@@ -119,11 +130,11 @@ func main() {
fmt.Println("\nConfiguration files created successfully!")
// Download MaxMind database if requested
if config.EnableGeoblocking {
fmt.Println("\n=== Downloading MaxMind Database ===")
// Download MaxMind Country / ASN database if requested
if config.EnableMaxMind {
fmt.Println("\n=== Downloading MaxMind Country and ASN Databases ===")
if err := downloadMaxMindDatabase(); err != nil {
fmt.Printf("Error downloading MaxMind database: %v\n", err)
fmt.Printf("Error downloading MaxMind databases: %v\n", err)
fmt.Println("You can download it manually later if needed.")
}
}
@@ -184,15 +195,15 @@ func main() {
fmt.Println("\n=== MaxMind Database Update ===")
if _, err := os.Stat("config/GeoLite2-Country.mmdb"); err == nil {
fmt.Println("MaxMind GeoLite2 Country database found.")
if readBool("Would you like to update the MaxMind database to the latest version?", false) {
if readBool("Would you like to update the MaxMind databases (Country and ASN) to the latest version?", false) {
if err := downloadMaxMindDatabase(); err != nil {
fmt.Printf("Error updating MaxMind database: %v\n", err)
fmt.Println("You can try updating it manually later if needed.")
}
}
} else {
fmt.Println("MaxMind GeoLite2 Country database not found.")
if readBool("Would you like to download the MaxMind GeoLite2 database for geoblocking functionality?", false) {
fmt.Println("MaxMind GeoLite2 Country and ASN databases not found.")
if readBool("Would you like to download the MaxMind GeoLite2 databases for blocking functionality?", false) {
if err := downloadMaxMindDatabase(); err != nil {
fmt.Printf("Error downloading MaxMind database: %v\n", err)
fmt.Println("You can try downloading it manually later if needed.")
@@ -200,13 +211,15 @@ func main() {
// Now you need to update your config file accordingly to enable geoblocking
fmt.Print("Please remember to update your config/config.yml file to enable geoblocking! \n\n")
// add maxmind_db_path: "./config/GeoLite2-Country.mmdb" under server
fmt.Println("Add the following line under the 'server' section:")
// add maxmind_asn_path: "./config/GeoLite2-ASN.mmdb" under server
fmt.Println("Add the following lines under the 'server' section:")
fmt.Println(" maxmind_db_path: \"./config/GeoLite2-Country.mmdb\"")
fmt.Println(" maxmind_asn_path: \"./config/GeoLite2-ASN.mmdb\"")
}
}
}
if !checkIsCrowdsecInstalledInCompose() {
if *crowdsecFlag && !checkIsCrowdsecInstalledInCompose() {
fmt.Println("\n=== CrowdSec Install ===")
// check if crowdsec is installed
if readBool("Would you like to install CrowdSec?", false) {
@@ -259,7 +272,7 @@ func main() {
}
config.DoCrowdsecInstall = true
err := installCrowdsec(config)
err := installCrowdsec(config, installDir)
if err != nil {
fmt.Printf("Error installing CrowdSec: %v\n", err)
return
@@ -480,6 +493,17 @@ func collectUserInput() Config {
fmt.Println("\n=== Basic Configuration ===")
config.IsEnterprise = readBoolNoDefault("Do you want to install the Enterprise version of Pangolin? The EE is free for personal use or for businesses making less than 100k USD annually.")
if config.IsEnterprise {
if *redisFlag {
config.IsRedis = true
config.IsRedisPass = readPassword("Enter a unique password for the Redis service.")
}
}
config.IsPostgreSQL = readBool("Do you want to use PostgreSQL (not recommended for most users)?", false)
if config.IsPostgreSQL {
config.IsPostgreSQLPass = readPassword("Enter a unique password for the PostgreSQL pangolin user.")
}
config.BaseDomain = readString("Enter your base domain (no subdomain e.g. example.com)", "")
@@ -523,7 +547,7 @@ func collectUserInput() Config {
fmt.Println("\n=== Advanced Configuration ===")
config.EnableIPv6 = readBool("Is your server IPv6 capable?", true)
config.EnableGeoblocking = readBool("Do you want to download the MaxMind GeoLite2 database for geoblocking functionality?", true)
config.EnableMaxMind = readBool("Do you want to download the MaxMind GeoLite2 Country and ASN databases for blocking functionality?", true)
if config.DashboardDomain == "" {
fmt.Println("Error: Dashboard Domain name is required")
@@ -776,29 +800,42 @@ func checkPortsAvailable(port int) error {
}
func downloadMaxMindDatabase() error {
fmt.Println("Downloading MaxMind GeoLite2 Country database...")
fmt.Println("Downloading MaxMind GeoLite2 Country and ASN databases...")
// Download the GeoLite2 Country database
// Download the GeoLite2 Country databases
if err := run("curl", "-L", "-o", "GeoLite2-Country.tar.gz",
"https://github.com/GitSquared/node-geolite2-redist/raw/refs/heads/master/redist/GeoLite2-Country.tar.gz"); err != nil {
return fmt.Errorf("failed to download GeoLite2 database: %v", err)
return fmt.Errorf("failed to download GeoLite2 Country database: %v", err)
}
if err := run("curl", "-L", "-o", "GeoLite2-ASN.tar.gz",
"https://github.com/GitSquared/node-geolite2-redist/raw/refs/heads/master/redist/GeoLite2-ASN.tar.gz"); err != nil {
return fmt.Errorf("failed to download GeoLite2 ASN database: %v", err)
}
// Extract the database
// Extract the Country database
if err := run("tar", "-xzf", "GeoLite2-Country.tar.gz"); err != nil {
return fmt.Errorf("failed to extract GeoLite2 database: %v", err)
return fmt.Errorf("failed to extract GeoLite2 Country database: %v", err)
}
if err := run("tar", "-xzf", "GeoLite2-ASN.tar.gz"); err != nil {
return fmt.Errorf("failed to extract GeoLite2 ASN database: %v", err)
}
// Find the .mmdb file and move it to the config directory
if err := run("bash", "-c", "mv GeoLite2-Country_*/GeoLite2-Country.mmdb config/"); err != nil {
return fmt.Errorf("failed to move GeoLite2 database to config directory: %v", err)
return fmt.Errorf("failed to move GeoLite2 Country database to config directory: %v", err)
}
if err := run("bash", "-c", "mv GeoLite2-ASN_*/GeoLite2-ASN.mmdb config/"); err != nil {
return fmt.Errorf("failed to move GeoLite2 ASN database to config directory: %v", err)
}
// Clean up the downloaded files
if err := run("rm", "-rf", "GeoLite2-Country.tar.gz", "GeoLite2-Country_*"); err != nil {
fmt.Printf("Warning: failed to clean up temporary files: %v\n", err)
if err := run("sh", "-c", "rm -rf GeoLite2-Country.tar.gz GeoLite2-Country_*"); err != nil {
fmt.Printf("Warning: failed to clean up temporary country files: %v\n", err)
}
if err := run("sh", "-c", "rm -rf GeoLite2-ASN.tar.gz GeoLite2-ASN_*"); err != nil {
fmt.Printf("Warning: failed to clean up temporary ASN files: %v\n", err)
}
fmt.Println("MaxMind GeoLite2 Country database downloaded successfully!")
fmt.Println("MaxMind GeoLite2 Country and ASN database downloaded successfully!")
return nil
}
+3 -3
View File
@@ -96,7 +96,7 @@ def process_directory(root_dir):
if has_correct_header:
print(f"Header up-to-date: {file_path}")
else:
# Either no header exists or the header is outdated write
# Either no header exists or the header is outdated - write
# the correct one.
action = "Replaced header in" if has_any_header else "Added header to"
new_content = HEADER_NORMALIZED + '\n\n' + body
@@ -106,7 +106,7 @@ def process_directory(root_dir):
files_modified += 1
else:
if has_any_header:
# Remove the header it shouldn't be here.
# Remove the header - it shouldn't be here.
with open(file_path, 'w', encoding='utf-8') as f:
f.write(body)
print(f"Removed header from: {file_path}")
@@ -134,4 +134,4 @@ if __name__ == "__main__":
print(f"Error: Directory '{target_directory}' not found.")
sys.exit(1)
process_directory(os.path.abspath(target_directory))
process_directory(os.path.abspath(target_directory))
+574 -40
View File
@@ -1,4 +1,8 @@
{
"contactSalesEnable": "Свържете се с отдел продажби, за да активирате тази функция.",
"contactSalesBookDemo": "Резервирайте демонстрация",
"contactSalesOr": "или",
"contactSalesContactUs": "свържете се с нас",
"setupCreate": "Създайте организацията, сайта и ресурсите",
"headerAuthCompatibilityInfo": "Активирайте това, за да принудите отговор '401 Неупълномощено', когато липсва токен за автентификация. Това е необходимо за браузъри или специфични HTTP библиотеки, които не изпращат идентификационни данни без сървърно предизвикателство.",
"headerAuthCompatibility": "Разширена съвместимост.",
@@ -19,6 +23,18 @@
"componentsInvalidKey": "Засечен е невалиден или изтекъл лиценз. Проверете лицензионните условия, за да се възползвате от всички функционалности.",
"dismiss": "Отхвърляне",
"subscriptionViolationMessage": "Превишихте ограничението на текущия си план. Коригирайте проблема, като премахнете сайтове, потребители или други ресурси, за да оставате в рамките на плана си.",
"trialBannerMessage": "Пробният Ви период изтича след {countdown}. Актуализирайте за запазване на достъпа.",
"trialBannerExpired": "Пробният Ви период е изтекъл. Актуализирайте сега, за да възстановите достъпа.",
"billingTrialBannerTitle": "Пробният период е активен",
"billingTrialBannerDescription": "В момента сте в пробен период на бизнес ниво. След края на пробния период, вашият акаунт автоматично ще бъде върнат към функциите и ограниченията на основното ниво. Надградете по всяко време, за да запазите достъпа до текущите функции на плана.",
"billingTrialBannerUpgrade": "Надградете сега",
"billingTrialBadge": "Пробен период",
"trialActive": "Активен пробен период",
"trialExpired": "Пробният период е изтекъл",
"trialHasEnded": "Пробният Ви период е приключил.",
"trialDaysRemaining": "{count, plural, one {# ден остава} other {# дни остават}}",
"trialDaysLeftShort": "{days}д остават до края на пробния период",
"trialGoToBilling": "Отидете на страницата за фактуриране",
"subscriptionViolationViewBilling": "Преглед на фактурирането",
"componentsLicenseViolation": "Нарушение на лиценза: Сървърът използва {usedSites} сайта, което надвишава лицензионния лимит от {maxSites} сайта. Проверете лицензионните условия, за да се възползвате от всички функционалности.",
"componentsSupporterMessage": "Благодарим ви, че подкрепяте Pangolin като {tier}!",
@@ -81,6 +97,8 @@
"siteConfirmCopy": "Копирах конфигурацията",
"searchSitesProgress": "Търсене на сайтове...",
"siteAdd": "Добавете сайт",
"sitesTableViewPublicResources": "Вижте публични ресурси",
"sitesTableViewPrivateResources": "Вижте частни ресурси",
"siteInstallNewt": "Инсталирайте Newt",
"siteInstallNewtDescription": "Пуснете Newt на вашата система",
"WgConfiguration": "WireGuard конфигурация",
@@ -98,6 +116,21 @@
"siteUpdatedDescription": "Сайтът е актуализиран.",
"siteGeneralDescription": "Конфигурирайте общи настройки за този сайт",
"siteSettingDescription": "Конфигурирайте настройките на сайта",
"siteResourcesTab": "Ресурси",
"siteResourcesNoneOnSite": "Този сайт все още няма публични или частни ресурси.",
"siteResourcesSectionPublic": "Публични ресурси",
"siteResourcesSectionPrivate": "Частни ресурси",
"siteResourcesSectionPublicDescription": "Ресурси, които са изложени външно чрез домейни или портове.",
"siteResourcesSectionPrivateDescription": "Ресурси, които са достъпни в частната ви мрежа през сайта.",
"siteResourcesViewAllPublic": "Виж всички ресурси",
"siteResourcesViewAllPrivate": "Виж всички ресурси",
"siteResourcesDialogDescription": "Преглед на публични и частни ресурси, свързани с този сайт.",
"siteResourcesShowMore": "Покажи повече",
"siteResourcesPermissionDenied": "Нямате разрешение да изброите тези ресурси.",
"siteResourcesEmptyPublic": "Няма публични ресурси, насочени към този сайт все още.",
"siteResourcesEmptyPrivate": "Няма частни ресурси, свързани с този сайт още.",
"siteResourcesHowToAccess": "Как да получите достъп",
"siteResourcesTargetsOnSite": "Цели на този сайт",
"siteSetting": "Настройки на {siteName}",
"siteNewtTunnel": "Нов Сайт (Препоръчително)",
"siteNewtTunnelDescription": "Най-лесният начин да създадете точка за достъп до всяка мрежа. Няма нужда от допълнителни настройки.",
@@ -123,6 +156,10 @@
"shareErrorDeleteMessage": "Възникна грешка при изтриване на връзката",
"shareDeleted": "Връзката беше изтрита",
"shareDeletedDescription": "Връзката беше премахната",
"shareDelete": "Изтрийте споделената връзка",
"shareDeleteConfirm": "Потвърдете изтриването на споделената връзка",
"shareQuestionRemove": "Сигурни ли сте, че искате да изтриете тази споделена връзка?",
"shareMessageRemove": "След изтриване връзката вече няма да работи и всеки, който я използва, ще загуби достъп до ресурса.",
"shareTokenDescription": "Достъпният токен може да бъде предаван по два начина: като параметър или в хедърите на заявките. Те трябва да бъдат предавани от клиента при всяка заявка за удостоверен достъп.",
"accessToken": "Достъп Токен",
"usageExamples": "Примери за използване",
@@ -139,6 +176,7 @@
"shareErrorCreateDescription": "Възникна грешка при създаването на връзката за споделяне",
"shareCreateDescription": "Всеки с тази връзка може да получи достъп до ресурса",
"shareTitleOptional": "Заглавие (по избор)",
"sharePathOptional": "Път (по избор)",
"expireIn": "Изтече",
"neverExpire": "Никога не изтича",
"shareExpireDescription": "Времето на изтичане е колко дълго връзката ще бъде използваема и ще предоставя достъп до ресурса. След това време, връзката няма да работи и потребителите, които са я използвали, ще загубят достъп до ресурса.",
@@ -163,7 +201,7 @@
"proxyResourceTitle": "Управление на обществени ресурси",
"proxyResourceDescription": "Създайте и управлявайте ресурси, които са общодостъпни чрез уеб браузър.",
"proxyResourcesBannerTitle": "Публичен достъп чрез уеб.",
"proxyResourcesBannerDescription": "Public resources are HTTPS proxies accessible to anyone on the internet through a web browser. Unlike private resources, they do not require client-side software and can include identity and context-aware access policies.",
"proxyResourcesBannerDescription": "Публичните ресурси са HTTPS или TCP/UDP проксита, достъпни за всеки в интернет чрез уеб браузър. За разлика от частните ресурси, те не изискват софтуер от страна на клиента и могат да включват издентити и контексто-осъзнати политики за достъп.",
"clientResourceTitle": "Управление на частни ресурси",
"clientResourceDescription": "Създайте и управлявайте ресурси, които са достъпни само чрез свързан клиент.",
"privateResourcesBannerTitle": "Достъп до частни ресурси с нулево доверие.",
@@ -171,11 +209,33 @@
"resourcesSearch": "Търсене на ресурси...",
"resourceAdd": "Добавете ресурс",
"resourceErrorDelte": "Грешка при изтриване на ресурс",
"resourcePoliciesTitle": "Управление на политики за ресурси",
"resourcePoliciesAttachedResourcesColumnTitle": "Свързани ресурси",
"resourcePoliciesAttachedResources": "{count} ресурс(а)",
"resourcePoliciesAttachedResourcesEmpty": "няма ресурси",
"resourcePoliciesDescription": "Създавай и управлявай политики за автентикация, за да контролирате достъпа до вашите ресурси",
"resourcePoliciesSearch": "Търсене на политики...",
"resourcePoliciesAdd": "Добавяне на политика",
"resourcePoliciesDefaultBadgeText": "Стандартна политика",
"resourcePoliciesCreate": "Създаване на политика за ресурс",
"resourcePoliciesCreateDescription": "Следвайте стъпките по-долу, за да създадете нова политика",
"resourcePolicyName": "Име на политика",
"resourcePolicyNameDescription": "Дайте на тази политика име, за да я идентифицирате в цялото ви ресурси",
"resourcePolicyNamePlaceholder": "например Политика за вътрешен достъп",
"resourcePoliciesSeeAll": "Вижте всички политики",
"resourcePolicyAuthMethodAdd": "Добавяне на метод за идентификация",
"resourcePolicyOtpEmailAdd": "Добавяне на имейли за еднократна парола",
"resourcePolicyRulesAdd": "Добавяне на правила",
"resourcePolicyAuthMethodsDescription": "Позволете достъп до ресурси чрез допълнителни методи за идентификация",
"resourcePolicyUsersRolesDescription": "Конфигурирайте потребителите и ролите, които могат да посетят свързаните ресурси",
"rulesResourcePolicyDescription": "Конфигурирайте правилата за контрол на достъп до ресурси, свързани с тази политика",
"authentication": "Удостоверяване",
"protected": "Защита",
"notProtected": "Не защитен",
"resourceMessageRemove": "След като се премахне, ресурсът няма повече да бъде достъпен. Всички цели, свързани с ресурса, също ще бъдат премахнати.",
"resourceQuestionRemove": "Сигурни ли сте, че искате да премахнете ресурса от организацията?",
"resourcePolicyMessageRemove": "След премахването, политиката за ресурс няма да бъде повече достъпна. Всички ресурси, свързани с ресурса, ще бъдат нерешени и оставени без идентификация.",
"resourcePolicyQuestionRemove": "Сигурни ли сте, че искате да премахнете политиката за ресурс от организацията?",
"resourceHTTP": "HTTPS ресурс",
"resourceHTTPDescription": "Прокси заявки чрез HTTPS, използвайки напълно квалифицирано име на домейн.",
"resourceRaw": "Суров TCP/UDP ресурс",
@@ -183,8 +243,9 @@
"resourceRawDescriptionCloud": "Получавайте заявки чрез суров TCP/UDP с използване на портен номер. Изисква се сайтовете да се свързват към отдалечен възел.",
"resourceCreate": "Създайте ресурс",
"resourceCreateDescription": "Следвайте стъпките по-долу, за да създадете нов ресурс",
"resourceCreateGeneralDescription": "Конфигуриране на основните настройки на ресурса, включително име и тип",
"resourceSeeAll": "Вижте всички ресурси",
"resourceInfo": "Информация за ресурса",
"resourceCreateGeneral": "Основни параметри",
"resourceNameDescription": "Това е дисплейното име на ресурса.",
"siteSelect": "Изберете сайт",
"siteSearch": "Търсене на сайт",
@@ -194,12 +255,15 @@
"noCountryFound": "Не е намерена държава.",
"siteSelectionDescription": "Този сайт ще осигури свързаност до целта.",
"resourceType": "Тип ресурс",
"resourceTypeDescription": "Определете как да се достъпи ресурсът",
"resourceTypeDescription": "Това контролира протокола на ресурса и как той ще се визуализира в браузъра. Това не може да бъде променено по-късно.",
"resourceDomainDescription": "Ресурсът ще се обслужва на това напълно квалифицирано име на домейн.",
"resourceHTTPSSettings": "HTTPS настройки",
"resourceHTTPSSettingsDescription": "Конфигурирайте как ресурсът ще бъде достъпен по HTTPS",
"resourcePortDescription": "Външен порт на инстанцията или възела на Панголиин, където ресурсът ще бъде достъпен.",
"domainType": "Тип домейн",
"subdomain": "Субдомейн",
"baseDomain": "Базов домейн",
"configure": "Конфигуриране",
"subdomnainDescription": "Поддомейнът, където ресурсът ще бъде достъпен.",
"resourceRawSettings": "TCP/UDP настройки",
"resourceRawSettingsDescription": "Конфигурирайте как ресурсът ще бъде достъпен чрез TCP/UDP",
@@ -216,8 +280,27 @@
"resourceLearnRaw": "Научете как да конфигурирате TCP/UDP ресурси",
"resourceBack": "Назад към ресурсите",
"resourceGoTo": "Отидете към ресурса",
"resourcePolicyDelete": "Изтриване на политика за ресурс",
"resourcePolicyDeleteConfirm": "Потвърдете изтриване на политика за ресурс",
"resourceDelete": "Изтрийте ресурс",
"resourceDeleteConfirm": "Потвърдете изтриване на ресурс",
"labelDelete": "Изтриване на етикета",
"labelAdd": "Добавяне на етикет",
"labelCreateSuccessMessage": "Етикетът е създаден успешно",
"labelEditSuccessMessage": "Етикетът е променен успешно",
"labelNameField": "Име на етикет",
"labelColorField": "Цвят на етикет",
"labelPlaceholder": "Пр.: homelab",
"labelCreate": "Създаване на етикет",
"createLabelDialogTitle": "Създаване на етикет",
"createLabelDialogDescription": "Създайте нов етикет, който може да се прикачи към тази организация",
"labelEdit": "Редактиране на етикет",
"editLabelDialogTitle": "Актуализиране на етикет",
"editLabelDialogDescription": "Редактирайте нов етикет, който може да се прикачи към тази организация",
"labelDeleteConfirm": "Потвърдете изтриването на етикета",
"labelErrorDelete": "Неуспешно изтриване на етикета",
"labelMessageRemove": "Това действие е постоянно. Всички сайтове, ресурси и клиенти, маркирани с този етикет, ще бъдат отмаркирани.",
"labelQuestionRemove": "Сигурни ли сте, че искате да премахнете етикета от организацията?",
"visibility": "Видимост",
"enabled": "Активиран",
"disabled": "Деактивиран",
@@ -228,6 +311,8 @@
"rules": "Правила",
"resourceSettingDescription": "Конфигурирайте настройките на ресурса",
"resourceSetting": "Настройки на {resourceName}",
"resourcePolicySettingDescription": "Конфигурирайте настройките на политиката за ресурс",
"resourcePolicySetting": "Настройки за {policyName}",
"alwaysAllow": "Заобикаляне на Ауторизацията",
"alwaysDeny": "Блокиране на Достъпа",
"passToAuth": "Прехвърляне към удостоверяване",
@@ -267,8 +352,11 @@
"orgMissing": "Липсва идентификатор на организация",
"orgMissingMessage": "Невъзможност за регенериране на покана без идентификатор на организация.",
"accessUsersManage": "Управление на потребители",
"accessUserManage": "Управление на потребител",
"accessUsersDescription": "Канете и управлявайте потребители с достъп до тази организация",
"accessUsersSearch": "Търсене на потребители...",
"accessUsersRoleFilterCount": "{count, plural, one {# роля} other {# роли}}",
"accessUsersRoleFilterClear": "Изчистване на филтрите за роли",
"accessUserCreate": "Създайте потребител",
"accessUserRemove": "Премахнете потребител",
"username": "Потребителско име",
@@ -380,7 +468,7 @@
"userTitle": "Управление на всички потребители",
"userDescription": "Преглед и управление на всички потребители в системата",
"userAbount": "Относно управлението на потребители",
"userAbountDescription": "This table displays all base user objects in the system. Each user may belong to multiple organizations. Removing a user from an organization does not delete their base user object. They will remain in the system. To completely remove a user from the system, you must delete their base user object using the delete action in this table.",
"userAbountDescription": "Тази таблица показва всички рут потребителски обекти в системата. Всеки потребител може да принадлежи към множество организации. Изтриването на потребител от организация не премахва неговия рут потребителски обект - той ще остане в системата. За да премахнете напълно потребител от системата, трябва да изтриете неговия рут потребителски обект чрез действие за изтриване в тази таблица.",
"userServer": "Сървърни потребители",
"userSearch": "Търсене на сървърни потребители...",
"userErrorDelete": "Грешка при изтриване на потребител",
@@ -487,6 +575,12 @@
"userMessageOrgRemove": "След като бъде премахнат, този потребител няма да има достъп до организацията. Винаги можете да го поканите отново по-късно, но той ще трябва да приеме отново поканата.",
"userRemoveOrgConfirm": "Потвърдете премахването на потребителя",
"userRemoveOrg": "Премахване на потребителя от организацията",
"userQuestionOrgRemoveSelf": "Сигурни ли сте, че искате да премахнете себе си от тази организация?",
"userMessageOrgRemoveSelf": "Ще загубите достъп незабавно. Администратор може да ви покани отново по-късно, но ще трябва да приемете нова покана.",
"userRemoveOrgConfirmSelf": "Потвърдете премахването на себе си",
"userRemoveOrgSelf": "Премахнете себе си от организацията",
"userRemoveOrgSelfWarning": "Ще загубите достъп до тази организация незабавно.",
"userRemoveOrgConfirmPhraseSelf": "ПРЕМАХНЕТЕ МЕ ОТ ОРГАНИЗАЦИЯТА",
"users": "Потребители",
"accessRoleMember": "Член",
"accessRoleOwner": "Собственик",
@@ -495,6 +589,11 @@
"emailInvalid": "Невалиден имейл адрес",
"inviteValidityDuration": "Моля, изберете продължителност",
"accessRoleSelectPlease": "Моля, изберете роля",
"removeOwnAdminRoleConfirmTitle": "Премахване на административния ви достъп?",
"removeOwnAdminRoleConfirmDescription": "След записване няма да имате повече администраторски права в тази организация. Друг администратор може да възстанови достъпа, ако е необходимо.",
"removeOwnAdminRoleConfirmButton": "Премахнете административния ми достъп",
"removeOwnAdminRoleConfirmPhrase": "ПРЕМАХНЕТЕ АДМИНИСТРАТИВНИЯ МИ ДОСТЪП",
"ownerMustRetainAdminRole": "Собственикът на организацията трябва да запази поне една администраторска роля.",
"usernameRequired": "Необходимо е потребителско име",
"idpSelectPlease": "Моля, изберете доставчик на идентичност",
"idpGenericOidc": "Основен OAuth2/OIDC доставчик.",
@@ -523,7 +622,7 @@
"userSettings": "Информация за потребителя",
"userSettingsDescription": "Въведете данните за новия потребител",
"inviteEmailSent": "Изпратете покана по имейл до потребителя",
"inviteValid": "Invite Valid For (days)",
"inviteValid": "Валидна за",
"selectDuration": "Изберете продължителност",
"selectResource": "Изберете Ресурс",
"filterByResource": "Филтрирай По Ресурс",
@@ -579,7 +678,7 @@
"createdAt": "Създаден на",
"proxyErrorInvalidHeader": "Невалидна стойност за заглавие на хоста. Използвайте формат на име на домейн, или оставете празно поле за да премахнете персонализирано заглавие на хост.",
"proxyErrorTls": "Невалидно име на TLS сървър. Използвайте формат на име на домейн, или оставете празно за да премахнете името на TLS сървъра.",
"proxyEnableSSL": "Активиране на SSL",
"proxyEnableSSL": "Активиране на TLS",
"proxyEnableSSLDescription": "Активирайте SSL/TLS криптиране за сигурни HTTPS връзки към целите.",
"target": "Цел",
"configureTarget": "Конфигуриране на цели",
@@ -622,6 +721,7 @@
"targetNoOneDescription": "Добавянето на повече от една цел ще активира натоварването на баланса.",
"targetsSubmit": "Запазване на целите",
"addTarget": "Добавете цел",
"proxyMultiSiteRoundRobinNodeHelp": "Роунд Робин маршрутизирането няма да работи между сайтове, които не са свързани към един и същ възел, но автоматичното превключване ще работи.",
"targetErrorInvalidIp": "Невалиден IP адрес",
"targetErrorInvalidIpDescription": "Моля, въведете валиден IP адрес или име на хост",
"targetErrorInvalidPort": "Невалиден порт",
@@ -695,6 +795,16 @@
"rulesNoOne": "Няма правила. Добавете правило чрез формуляра.",
"rulesOrder": "Правилата се оценяват по приоритет в нарастващ ред.",
"rulesSubmit": "Запазване на правилата",
"policyErrorCreate": "Грешка при създаване на политика",
"policyErrorCreateDescription": "Възникна грешка при създаването на политиката",
"policyErrorCreateMessageDescription": "Възникна неочаквана грешка",
"policyErrorUpdate": "Грешка при актуализиране на политика",
"policyErrorUpdateDescription": "Възникна грешка при актуализиране на политиката",
"policyErrorUpdateMessageDescription": "Възникна неочаквана грешка",
"policyCreatedSuccess": "Политиката за ресурс е създадена успешно",
"policyUpdatedSuccess": "Политиката за ресурс е актуализирана успешно",
"authMethodsSave": "Запазете методите за идентификация",
"rulesSave": "Запазете правилата",
"resourceErrorCreate": "Грешка при създаване на ресурс",
"resourceErrorCreateDescription": "Възникна грешка при създаването на ресурса",
"resourceErrorCreateMessage": "Грешка при създаване на ресурс:",
@@ -731,6 +841,7 @@
"newtEndpoint": "Крайна точка",
"newtId": "Идентификационен номер",
"newtSecretKey": "Секретен ключ",
"newtVersion": "Версия",
"architecture": "Архитектура",
"sites": "Сайтове",
"siteWgAnyClients": "Използвайте клиент на WireGuard, за да се свържете. Ще трябва да използвате вътрешните ресурси чрез IP адреса на връстника.",
@@ -757,6 +868,17 @@
"pincodeAdd": "Добави ПИН код",
"pincodeRemove": "Премахни ПИН код",
"resourceAuthMethods": "Методи за автентикация",
"resourcePolicyAuthMethodsEmpty": "Няма метод за идентификация",
"resourcePolicyOtpEmpty": "Без еднократна парола",
"resourcePolicyReadOnly": "Тази политика е само за четене",
"resourcePolicyReadOnlyDescription": "Тази политика за ресурс се споделя между множество ресурси, не можете да я редактирате на тази страница.",
"editSharedPolicy": "Редактирай споделена политика",
"resourcePolicyTypeSave": "Запазете типа на ресурс",
"resourcePolicySelect": "Изберете политика за ресурс",
"resourcePolicySelectError": "Изберете политика за ресурс",
"resourcePolicyNotFound": "Политиката не е намерена",
"resourcePolicySearch": "Търсене на политики",
"resourcePolicyRulesEmpty": "Няма правила за идентификация",
"resourceAuthMethodsDescriptions": "Позволете достъп до ресурса чрез допълнителни методи за автентикация",
"resourceAuthSettingsSave": "Запазено успешно",
"resourceAuthSettingsSaveDescription": "Настройките за автентикация са запазени успешно",
@@ -792,6 +914,12 @@
"resourcePincodeSetupTitle": "Задай ПИН код",
"resourcePincodeSetupTitleDescription": "Задайте ПИН код, за да защитите този ресурс",
"resourceRoleDescription": "Администраторите винаги могат да имат достъп до този ресурс.",
"resourcePolicySelectTitle": "Политика за достъп до ресурс",
"resourcePolicySelectDescription": "Изберете типа на политиката за ресурс за идентификация",
"resourcePolicyInline": "Инлайн Политика за Ресурс",
"resourcePolicyInlineDescription": "Политика за достъп, ограничена само до този ресурс",
"resourcePolicyShared": "Споделена Политика за Ресурс",
"resourcePolicySharedDescription": "Този ресурс използва споделена политика. Настройки на ниво политика (методи за идентификация, бял списък на имейли) са заключени. Можете да добавите правила за ресурса, роли и потребители по-долу.",
"resourceUsersRoles": "Контроли за достъп",
"resourceUsersRolesDescription": "Конфигурирайте кои потребители и роли могат да посещават този ресурс",
"resourceUsersRolesSubmit": "Запазване на управлението на достъп.",
@@ -1087,6 +1215,18 @@
"idpErrorConnectingTo": "Имаше проблем със свързването към {name}. Моля, свържете се с вашия администратор.",
"idpErrorNotFound": "Не е намерен идентификационен доставчик",
"inviteInvalid": "Невалидна покана",
"labels": "Етикети",
"orgLabelsDescription": "Управление на етикети в тази организация.",
"addLabels": "Добавяне на етикети",
"siteLabelsTab": "Етикети",
"siteLabelsDescription": "Управление на етикети, свързани с този сайт.",
"labelsNotFound": "Етикети не са намерени",
"labelSearch": "Търсене на етикети",
"accessLabelFilterCount": "{count, plural, one {# етикет} other {# етикети}}",
"labelOverflowCount": "+{count, plural, one {# етикет} other {# етикети}}",
"accessLabelFilterClear": "Изчисти филтрите за етикети",
"selectColor": "Изберете цвят",
"createNewLabel": "Създайте нов организационен етикет \"{label}\"",
"inviteInvalidDescription": "Линкът към поканата е невалиден.",
"inviteErrorWrongUser": "Поканата не е за този потребител",
"inviteErrorUserNotExists": "Потребителят не съществува. Моля, създайте акаунт първо.",
@@ -1257,6 +1397,7 @@
"actionViewLogs": "Преглед на дневници",
"noneSelected": "Нищо не е избрано",
"orgNotFound2": "Няма намерени организации.",
"search": "Търси…",
"searchPlaceholder": "Търсене...",
"emptySearchOptions": "Няма намерени опции",
"create": "Създаване",
@@ -1320,6 +1461,8 @@
"sidebarResources": "Ресурси",
"sidebarProxyResources": "Публично",
"sidebarClientResources": "Частно",
"sidebarPolicies": "Политики",
"sidebarResourcePolicies": "Ресурси",
"sidebarAccessControl": "Контрол на достъпа",
"sidebarLogsAndAnalytics": "Дневници и анализи",
"sidebarTeam": "Екип",
@@ -1341,12 +1484,170 @@
"sidebarGeneral": "Управление.",
"sidebarLogAndAnalytics": "Лог & Анализи",
"sidebarBluePrints": "Чертежи",
"sidebarAlerting": "Извеждане на предупреждения",
"sidebarHealthChecks": "Проверки на състоянието",
"sidebarOrganization": "Организация",
"sidebarManagement": "Управление",
"sidebarBillingAndLicenses": "Фактуриране & Лицензи",
"sidebarLogsAnalytics": "Анализи",
"alertingTitle": "Извеждане на предупреждения",
"alertingDescription": "Определете източници, тригери и действия за уведомления",
"alertingRules": "Правила за предупреждение",
"alertingSearchRules": "Търсене на правила…",
"alertingAddRule": "Създаване на правило",
"alertingColumnSource": "Източник",
"alertingColumnTrigger": "Тригер",
"alertingColumnActions": "Действия",
"alertingColumnEnabled": "Активирано",
"alertingDeleteQuestion": "Моля, потвърдете, че искате да изтриете това правило за предупреждение.",
"alertingDeleteRule": "Изтриване на правило за предупреждение",
"alertingRuleDeleted": "Правилото за предупреждение е изтрито",
"alertingRuleSaved": "Правилото за предупреждение е запазено",
"alertingRuleSavedCreatedDescription": "Вашето ново правило за предупреждение беше създадено. Все още можете да го редактирате на тази страница.",
"alertingRuleSavedUpdatedDescription": "Промените, направени по това правило за предупреждение, бяха запазени.",
"alertingEditRule": "Редактиране на правило за предупреждение",
"alertingCreateRule": "Създаване на правило за предупреждение",
"alertingRuleCredenzaDescription": "Изберете какво да наблюдавате, кога да се активира и как да уведомите",
"alertingRuleNamePlaceholder": "Сайтът на производство е недостъпен",
"alertingRuleEnabled": "Правилото е активирано",
"alertingSectionSource": "Източник",
"alertingSourceType": "Тип на източника",
"alertingSourceSite": "Сайт",
"alertingSourceHealthCheck": "Проверка на състоянието",
"alertingPickSites": "Сайтове",
"alertingPickHealthChecks": "Проверки на състоянието",
"alertingPickResources": "Ресурси",
"alertingAllSites": "Всички сайтове",
"alertingAllSitesDescription": "Предупреждението се активира за всеки сайт",
"alertingSpecificSites": "Специфични сайтове",
"alertingSpecificSitesDescription": "Изберете специфични сайтове за наблюдение",
"alertingAllHealthChecks": "Всички проверки на състоянието",
"alertingAllHealthChecksDescription": "Предупреждението се активира за всяка проверка на състоянието",
"alertingSpecificHealthChecks": "Специфични проверки на състоянието",
"alertingSpecificHealthChecksDescription": "Изберете специфични проверки на състоянието за наблюдение",
"alertingAllResources": "Всички ресурси",
"alertingAllResourcesDescription": "Предупреждението се активира за всеки ресурс",
"alertingSpecificResources": "Специфични ресурси",
"alertingSpecificResourcesDescription": "Изберете специфични ресурси за наблюдение",
"alertingSelectResources": "Изберете ресурси…",
"alertingResourcesSelected": "Избрани {count} ресурса",
"alertingResourcesEmpty": "Няма ресурси с целите в първите 10 резултата.",
"alertingSectionTrigger": "Тригер",
"alertingTrigger": "Кога да се активира",
"alertingTriggerSiteOnline": "Сайтът е онлайн",
"alertingTriggerSiteOffline": "Сайтът е офлайн",
"alertingTriggerSiteToggle": "Състоянието на сайта се променя",
"alertingTriggerHcHealthy": "Проверка на състоянието е здрава",
"alertingTriggerHcUnhealthy": "Проверка на състоянието не е здрава",
"alertingTriggerHcToggle": "Състоянието на проверката се променя",
"alertingTriggerResourceHealthy": "Ресурсът е здрав",
"alertingTriggerResourceUnhealthy": "Ресурсът не е здрав",
"alertingTriggerResourceDegraded": "Деградирал ресурс",
"alertingSearchHealthChecks": "Търсене на проверки на състоянието…",
"alertingHealthChecksEmpty": "Няма налични проверки на състоянието.",
"alertingTriggerResourceToggle": "Състоянието на ресурса се променя",
"alertingSourceResource": "Ресурс",
"alertingSectionActions": "Действия",
"alertingAddAction": "Добавяне на действие",
"alertingActionNotify": "Имейл",
"alertingActionNotifyDescription": "Изпращане на имейл известия на потребители или роли",
"alertingActionWebhook": "Уеб кука",
"alertingActionWebhookDescription": "Изпращане на HTTP заявка към персонализирана крайна точка",
"alertingExternalIntegration": "Външна интеграция",
"alertingExternalPagerDutyDescription": "Изпратете предупреждения към PagerDuty за управление на инциденти",
"alertingExternalOpsgenieDescription": "Пренасочете предупрежденията към Opsgenie за управление на дежурните отчети",
"alertingExternalServiceNowDescription": "Създавайте инциденти в ServiceNow от събития на предупреждения",
"alertingExternalIncidentIoDescription": "Активирайте работни потоци в Incident.io от събития на предупреждения",
"alertingActionType": "Тип на действието",
"alertingNotifyUsers": "Потребители",
"alertingNotifyRoles": "Роли",
"alertingNotifyEmails": "Имейл адреси",
"alertingEmailPlaceholder": "Добавете имейл и натиснете Enter",
"alertingWebhookMethod": "HTTP метод",
"alertingWebhookSecret": "Секрет за подписване (по избор)",
"alertingWebhookSecretPlaceholder": "HMAC секрет",
"alertingWebhookHeaders": "Заглавия",
"alertingAddHeader": "Добавете заглавие",
"alertingSelectSites": "Изберете сайтове…",
"alertingSitesSelected": "Избрани {count} сайта",
"alertingSelectHealthChecks": "Изберете проверки на състоянието…",
"alertingHealthChecksSelected": "Избрани {count} проверки на състоянието",
"alertingNoHealthChecks": "Няма цели с активирани проверки на състоянието",
"alertingHealthCheckStub": "Изборът на източник за проверки на състоянието все още не е свързан - все още можете да конфигурирате тригери и действия.",
"alertingSelectUsers": "Изберете потребители…",
"alertingUsersSelected": "Избрани {count} потребителя",
"alertingSelectRoles": "Изберете роли…",
"alertingRolesSelected": "Избрани {count} роли",
"alertingSummarySites": "Сайтове ({count})",
"alertingSummaryAllSites": "Всички сайтове",
"alertingSummaryHealthChecks": "Проверки на състоянието ({count})",
"alertingSummaryAllHealthChecks": "Всички проверки на състоянието",
"alertingSummaryResources": "Ресурси ({count})",
"alertingSummaryAllResources": "Всички ресурси",
"alertingErrorNameRequired": "Въведете име",
"alertingErrorActionsMin": "Добавете поне едно действие",
"alertingErrorPickSites": "Изберете поне един сайт",
"alertingErrorPickHealthChecks": "Изберете поне една проверка на състоянието",
"alertingErrorPickResources": "Изберете поне един ресурс",
"alertingErrorTriggerSite": "Изберете тригер за сайт",
"alertingErrorTriggerHealth": "Изберете тригер за проверка на състоянието",
"alertingErrorTriggerResource": "Изберете тригер за ресурс",
"alertingErrorNotifyRecipients": "Изберете потребители, роли или поне един имейл",
"alertingConfigureSource": "Конфигуриране на източник",
"alertingConfigureTrigger": "Конфигуриране на тригер",
"alertingConfigureActions": "Конфигуриране на действия",
"alertingBackToRules": "Назад към правилата",
"alertingRuleCooldown": "Време за изчакване (секунди)",
"alertingRuleCooldownDescription": "Минимално време между повторни предупреждения за същото правило. Задайте на 0, за да се задейства всеки път.",
"alertingDraftBadge": "Чернова - запазете, за да съхраните правилото",
"alertingSidebarHint": "Кликнете върху стъпка на платното, за да я редактирате тук.",
"alertingGraphCanvasTitle": "Последователност на правилото",
"alertingGraphCanvasDescription": "Визуален преглед на източник, тригер и действия. Изберете елемент за редакция в панела.",
"alertingNodeNotConfigured": "Още не е конфигурирано",
"alertingNodeActionsCount": "{count, plural, one {# действие} other {# действия}}",
"alertingNodeRoleSource": "Източник",
"alertingNodeRoleTrigger": "Тригер",
"alertingNodeRoleAction": "Действие",
"alertingTabRules": "Правила за предупреждение",
"alertingTabHealthChecks": "Проверки на състоянието",
"alertingRulesBannerTitle": "Получавайте известия",
"alertingRulesBannerDescription": "Всяко правило свързва това, което да се наблюдава (сайт, проверка на състоянието или ресурс), кога да се активира (например офлайн или нездраве) и как да уведомите екипа чрез имейл, уеб куки или интеграции. Използвайте този списък, за да създавате, активирате и управлявате тези правила.",
"alertingHealthChecksBannerTitle": "Наблюдавайте здравето и ресурсите",
"alertingHealthChecksBannerDescription": "Проверките на състоянието са HTTP или TCP монитори, които определяте веднъж. След това можете да ги използвате като източници в правила за предупреждения, така че да бъдете уведомени, когато целта стане здраве или нездраве. Проверките на състоянието на ресурсите също се появяват тук.",
"standaloneHcTableTitle": "Проверки на състоянието",
"standaloneHcSearchPlaceholder": "Търсене на проверки на състоянието…",
"standaloneHcAddButton": "Създаване на проверка на състоянието",
"standaloneHcCreateTitle": "Създаване на проверка на състоянието",
"standaloneHcEditTitle": "Редактиране на проверка на състоянието",
"standaloneHcDescription": "Конфигурирайте HTTP или TCP проверка на състоянието за използване в правилата за предупреждения.",
"standaloneHcNameLabel": "Име",
"standaloneHcNamePlaceholder": "Моят HTTP монитор",
"standaloneHcDeleteTitle": "Изтриване на проверка на състоянието",
"standaloneHcDeleteQuestion": "Моля, потвърдете, че искате да изтриете тази проверка на състоянието.",
"standaloneHcDeleted": "Проверката на състоянието е изтрита",
"standaloneHcSaved": "Проверката на състоянието е запазена",
"standaloneHcColumnHealth": "Здраве",
"standaloneHcColumnMode": "Режим",
"standaloneHcColumnTarget": "Цел",
"standaloneHcHealthStateHealthy": "Здраве",
"standaloneHcHealthStateUnhealthy": "Нездраве",
"standaloneHcHealthStateUnknown": "Неизвестно",
"standaloneHcFilterAnySite": "Всички сайтове",
"standaloneHcFilterAnyResource": "Всички ресурси",
"standaloneHcFilterMode": "Режим",
"standaloneHcFilterModeHttp": "HTTP",
"standaloneHcFilterModeTcp": "TCP",
"standaloneHcFilterModeSnmp": "SNMP",
"standaloneHcFilterModePing": "Пинг",
"standaloneHcFilterHealth": "Здраве",
"standaloneHcFilterEnabled": "Активирано",
"standaloneHcFilterEnabledOn": "Активирано",
"standaloneHcFilterEnabledOff": "Деактивирано",
"standaloneHcFilterSiteIdFallback": "Сайт {id}",
"standaloneHcFilterResourceIdFallback": "Ресурс {id}",
"blueprints": "Чертежи",
"blueprintsDescription": "Прилагайте декларативни конфигурации и преглеждайте предишни изпълнения",
"blueprintsLog": "Регистър на скицописи",
"blueprintsDescription": "Вижте предишни приложения и техните резултати",
"blueprintAdd": "Добави Чертеж",
"blueprintGoBack": "Виж всички Чертежи",
"blueprintCreate": "Създай Чертеж",
@@ -1364,7 +1665,17 @@
"contents": "Съдържание",
"parsedContents": "Парсирано съдържание (само за четене)",
"enableDockerSocket": "Активиране на Docker Чернова",
"enableDockerSocketDescription": "Активиране на Docker Socket маркировка за изтегляне на етикети на чернова. Пътят на гнездото трябва да бъде предоставен на Newt.",
"enableDockerSocketDescription": "Активирайте изтегляне с етикети на Docker Socket за скицописи. Пътят на гнездото трябва да бъде предоставен на конектора на сайта. Прочетете как работи това в <docsLink>документацията</docsLink>.",
"newtAutoUpdate": "Активиране на автоматично обновяване на сайта",
"newtAutoUpdateDescription": "Когато е активно, конекторите на сайта автоматично ще се актуализират до най-новата версия при наличието на ново издание.",
"siteAutoUpdate": "Автоматично обновяване на сайта",
"siteAutoUpdateLabel": "Активиране на автоматично обновяване",
"siteAutoUpdateDescription": "Управлявайте дали конекторът за този сайт автоматично изтегля последната версия.",
"siteAutoUpdateOrgDefault": "По подразбиране за организацията: {state}",
"siteAutoUpdateOverriding": "Преодоляване на настройката на организацията",
"siteAutoUpdateResetToOrg": "Възстановяване към организацията по подразбиране",
"siteAutoUpdateEnabled": "активиран",
"siteAutoUpdateDisabled": "деактивиран",
"viewDockerContainers": "Преглед на Docker контейнери",
"containersIn": "Контейнери в {siteName}",
"selectContainerDescription": "Изберете контейнер, който да ползвате като име на хост за целта. Натиснете порт, за да ползвате порт",
@@ -1406,8 +1717,10 @@
"initialSetupDescription": "Създайте администраторски акаунт на сървъра. Може да съществува само един администраторски акаунт. Винаги можете да промените тези данни по-късно.",
"createAdminAccount": "Създаване на админ акаунт",
"setupErrorCreateAdmin": "Възникна грешка при създаване на админ акаунт.",
"certificateStatus": "Статус на сертификата",
"certificateStatus": "Сертификат",
"certificateStatusAutoRefreshHint": "Състоянието се опреснява автоматично.",
"loading": "Зареждане",
"loadingEllipsis": "Зареждане...",
"loadingAnalytics": "Зареждане на анализи",
"restart": "Рестарт",
"domains": "Домейни",
@@ -1475,6 +1788,7 @@
"pangolinUpdateAvailableReleaseNotes": "Преглед на бележките за изданието",
"newtUpdateAvailable": "Ново обновление",
"newtUpdateAvailableInfo": "Нова версия на Newt е налична. Моля, обновете до последната версия за най-добро изживяване.",
"pangolinNodeUpdateAvailableInfo": "Налична е нова версия на Pangolin Node. Моля, актуализирайте до последната версия за най-добро изживяване.",
"domainPickerEnterDomain": "Домейн",
"domainPickerPlaceholder": "myapp.example.com",
"domainPickerDescription": "Въведете пълния домейн на ресурса, за да видите наличните опции.",
@@ -1633,6 +1947,7 @@
"billingManageLicenseSubscription": "Управлявайте абонамента си за платени самостоятелно хоствани лицензионни ключове",
"billingCurrentKeys": "Текущи ключове",
"billingModifyCurrentPlan": "Промяна на текущия план",
"billingManageLicenseSubscriptionDescription": "Управление на вашия абонамент за платени самообслужвани лицензионни ключове и изтегляне на фактури.",
"billingConfirmUpgrade": "Потвърдете повишаването",
"billingConfirmDowngrade": "Потвърдете понижението",
"billingConfirmUpgradeDescription": "Предстои ви да повишите плана си. Прегледайте новите ограничения и цени по-долу.",
@@ -1714,6 +2029,7 @@
"configureHealthCheck": "Конфигуриране на проверка на здравето",
"configureHealthCheckDescription": "Настройте мониторинг на здравето за {target}",
"enableHealthChecks": "Разрешаване на проверки на здравето",
"healthCheckDisabledStateDescription": "Когато е деактивиран, сайтът не изпълнява проверки и състоянието се счита за неизвестно.",
"enableHealthChecksDescription": "Мониторинг на здравето на тази цел. Можете да наблюдавате различен краен пункт от целта, ако е необходимо.",
"healthScheme": "Метод",
"healthSelectScheme": "Избор на метод",
@@ -1729,7 +2045,36 @@
"timeIsInSeconds": "Времето е в секунди",
"requireDeviceApproval": "Изискват одобрение на устройства",
"requireDeviceApprovalDescription": "Потребители с тази роля трябва да имат нови устройства одобрени от администратор преди да могат да се свържат и да имат достъп до ресурси.",
"sshAccess": "SSH достъп",
"sshSettings": "Настройки за SSH",
"rdpSettings": "Настройки за RDP",
"vncSettings": "Настройки за VNC",
"sshServer": "SSH сървър",
"rdpServer": "RDP сървър",
"vncServer": "VNC сървър",
"sshServerDescription": "Настройте метода на идентификация, местоположението на демона и дестинацията на сървъра",
"rdpServerDescription": "Конфигуриране на дестинацията и порта на RDP сървъра",
"vncServerDescription": "Конфигуриране на дестинацията и порта на VNC сървъра",
"sshServerMode": "Режим",
"sshServerModeStandard": "Стандартен SSH сървър",
"sshServerModePangolin": "Панголиин SSH",
"sshServerModeStandardDescription": "Насочва командите към мрежата до SSH сървър, като например OpenSSH.",
"sshServerModeNative": "Нативен SSH сървър",
"sshServerModeNativeDescription": "Изпълнява команди директно на хоста чрез конектора на сайта. Не е необходима мрежова конфигурация.",
"sshAuthenticationMethod": "Метод на идентификация",
"sshAuthMethodManual": "Ръчна идентификация",
"sshAuthMethodManualDescription": "Изисква съществуващи идентификационни данни за хоста. Пропуска автоматичното осигуряване.",
"sshAuthMethodAutomated": "Автоматично осигуряване",
"sshAuthMethodAutomatedDescription": "Създава автоматично потребители, групи и sudo разрешения на хоста.",
"sshAuthDaemonLocation": "Местоположение на демона за идентификация",
"sshDaemonLocationSiteDescription": "Изпълнява се локално на машината, която хоства конектора на сайта.",
"sshDaemonLocationRemote": "На отдалечен хост",
"sshDaemonLocationRemoteDescription": "Изпълнява се на отделна целева машина в същата мрежа.",
"sshDaemonDisclaimer": "Уверете се, че вашата целева хост машина е правилно конфигурирана за изпълнение на демона за идентификация преди завършване на тази настройка, в противен случай осигуряването ще се провали.",
"sshDaemonPort": "Порт на демона",
"sshServerDestination": "Дестинация на сървъра",
"sshServerDestinationDescription": "Конфигуриране на дестинацията и порта на SSH сървъра",
"destination": "Дестинация",
"bgTargetMultiSiteDisclaimer": "Избиране на множество сайтове позволява устойчиво маршрутизиране и сокетно превключване за висока наличност.",
"roleAllowSsh": "Разреши SSH",
"roleAllowSshAllow": "Разреши",
"roleAllowSshDisallow": "Забрани",
@@ -1743,7 +2088,7 @@
"sshSudoModeCommandsDescription": "Потребителят може да изпълнява само определени команди с sudo.",
"sshSudo": "Разреши sudo",
"sshSudoCommands": "Sudo команди",
"sshSudoCommandsDescription": "Списък, разделен със запетаи, с команди, които потребителят е позволено да изпълнява с sudo.",
"sshSudoCommandsDescription": "Списък с командите, разрешени да се изпълняват от потребителя с sudo. Трябва да се използват абсолютни пътища.",
"sshCreateHomeDir": "Създай начална директория",
"sshUnixGroups": "Unix групи",
"sshUnixGroupsDescription": "Списък, разделен със запетаи, с Unix групи, към които да се добави потребителят на целевия хост.",
@@ -1763,9 +2108,20 @@
"healthCheckIntervalMin": "Интервалът за проверка трябва да е поне 5 секунди",
"healthCheckTimeoutMin": "Времето за изчакване трябва да е поне 1 секунда",
"healthCheckRetryMin": "Опитите за повторение трябва да са поне 1",
"healthCheckMode": "Режим на проверка",
"healthCheckStrategy": "Стратегия",
"healthCheckModeDescription": "Режимът TCP проверява само свързаността. Режимът HTTP валидира HTTP отговора.",
"healthyThreshold": "Праг за здраве",
"healthyThresholdDescription": "Поредица от успехи, необходими за отбелязване като здраве.",
"unhealthyThreshold": "Праг за нездраве",
"unhealthyThresholdDescription": "Поредица от провали, необходими за отбелязване като нездраве.",
"healthCheckHealthyThresholdMin": "Прагът за здраве трябва да бъде поне 1",
"healthCheckUnhealthyThresholdMin": "Прагът за нездраве трябва да бъде поне 1",
"httpMethod": "HTTP Метод",
"selectHttpMethod": "Изберете HTTP метод",
"domainPickerSubdomainLabel": "Поддомен",
"domainPickerWildcard": "Уайлдкард",
"domainPickerWildcardPaidOnly": "Уайлдкард подсайтовете са платена функция. Моля, надстройте за достъп до тази функция.",
"domainPickerBaseDomainLabel": "Основен домейн",
"domainPickerSearchDomains": "Търсене на домейни...",
"domainPickerNoDomainsFound": "Не са намерени домейни",
@@ -1791,12 +2147,12 @@
"resourcesTableAliasAddressInfo": "Този адрес е част от подсистемата на организацията. Използва се за разрешаване на псевдонимни записи чрез вътрешно DNS разрешаване.",
"resourcesTableClients": "Клиенти",
"resourcesTableAndOnlyAccessibleInternally": "и са достъпни само вътрешно при свързване с клиент.",
"resourcesTableNoTargets": "Без цели",
"resourcesTableHealthy": "Здрав",
"resourcesTableDegraded": "Влошен",
"resourcesTableOffline": "Извън линия",
"resourcesTableUnhealthy": "Нездравословно",
"resourcesTableUnknown": "Неизвестно",
"resourcesTableNotMonitored": "Не е наблюдавано",
"resourcesTableNoTargets": "Няма цели",
"editInternalResourceDialogEditClientResource": "Редактиране на частен ресурс",
"editInternalResourceDialogUpdateResourceProperties": "Актуализирайте конфигурацията на ресурса и контрола на достъпа за {resourceName}",
"editInternalResourceDialogResourceProperties": "Свойствата на ресурса",
@@ -1822,6 +2178,12 @@
"editInternalResourceDialogModePort": "Порт",
"editInternalResourceDialogModeHost": "Хост",
"editInternalResourceDialogModeCidr": "CIDR",
"editInternalResourceDialogModeHttp": "HTTP",
"editInternalResourceDialogModeHttps": "HTTPS",
"editInternalResourceDialogModeSsh": "SSH",
"editInternalResourceDialogScheme": "Метод",
"editInternalResourceDialogEnableSsl": "Активиране на TLS",
"editInternalResourceDialogEnableSslDescription": "Активирайте SSL/TLS криптиране за сигурни HTTPS връзки към целта.",
"editInternalResourceDialogDestination": "Дестинация",
"editInternalResourceDialogDestinationHostDescription": "IP адресът или името на хоста на ресурса в мрежата на сайта.",
"editInternalResourceDialogDestinationIPDescription": "IP адресът или името на хоста на ресурса в мрежата на сайта.",
@@ -1837,6 +2199,7 @@
"createInternalResourceDialogName": "Име",
"createInternalResourceDialogSite": "Сайт",
"selectSite": "Изберете сайт...",
"multiSitesSelectorSitesCount": "{count, plural, one {# сайт} other {# сайтове}}",
"noSitesFound": "Не са намерени сайтове.",
"createInternalResourceDialogProtocol": "Протокол",
"createInternalResourceDialogTcp": "TCP",
@@ -1865,11 +2228,20 @@
"createInternalResourceDialogModePort": "Порт",
"createInternalResourceDialogModeHost": "Хост",
"createInternalResourceDialogModeCidr": "CIDR",
"createInternalResourceDialogModeHttp": "HTTP",
"createInternalResourceDialogModeHttps": "HTTPS",
"createInternalResourceDialogModeSsh": "SSH",
"scheme": "Метод",
"createInternalResourceDialogScheme": "Метод",
"createInternalResourceDialogEnableSsl": "Активиране на TLS",
"createInternalResourceDialogEnableSslDescription": "Активирайте SSL/TLS криптиране за сигурни HTTPS връзки към целта.",
"createInternalResourceDialogDestination": "Дестинация",
"createInternalResourceDialogDestinationHostDescription": "IP адресът или името на хоста на ресурса в мрежата на сайта.",
"createInternalResourceDialogDestinationCidrDescription": "CIDR диапазонът на ресурса в мрежата на сайта.",
"createInternalResourceDialogAlias": "Псевдоним",
"createInternalResourceDialogAliasDescription": "По избор вътрешен DNS псевдоним за този ресурс.",
"internalResourceDownstreamSchemeRequired": "Методът е задължителен за HTTP ресурси",
"internalResourceHttpPortRequired": "Портът към целта е задължителен за HTTP ресурси",
"siteConfiguration": "Конфигурация",
"siteAcceptClientConnections": "Приемане на клиентски връзки",
"siteAcceptClientConnectionsDescription": "Позволете на потребителските устройства и клиенти да получават достъп до ресурси на този сайт. Това може да бъде променено по-късно.",
@@ -1994,7 +2366,7 @@
"description": "По-надежден и по-нисък поддръжка на Самостоятелно-хостван Панголиин сървър с допълнителни екстри",
"introTitle": "Управлявано Самостоятелно-хостван Панголиин",
"introDescription": "е опция за внедряване, предназначена за хора, които искат простота и допълнителна надеждност, като същевременно запазят данните си частни и самостоятелно-хоствани.",
"introDetail": "С тази опция все още управлявате свой собствен Панголиин възел — вашите тунели, SSL терминатора и трафик остават на вашия сървър. Разликата е, че управлението и мониторингът се обработват чрез нашия облачен панел за контрол, който отключва редица предимства:",
"introDetail": "С тази опция все още управлявате свой собствен възел на Панголиин - вашите тунели, SSL прекратяване и трафик остават на вашия сървър. Разликата е, че управлението и мониторингът се обработват чрез нашия облачен панел, който отключва редица предимства:",
"benefitSimplerOperations": {
"title": "По-прости операции",
"description": "Няма нужда да управлявате свой собствен имейл сървър или да настройвате сложни аларми. Ще получите проверки и предупреждения при прекъсване от самото начало."
@@ -2123,7 +2495,7 @@
"domainPickerVerified": "Проверено",
"domainPickerUnverified": "Непроверено",
"domainPickerManual": "Ръчно",
"domainPickerInvalidSubdomainStructure": "Този поддомен съдържа невалидни знаци или структура. Ще бъде автоматично пречистен при запазване.",
"domainPickerInvalidSubdomainStructure": "Невалидните символи ще бъдат почистени при записване.",
"domainPickerError": "Грешка",
"domainPickerErrorLoadDomains": "Неуспешно зареждане на домейни на организацията",
"domainPickerErrorCheckAvailability": "Неуспешна проверка на наличността на домейни",
@@ -2136,7 +2508,7 @@
"orgAuthChooseIdpDescription": "Изберете своя доставчик на идентичност, за да продължите",
"orgAuthNoIdpConfigured": "Тази организация няма конфигурирани доставчици на идентичност. Можете да влезете с вашата Pangolin идентичност.",
"orgAuthSignInWithPangolin": "Впишете се с Pangolin",
"orgAuthSignInToOrg": "Влезте в организация",
"orgAuthSignInToOrg": "Идентификационен доставчик на организация (SSO)",
"orgAuthSelectOrgTitle": "Вход в организация.",
"orgAuthSelectOrgDescription": "Въведете идентификатора на вашата организация, за да продължите.",
"orgAuthOrgIdPlaceholder": "вашата-организация",
@@ -2297,7 +2669,7 @@
"alerts": {
"commercialUseDisclosure": {
"title": "Разкриване на употреба",
"description": "Изберете лицензионен клас, който точно отразява вашата целена употреба. Персоналният лиценз позволява безплатно ползване на софтуера за индивидуална, некомерсиална или маломащабна комерсиална дейност с годишен брутен приход под 100,000 USD. Всяко ползване извън тези граници включително ползване във фирма, организация или друга доходоносна среда изисква валиден корпоративен лиценз и плащане на съответната лицензионна такса. Всички потребители, независимо дали са лични или корпоративни, трябва да спазват Условията на Fossorial Commercial License."
"description": "Изберете лицензионен клас, който точно отразява вашата целена употреба. Персоналният лиценз позволява безплатно ползване на софтуера за индивидуална, некомерсиална или маломащабна комерсиална дейност с годишен брутен приход под 100,000 USD. Всяко ползване извън тези граници - включително ползване във фирма, организация или друга доходоносна среда - изисква валиден корпоративен лиценз и плащане на съответната лицензионна такса. Всички потребители, независимо дали са лични или корпоративни, трябва да спазват Условията на Fossorial Commercial License."
},
"trialPeriodInformation": {
"title": "Информация за пробен период",
@@ -2416,7 +2788,7 @@
"action": "Действие",
"actor": "Извършващ",
"timestamp": "Отбелязано време",
"accessLogs": "Authentication Logs",
"accessLogs": "Достъп до логове",
"exportCsv": "Експортиране в CSV",
"exportError": "Неизвестна грешка при експортиране на CSV.",
"exportCsvTooltip": "В рамките на времевия диапазон.",
@@ -2429,6 +2801,9 @@
"validPassword": "Валидна парола",
"validEmail": "Валиден имейл",
"validSSO": "Валидно SSO",
"view": "Преглед",
"configManaged": "Управлявана конфигурация",
"connectedClient": "Свързан клиент",
"resourceBlocked": "Блокирани ресурси",
"droppedByRule": "Прекратено от правило",
"noSessions": "Няма сесии",
@@ -2436,25 +2811,25 @@
"noMoreAuthMethods": "Няма валидни методи за удостоверение",
"ip": "IP",
"reason": "Причина",
"requestLogs": "HTTPS Request Logs",
"requestLogs": "Логове за HTTP заявки",
"requestAnalytics": "Анализи На Заявки",
"host": "Хост",
"location": "Местоположение",
"actionLogs": "Admin Action Logs",
"sidebarLogsRequest": "HTTPS Request Logs",
"sidebarLogsAccess": "Authentication Logs",
"sidebarLogsAction": "Admin Action Logs",
"actionLogs": "Дневници на действията",
"sidebarLogsRequest": "Логове за HTTP заявки",
"sidebarLogsAccess": "Достъп до логове",
"sidebarLogsAction": "Дневници на действията",
"logRetention": "Задържане на логове",
"logRetentionDescription": "Управлявайте времето за задържане на различни видове логове за тази организация или ги деактивирайте",
"requestLogsDescription": "View detailed request logs for HTTPS resources in this organization",
"requestLogsDescription": "Прегледайте подробни логове на заявки за ресурси в тази организация",
"requestAnalyticsDescription": "Вижте подробни анализи на заявки за ресурсите в тази организация",
"logRetentionRequestLabel": "HTTPS Request Log Retention",
"logRetentionRequestLabel": "Задържане на логове за HTTP заявки",
"logRetentionRequestDescription": "Колко дълго да се задържат логовете на заявките",
"logRetentionAccessLabel": "Authentication Log Retention",
"logRetentionAccessLabel": "Задържане на логове за достъп",
"logRetentionAccessDescription": "Колко дълго да се задържат логовете за достъп",
"logRetentionActionLabel": "Admin Action Log Retention",
"logRetentionActionLabel": "Задържане на логове за действия",
"logRetentionActionDescription": "Колко дълго да се задържат логовете за действия",
"logRetentionConnectionLabel": "Network Log Retention",
"logRetentionConnectionLabel": "Запазване на дневниците на връзките",
"logRetentionConnectionDescription": "Колко дълго да се съхраняват дневниците на връзките",
"logRetentionDisabled": "Деактивирано",
"logRetention3Days": "3 дни",
@@ -2466,10 +2841,10 @@
"logRetentionEndOfFollowingYear": "Край на следващата година",
"actionLogsDescription": "Прегледайте историята на действията, извършени в тази организация",
"accessLogsDescription": "Прегледайте заявките за удостоверяване на достъпа до ресурсите в тази организация",
"connectionLogs": "Network Logs",
"connectionLogsDescription": "View network session logs handled by sites in this organization",
"sidebarLogsConnection": "Network Logs",
"sidebarLogsStreaming": "Event Streaming",
"connectionLogs": "Логове на връзката",
"connectionLogsDescription": "Вижте логовете на връзките за тунелите в тази организация",
"sidebarLogsConnection": "Логове на връзката",
"sidebarLogsStreaming": "Потоци",
"sourceAddress": "Източен адрес",
"destinationAddress": "Адрес на дестинация",
"duration": "Продължителност",
@@ -2667,7 +3042,13 @@
"editInternalResourceDialogAddClients": "Добавяне на клиенти.",
"editInternalResourceDialogDestinationLabel": "Дестинация.",
"editInternalResourceDialogDestinationDescription": "Посочете адреса дестинация за вътрешния ресурс. Това може да бъде име на хост, IP адрес или CIDR обхват в зависимост от избрания режим. По избор настройте вътрешен DNS алиас за по-лесно идентифициране.",
"internalResourceFormMultiSiteRoutingHelp": "Избирайки няколко сайта, се осигурява сигурен път и пренасочване при висока достъпност.",
"internalResourceFormMultiSiteRoutingHelpLearnMore": "Научете повече",
"editInternalResourceDialogPortRestrictionsDescription": "Ограничете достъпа до конкретни TCP/UDP портове или позволете/блокирайте всички портове.",
"createInternalResourceDialogHttpConfiguration": "Конфигурация HTTP",
"createInternalResourceDialogHttpConfigurationDescription": "Изберете домейна, който клиентите ще използват, за да достигнат този ресурс чрез HTTP или HTTPS.",
"editInternalResourceDialogHttpConfiguration": "Конфигурация HTTP",
"editInternalResourceDialogHttpConfigurationDescription": "Изберете домейна, който клиентите ще използват, за да достигнат този ресурс чрез HTTP или HTTPS.",
"editInternalResourceDialogTcp": "TCP.",
"editInternalResourceDialogUdp": "UDP.",
"editInternalResourceDialogIcmp": "ICMP.",
@@ -2689,7 +3070,7 @@
"learnMore": "Научете повече.",
"backToHome": "Връщане към началната страница.",
"needToSignInToOrg": "Трябва ли да използвате доставчика на идентичност на организацията си?",
"maintenanceMode": "Режим на поддръжка.",
"maintenanceMode": "Страница за поддръжка",
"maintenanceModeDescription": "Показване на страницата за поддръжка на посетители.",
"maintenanceModeType": "Тип режим на поддръжка.",
"showMaintenancePage": "Показване на страницата за поддръжка на посетители.",
@@ -2706,6 +3087,9 @@
"maintenancePageMessagePlaceholder": "Ще се върнем скоро! Нашият сайт понастоящем е в процес на планирана поддръжка.",
"maintenancePageMessageDescription": "Подробно съобщение, обясняващо поддръжката.",
"maintenancePageTimeTitle": "Очаквано време за завършване (по избор).",
"privateMaintenanceScreenTitle": "Екран за поддръжка",
"privateMaintenanceScreenMessage": "Този домейн се използва при частен ресурс. Моля, свържете се с клиента на Pangolin, за да получите достъп до този ресурс.",
"privateMaintenanceScreenSteps": "След свързване, ако все още виждате това съобщение, кешът на DNS на вашия браузър все още може да сочи към стария адрес. За да коригирате това: напълно затворете и отворете отново този раздел, или браузъра си, след това се върнете на тази страница.",
"maintenanceTime": "например, 2 часа, 1 ноември в 17:00.",
"maintenanceEstimatedTimeDescription": "Кога очаквате поддръжката да бъде завършена?",
"editDomain": "Редактиране на домейна.",
@@ -2716,6 +3100,7 @@
"maintenanceScreenEstimatedCompletion": "Прогнозно завършване:",
"createInternalResourceDialogDestinationRequired": "Дестинацията е задължителна.",
"available": "Налично",
"disabledResourceDescription": "Когато е деактивиран, ресурсът ще бъде недостъпен от всеки.",
"archived": "Архивирано",
"noArchivedDevices": "Не са намерени архивирани устройства.",
"deviceArchived": "Устройството е архивирано.",
@@ -2829,7 +3214,7 @@
"streamingDatadogTitle": "Datadog",
"streamingDatadogDescription": "Пресочвайте събития директно към вашият акаунт в Datadog. Очаквайте скоро.",
"streamingTypePickerDescription": "Изберете вид на дестинацията, за да започнете.",
"streamingFailedToLoad": "Неуспешно зареждане на дестинации",
"streamingLastSyncError": "Възникна грешка при последната синхронизация",
"streamingUnexpectedError": "Възникна неочаквана грешка.",
"streamingFailedToUpdate": "Неуспешно актуализиране на дестинация",
"streamingDeletedSuccess": "Дестинацията беше изтрита успешно",
@@ -2843,6 +3228,41 @@
"httpDestAddTitle": "Добавяне на HTTP дестинация",
"httpDestEditDescription": "Актуализирайте конфигурацията за този HTTP събитий.",
"httpDestAddDescription": "Конфигурирайте нов HTTP крайна точка, за да получавате събития на вашата организация.",
"S3DestEditTitle": "Редактиране на дестинацията",
"S3DestAddTitle": "Добавете S3 дестинация",
"S3DestEditDescription": "Актуализирайте конфигурацията за тази S3 дестинация за предаване на събития.",
"S3DestAddDescription": "Конфигурирайте ново хранилище Amazon S3 (или съвместимо с S3), за да получавате събития на вашата организация.",
"s3DestTabSettings": "Настройки",
"s3DestTabFormat": "Формат",
"s3DestNameLabel": "Име",
"s3DestNamePlaceholder": "Моята S3 дестинация",
"s3DestAccessKeyIdLabel": "Идентификатор на достъп за AWS Key ID",
"s3DestSecretAccessKeyLabel": "Тайният ключ за достъп на AWS",
"s3DestSecretAccessKeyPlaceholder": "Вашият таен ключ за достъп за AWS",
"s3DestRegionLabel": "AWS Регион",
"s3DestBucketLabel": "Име на хранилище",
"s3DestPrefixLabel": "Префикс на ключ (по избор)",
"s3DestPrefixDescription": "По избор пътеводен префикс, добавен към всеки обектен ключ. Обектите се съхраняват в {prefix}/{logType}/{YYYY}/{MM}/{DD}/{filename}.",
"s3DestEndpointLabel": "Потребителски крайна точка (по избор)",
"s3DestEndpointDescription": "Заместете крайната точка на S3 за съвместимо с S3 хранилище като MinIO или Cloudflare R2. Оставете празно за стандартното AWS S3.",
"s3DestGzipLabel": "Gzip компресия",
"s3DestGzipDescription": "Компресирайте всеки качен обект с gzip. Намалява разходите за съхранение и размера на качването.",
"s3DestFormatTitle": "Формат на файл",
"s3DestFormatDescription": "Как събитията са сериализирани вътре във всеки качен обект.",
"s3DestFormatJsonArrayDescription": "Всеки обект е JSON масив от записи на събития. Съвместим с повечето аналитични инструменти.",
"s3DestFormatNdjsonDescription": "Всеки обект съдържа един JSON запис на ред (форматиран JSON с нов ред). Съвместим с Athena, BigQuery и Spark.",
"s3DestFormatCsvTitle": "CSV",
"s3DestFormatCsvDescription": "Всеки обект е RFC-4180 CSV файл с ред заглавие. Имената на колоните са извлечени от полетата на данните за събитията.",
"s3DestSaveChanges": "Запази промените",
"s3DestCreateDestination": "Създаване на дестинация",
"s3DestUpdatedSuccess": "Дестинацията е актуализирана успешно",
"s3DestCreatedSuccess": "Дестинацията е създадена успешно",
"s3DestUpdateFailed": "Неуспешно актуализиране на дестинацията",
"s3DestCreateFailed": "Неуспешно създаване на дестинация",
"datadogDestEditTitle": "Редактиране на дестинация",
"datadogDestAddTitle": "Добавяне на Datadog дестинация",
"datadogDestEditDescription": "Актуализирайте конфигурацията за тази Datadog дестинация за предаване на събития.",
"datadogDestAddDescription": "Конфигурирайте нова крайна точка на Datadog, за да получавате събития на вашата организация.",
"httpDestTabSettings": "Настройки",
"httpDestTabHeaders": "Заглавки",
"httpDestTabBody": "Тяло",
@@ -2882,18 +3302,18 @@
"httpDestFormatJsonArrayTitle": "JSON масив",
"httpDestFormatJsonArrayDescription": "Една заявка на партида, тялото е JSON масив. Съвместим с повечето общи уеб куки и Datadog.",
"httpDestFormatNdjsonTitle": "NDJSON",
"httpDestFormatNdjsonDescription": "Една заявка на партида, тялото е ново линии отделени JSON един обект на ред, няма външен масив. Изисквано от Splunk HEC, Elastic / OpenSearch и Grafana.",
"httpDestFormatNdjsonDescription": "Една заявка на партида, тялото е ново линии отделени JSON - един обект на ред, няма външен масив. Изисквано от Splunk HEC, Elastic / OpenSearch и Grafana.",
"httpDestFormatSingleTitle": "Едно събитие на заявка",
"httpDestFormatSingleDescription": "Изпращат се отделни HTTP POST за всяко индивидуално събитие. Използвайте само за крайни точки, които не могат да обработват партиди.",
"httpDestLogTypesTitle": "Видове логове",
"httpDestLogTypesDescription": "Изберете кои видове журнални записи ще се предават към тази дестинация. Предаването ще се прави само за активирани видове журнални записи.",
"httpDestAccessLogsTitle": "Authentication Logs",
"httpDestAccessLogsTitle": "Логове за достъп",
"httpDestAccessLogsDescription": "Опити за достъп до ресурс, включително удостоверени и отказани заявки.",
"httpDestActionLogsTitle": "Admin Action Logs",
"httpDestActionLogsTitle": "Логове на действия",
"httpDestActionLogsDescription": "Административни действия, извършени от потребители в организацията.",
"httpDestConnectionLogsTitle": "Network Logs",
"httpDestConnectionLogsTitle": "Логове на връзката",
"httpDestConnectionLogsDescription": "Събития на свързване и прекъсване на сайта и тунела, включително свръзки и прекъсвания.",
"httpDestRequestLogsTitle": "HTTPS Request Logs",
"httpDestRequestLogsTitle": "Логове за HTTP заявки",
"httpDestRequestLogsDescription": "Регистри за HTTP заявките към проксирани ресурси, включително метод, път и код на отговор.",
"httpDestSaveChanges": "Запази промените",
"httpDestCreateDestination": "Създаване на дестинация",
@@ -2901,6 +3321,18 @@
"httpDestCreatedSuccess": "Дестинацията беше създадена успешно",
"httpDestUpdateFailed": "Неуспешно актуализиране на дестинацията",
"httpDestCreateFailed": "Неуспешно създаване на дестинацията",
"followRedirects": "Следвайте пренасочвания",
"followRedirectsDescription": "Автоматично следвайте HTTP пренасочвания за заявки.",
"alertingErrorWebhookUrl": "Моля, въведете валид URL адрес за уеб куката.",
"healthCheckStrategyHttp": "Проверява свързаността и проверява статуса на HTTP отговора.",
"healthCheckStrategyTcp": "Проверява само TCP свързаност, без да изследва отговора.",
"healthCheckStrategySnmp": "Прави SNMP get заявка, за да провери здравето на мрежовите устройства и инфраструктура.",
"healthCheckStrategyIcmp": "Използва ICMP echo заявки (пинг), за да провери дали ресурсът е достъпен и отговаря.",
"healthCheckTabStrategy": "Стратегия",
"healthCheckTabConnection": "Връзка",
"healthCheckTabAdvanced": "Разширени",
"healthCheckStrategyNotAvailable": "Тази стратегия не е достъпна. Моля, свържете се с отдел продажби, за да активирате тази функция.",
"uptime30d": "Работно време (30д)",
"idpAddActionCreateNew": "Създайте нов доставчик на самоличност",
"idpAddActionImportFromOrg": "Импортиране от друга организация",
"idpImportDialogTitle": "Импортиране на доставчик на самоличност",
@@ -2918,5 +3350,107 @@
"idpUnassociatedDescription": "Доставчика на самоличност е успешно отвързан от тази организация",
"idpUnassociateMenu": "Отвързване",
"idpDeleteAllOrgsMenu": "Изтриване",
"publicIpEndpoint": "Endpoint"
"publicIpEndpoint": "Крайна точка",
"lastTriggeredAt": "Последен тригер",
"reject": "Отхвърляне",
"uptimeDaysAgo": "преди {count} дни",
"uptimeToday": "Днес",
"uptimeNoDataAvailable": "Няма налични данни",
"uptimeSuffix": "време без прекъсване",
"uptimeDowntimeSuffix": "време на прекъсване",
"uptimeTooltipUptimeLabel": "Време без прекъсване",
"uptimeTooltipDowntimeLabel": "Време на прекъсване",
"uptimeOngoing": "текущо",
"uptimeNoMonitoringData": "Няма данни за наблюдение",
"uptimeNoData": "Няма данни",
"uptimeMiniBarDown": "Прекъсване",
"uptimeSectionTitle": "Време без прекъсване",
"uptimeSectionDescription": "Наличност през последните {days} дни",
"uptimeAddAlert": "Добавяне на известие",
"uptimeViewAlerts": "Преглед на известията",
"uptimeCreateEmailAlert": "Създаване на електронна известие",
"uptimeAlertDescriptionSite": "Получавайте известия по електронна поща, когато този сайт се изключи или отново стане онлайн.",
"uptimeAlertDescriptionResource": "Получавайте известия по електронна поща, когато този ресурс се изключи или отново стане онлайн.",
"uptimeAlertNamePlaceholder": "Име на известието",
"uptimeAdditionalEmails": "Допълнителни имейли",
"uptimeCreateAlert": "Създаване на известие",
"uptimeAlertNoRecipients": "Няма получатели",
"uptimeAlertNoRecipientsDescription": "Моля, добавете поне един потребител, рол, или имейл за известяване.",
"uptimeAlertCreated": "Известието е създадено",
"uptimeAlertCreatedDescription": "Ще бъдете известени, когато това промени статуса си.",
"uptimeAlertCreateFailed": "Неуспешно създаване на известие",
"webhookUrlLabel": "URL",
"webhookHeaderKeyPlaceholder": "Ключ",
"webhookHeaderValuePlaceholder": "Стойност",
"alertLabel": "Известие",
"domainPickerWildcardSubdomainNotAllowed": "Уайлдкард подсайтове не са позволени.",
"domainPickerWildcardCertWarning": "Ресурсите с уайлдкард може да изискват допълнителна конфигурация за правилна работа.",
"domainPickerWildcardCertWarningLink": "Научете повече",
"health": "Здраве",
"domainPendingErrorTitle": "Проблем при проверка",
"memberPortalTitle": "Ресурси",
"memberPortalDescription": "Ресурси, до които имате достъп в тази организация",
"memberPortalSortBy": "Сортиране по...",
"memberPortalSortNameAsc": "Име А-Я",
"memberPortalSortNameDesc": "Име Я-А",
"memberPortalSortDomainAsc": "Домен А-Я",
"memberPortalSortDomainDesc": "Домен Я-А",
"memberPortalSortEnabledFirst": "Активирани Първи",
"memberPortalSortDisabledFirst": "Деактивирани Първи",
"memberPortalRefresh": "Обнови",
"memberPortalRefreshResources": "Обнови ресурсите",
"memberPortalFailedToLoad": "Грешка при зареждане на ресурсите",
"memberPortalFailedToLoadDescription": "Грешка при зареждане на ресурсите. Моля, проверете връзката си и опитайте отново.",
"memberPortalUnableToLoad": "Неуспешно зареждане на ресурси",
"memberPortalTryAgain": "Опитай отново",
"memberPortalNoResourcesFound": "Няма намерени ресурси",
"memberPortalNoResourcesAvailable": "Няма налични ресурси",
"memberPortalNoResourcesMatchSearch": "Няма ресурси, съвпадащи с \"{query}\". Опитайте да промените търсените условия или нулирайте търсенето, за да видите всички ресурси.",
"memberPortalNoResourcesAccess": "Още нямате достъп до ресурси. Свържете се с вашия администратор, за да получите достъп до нужните ресурси.",
"memberPortalClearSearch": "Изчисти търсенето",
"memberPortalPublicResources": "Публични ресурси",
"memberPortalPublicResourcesDescription": "Уеб приложения и услуги, достъпни през браузър",
"memberPortalCopiedToClipboard": "Копирано в клипборда",
"memberPortalCopiedUrlDescription": "URL адресът на ресурса е копиран в клипборда.",
"memberPortalOpenResource": "Отвори ресурса",
"memberPortalPrivateResources": "Частни ресурси",
"memberPortalPrivateResourcesDescription": "Ресурси на вътрешната мрежа, достъпни чрез клиент",
"memberPortalResourceDetails": "Детайли за ресурса",
"memberPortalMode": "Режим",
"memberPortalDestination": "Дестинация",
"memberPortalAlias": "Алиас",
"memberPortalCopiedAliasDescription": "Алиасът на ресурса е копиран в клипборда.",
"memberPortalCopiedDestinationDescription": "Дестинацията на ресурса е копирана в клипборда.",
"memberPortalRequiresClientConnection": "Изисква връзка с клиента",
"memberPortalAuthMethods": "Методи на удостоверяване",
"memberPortalSso": "Единно вход (SSO)",
"memberPortalPasswordProtected": "Защитено с парола",
"memberPortalPinCode": "ПИН код",
"memberPortalEmailWhitelist": "Бял списък на имейли",
"memberPortalResourceDisabled": "Ресурсът е деактивиран",
"memberPortalShowingResources": "Показва {start}-{end} от {total} ресурси",
"memberPortalPrevious": "Предишен",
"memberPortalNext": "Следващ",
"httpSettings": "HTTP настройки",
"tcpSettings": "TCP настройки",
"udpSettings": "UDP настройки",
"sshTitle": "SSH",
"sshConnectingDescription": "Установяване на защитена връзка…",
"sshConnecting": "Свързване…",
"sshInitializing": "Инициализиране…",
"sshSignInTitle": "Вход в SSH",
"sshSignInDescription": "Въведете данните за SSH",
"sshPasswordTab": "Парола",
"sshPrivateKeyTab": "Частен ключ",
"sshPrivateKeyField": "Частен ключ",
"sshPrivateKeyDisclaimer": "Частният ви ключ не се съхранява или видима за Панголиин. Като алтернатива, можете да използвате краткотрайни сертификати за безпроблемна автентикация с вашата съществуваща идентичност в Панголиин.",
"sshLearnMore": "Научете повече",
"sshPrivateKeyFile": "Файл с частен ключ",
"sshAuthenticate": "Идентичност",
"sshTerminate": "Прекратяване",
"sshPoweredBy": "Подпомогнато от",
"sshErrorNoTarget": "Няма посочена цел",
"sshErrorWebSocket": "Неуспешно създаване на WebSocket връзка",
"sshErrorAuthFailed": "Неуспешна идентификация",
"sshErrorConnectionClosed": "Връзката е затворена преди завършване на идентификацията"
}
+572 -38
View File
@@ -1,4 +1,8 @@
{
"contactSalesEnable": "Obraťte se na prodejce, aby tuto funkci povolil.",
"contactSalesBookDemo": "Zarezervovat demo",
"contactSalesOr": "nebo",
"contactSalesContactUs": "kontaktujte nás",
"setupCreate": "Vytvořte organizaci, stránku a zdroje",
"headerAuthCompatibilityInfo": "Povolte toto, aby vyvolalo odpověď 401 Neoprávněné, když chybí autentizační token. Toto je potřeba pro prohlížeče nebo specifické HTTP knihovny, které neposílají přihlašovací údaje bez výzvy serveru.",
"headerAuthCompatibility": "Rozšířená kompatibilita",
@@ -19,6 +23,18 @@
"componentsInvalidKey": "Byly nalezeny neplatné nebo propadlé licenční klíče. Pokud chcete nadále používat všechny funkce, postupujte podle licenčních podmínek.",
"dismiss": "Zavřít",
"subscriptionViolationMessage": "Jste za hranicemi vašeho aktuálního plánu. Opravte problém odstraněním webů, uživatelů nebo jiných zdrojů, abyste zůstali ve vašem tarifu.",
"trialBannerMessage": "Vaše zkušební verze vyprší za {countdown}. Pro udržení přístupu upgraduje.",
"trialBannerExpired": "Vaše zkušební verze vypršela. Upgradujte nyní pro obnovu přístupu.",
"billingTrialBannerTitle": "Aktivní zkušební verze",
"billingTrialBannerDescription": "Právě používáte zkušební verzi na úrovni business. Po skončení zkušební verze se váš účet automaticky vrátí k funkcím a limitům úrovně Basic. Upgradujte kdykoli pro zachování přístupu k funkcím vašeho aktuálního plánu.",
"billingTrialBannerUpgrade": "Upgradovat nyní",
"billingTrialBadge": "Zkušební verze",
"trialActive": "Zkušební verze je aktivní",
"trialExpired": "Zkušební verze vypršela",
"trialHasEnded": "Vaše zkušební verze skončila.",
"trialDaysRemaining": "{count, plural, one {# den zbývá} few {# dny zbývají} many {# dní zbývá} other {# dny zbývají}}",
"trialDaysLeftShort": "Zbývá {days} d ve zkušební verzi",
"trialGoToBilling": "Přejděte na fakturační stránku",
"subscriptionViolationViewBilling": "Zobrazit fakturaci",
"componentsLicenseViolation": "Porušení licenčních podmínek: Tento server používá {usedSites} stránek, což překračuje limit {maxSites} licencovaných stránek. Pokud chcete nadále používat všechny funkce, postupujte podle licenčních podmínek.",
"componentsSupporterMessage": "Děkujeme, že podporujete Pangolin jako {tier}!",
@@ -81,6 +97,8 @@
"siteConfirmCopy": "Konfiguraci jsem zkopíroval",
"searchSitesProgress": "Hledat lokality...",
"siteAdd": "Přidat lokalitu",
"sitesTableViewPublicResources": "Zobrazit veřejné zdroje",
"sitesTableViewPrivateResources": "Zobrazit soukromé zdroje",
"siteInstallNewt": "Nainstalovat Newt",
"siteInstallNewtDescription": "Spustit Newt na vašem systému",
"WgConfiguration": "Konfigurace WireGuard",
@@ -98,6 +116,21 @@
"siteUpdatedDescription": "Lokalita byla upravena.",
"siteGeneralDescription": "Upravte obecná nastavení pro tuto lokalitu",
"siteSettingDescription": "Konfigurace nastavení na webu",
"siteResourcesTab": "Zdroje",
"siteResourcesNoneOnSite": "Tento web zatím nemá veřejné ani soukromé zdroje.",
"siteResourcesSectionPublic": "Veřejné zdroje",
"siteResourcesSectionPrivate": "Soukromé zdroje",
"siteResourcesSectionPublicDescription": "Zdroje zpřístupněné externě prostřednictvím domén nebo portů.",
"siteResourcesSectionPrivateDescription": "Zdroje dostupné ve vaší soukromé síti prostřednictvím webu.",
"siteResourcesViewAllPublic": "Zobrazit všechny zdroje",
"siteResourcesViewAllPrivate": "Zobrazit všechny zdroje",
"siteResourcesDialogDescription": "Přehled veřejných a soukromých zdrojů spojených s tímto webem.",
"siteResourcesShowMore": "Ukázat více",
"siteResourcesPermissionDenied": "Nemáte oprávnění k vypsání těchto zdrojů.",
"siteResourcesEmptyPublic": "Žádné veřejné zdroje ještě necílí na tento web.",
"siteResourcesEmptyPrivate": "Žádné soukromé zdroje ještě nejsou spojené s tímto webem.",
"siteResourcesHowToAccess": "Jak získat přístup",
"siteResourcesTargetsOnSite": "Cíle na tomto webu",
"siteSetting": "Nastavení {siteName}",
"siteNewtTunnel": "Novinka (doporučeno)",
"siteNewtTunnelDescription": "Nejjednodušší způsob, jak vytvořit vstupní bod do jakékoli sítě. Žádné další nastavení.",
@@ -123,6 +156,10 @@
"shareErrorDeleteMessage": "Došlo k chybě při odstraňování odkazu",
"shareDeleted": "Odkaz odstraněn",
"shareDeletedDescription": "Odkaz byl odstraněn",
"shareDelete": "Smazat odkaz ke sdílení",
"shareDeleteConfirm": "Potvrdit smazání odkazu ke sdílení",
"shareQuestionRemove": "Jste si jisti, že chcete smazat tento odkaz ke sdílení?",
"shareMessageRemove": "Jakmile bude smazán, odkaz přestane fungovat a všichni, kdo jej používají, ztratí přístup k prostředku.",
"shareTokenDescription": "Přístupový token může být předán dvěma způsoby: jako parametr dotazu nebo v záhlaví požadavku. Tyto údaje musí být předány klientovi na každé žádosti o ověřený přístup.",
"accessToken": "Přístupový token",
"usageExamples": "Příklady použití",
@@ -139,6 +176,7 @@
"shareErrorCreateDescription": "Při vytváření odkazu došlo k chybě",
"shareCreateDescription": "Kdokoliv s tímto odkazem může přistupovat ke zdroji",
"shareTitleOptional": "Název (volitelné)",
"sharePathOptional": "Cesta (volitelně)",
"expireIn": "Platnost vyprší za",
"neverExpire": "Nikdy nevyprší",
"shareExpireDescription": "Doba platnosti určuje, jak dlouho bude odkaz použitelný a bude poskytovat přístup ke zdroji. Po této době odkaz již nebude fungovat a uživatelé kteří tento odkaz používali ztratí přístup ke zdroji.",
@@ -163,7 +201,7 @@
"proxyResourceTitle": "Spravovat veřejné zdroje",
"proxyResourceDescription": "Vytváření a správa zdrojů, které jsou veřejně přístupné prostřednictvím webového prohlížeče",
"proxyResourcesBannerTitle": "Veřejný přístup založený na webu",
"proxyResourcesBannerDescription": "Public resources are HTTPS proxies accessible to anyone on the internet through a web browser. Unlike private resources, they do not require client-side software and can include identity and context-aware access policies.",
"proxyResourcesBannerDescription": "Veřejné prostředky jsou HTTPS nebo TCP/UDP proxy, které jsou přístupné každému na internetu prostřednictvím webového prohlížeče. Na rozdíl od soukromých prostředků nevyžadují software na straně klienta a mohou zahrnovat politiky přístupu orientované na identitu a kontext.",
"clientResourceTitle": "Spravovat soukromé zdroje",
"clientResourceDescription": "Vytváření a správa zdrojů, které jsou přístupné pouze prostřednictvím připojeného klienta",
"privateResourcesBannerTitle": "Zero-Trust soukromý přístup",
@@ -171,11 +209,33 @@
"resourcesSearch": "Prohledat zdroje...",
"resourceAdd": "Přidat zdroj",
"resourceErrorDelte": "Chyba při odstraňování zdroje",
"resourcePoliciesTitle": "Spravovat zásady zdrojů",
"resourcePoliciesAttachedResourcesColumnTitle": "Připojené zdroje",
"resourcePoliciesAttachedResources": "{count} zdroj(e/ů)",
"resourcePoliciesAttachedResourcesEmpty": "žádné zdroje",
"resourcePoliciesDescription": "Vytvářejte a spravujte zásady ověřování k řízení přístupu ke svým zdrojům",
"resourcePoliciesSearch": "Hledat zásady...",
"resourcePoliciesAdd": "Přidat zásadu",
"resourcePoliciesDefaultBadgeText": "Výchozí zásada",
"resourcePoliciesCreate": "Vytvořit zásadu zdroje",
"resourcePoliciesCreateDescription": "Postupujte podle následujících kroků k vytvoření nové zásady",
"resourcePolicyName": "Název zásady",
"resourcePolicyNameDescription": "Pojmenujte tuto zásadu, aby byla rozpoznatelná napříč vašimi zdroji",
"resourcePolicyNamePlaceholder": "např. Zásada interního přístupu",
"resourcePoliciesSeeAll": "Zobrazit všechny zásady",
"resourcePolicyAuthMethodAdd": "Přidat metodu ověřování",
"resourcePolicyOtpEmailAdd": "Přidat OTP emaily",
"resourcePolicyRulesAdd": "Přidat pravidla",
"resourcePolicyAuthMethodsDescription": "Povolit přístup ke zdrojům prostřednictvím dodatečných metod ověřování",
"resourcePolicyUsersRolesDescription": "Nakonfigurujte, kteří uživatelé a role mohou navštívit připojené zdroje",
"rulesResourcePolicyDescription": "Nakonfigurujte pravidla k řízení přístupu ke zdrojům spojeným s touto zásadou",
"authentication": "Autentifikace",
"protected": "Chráněno",
"notProtected": "Nechráněno",
"resourceMessageRemove": "Jakmile zdroj odstraníte, nebude dostupný. Všechny související služby a cíle budou také odstraněny.",
"resourceQuestionRemove": "Jste si jisti, že chcete odstranit zdroj z organizace?",
"resourcePolicyMessageRemove": "Jakmile je zásada odstraněna, ke zdroji již nebude možný přístup. Všechny související zdroje budou odpojeny a zůstanou bez ověření.",
"resourcePolicyQuestionRemove": "Jste si jisti, že chcete odstranit zásadu zdroje z organizace?",
"resourceHTTP": "Zdroj HTTPS",
"resourceHTTPDescription": "Proxy požadavky přes HTTPS pomocí plně kvalifikovaného názvu domény.",
"resourceRaw": "Surový TCP/UDP zdroj",
@@ -183,8 +243,9 @@
"resourceRawDescriptionCloud": "Proxy požadavky na syrové TCP/UDP pomocí čísla portu. Vyžaduje připojení stránek ke vzdálenému uzlu.",
"resourceCreate": "Vytvořit zdroj",
"resourceCreateDescription": "Postupujte podle níže uvedených kroků, abyste vytvořili a připojili nový zdroj",
"resourceCreateGeneralDescription": "Konfigurace základních nastavení zdroje včetně názvu a typu",
"resourceSeeAll": "Zobrazit všechny zdroje",
"resourceInfo": "Informace o zdroji",
"resourceCreateGeneral": "Obecné",
"resourceNameDescription": "Toto je zobrazovaný název zdroje.",
"siteSelect": "Vybrat lokalitu",
"siteSearch": "Hledat lokalitu",
@@ -194,12 +255,15 @@
"noCountryFound": "Nebyla nalezena žádná země.",
"siteSelectionDescription": "Tato lokalita poskytne připojení k cíli.",
"resourceType": "Typ zdroje",
"resourceTypeDescription": "Určete, jak přistupovat ke zdroji",
"resourceTypeDescription": "Toto určuje protokol zdroje a jak bude zobrazen v prohlížeči. Později to nelze změnit.",
"resourceDomainDescription": "Zdroji bude obsluhován tento plně kvalifikovaný doménový název.",
"resourceHTTPSSettings": "Nastavení HTTPS",
"resourceHTTPSSettingsDescription": "Nakonfigurujte, jak bude dokument přístupný přes HTTPS",
"resourcePortDescription": "Externí port na instanci nebo uzlu Pangolin, kde bude zdroj dostupný.",
"domainType": "Typ domény",
"subdomain": "Subdoména",
"baseDomain": "Základní doména",
"configure": "Konfigurovat",
"subdomnainDescription": "Subdoména, kde bude zdroj přístupný.",
"resourceRawSettings": "Nastavení TCP/UDP",
"resourceRawSettingsDescription": "Nakonfigurujte, jak bude dokument přístupný přes TCP/UDP",
@@ -216,8 +280,27 @@
"resourceLearnRaw": "Naučte se konfigurovat zdroje TCP/UDP",
"resourceBack": "Zpět na zdroje",
"resourceGoTo": "Přejít na dokument",
"resourcePolicyDelete": "Smazat zásadu zdroje",
"resourcePolicyDeleteConfirm": "Potvrdit smazání zásady zdroje",
"resourceDelete": "Odstranit dokument",
"resourceDeleteConfirm": "Potvrdit odstranění dokumentu",
"labelDelete": "Smazat štítek",
"labelAdd": "Přidat štítek",
"labelCreateSuccessMessage": "Štítek byl úspěšně vytvořen",
"labelEditSuccessMessage": "Štítek byl úspěšně změněn",
"labelNameField": "Název štítku",
"labelColorField": "Barva štítku",
"labelPlaceholder": "Př. domací laboratoř",
"labelCreate": "Vytvořit štítek",
"createLabelDialogTitle": "Vytvořit štítek",
"createLabelDialogDescription": "Vytvořte nový štítek, který může být přiřazen této organizaci",
"labelEdit": "Upravit štítek",
"editLabelDialogTitle": "Aktualizovat štítek",
"editLabelDialogDescription": "Upravte nový štítek, který může být přiřazen této organizaci",
"labelDeleteConfirm": "Potvrdit smazání štítku",
"labelErrorDelete": "Nepodařilo se smazat štítek",
"labelMessageRemove": "Tato akce je trvalá. Všechny weby, zdroje a klienti označeni tímto štítkem budou neoznačeni.",
"labelQuestionRemove": "Jste si jisti, že chcete odebrat štítek z organizace?",
"visibility": "Viditelnost",
"enabled": "Povoleno",
"disabled": "Zakázáno",
@@ -228,6 +311,8 @@
"rules": "Pravidla",
"resourceSettingDescription": "Konfigurace nastavení na zdroji",
"resourceSetting": "Nastavení {resourceName}",
"resourcePolicySettingDescription": "Nakonfigurujte nastavení na zásadě zdroje",
"resourcePolicySetting": "Nastavení {policyName}",
"alwaysAllow": "Obejít Auth",
"alwaysDeny": "Blokovat přístup",
"passToAuth": "Předat k ověření",
@@ -267,8 +352,11 @@
"orgMissing": "Chybí ID organizace",
"orgMissingMessage": "Nelze obnovit pozvánku bez ID organizace.",
"accessUsersManage": "Spravovat uživatele",
"accessUserManage": "Spravovat uživatele",
"accessUsersDescription": "Pozvat a spravovat uživatele s přístupem k této organizaci",
"accessUsersSearch": "Hledat uživatele...",
"accessUsersRoleFilterCount": "{count, plural, one {# role} few {# role} many {# rolí} other {# roli}}",
"accessUsersRoleFilterClear": "Vymazat filtry rolí",
"accessUserCreate": "Vytvořit uživatele",
"accessUserRemove": "Odstranit uživatele",
"username": "Uživatelské jméno",
@@ -380,7 +468,7 @@
"userTitle": "Spravovat všechny uživatele",
"userDescription": "Zobrazit a spravovat všechny uživatele v systému",
"userAbount": "O správě uživatelů",
"userAbountDescription": "This table displays all base user objects in the system. Each user may belong to multiple organizations. Removing a user from an organization does not delete their base user object. They will remain in the system. To completely remove a user from the system, you must delete their base user object using the delete action in this table.",
"userAbountDescription": "Tato tabulka zobrazuje všechny root uživatelské objekty v systému. Každý uživatel může patřit do více organizací. Odstranění uživatele z organizace neodstraní jeho kořenový uživatelský objekt - zůstanou v systému. Pro úplné odstranění uživatele ze systému musíte odstranit jejich kořenový uživatelský objekt pomocí smazané akce v této tabulce.",
"userServer": "Uživatelé serveru",
"userSearch": "Hledat uživatele serveru...",
"userErrorDelete": "Chyba při odstraňování uživatele",
@@ -487,6 +575,12 @@
"userMessageOrgRemove": "Po odstranění tohoto uživatele již nebude mít přístup k organizaci. Vždy je můžete znovu pozvat později, ale budou muset pozvání znovu přijmout.",
"userRemoveOrgConfirm": "Potvrdit odebrání uživatele",
"userRemoveOrg": "Odebrat uživatele z organizace",
"userQuestionOrgRemoveSelf": "Jste si jisti, že se chcete odstranit z této organizace?",
"userMessageOrgRemoveSelf": "Okamžitě ztratíte přístup. Administrátor vás může později znovu pozvat, ale budete muset přijmout nové pozvání.",
"userRemoveOrgConfirmSelf": "Potvrdit odstranění sebe",
"userRemoveOrgSelf": "Odstranit se z organizace",
"userRemoveOrgSelfWarning": "Okamžitě ztratíte přístup k této organizaci.",
"userRemoveOrgConfirmPhraseSelf": "ODSTRANIT SE Z ORGANIZACE",
"users": "Uživatelé",
"accessRoleMember": "Člen",
"accessRoleOwner": "Vlastník",
@@ -495,6 +589,11 @@
"emailInvalid": "Neplatná e-mailová adresa",
"inviteValidityDuration": "Zvolte prosím dobu trvání",
"accessRoleSelectPlease": "Vyberte prosím roli",
"removeOwnAdminRoleConfirmTitle": "Odebrat přístup správce?",
"removeOwnAdminRoleConfirmDescription": "Po uložení již nebudete mít oprávnění správce v této organizaci. Další administrátor vám může přístup obnovit, pokud bude potřeba.",
"removeOwnAdminRoleConfirmButton": "Odebrat mé administrátorské oprávnění",
"removeOwnAdminRoleConfirmPhrase": "ODEBRAT MÉ ADMINISTRÁTORSKÉ OPRÁVNĚNÍ",
"ownerMustRetainAdminRole": "Vlastník organizace musí zachovat alespoň jednu roli správce.",
"usernameRequired": "Uživatelské jméno je povinné",
"idpSelectPlease": "Vyberte poskytovatele identity",
"idpGenericOidc": "Generic OAuth2/OIDC provider.",
@@ -523,7 +622,7 @@
"userSettings": "Informace o uživateli",
"userSettingsDescription": "Zadejte podrobnosti pro nového uživatele",
"inviteEmailSent": "Poslat uživateli pozvánku",
"inviteValid": "Invite Valid For (days)",
"inviteValid": "Platné pro",
"selectDuration": "Vyberte dobu trvání",
"selectResource": "Vybrat dokument",
"filterByResource": "Filtrovat podle zdroje",
@@ -579,7 +678,7 @@
"createdAt": "Vytvořeno v",
"proxyErrorInvalidHeader": "Neplatná hodnota hlavičky hostitele. Použijte formát názvu domény, nebo uložte prázdné pro zrušení vlastního hlavičky hostitele.",
"proxyErrorTls": "Neplatné jméno TLS serveru. Použijte formát doménového jména nebo uložte prázdné pro odstranění názvu TLS serveru.",
"proxyEnableSSL": "Povolit SSL",
"proxyEnableSSL": "Povolit TLS",
"proxyEnableSSLDescription": "Povolit šifrování SSL/TLS pro zabezpečená připojení HTTPS k cílům.",
"target": "Target",
"configureTarget": "Konfigurace cílů",
@@ -622,6 +721,7 @@
"targetNoOneDescription": "Přidáním více než jednoho cíle se umožní vyvážení zatížení.",
"targetsSubmit": "Uložit cíle",
"addTarget": "Add Target",
"proxyMultiSiteRoundRobinNodeHelp": "Round robin routing nebude fungovat mezi lokalitami, které nejsou připojeny ke stejnému uzlu, ale failover bude fungovat.",
"targetErrorInvalidIp": "Neplatná IP adresa",
"targetErrorInvalidIpDescription": "Zadejte prosím platnou IP adresu nebo název hostitele",
"targetErrorInvalidPort": "Neplatný port",
@@ -695,6 +795,16 @@
"rulesNoOne": "Žádná pravidla. Přidejte pravidlo pomocí formuláře.",
"rulesOrder": "Pravidla jsou hodnocena podle priority vzestupně.",
"rulesSubmit": "Uložit pravidla",
"policyErrorCreate": "Chyba při vytváření zásady",
"policyErrorCreateDescription": "Při vytváření zásady došlo k chybě",
"policyErrorCreateMessageDescription": "Došlo k neočekávané chybě",
"policyErrorUpdate": "Chyba při aktualizaci zásady",
"policyErrorUpdateDescription": "Při aktualizaci zásady došlo k chybě",
"policyErrorUpdateMessageDescription": "Došlo k neočekávané chybě",
"policyCreatedSuccess": "Zásada zdroje byla úspěšně vytvořena",
"policyUpdatedSuccess": "Zásada zdroje byla úspěšně aktualizována",
"authMethodsSave": "Uložit metody ověřování",
"rulesSave": "Uložit pravidla",
"resourceErrorCreate": "Chyba při vytváření zdroje",
"resourceErrorCreateDescription": "Při vytváření zdroje došlo k chybě",
"resourceErrorCreateMessage": "Chyba při vytváření zdroje:",
@@ -731,6 +841,7 @@
"newtEndpoint": "Endpoint",
"newtId": "ID",
"newtSecretKey": "Tajný klíč",
"newtVersion": "Verze",
"architecture": "Architektura",
"sites": "Stránky",
"siteWgAnyClients": "K připojení použijte jakéhokoli klienta WireGuard. Budete muset řešit interní zdroje pomocí klientské IP adresy.",
@@ -757,6 +868,17 @@
"pincodeAdd": "Přidat PIN kód",
"pincodeRemove": "Odstranit PIN kód",
"resourceAuthMethods": "Metody ověřování",
"resourcePolicyAuthMethodsEmpty": "Žádná metoda ověřování",
"resourcePolicyOtpEmpty": "Žádné jednorázové hesla",
"resourcePolicyReadOnly": "Tato zásada je pouze ke čtení",
"resourcePolicyReadOnlyDescription": "Tato zásada zdroje je sdílena mezi více zdroji, nelze ji upravovat na této stránce.",
"editSharedPolicy": "Upravit sdílenou zásadu",
"resourcePolicyTypeSave": "Uložit typ zdroje",
"resourcePolicySelect": "Vybrat zásadu zdroje",
"resourcePolicySelectError": "Vyberte zásadu zdroje",
"resourcePolicyNotFound": "Zásada nenalezena",
"resourcePolicySearch": "Hledat zásady",
"resourcePolicyRulesEmpty": "Žádná pravidla ověřování",
"resourceAuthMethodsDescriptions": "Povolit přístup ke zdroji pomocí dodatečných metod autorizace",
"resourceAuthSettingsSave": "Úspěšně uloženo",
"resourceAuthSettingsSaveDescription": "Nastavení ověřování bylo uloženo",
@@ -792,6 +914,12 @@
"resourcePincodeSetupTitle": "Nastavit anonymní kód",
"resourcePincodeSetupTitleDescription": "Nastavit pincode pro ochranu tohoto zdroje",
"resourceRoleDescription": "Administrátoři mají vždy přístup k tomuto zdroji.",
"resourcePolicySelectTitle": "Zásada přístupu ke zdrojům",
"resourcePolicySelectDescription": "Vyberte typ zásady zdroje ověřování",
"resourcePolicyInline": "Inline Zásada Zdroje",
"resourcePolicyInlineDescription": "Zásada přístupu se zaměřením pouze na tento zdroj",
"resourcePolicyShared": "Sdílená Zásada Zdroje",
"resourcePolicySharedDescription": "Tento zdroj používá sdílenou zásadu. Nastavení na úrovni zásady (metody ověřování, seznam povolených emailů) jsou uzamčena. Níže můžete přidat pravidla, role a uživatele specifické pro zdroj.",
"resourceUsersRoles": "Kontrola přístupu",
"resourceUsersRolesDescription": "Nastavení, kteří uživatelé a role mohou navštívit tento zdroj",
"resourceUsersRolesSubmit": "Uložit přístupové řízení",
@@ -1087,6 +1215,18 @@
"idpErrorConnectingTo": "Při připojování k {name}došlo k chybě. Obraťte se na správce.",
"idpErrorNotFound": "IdP nenalezen",
"inviteInvalid": "Neplatná pozvánka",
"labels": "Štítky",
"orgLabelsDescription": "Spravujte štítky v této organizaci.",
"addLabels": "Přidat štítky",
"siteLabelsTab": "Štítky",
"siteLabelsDescription": "Spravujte štítky přiřazené k této lokalitě.",
"labelsNotFound": "Štítky nenalezeny",
"labelSearch": "Hledat štítky",
"accessLabelFilterCount": "{count, plural, one {# štítek} few {# štítky} other {# štítků}}",
"labelOverflowCount": "+{count, plural, one {# štítek} few {# štítky} other {# štítků}}",
"accessLabelFilterClear": "Vymazat filtry štítků",
"selectColor": "Vybrat barvu",
"createNewLabel": "Vytvořit nový štítek organizace \"{label}\"",
"inviteInvalidDescription": "Odkaz pro pozvání je neplatný.",
"inviteErrorWrongUser": "Pozvat není pro tohoto uživatele",
"inviteErrorUserNotExists": "Uživatel neexistuje. Nejprve si vytvořte účet.",
@@ -1257,6 +1397,7 @@
"actionViewLogs": "Zobrazit logy",
"noneSelected": "Není vybráno",
"orgNotFound2": "Nebyly nalezeny žádné organizace.",
"search": "Vyhledávání…",
"searchPlaceholder": "Hledat...",
"emptySearchOptions": "Nebyly nalezeny žádné možnosti",
"create": "Vytvořit",
@@ -1320,6 +1461,8 @@
"sidebarResources": "Zdroje",
"sidebarProxyResources": "Veřejnost",
"sidebarClientResources": "Soukromé",
"sidebarPolicies": "Zásady",
"sidebarResourcePolicies": "Zdroje",
"sidebarAccessControl": "Kontrola přístupu",
"sidebarLogsAndAnalytics": "Logy & Analytika",
"sidebarTeam": "Tým",
@@ -1341,12 +1484,170 @@
"sidebarGeneral": "Spravovat",
"sidebarLogAndAnalytics": "Log & Analytics",
"sidebarBluePrints": "Plány",
"sidebarAlerting": "Upozornění",
"sidebarHealthChecks": "Kontroly stavu",
"sidebarOrganization": "Organizace",
"sidebarManagement": "Správa",
"sidebarBillingAndLicenses": "Fakturace a licence",
"sidebarLogsAnalytics": "Analytici",
"alertingTitle": "Upozornění",
"alertingDescription": "Definujte zdroje, spouštěče a akce pro oznámení",
"alertingRules": "Pravidla upozornění",
"alertingSearchRules": "Hledat pravidla…",
"alertingAddRule": "Vytvořit pravidlo",
"alertingColumnSource": "Zdroj",
"alertingColumnTrigger": "Spouštěč",
"alertingColumnActions": "Akce",
"alertingColumnEnabled": "Povoleno",
"alertingDeleteQuestion": "Potvrďte, prosím, zda chcete toto pravidlo upozornění smazat.",
"alertingDeleteRule": "Smazat pravidlo upozornění",
"alertingRuleDeleted": "Pravidlo upozornění bylo smazáno",
"alertingRuleSaved": "Pravidlo upozornění bylo uloženo",
"alertingRuleSavedCreatedDescription": "Vaše nové pravidlo upozornění bylo vytvořeno. Můžete ho dál upravovat na této stránce.",
"alertingRuleSavedUpdatedDescription": "Vaše změny pro toto pravidlo upozornění byly uloženy.",
"alertingEditRule": "Upravit pravidlo upozornění",
"alertingCreateRule": "Vytvořit pravidlo upozornění",
"alertingRuleCredenzaDescription": "Vyberte, co sledovat, kdy ho spustit a jak oznamovat",
"alertingRuleNamePlaceholder": "Produkční stránka je dolů",
"alertingRuleEnabled": "Pravidlo povoleno",
"alertingSectionSource": "Zdroj",
"alertingSourceType": "Typ zdroje",
"alertingSourceSite": "Lokalita",
"alertingSourceHealthCheck": "Kontrola stavu",
"alertingPickSites": "Lokality",
"alertingPickHealthChecks": "Kontroly stavu",
"alertingPickResources": "Zdroje",
"alertingAllSites": "Všechny lokality",
"alertingAllSitesDescription": "Upozornění pro jakoukoli lokalitu",
"alertingSpecificSites": "Specifické lokality",
"alertingSpecificSitesDescription": "Vyberte specifické lokality k sledování",
"alertingAllHealthChecks": "Všechny kontroly stavu",
"alertingAllHealthChecksDescription": "Upozornění pro jakoukoli kontrolu stavu",
"alertingSpecificHealthChecks": "Specifické kontroly stavu",
"alertingSpecificHealthChecksDescription": "Vyberte specifické kontroly stavu k sledování",
"alertingAllResources": "Všechny zdroje",
"alertingAllResourcesDescription": "Upozornění pro jakýkoli zdroj",
"alertingSpecificResources": "Specifické zdroje",
"alertingSpecificResourcesDescription": "Vyberte specifické zdroje k sledování",
"alertingSelectResources": "Vyberte zdroje…",
"alertingResourcesSelected": "{count} zdrojů vybráno",
"alertingResourcesEmpty": "Žádné zdroje s cíly v prvních 10 výsledcích.",
"alertingSectionTrigger": "Spouštěč",
"alertingTrigger": "Kdy upozornit",
"alertingTriggerSiteOnline": "Stránky online",
"alertingTriggerSiteOffline": "Stránky offline",
"alertingTriggerSiteToggle": "Změny stavu stránek",
"alertingTriggerHcHealthy": "Kontrola stavu je zdravá",
"alertingTriggerHcUnhealthy": "Kontrola stavu je nezdravá",
"alertingTriggerHcToggle": "Změny stavu kontroly stavu",
"alertingTriggerResourceHealthy": "Zdroj je zdravý",
"alertingTriggerResourceUnhealthy": "Zdroj je nezdravý",
"alertingTriggerResourceDegraded": "Zhoršený zdroj",
"alertingSearchHealthChecks": "Hledat kontroly stavu…",
"alertingHealthChecksEmpty": "Nejsou dostupné kontroly stavu.",
"alertingTriggerResourceToggle": "Změny stavu zdroje",
"alertingSourceResource": "Zdroj",
"alertingSectionActions": "Akce",
"alertingAddAction": "Přidat akci",
"alertingActionNotify": "Email",
"alertingActionNotifyDescription": "Odesílat emailová upozornění uživatelům nebo rolím",
"alertingActionWebhook": "Webhook",
"alertingActionWebhookDescription": "Odeslání HTTP požadavku na vlastní koncový bod",
"alertingExternalIntegration": "Externí integrace",
"alertingExternalPagerDutyDescription": "Odesílat upozornění do PagerDuty pro řízení incidentů",
"alertingExternalOpsgenieDescription": "Směrujte upozornění do Opsgenie pro řízení, když je někdo na telefonu",
"alertingExternalServiceNowDescription": "Vytvářet incidenty ServiceNow z událostí upozornění",
"alertingExternalIncidentIoDescription": "Spouštět Incident.io workflowy z událostí upozornění",
"alertingActionType": "Typ akce",
"alertingNotifyUsers": "Uživatelé",
"alertingNotifyRoles": "Role",
"alertingNotifyEmails": "Emailové adresy",
"alertingEmailPlaceholder": "Přidejte e-mail a stiskněte Enter",
"alertingWebhookMethod": "HTTP metoda",
"alertingWebhookSecret": "Přihlašovací tajemství (volitelné)",
"alertingWebhookSecretPlaceholder": "HMAC tajemství",
"alertingWebhookHeaders": "Hlavičky",
"alertingAddHeader": "Přidat hlavičku",
"alertingSelectSites": "Vybrat lokality…",
"alertingSitesSelected": "{count} lokalit vybráno",
"alertingSelectHealthChecks": "Vybrat kontroly stavu…",
"alertingHealthChecksSelected": "{count} kontrol stavu vybráno",
"alertingNoHealthChecks": "Žádné cíle s povolenými kontrolami stavu",
"alertingHealthCheckStub": "Výběr zdrojů kontrol stavu ještě není propojen můžete stále konfigurovat spouštěče a akce.",
"alertingSelectUsers": "Vybrat uživatele…",
"alertingUsersSelected": "{count} uživatelů vybráno",
"alertingSelectRoles": "Vybrat role…",
"alertingRolesSelected": "{count} rolí vybráno",
"alertingSummarySites": "Lokality ({count})",
"alertingSummaryAllSites": "Všechny lokality",
"alertingSummaryHealthChecks": "Kontroly stavu ({count})",
"alertingSummaryAllHealthChecks": "Všechny kontroly stavu",
"alertingSummaryResources": "Zdroje ({count})",
"alertingSummaryAllResources": "Všechny zdroje",
"alertingErrorNameRequired": "Zadejte jméno",
"alertingErrorActionsMin": "Přidat alespoň jednu akci",
"alertingErrorPickSites": "Vyberte alespoň jednu lokalitu",
"alertingErrorPickHealthChecks": "Vyberte alespoň jednu kontrolu stavu",
"alertingErrorPickResources": "Vyberte alespoň jeden zdroj",
"alertingErrorTriggerSite": "Vyberte spouštěč lokality",
"alertingErrorTriggerHealth": "Vyberte spouštěč kontroly stavu",
"alertingErrorTriggerResource": "Vyberte spouštěč zdroje",
"alertingErrorNotifyRecipients": "Vyberte uživatele, role nebo alespoň jeden email",
"alertingConfigureSource": "Konfigurace zdroje",
"alertingConfigureTrigger": "Konfigurace spouštěče",
"alertingConfigureActions": "Konfigurace akcí",
"alertingBackToRules": "Zpět na pravidla",
"alertingRuleCooldown": "Odpočinek (sekundy)",
"alertingRuleCooldownDescription": "Minimální doba mezi opakovanými upozorněními pro stejné pravidlo. Nastavte na 0 pro spuštění pokaždé.",
"alertingDraftBadge": "Koncept - uložit pro uložení tohoto pravidla",
"alertingSidebarHint": "Kliknutím na krok na plátno ho zde upravte.",
"alertingGraphCanvasTitle": "Průběh pravidla",
"alertingGraphCanvasDescription": "Vizuální přehled o zdroji, spouštěči a akcích. Vyberte uzel k jeho editaci v panelu.",
"alertingNodeNotConfigured": "Ještě není nakonfigurováno",
"alertingNodeActionsCount": "{count, plural, one {# akce} few {# akce} many {# akcí} other {# akce}}",
"alertingNodeRoleSource": "Zdroj",
"alertingNodeRoleTrigger": "Spouštěč",
"alertingNodeRoleAction": "Akce",
"alertingTabRules": "Pravidla upozornění",
"alertingTabHealthChecks": "Kontroly stavu",
"alertingRulesBannerTitle": "Dostávat upozornění",
"alertingRulesBannerDescription": "Každé pravidlo spojuje, co sledovat (lokalita, kontrola stavu nebo zdroj), kdy ho spustit (například offline nebo nezdravé), a jak informovat váš tým emailem, webhookem nebo integracemi. Použijte tento seznam k vytvoření, povolení a správě těchto pravidel.",
"alertingHealthChecksBannerTitle": "Monitorujte zdraví a zdroje",
"alertingHealthChecksBannerDescription": "Kontroly stavu jsou HTTP nebo TCP monitory, které nastavíte jednou. Poté je můžete použít jako zdroje v pravidlech upozornění, takže budete informováni, když se cíl stane zdravým nebo nezdravým. Kontroly stavu také zde se objeví.",
"standaloneHcTableTitle": "Kontroly stavu",
"standaloneHcSearchPlaceholder": "Hledat kontroly stavu…",
"standaloneHcAddButton": "Vytvořit kontrolu stavu",
"standaloneHcCreateTitle": "Vytvořit kontrolu stavu",
"standaloneHcEditTitle": "Upravit kontrolu stavu",
"standaloneHcDescription": "Nakonfigurujte HTTP nebo TCP kontrolu stavu pro použití v pravidlech upozornění.",
"standaloneHcNameLabel": "Jméno",
"standaloneHcNamePlaceholder": "Můj HTTP Monitor",
"standaloneHcDeleteTitle": "Smazat kontrolu stavu",
"standaloneHcDeleteQuestion": "Potvrďte, prosím, zda chcete tuto kontrolu stavu smazat.",
"standaloneHcDeleted": "Kontrola stavu byla smazána",
"standaloneHcSaved": "Kontrola stavu byla uložena",
"standaloneHcColumnHealth": "Zdraví",
"standaloneHcColumnMode": "Režim",
"standaloneHcColumnTarget": "Cíl",
"standaloneHcHealthStateHealthy": "Zdravé",
"standaloneHcHealthStateUnhealthy": "Nezdravé",
"standaloneHcHealthStateUnknown": "Neznámý",
"standaloneHcFilterAnySite": "Všechny lokality",
"standaloneHcFilterAnyResource": "Všechny zdroje",
"standaloneHcFilterMode": "Režim",
"standaloneHcFilterModeHttp": "HTTP",
"standaloneHcFilterModeTcp": "TCP",
"standaloneHcFilterModeSnmp": "SNMP",
"standaloneHcFilterModePing": "Ping",
"standaloneHcFilterHealth": "Zdraví",
"standaloneHcFilterEnabled": "Povoleno",
"standaloneHcFilterEnabledOn": "Povoleno",
"standaloneHcFilterEnabledOff": "Zakázáno",
"standaloneHcFilterSiteIdFallback": "Stránka {id}",
"standaloneHcFilterResourceIdFallback": "Zdroj {id}",
"blueprints": "Plány",
"blueprintsDescription": "Použít deklarativní konfigurace a zobrazit předchozí běhy",
"blueprintsLog": "Protokol plánů",
"blueprintsDescription": "Prohlédněte si aplikace předchozích plánů a jejich výsledky",
"blueprintAdd": "Přidat plán",
"blueprintGoBack": "Zobrazit všechny plány",
"blueprintCreate": "Vytvořit plán",
@@ -1364,7 +1665,17 @@
"contents": "Obsah",
"parsedContents": "Parsed content (Pouze pro čtení)",
"enableDockerSocket": "Povolit Docker plán",
"enableDockerSocketDescription": "Povolte seškrábání štítků na Docker Socket pro popisky plánů. Nová cesta musí být k dispozici.",
"enableDockerSocketDescription": "Povolte seškrábání štítků pro Docker Socket pro štítky plánů. Před připojením na lokalitní konektor musí být uvedena cesta k soketu. Přečtěte si, jak to funguje <docsLink>v dokumentaci</docsLink>.",
"newtAutoUpdate": "Povolit automatickou aktualizaci stránek",
"newtAutoUpdateDescription": "Když je zapnuto, konektory lokality se automaticky aktualizují na nejnovější verzi, když je k dispozici nové vydání.",
"siteAutoUpdate": "Automatická aktualizace stránek",
"siteAutoUpdateLabel": "Povolte automatickou aktualizaci",
"siteAutoUpdateDescription": "Ovládněte, zda bude konektor tohoto webu automaticky stahovat nejnovější verzi.",
"siteAutoUpdateOrgDefault": "Výchozí organizace: {state}",
"siteAutoUpdateOverriding": "Přepsání nastavení organizace",
"siteAutoUpdateResetToOrg": "Obnovit na výchozí organizaci",
"siteAutoUpdateEnabled": "povoleno",
"siteAutoUpdateDisabled": "zakázáno",
"viewDockerContainers": "Zobrazit kontejnery Dockeru",
"containersIn": "Kontejnery v {siteName}",
"selectContainerDescription": "Vyberte jakýkoli kontejner pro použití jako název hostitele pro tento cíl. Klikněte na port pro použití portu.",
@@ -1406,8 +1717,10 @@
"initialSetupDescription": "Vytvořte účet správce intial serveru. Pouze jeden správce serveru může existovat. Tyto přihlašovací údaje můžete kdykoliv změnit.",
"createAdminAccount": "Vytvořit účet správce",
"setupErrorCreateAdmin": "Došlo k chybě při vytváření účtu správce serveru.",
"certificateStatus": "Stav certifikátu",
"certificateStatus": "Certifikát",
"certificateStatusAutoRefreshHint": "Stav se automaticky obnovuje.",
"loading": "Načítání",
"loadingEllipsis": "Načítání...",
"loadingAnalytics": "Načítání analytiky",
"restart": "Restartovat",
"domains": "Domény",
@@ -1475,6 +1788,7 @@
"pangolinUpdateAvailableReleaseNotes": "Zobrazit poznámky k vydání",
"newtUpdateAvailable": "Dostupná aktualizace",
"newtUpdateAvailableInfo": "Je k dispozici nová verze Newt. Pro nejlepší zážitek prosím aktualizujte na nejnovější verzi.",
"pangolinNodeUpdateAvailableInfo": "Je k dispozici nová verze uzlu Pangolin. Pro nejlepší zážitek aktualizujte na nejnovější verzi.",
"domainPickerEnterDomain": "Doména",
"domainPickerPlaceholder": "myapp.example.com",
"domainPickerDescription": "Zadejte úplnou doménu zdroje pro zobrazení dostupných možností.",
@@ -1633,6 +1947,7 @@
"billingManageLicenseSubscription": "Spravujte své předplatné za placené samohostované licenční klíče",
"billingCurrentKeys": "Aktuální klíče",
"billingModifyCurrentPlan": "Upravit aktuální tarif",
"billingManageLicenseSubscriptionDescription": "Spravujte své předplatné pro placené licence k samoobslužnému hostingu a stahujte faktury.",
"billingConfirmUpgrade": "Potvrdit aktualizaci",
"billingConfirmDowngrade": "Potvrdit downgrade",
"billingConfirmUpgradeDescription": "Chystáte se povýšit svůj tarif. Přečtěte si nové limity a ceny.",
@@ -1714,6 +2029,7 @@
"configureHealthCheck": "Konfigurace kontroly stavu",
"configureHealthCheckDescription": "Nastavit sledování zdravotního stavu pro {target}",
"enableHealthChecks": "Povolit kontrolu stavu",
"healthCheckDisabledStateDescription": "Pokud je zakázáno, web nebude provádět zdravotní kontroly a stav bude považován za neznámý.",
"enableHealthChecksDescription": "Sledujte zdraví tohoto cíle. V případě potřeby můžete sledovat jiný cílový bod, než je cíl.",
"healthScheme": "Způsob",
"healthSelectScheme": "Vybrat metodu",
@@ -1729,7 +2045,36 @@
"timeIsInSeconds": "Čas je v sekundách",
"requireDeviceApproval": "Vyžadovat schválení zařízení",
"requireDeviceApprovalDescription": "Uživatelé s touto rolí potřebují nová zařízení schválená správcem, než se mohou připojit a přistupovat ke zdrojům.",
"sshAccess": "SSH přístup",
"sshSettings": "Nastavení SSH",
"rdpSettings": "Nastavení RDP",
"vncSettings": "Nastavení VNC",
"sshServer": "SSH server",
"rdpServer": "RDP server",
"vncServer": "VNC server",
"sshServerDescription": "Nastavit metodu ověřování, umístění démona a cíl serveru",
"rdpServerDescription": "Nakonfigurujte cíl a port serveru RDP",
"vncServerDescription": "Nakonfigurujte cíl a port serveru VNC",
"sshServerMode": "Režim",
"sshServerModeStandard": "Standardní SSH server",
"sshServerModePangolin": "SSH Pangolin",
"sshServerModeStandardDescription": "Příkazy zpracovávané po síti na SSH server jako např. OpenSSH.",
"sshServerModeNative": "Nativní SSH server",
"sshServerModeNativeDescription": "Příkazy se provádí přímo na hostiteli přes Konektor lokality. Nastavení sítě není vyžadováno.",
"sshAuthenticationMethod": "Metoda ověřování",
"sshAuthMethodManual": "Ruční ověřování",
"sshAuthMethodManualDescription": "Vyžaduje existující přihlašovací údaje hostitele. Obchází automatické zřizování.",
"sshAuthMethodAutomated": "Automatické zřizování",
"sshAuthMethodAutomatedDescription": "Automaticky vytváří uživatele, skupiny a oprávnění sudo na hostiteli.",
"sshAuthDaemonLocation": "Umístění ověřovacího démona",
"sshDaemonLocationSiteDescription": "Spouští se lokálně na počítači s konektorem stránky.",
"sshDaemonLocationRemote": "Na vzdáleném hostiteli",
"sshDaemonLocationRemoteDescription": "Spouští se na jiném cílovém počítači v téže síti.",
"sshDaemonDisclaimer": "Ujistěte se, že váš cílový hostitel je správně nakonfigurován k přímu spuštění ověřovacího démona, jinak zřizování selže.",
"sshDaemonPort": "Port démona",
"sshServerDestination": "Cíl serveru",
"sshServerDestinationDescription": "Nakonfigurujte cíl a port SSH serveru",
"destination": "Cíl",
"bgTargetMultiSiteDisclaimer": "Výběr více lokalit umožňuje odolné směrování a převzetí služeb při selhání pro vysokou dostupnost.",
"roleAllowSsh": "Povolit SSH",
"roleAllowSshAllow": "Povolit",
"roleAllowSshDisallow": "Zakázat",
@@ -1743,7 +2088,7 @@
"sshSudoModeCommandsDescription": "Uživatel může spustit pouze zadané příkazy s sudo.",
"sshSudo": "Povolit sudo",
"sshSudoCommands": "Sudo příkazy",
"sshSudoCommandsDescription": "Čárkami oddělený seznam příkazů, které může uživatel spouštět s sudo.",
"sshSudoCommandsDescription": "Čárkami oddělený seznam příkazů, které je uživatel povolen spustit s sudo. Musí být použity absolutní cesty.",
"sshCreateHomeDir": "Vytvořit domovský adresář",
"sshUnixGroups": "Unixové skupiny",
"sshUnixGroupsDescription": "Čárkou oddělené skupiny Unix přidají uživatele do cílového hostitele.",
@@ -1763,9 +2108,20 @@
"healthCheckIntervalMin": "Interval kontroly musí být nejméně 5 sekund",
"healthCheckTimeoutMin": "Časový limit musí být nejméně 1 sekunda",
"healthCheckRetryMin": "Pokusy opakovat musí být alespoň 1",
"healthCheckMode": "Režim kontroly",
"healthCheckStrategy": "Strategie",
"healthCheckModeDescription": "Režim TCP ověřuje pouze připojení. Režim HTTP ověřuje HTTP odezvu.",
"healthyThreshold": "Zdravý práh",
"healthyThresholdDescription": "Počet po sobě jdoucích úspěchů vyžadovaných před označením jako zdravý.",
"unhealthyThreshold": "Nezdravý práh",
"unhealthyThresholdDescription": "Počet po sobě jdoucích selhání vyžadovaných před označením jako nezdravý.",
"healthCheckHealthyThresholdMin": "Zdravý práh musí být alespoň 1",
"healthCheckUnhealthyThresholdMin": "Nezdravý práh musí být alespoň 1",
"httpMethod": "HTTP metoda",
"selectHttpMethod": "Vyberte HTTP metodu",
"domainPickerSubdomainLabel": "Subdoména",
"domainPickerWildcard": "Zástupný znak",
"domainPickerWildcardPaidOnly": "Zástupné poddomény jsou placenou funkcí. Upgradujte, prosím, pro přístup k této funkci.",
"domainPickerBaseDomainLabel": "Základní doména",
"domainPickerSearchDomains": "Hledat domény...",
"domainPickerNoDomainsFound": "Nebyly nalezeny žádné domény",
@@ -1791,12 +2147,12 @@
"resourcesTableAliasAddressInfo": "Tato adresa je součástí subsítě veřejných služeb organizace. Používá se k řešení záznamů aliasů pomocí interního rozlišení DNS.",
"resourcesTableClients": "Klienti",
"resourcesTableAndOnlyAccessibleInternally": "a jsou interně přístupné pouze v případě, že jsou propojeni s klientem.",
"resourcesTableNoTargets": "Žádné cíle",
"resourcesTableHealthy": "Zdravé",
"resourcesTableDegraded": "Rozklad",
"resourcesTableOffline": "Offline",
"resourcesTableUnhealthy": "Nezdravý",
"resourcesTableUnknown": "Neznámý",
"resourcesTableNotMonitored": "Není sledováno",
"resourcesTableNoTargets": "Žádné cíle",
"editInternalResourceDialogEditClientResource": "Upravit soukromý dokument",
"editInternalResourceDialogUpdateResourceProperties": "Aktualizovat konfiguraci zdroje a ovládací prvky přístupu pro {resourceName}",
"editInternalResourceDialogResourceProperties": "Vlastnosti zdroje",
@@ -1822,6 +2178,12 @@
"editInternalResourceDialogModePort": "Přístav",
"editInternalResourceDialogModeHost": "Hostitel",
"editInternalResourceDialogModeCidr": "CIDR",
"editInternalResourceDialogModeHttp": "HTTP",
"editInternalResourceDialogModeHttps": "HTTPS",
"editInternalResourceDialogModeSsh": "SSH",
"editInternalResourceDialogScheme": "Schéma",
"editInternalResourceDialogEnableSsl": "Povolit TLS",
"editInternalResourceDialogEnableSslDescription": "Povolit šifrování SSL/TLS pro zabezpečené HTTPS připojení k cíli.",
"editInternalResourceDialogDestination": "Místo určení",
"editInternalResourceDialogDestinationHostDescription": "IP adresa nebo název hostitele zdroje v síti webu.",
"editInternalResourceDialogDestinationIPDescription": "IP nebo název hostitele zdroje v síti webu.",
@@ -1837,6 +2199,7 @@
"createInternalResourceDialogName": "Jméno",
"createInternalResourceDialogSite": "Lokalita",
"selectSite": "Vybrat lokalitu...",
"multiSitesSelectorSitesCount": "{count, plural, one {# web} few {# weby} many {# webů} other {# weby}}",
"noSitesFound": "Nebyly nalezeny žádné lokality.",
"createInternalResourceDialogProtocol": "Protokol",
"createInternalResourceDialogTcp": "TCP",
@@ -1865,11 +2228,20 @@
"createInternalResourceDialogModePort": "Přístav",
"createInternalResourceDialogModeHost": "Hostitel",
"createInternalResourceDialogModeCidr": "CIDR",
"createInternalResourceDialogModeHttp": "HTTP",
"createInternalResourceDialogModeHttps": "HTTPS",
"createInternalResourceDialogModeSsh": "SSH",
"scheme": "Schéma",
"createInternalResourceDialogScheme": "Schéma",
"createInternalResourceDialogEnableSsl": "Povolit TLS",
"createInternalResourceDialogEnableSslDescription": "Povolit šifrování SSL/TLS pro zabezpečené HTTPS připojení k cíli.",
"createInternalResourceDialogDestination": "Místo určení",
"createInternalResourceDialogDestinationHostDescription": "IP adresa nebo název hostitele zdroje v síti webu.",
"createInternalResourceDialogDestinationCidrDescription": "Rozsah zdrojů CIDR v síti webu.",
"createInternalResourceDialogAlias": "Alias",
"createInternalResourceDialogAliasDescription": "Volitelný interní DNS alias pro tento dokument.",
"internalResourceDownstreamSchemeRequired": "HTTP metoda je vyžadována pro HTTP zdroje",
"internalResourceHttpPortRequired": "Přípoječný port je nutný pro HTTP zdroj",
"siteConfiguration": "Konfigurace",
"siteAcceptClientConnections": "Přijmout připojení klienta",
"siteAcceptClientConnectionsDescription": "Povolit uživatelským zařízením a klientům přístup ke zdrojům na tomto webu. To lze později změnit.",
@@ -1994,7 +2366,7 @@
"description": "Spolehlivější a nízko udržovaný Pangolinův server s dalšími zvony a bičkami",
"introTitle": "Spravovaný Pangolin",
"introDescription": "je možnost nasazení určená pro lidi, kteří chtějí jednoduchost a spolehlivost při zachování soukromých a samoobslužných dat.",
"introDetail": "Pomocí této volby stále provozujete vlastní uzel Pangolin tunely, SSL terminály a provoz všech pobytů na vašem serveru. Rozdíl spočívá v tom, že řízení a monitorování se řeší prostřednictvím našeho cloudového panelu, který odemkne řadu výhod:",
"introDetail": "Pomocí této volby stále provozujete vlastní uzel Pangolin - vaše tunely, ukončení TLS a provoz zůstávají na vašem serveru. Rozdíl spočívá v tom, že správa a monitoring jsou řešeny prostřednictvím naší cloudové řídící desky, což odemyká řadu výhod:",
"benefitSimplerOperations": {
"title": "Jednoduchý provoz",
"description": "Není třeba spouštět svůj vlastní poštovní server nebo nastavit komplexní upozornění. Ze schránky dostanete upozornění na zdravotní kontrolu a výpadek."
@@ -2123,7 +2495,7 @@
"domainPickerVerified": "Ověřeno",
"domainPickerUnverified": "Neověřeno",
"domainPickerManual": "Ruční nastavení",
"domainPickerInvalidSubdomainStructure": "Tato subdoména obsahuje neplatné znaky nebo strukturu. Bude automaticky sanitována při uložení.",
"domainPickerInvalidSubdomainStructure": "Neplatné znaky budou při ukládání vyčištěny.",
"domainPickerError": "Chyba",
"domainPickerErrorLoadDomains": "Nepodařilo se načíst domény organizace",
"domainPickerErrorCheckAvailability": "Kontrola dostupnosti domény se nezdařila",
@@ -2136,7 +2508,7 @@
"orgAuthChooseIdpDescription": "Chcete-li pokračovat, vyberte svého poskytovatele identity",
"orgAuthNoIdpConfigured": "Tato organizace nemá nakonfigurovány žádné poskytovatele identity. Místo toho se můžete přihlásit s vaší Pangolinovou identitou.",
"orgAuthSignInWithPangolin": "Přihlásit se pomocí Pangolinu",
"orgAuthSignInToOrg": "Přihlásit se do organizace",
"orgAuthSignInToOrg": "Poskytovatel identity organizace (SSO)",
"orgAuthSelectOrgTitle": "Přihlášení do organizace",
"orgAuthSelectOrgDescription": "Zadejte ID vaší organizace pro pokračování",
"orgAuthOrgIdPlaceholder": "vaše-organizace",
@@ -2416,7 +2788,7 @@
"action": "Akce",
"actor": "Aktér",
"timestamp": "Časové razítko",
"accessLogs": "Authentication Logs",
"accessLogs": "Protokoly přístupu",
"exportCsv": "Exportovat CSV",
"exportError": "Neznámá chyba při exportu CSV",
"exportCsvTooltip": "V zadaném časovém rozmezí",
@@ -2429,6 +2801,9 @@
"validPassword": "Platné heslo",
"validEmail": "Valid email",
"validSSO": "Valid SSO",
"view": "Zobrazit",
"configManaged": "Správa konfigurace",
"connectedClient": "Připojený klient",
"resourceBlocked": "Zablokované zdroje",
"droppedByRule": "Zrušeno pravidlem",
"noSessions": "Žádné relace",
@@ -2436,25 +2811,25 @@
"noMoreAuthMethods": "No Valid Auth",
"ip": "IP adresa",
"reason": "Důvod",
"requestLogs": "HTTPS Request Logs",
"requestLogs": "Záznamy HTTP požadavků",
"requestAnalytics": "Vyžádat analýzu",
"host": "Hostitel",
"location": "Poloha",
"actionLogs": "Admin Action Logs",
"sidebarLogsRequest": "HTTPS Request Logs",
"sidebarLogsAccess": "Authentication Logs",
"sidebarLogsAction": "Admin Action Logs",
"actionLogs": "Záznamy akcí",
"sidebarLogsRequest": "Záznamy HTTP požadavků",
"sidebarLogsAccess": "Protokoly přístupu",
"sidebarLogsAction": "Záznamy akcí",
"logRetention": "Zaznamenávání záznamu",
"logRetentionDescription": "Spravovat, jak dlouho jsou různé typy logů uloženy pro tuto organizaci nebo je zakázat",
"requestLogsDescription": "View detailed request logs for HTTPS resources in this organization",
"requestLogsDescription": "Zobrazit podrobné protokoly požadavků pro zdroje v této organizaci",
"requestAnalyticsDescription": "Zobrazit podrobnou analýzu požadavků pro zdroje v této organizaci",
"logRetentionRequestLabel": "HTTPS Request Log Retention",
"logRetentionRequestLabel": "Zachování logu HTTP požadavků",
"logRetentionRequestDescription": "Jak dlouho uchovávat záznamy požadavků",
"logRetentionAccessLabel": "Authentication Log Retention",
"logRetentionAccessLabel": "Zachování záznamu přístupu",
"logRetentionAccessDescription": "Jak dlouho uchovávat přístupové záznamy",
"logRetentionActionLabel": "Admin Action Log Retention",
"logRetentionActionLabel": "Uchovávání protokolu akcí",
"logRetentionActionDescription": "Jak dlouho uchovávat záznamy akcí",
"logRetentionConnectionLabel": "Network Log Retention",
"logRetentionConnectionLabel": "Uchovávání protokolu připojení",
"logRetentionConnectionDescription": "Jak dlouho uchovávat protokoly připojení",
"logRetentionDisabled": "Zakázáno",
"logRetention3Days": "3 dny",
@@ -2466,10 +2841,10 @@
"logRetentionEndOfFollowingYear": "Konec následujícího roku",
"actionLogsDescription": "Zobrazit historii akcí provedených v této organizaci",
"accessLogsDescription": "Zobrazit žádosti o ověření přístupu pro zdroje v této organizaci",
"connectionLogs": "Network Logs",
"connectionLogsDescription": "View network session logs handled by sites in this organization",
"sidebarLogsConnection": "Network Logs",
"sidebarLogsStreaming": "Event Streaming",
"connectionLogs": "Protokoly připojení",
"connectionLogsDescription": "Zobrazit protokoly připojení pro tunely v této organizaci",
"sidebarLogsConnection": "Protokoly připojení",
"sidebarLogsStreaming": "Streamování",
"sourceAddress": "Zdrojová adresa",
"destinationAddress": "Cílová adresa",
"duration": "Doba trvání",
@@ -2667,7 +3042,13 @@
"editInternalResourceDialogAddClients": "Přidat klienty",
"editInternalResourceDialogDestinationLabel": "Cíl",
"editInternalResourceDialogDestinationDescription": "Určete cílovou adresu pro interní prostředek. Může se jednat o hostname, IP adresu, nebo rozsah CIDR v závislosti na vybraném režimu. Volitelně nastavte interní DNS alias pro snazší identifikaci.",
"internalResourceFormMultiSiteRoutingHelp": "Výběrem více webů se povolí odolné směrování a přepojení pro vysokou dostupnost.",
"internalResourceFormMultiSiteRoutingHelpLearnMore": "Zjistit více",
"editInternalResourceDialogPortRestrictionsDescription": "Omezte přístup na specifické TCP/UDP porty nebo povolte/blokujte všechny porty.",
"createInternalResourceDialogHttpConfiguration": "Konfigurace HTTP",
"createInternalResourceDialogHttpConfigurationDescription": "Zvolte doménu, kterou klienti použijí k dosažení tohoto zdroje přes HTTP nebo HTTPS.",
"editInternalResourceDialogHttpConfiguration": "Konfigurace HTTP",
"editInternalResourceDialogHttpConfigurationDescription": "Zvolte doménu, kterou klienti použijí k dosažení tohoto zdroje přes HTTP nebo HTTPS.",
"editInternalResourceDialogTcp": "TCP",
"editInternalResourceDialogUdp": "UDP",
"editInternalResourceDialogIcmp": "ICMP",
@@ -2689,7 +3070,7 @@
"learnMore": "Zjistit více",
"backToHome": "Zpět na domovskou stránku",
"needToSignInToOrg": "Potřebujete použít identitního poskytovatele vaší organizace?",
"maintenanceMode": "Režim údržby",
"maintenanceMode": "Údržbová stránka",
"maintenanceModeDescription": "Zobrazit stránku údržby návštěvníkům",
"maintenanceModeType": "Typ režimu údržby",
"showMaintenancePage": "Zobrazit stránku údržby návštěvníkům",
@@ -2706,6 +3087,9 @@
"maintenancePageMessagePlaceholder": "Vrátíme se brzy! Naše stránka právě prochází plánovanou údrbou.",
"maintenancePageMessageDescription": "Podrobná zpráva vysvětlující údržbu",
"maintenancePageTimeTitle": "Odhadovaný čas dokončení (volitelný)",
"privateMaintenanceScreenTitle": "Soukromá obrazovka údržby",
"privateMaintenanceScreenMessage": "Tato doména je používána na soukromém zdroji. Prosím, připojte se přes klienta Pangolin pro přístup k tomuto zdroji.",
"privateMaintenanceScreenSteps": "Jakmile se připojíte, pokud stále vidíte tuto zprávu, možná je mezipaměť DNS vašeho prohlížeče stále nasměrována na starou adresu. Abyste to opravili: úplně zavřete a znovu otevřete tuto záložku nebo prohlížeč, a poté se vraťte na tuto stránku.",
"maintenanceTime": "např. 2 hodiny, 1. listopadu v 17:00",
"maintenanceEstimatedTimeDescription": "Kdy očekáváte, že údržba bude dokončena",
"editDomain": "Upravit doménu",
@@ -2716,6 +3100,7 @@
"maintenanceScreenEstimatedCompletion": "Odhadované dokončení:",
"createInternalResourceDialogDestinationRequired": "Cíl je povinný",
"available": "Dostupné",
"disabledResourceDescription": "Když je deaktivován, zdroj bude nedostupný pro každého.",
"archived": "Archivováno",
"noArchivedDevices": "Nebyla nalezena žádná archivovaná zařízení",
"deviceArchived": "Zařízení archivováno",
@@ -2829,7 +3214,7 @@
"streamingDatadogTitle": "Datadog",
"streamingDatadogDescription": "Přeposlat události přímo do vašeho účtu Datadog účtu. Brzy přijde.",
"streamingTypePickerDescription": "Vyberte cílový typ pro začátek.",
"streamingFailedToLoad": "Nepodařilo se načíst destinace",
"streamingLastSyncError": "Došlo k chybě při poslední synchronizaci",
"streamingUnexpectedError": "Došlo k neočekávané chybě.",
"streamingFailedToUpdate": "Nepodařilo se aktualizovat cíl",
"streamingDeletedSuccess": "Cíl byl úspěšně odstraněn",
@@ -2843,6 +3228,41 @@
"httpDestAddTitle": "Přidat cíl HTTP",
"httpDestEditDescription": "Aktualizovat konfiguraci pro tuto destinaci HTTP události",
"httpDestAddDescription": "Konfigurace nového koncového bodu HTTP pro příjem událostí vaší organizace.",
"S3DestEditTitle": "Upravit cíl",
"S3DestAddTitle": "Přidat S3 cíl",
"S3DestEditDescription": "Aktualizujte konfiguraci tohoto S3 cíle pro streamování událostí.",
"S3DestAddDescription": "Nakonfigurujte nový Amazon S3 (nebo S3-kompatibilní) bucket, aby přijímal události vaší organizace.",
"s3DestTabSettings": "Nastavení",
"s3DestTabFormat": "Formát",
"s3DestNameLabel": "Jméno",
"s3DestNamePlaceholder": "Moje cílové S3",
"s3DestAccessKeyIdLabel": "ID přístupového klíče AWS",
"s3DestSecretAccessKeyLabel": "Tajný přístupový klíč AWS",
"s3DestSecretAccessKeyPlaceholder": "Váš tajný přístupový klíč AWS",
"s3DestRegionLabel": "Oblast AWS",
"s3DestBucketLabel": "Název bucketu",
"s3DestPrefixLabel": "Předpona klíče (volitelné)",
"s3DestPrefixDescription": "Volitelná cesta předpony přidaná ke každému objektovému klíči. Objekty jsou uloženy na {prefix}/{logType}/{YYYY}/{MM}/{DD}/{filename}.",
"s3DestEndpointLabel": "Vlastní koncový bod (volitelné)",
"s3DestEndpointDescription": "Přepište koncový bod S3 pro S3-kompatibilní úložiště, jako je MinIO nebo Cloudflare R2. Nechte prázdné pro standardní AWS S3.",
"s3DestGzipLabel": "Komprese Gzip",
"s3DestGzipDescription": "Komprimujte každý nahraný objekt pomocí gzip. Snižuje náklady na uložení a velikost nahrávání.",
"s3DestFormatTitle": "Formát souboru",
"s3DestFormatDescription": "Jak jsou události serializovány v každém nahraném objektu.",
"s3DestFormatJsonArrayDescription": "Každý objekt je pole JSON záznamů událostí. Kompatibilní s většinou analytických nástrojů.",
"s3DestFormatNdjsonDescription": "Každý objekt obsahuje jeden JSON záznam na řádku (newline-delimited JSON). Kompatibilní s Athena, BigQuery a Spark.",
"s3DestFormatCsvTitle": "CSV",
"s3DestFormatCsvDescription": "Každý objekt je soubor CSV podle RFC-4180 s řádkem záhlaví. Názvy sloupců jsou odvozeny z polí dat událostí.",
"s3DestSaveChanges": "Uložit změny",
"s3DestCreateDestination": "Vytvořit destinaci",
"s3DestUpdatedSuccess": "Destinace úspěšně aktualizována",
"s3DestCreatedSuccess": "Destinace úspěšně vytvořena",
"s3DestUpdateFailed": "Aktualizace destinace se nezdařila",
"s3DestCreateFailed": "Vytvoření destinace se nezdařilo",
"datadogDestEditTitle": "Upravit cíl",
"datadogDestAddTitle": "Přidat Datadog cíl",
"datadogDestEditDescription": "Aktualizujte konfiguraci tohoto Datadog cíle pro streamování událostí.",
"datadogDestAddDescription": "Konfigurujte nový Datadog koncový bod pro přijímání událostí vaší organizace.",
"httpDestTabSettings": "Nastavení",
"httpDestTabHeaders": "Záhlaví",
"httpDestTabBody": "Tělo",
@@ -2887,13 +3307,13 @@
"httpDestFormatSingleDescription": "Odešle samostatnou HTTP POST pro každou jednotlivou událost. Používejte pouze pro koncové body, které nemohou zpracovávat dávky.",
"httpDestLogTypesTitle": "Typy protokolů",
"httpDestLogTypesDescription": "Vyberte, které typy logů jsou přesměrovány do této destinace. Budou streamovány pouze povolené typy logů.",
"httpDestAccessLogsTitle": "Authentication Logs",
"httpDestAccessLogsTitle": "Protokoly přístupu",
"httpDestAccessLogsDescription": "Pokusy o přístup k dokumentům, včetně ověřených a zamítnutých požadavků.",
"httpDestActionLogsTitle": "Admin Action Logs",
"httpDestActionLogsTitle": "Záznamy akcí",
"httpDestActionLogsDescription": "Správní opatření prováděná uživateli v rámci organizace.",
"httpDestConnectionLogsTitle": "Network Logs",
"httpDestConnectionLogsTitle": "Protokoly připojení",
"httpDestConnectionLogsDescription": "Události týkající se připojení lokality a tunelu, včetně připojení a odpojení.",
"httpDestRequestLogsTitle": "HTTPS Request Logs",
"httpDestRequestLogsTitle": "Záznamy HTTP požadavků",
"httpDestRequestLogsDescription": "HTTP záznamy požadavků pro proxy zdroje, včetně metod, cesty a kódu odpovědi.",
"httpDestSaveChanges": "Uložit změny",
"httpDestCreateDestination": "Vytvořit cíl",
@@ -2901,6 +3321,18 @@
"httpDestCreatedSuccess": "Cíl byl úspěšně vytvořen",
"httpDestUpdateFailed": "Nepodařilo se aktualizovat cíl",
"httpDestCreateFailed": "Nepodařilo se vytvořit cíl",
"followRedirects": "Následovat přesměrování",
"followRedirectsDescription": "Automaticky sledovat přesměrování HTTP pro požadavky.",
"alertingErrorWebhookUrl": "Zadejte platnou URL pro webhook.",
"healthCheckStrategyHttp": "Ověření připojení a kontrola stavu HTTP odpovědi.",
"healthCheckStrategyTcp": "Ověření TCP připojení, bez inspekce odpovědi.",
"healthCheckStrategySnmp": "Vytváří SNMP požadavek pro kontrolu stavu síťových zařízení a infrastruktury.",
"healthCheckStrategyIcmp": "Používá se ICMP echo požadavky (pingy) ke kontrole, zda je zdroj dosažitelný a reaguje.",
"healthCheckTabStrategy": "Strategie",
"healthCheckTabConnection": "Připojení",
"healthCheckTabAdvanced": "Pokročilé",
"healthCheckStrategyNotAvailable": "Tato strategie není dostupná. Kontaktujte prodejce pro povolení této funkce.",
"uptime30d": "Doba provozu (30d)",
"idpAddActionCreateNew": "Vytvořit nového poskytovatele identity",
"idpAddActionImportFromOrg": "Importovat z jiné organizace",
"idpImportDialogTitle": "Importovat poskytovatele identity",
@@ -2918,5 +3350,107 @@
"idpUnassociatedDescription": "Poskytovatel identity byl úspěšně odpojen od této organizace",
"idpUnassociateMenu": "Odpojit",
"idpDeleteAllOrgsMenu": "Odstranit",
"publicIpEndpoint": "Endpoint"
"publicIpEndpoint": "Koncový bod",
"lastTriggeredAt": "Poslední spouštěč",
"reject": "Odmítnout",
"uptimeDaysAgo": "Před {count} dny",
"uptimeToday": "Dnes",
"uptimeNoDataAvailable": "Dostupná žádná data",
"uptimeSuffix": "doba dostupnosti",
"uptimeDowntimeSuffix": "doba nedostupnosti",
"uptimeTooltipUptimeLabel": "Doba dostupnosti",
"uptimeTooltipDowntimeLabel": "Doba nedostupnosti",
"uptimeOngoing": "probíhá",
"uptimeNoMonitoringData": "Žádné monitorovací údaje",
"uptimeNoData": "Žádná data",
"uptimeMiniBarDown": "Nedostupný",
"uptimeSectionTitle": "Doba dostupnosti",
"uptimeSectionDescription": "Dostupnost za posledních {days} dní",
"uptimeAddAlert": "Přidat upozornění",
"uptimeViewAlerts": "Zobrazit upozornění",
"uptimeCreateEmailAlert": "Vytvořit e-mailové upozornění",
"uptimeAlertDescriptionSite": "Pošleme vám upozornění e-mailem, když bude tento web offline nebo se vrátí online.",
"uptimeAlertDescriptionResource": "Pošleme vám upozornění e-mailem, když bude tento zdroj offline nebo se vrátí online.",
"uptimeAlertNamePlaceholder": "Název upozornění",
"uptimeAdditionalEmails": "Další e-maily",
"uptimeCreateAlert": "Vytvořit upozornění",
"uptimeAlertNoRecipients": "Žádní příjemci",
"uptimeAlertNoRecipientsDescription": "Přidejte prosím alespoň jednoho uživatele, roli nebo e-mailovou adresu pro upozornění.",
"uptimeAlertCreated": "Upozornění vytvořeno",
"uptimeAlertCreatedDescription": "Budete upozorněni, když se tento stav změní.",
"uptimeAlertCreateFailed": "Nepodařilo se vytvořit upozornění",
"webhookUrlLabel": "URL",
"webhookHeaderKeyPlaceholder": "Klíč",
"webhookHeaderValuePlaceholder": "Hodnota",
"alertLabel": "Upozornění",
"domainPickerWildcardSubdomainNotAllowed": "Zástupné poddomény nejsou povoleny.",
"domainPickerWildcardCertWarning": "Zástupné zdroje mohou vyžadovat dodatečnou konfiguraci pro správnou funkci.",
"domainPickerWildcardCertWarningLink": "Zjistit více",
"health": "Zdraví",
"domainPendingErrorTitle": "Problém s ověřením",
"memberPortalTitle": "Zdroje",
"memberPortalDescription": "Zdroje, ke kterým máte v této organizaci přístup",
"memberPortalSortBy": "Řadit podle...",
"memberPortalSortNameAsc": "Názvu A-Z",
"memberPortalSortNameDesc": "Názvu Z-A",
"memberPortalSortDomainAsc": "Domény A-Z",
"memberPortalSortDomainDesc": "Domény Z-A",
"memberPortalSortEnabledFirst": "Nejprve povoleno",
"memberPortalSortDisabledFirst": "Nejprve zakázáno",
"memberPortalRefresh": "Aktualizovat",
"memberPortalRefreshResources": "Aktualizovat zdroje",
"memberPortalFailedToLoad": "Nepodařilo se načíst zdroje",
"memberPortalFailedToLoadDescription": "Nepodařilo se načíst zdroje. Zkontrolujte prosím své připojení a zkuste to znovu.",
"memberPortalUnableToLoad": "Nelze načíst zdroje",
"memberPortalTryAgain": "Zkusit znovu",
"memberPortalNoResourcesFound": "Žádné zdroje nebyly nalezeny",
"memberPortalNoResourcesAvailable": "Žádné zdroje nejsou k dispozici",
"memberPortalNoResourcesMatchSearch": "Žádné zdroje neodpovídají \"{query}\". Zkuste přizpůsobit své vyhledávací termíny nebo vyčistit hledání, abyste viděli všechny zdroje.",
"memberPortalNoResourcesAccess": "Zatím nemáte přístup k žádným zdrojům. Kontaktujte svého správce, aby vám poskytl přístup k potřebným zdrojům.",
"memberPortalClearSearch": "Vymazat hledání",
"memberPortalPublicResources": "Veřejné zdroje",
"memberPortalPublicResourcesDescription": "Webové aplikace a služby přístupné přes prohlížeč",
"memberPortalCopiedToClipboard": "Zkopírováno do schránky",
"memberPortalCopiedUrlDescription": "URL zdroje byla zkopírována do vaší schránky.",
"memberPortalOpenResource": "Otevřít zdroj",
"memberPortalPrivateResources": "Soukromé zdroje",
"memberPortalPrivateResourcesDescription": "Interní síťové zdroje přístupné přes klienta",
"memberPortalResourceDetails": "Podrobnosti o zdroji",
"memberPortalMode": "Režim",
"memberPortalDestination": "Cíl",
"memberPortalAlias": "Přezdívka",
"memberPortalCopiedAliasDescription": "Alias zdroje byl zkopírován do vaší schránky.",
"memberPortalCopiedDestinationDescription": "Cíl zdroje byl zkopírován do vaší schránky.",
"memberPortalRequiresClientConnection": "Vyžaduje klientské připojení",
"memberPortalAuthMethods": "Metody ověřování",
"memberPortalSso": "Jedno přihlášení (SSO)",
"memberPortalPasswordProtected": "Heslo chráněno",
"memberPortalPinCode": "PIN kód",
"memberPortalEmailWhitelist": "Seznam povolených emailů",
"memberPortalResourceDisabled": "Zdroj je zakázán",
"memberPortalShowingResources": "Zobrazeny {start}-{end} z {total} zdrojů",
"memberPortalPrevious": "Předchozí",
"memberPortalNext": "Následující",
"httpSettings": "Nastavení HTTP",
"tcpSettings": "Nastavení TCP",
"udpSettings": "Nastavení UDP",
"sshTitle": "SSH",
"sshConnectingDescription": "Zřizování bezpečného připojení…",
"sshConnecting": "Připojení…",
"sshInitializing": "Inicializace…",
"sshSignInTitle": "Přihlášení do SSH",
"sshSignInDescription": "Zadejte své SSH přihlašovací údaje",
"sshPasswordTab": "Heslo",
"sshPrivateKeyTab": "Soukromý klíč",
"sshPrivateKeyField": "Soukromý klíč",
"sshPrivateKeyDisclaimer": "Váš soukromý klíč není ukládán ani viditelný pro Pangolin. Alternativně můžete použít krátkodobé certifikáty pro bezproblémové ověřování pomocí vaší stávající identity Pangolin.",
"sshLearnMore": "Přečtěte si více",
"sshPrivateKeyFile": "Soubor soukromého klíče",
"sshAuthenticate": "Ověřit",
"sshTerminate": "Ukončit",
"sshPoweredBy": "Vytváří",
"sshErrorNoTarget": "Cíl nebyl určen",
"sshErrorWebSocket": "Chyba připojení WebSocketu",
"sshErrorAuthFailed": "Ověření selhalo",
"sshErrorConnectionClosed": "Připojení bylo uzavřeno před dokončením ověřování"
}
+605 -71
View File
File diff suppressed because it is too large Load Diff
+585 -48
View File
File diff suppressed because it is too large Load Diff
+575 -41
View File
File diff suppressed because it is too large Load Diff
+575 -41
View File
File diff suppressed because it is too large Load Diff
+575 -41
View File
File diff suppressed because it is too large Load Diff
+575 -41
View File
File diff suppressed because it is too large Load Diff
+573 -39
View File
@@ -1,4 +1,8 @@
{
"contactSalesEnable": "Kontakt salgsavdelingen for å aktivere denne funksjonen.",
"contactSalesBookDemo": "Bestill en demo",
"contactSalesOr": "eller",
"contactSalesContactUs": "kontakt oss",
"setupCreate": "Opprett organisasjonen, nettstedet og ressursene",
"headerAuthCompatibilityInfo": "Aktiver dette for å tvinge frem en 401 Uautorisert-respons når en autentiseringstoken mangler. Dette kreves for nettlesere eller spesifikke HTTP-biblioteker som ikke sender legitimasjon uten en serverutfordring.",
"headerAuthCompatibility": "Utvidet kompatibilitet",
@@ -19,6 +23,18 @@
"componentsInvalidKey": "Ugyldig eller utgått lisensnøkkel oppdaget. Følg lisensvilkårene for å fortsette å kunne bruke alle funksjonene.",
"dismiss": "Avvis",
"subscriptionViolationMessage": "Du er utenfor grensen for gjeldende plan. Rett problemet ved å fjerne nettsteder, brukere eller andre ressurser for å bli innenfor planen din.",
"trialBannerMessage": "Din prøveperiode utløper om {countdown}. Oppgrader for å beholde tilgangen.",
"trialBannerExpired": "Prøveperioden din har utløpt. Oppgrader nå for å gjenopprette tilgangen.",
"billingTrialBannerTitle": "Prøveversjon Aktiv",
"billingTrialBannerDescription": "Du har for øyeblikket en gratis prøveversjon på forretningsnivået. Når prøven avsluttes, vil kontoen din automatisk gå tilbake til funksjoner og begrensninger på Basis-nivået. Oppgrader når som helst for å beholde tilgang til de nåværende planens funksjoner.",
"billingTrialBannerUpgrade": "Oppgrader nå",
"billingTrialBadge": "Prøveversjon",
"trialActive": "Gratis prøveversjon aktiv",
"trialExpired": "Prøveperioden er utløpt",
"trialHasEnded": "Din prøveperiode har avsluttet.",
"trialDaysRemaining": "{count, plural, one {# dag igjen} other {# dager igjen}}",
"trialDaysLeftShort": "{days}d igjen av prøveperioden",
"trialGoToBilling": "Gå til faktureringssiden",
"subscriptionViolationViewBilling": "Vis fakturering",
"componentsLicenseViolation": "Lisens Brudd: Denne serveren bruker {usedSites} områder som overskrider den lisensierte grenser av {maxSites} områder. Følg lisensvilkårene for å fortsette å kunne bruke alle funksjonene.",
"componentsSupporterMessage": "Takk for at du støtter Pangolin som en {tier}!",
@@ -81,6 +97,8 @@
"siteConfirmCopy": "Jeg har kopiert konfigurasjonen",
"searchSitesProgress": "Søker i områder...",
"siteAdd": "Legg til område",
"sitesTableViewPublicResources": "Vis offentlige ressurser",
"sitesTableViewPrivateResources": "Vis private ressurser",
"siteInstallNewt": "Installer Newt",
"siteInstallNewtDescription": "Få Newt til å kjøre på systemet ditt",
"WgConfiguration": "WireGuard Konfigurasjon",
@@ -98,6 +116,21 @@
"siteUpdatedDescription": "Området har blitt oppdatert.",
"siteGeneralDescription": "Konfigurer de generelle innstillingene for dette området",
"siteSettingDescription": "Konfigurere innstillingene på nettstedet",
"siteResourcesTab": "Ressurser",
"siteResourcesNoneOnSite": "Dette nettstedet har ingen offentlige eller private ressurser enda.",
"siteResourcesSectionPublic": "Offentlige ressurser",
"siteResourcesSectionPrivate": "Private ressurser",
"siteResourcesSectionPublicDescription": "Ressurser eksponert eksternt gjennom domener eller porter.",
"siteResourcesSectionPrivateDescription": "Ressurser tilgjengelig på ditt private nettverk gjennom nettstedet.",
"siteResourcesViewAllPublic": "Vis alle ressurser",
"siteResourcesViewAllPrivate": "Vis alle ressurser",
"siteResourcesDialogDescription": "Oversikt over offentlige og private ressurser assosiert med dette nettstedet.",
"siteResourcesShowMore": "Vis mer",
"siteResourcesPermissionDenied": "Du har ikke tillatelse til å liste opp disse ressursene.",
"siteResourcesEmptyPublic": "Ingen offentlige ressurser retter seg mot dette nettstedet enda.",
"siteResourcesEmptyPrivate": "Ingen private ressurser er assosiert med dette nettstedet enda.",
"siteResourcesHowToAccess": "Hvordan få tilgang",
"siteResourcesTargetsOnSite": "Mål på dette nettstedet",
"siteSetting": "{siteName} Innstillinger",
"siteNewtTunnel": "Nyhetsnettsted (anbefalt)",
"siteNewtTunnelDescription": "Lekkeste måte å lage et inngangspunkt til ethvert nettverk. Ingen ekstra oppsett på.",
@@ -123,6 +156,10 @@
"shareErrorDeleteMessage": "En feil oppstod ved sletting av lenke",
"shareDeleted": "Lenke slettet",
"shareDeletedDescription": "Lenken har blitt slettet",
"shareDelete": "Slett delingslenke",
"shareDeleteConfirm": "Bekreft sletting av delingslenke",
"shareQuestionRemove": "Er du sikker på at du vil slette denne delingslenken?",
"shareMessageRemove": "Når slettet, vil lenken ikke lenger fungere, og alle som bruker den vil miste tilgang til ressursen.",
"shareTokenDescription": "Adgangstoken kan sendes på to måter: som en spørringsparameter eller i forespørselsoverskriftene. Disse må sendes fra klienten på hver forespørsel om autentisert tilgang.",
"accessToken": "Tilgangsnøkkel",
"usageExamples": "Brukseksempler",
@@ -139,6 +176,7 @@
"shareErrorCreateDescription": "Det oppsto en feil ved opprettelse av delingslenken",
"shareCreateDescription": "Alle med denne lenken får tilgang til ressursen",
"shareTitleOptional": "Tittel (valgfritt)",
"sharePathOptional": "Bane (valgfritt)",
"expireIn": "Utløper om",
"neverExpire": "Utløper aldri",
"shareExpireDescription": "Utløpstid er hvor lenge lenken vil være brukbar og gi tilgang til ressursen. Etter denne tiden vil lenken ikke lenger fungere, og brukere som brukte denne lenken vil miste tilgangen til ressursen.",
@@ -163,7 +201,7 @@
"proxyResourceTitle": "Administrere offentlige ressurser",
"proxyResourceDescription": "Opprett og administrer ressurser som er offentlig tilgjengelige via en nettleser",
"proxyResourcesBannerTitle": "Nettbasert offentlig tilgang",
"proxyResourcesBannerDescription": "Public resources are HTTPS proxies accessible to anyone on the internet through a web browser. Unlike private resources, they do not require client-side software and can include identity and context-aware access policies.",
"proxyResourcesBannerDescription": "Offentlige ressurser er HTTPS- eller TCP/UDP-proxyer tilgjengelige for alle på internett via en nettleser. I motsetning til private ressurser, krever de ikke klient-basert programvare og kan inkludere identitets- og kontekstbevisste tilgangspolicyer.",
"clientResourceTitle": "Administrer private ressurser",
"clientResourceDescription": "Opprette og administrere ressurser som bare er tilgjengelige via en tilkoblet klient",
"privateResourcesBannerTitle": "Zero-Trust privat tilgang",
@@ -171,11 +209,33 @@
"resourcesSearch": "Søk i ressurser...",
"resourceAdd": "Legg til ressurs",
"resourceErrorDelte": "Feil ved sletting av ressurs",
"resourcePoliciesTitle": "Administrer Ressurspolitikk",
"resourcePoliciesAttachedResourcesColumnTitle": "Vedlagte ressurser",
"resourcePoliciesAttachedResources": "{count} ressurs(er)",
"resourcePoliciesAttachedResourcesEmpty": "ingen ressurser",
"resourcePoliciesDescription": "Opprett og administrer autentiseringsregler for å kontrollere tilgang til dine ressurser",
"resourcePoliciesSearch": "Søk etter regler...",
"resourcePoliciesAdd": "Legg til policy",
"resourcePoliciesDefaultBadgeText": "Standard politisk",
"resourcePoliciesCreate": "Opprett Ressurspolitikk",
"resourcePoliciesCreateDescription": "Følg trinnene nedenfor for å lage en ny policy",
"resourcePolicyName": "Polisnavn",
"resourcePolicyNameDescription": "Gi denne policynavnet for å identifisere den på tvers av dine ressurser",
"resourcePolicyNamePlaceholder": "f.eks. Intern Tilgangspolicy",
"resourcePoliciesSeeAll": "Se Alle Policies",
"resourcePolicyAuthMethodAdd": "Legg til Autentiseringsmetode",
"resourcePolicyOtpEmailAdd": "Legg til OTP e-poster",
"resourcePolicyRulesAdd": "Legg til Regler",
"resourcePolicyAuthMethodsDescription": "Tillat tilgang til ressurser via tilleggsauthentiseringsmetoder",
"resourcePolicyUsersRolesDescription": "Konfigurer hvilke brukere og roller som kan besøke tilknyttede ressurser",
"rulesResourcePolicyDescription": "Konfigurer regler for å kontrollere tilgangen til ressurser som er knyttet til denne policyen",
"authentication": "Autentisering",
"protected": "Beskyttet",
"notProtected": "Ikke beskyttet",
"resourceMessageRemove": "Når den er fjernet, vil ressursen ikke lenger være tilgjengelig. Alle mål knyttet til ressursen vil også bli fjernet.",
"resourceQuestionRemove": "Er du sikker på at du vil fjerne ressursen fra organisasjonen?",
"resourcePolicyMessageRemove": "Når den er fjernet, vil ressursen ikke lenger være tilgjengelig. Alle ressurser knyttet til ressursen vil bli frakoblet og stå uten autentisering.",
"resourcePolicyQuestionRemove": "Er du sikker på at du vil fjerne ressurspolitikken fra organisasjonen?",
"resourceHTTP": "HTTPS-ressurs",
"resourceHTTPDescription": "Proxy forespørsler over HTTPS ved å bruke et fullstendig kvalifisert domenenavn.",
"resourceRaw": "Rå TCP/UDP-ressurs",
@@ -183,8 +243,9 @@
"resourceRawDescriptionCloud": "Proxy forespørsler om rå TCP/UDP ved hjelp av et portnummer. Krever sider for å koble til en ekstern node.",
"resourceCreate": "Opprett ressurs",
"resourceCreateDescription": "Følg trinnene nedenfor for å opprette en ny ressurs",
"resourceCreateGeneralDescription": "Konfigurer de grunnleggende ressursinnstillingene inkludert navnet og typen",
"resourceSeeAll": "Se alle ressurser",
"resourceInfo": "Ressursinformasjon",
"resourceCreateGeneral": "Generelt",
"resourceNameDescription": "Dette er visningsnavnet for ressursen.",
"siteSelect": "Velg område",
"siteSearch": "Søk i område",
@@ -194,12 +255,15 @@
"noCountryFound": "Ingen land funnet.",
"siteSelectionDescription": "Dette området vil gi tilkobling til mål.",
"resourceType": "Ressurstype",
"resourceTypeDescription": "Bestemme hvordan denne ressursen skal brukes",
"resourceTypeDescription": "Dette kontrollerer ressursprotokollen og hvordan den vil vises i nettleseren. Dette kan ikke endres senere.",
"resourceDomainDescription": "Ressursen vil bli servert på dette fullstendig kvalifiserte domenenavnet.",
"resourceHTTPSSettings": "HTTPS-innstillinger",
"resourceHTTPSSettingsDescription": "Konfigurer hvordan ressursen skal nås over HTTPS",
"resourcePortDescription": "Den eksterne porten på Pangolin-instansen eller noden der ressursen vil være tilgjengelig.",
"domainType": "Domenetype",
"subdomain": "Underdomene",
"baseDomain": "Grunndomene",
"configure": "Konfigurer",
"subdomnainDescription": "Underdomenet hvor ressursen vil være tilgjengelig.",
"resourceRawSettings": "TCP/UDP-innstillinger",
"resourceRawSettingsDescription": "Konfigurer hvordan ressursen vil bli tilgjengelig over TCP/UDP",
@@ -216,8 +280,27 @@
"resourceLearnRaw": "Lær hvordan å konfigurere TCP/UDP-ressurser",
"resourceBack": "Tilbake til ressurser",
"resourceGoTo": "Gå til ressurs",
"resourcePolicyDelete": "Slett Ressurspolitikk",
"resourcePolicyDeleteConfirm": "Bekreft sletting av ressurspolitikk",
"resourceDelete": "Slett ressurs",
"resourceDeleteConfirm": "Bekreft sletting av ressurs",
"labelDelete": "Slett etikett",
"labelAdd": "Legg til etikett",
"labelCreateSuccessMessage": "Etikett opprettet vellykket",
"labelEditSuccessMessage": "Etikett endret vellykket",
"labelNameField": "Etikettnavn",
"labelColorField": "Etikettfarge",
"labelPlaceholder": "Eksempel: homelab",
"labelCreate": "Opprett etikett",
"createLabelDialogTitle": "Opprett etikett",
"createLabelDialogDescription": "Opprett en ny etikett som kan knyttes til denne organisasjonen",
"labelEdit": "Rediger etikett",
"editLabelDialogTitle": "Oppdater etikett",
"editLabelDialogDescription": "Rediger en ny etikett som kan knyttes til denne organisasjonen",
"labelDeleteConfirm": "Bekreft sletting av etikett",
"labelErrorDelete": "Kunne ikke slette etikett",
"labelMessageRemove": "Denne handlingen er permanent. Alle steder, ressurser, og klienter tagget med denne etiketten vil bli umerket.",
"labelQuestionRemove": "Er du sikker på at du vil fjerne etiketten fra organisasjonen?",
"visibility": "Synlighet",
"enabled": "Aktivert",
"disabled": "Deaktivert",
@@ -228,6 +311,8 @@
"rules": "Regler",
"resourceSettingDescription": "Konfigurere innstillingene på ressursen",
"resourceSetting": "{resourceName} Innstillinger",
"resourcePolicySettingDescription": "Konfigurer innstillingene på ressurspolitikken",
"resourcePolicySetting": "{policyName} Innstillinger",
"alwaysAllow": "Omgå Auth",
"alwaysDeny": "Blokker tilgang",
"passToAuth": "Pass til Autentisering",
@@ -267,8 +352,11 @@
"orgMissing": "Organisasjons-ID Mangler",
"orgMissingMessage": "Kan ikke regenerere invitasjon uten en organisasjons-ID.",
"accessUsersManage": "Administrer brukere",
"accessUserManage": "Administrer brukere",
"accessUsersDescription": "Inviter og behandle brukere med tilgang til denne organisasjonen",
"accessUsersSearch": "Søk etter brukere...",
"accessUsersRoleFilterCount": "{count, plural, one {# rolle} other {# roller}}",
"accessUsersRoleFilterClear": "Fjern rollesøkefiltre",
"accessUserCreate": "Opprett bruker",
"accessUserRemove": "Fjern bruker",
"username": "Brukernavn",
@@ -380,7 +468,7 @@
"userTitle": "Administrer alle brukere",
"userDescription": "Vis og administrer alle brukere i systemet",
"userAbount": "Om brukeradministrasjon",
"userAbountDescription": "This table displays all base user objects in the system. Each user may belong to multiple organizations. Removing a user from an organization does not delete their base user object. They will remain in the system. To completely remove a user from the system, you must delete their base user object using the delete action in this table.",
"userAbountDescription": "Denne tabellen viser alle rotbrukerobjekter i systemet. Hver bruker kan tilhøre flere organisasjoner. Å fjerne en bruker fra en organisasjon sletter ikke deres rotbrukerobjekt de vil forbli i systemet. For å fullstendig fjerne en bruker fra systemet, må du slette deres rotbrukerobjekt ved å bruke slett-handlingen i denne tabellen.",
"userServer": "Serverbrukere",
"userSearch": "Søk serverbrukere...",
"userErrorDelete": "Feil ved sletting av bruker",
@@ -487,6 +575,12 @@
"userMessageOrgRemove": "Når denne brukeren er fjernet, vil de ikke lenger ha tilgang til organisasjonen. Du kan alltid invitere dem på nytt senere, men de vil måtte godta invitasjonen på nytt.",
"userRemoveOrgConfirm": "Bekreft fjerning av bruker",
"userRemoveOrg": "Fjern bruker fra organisasjon",
"userQuestionOrgRemoveSelf": "Er du sikker på at du vil fjerne deg selv fra denne organisasjonen?",
"userMessageOrgRemoveSelf": "Du vil miste tilgang umiddelbart. En administrator kan invitere deg igjen senere, men du må godta en ny invitasjon.",
"userRemoveOrgConfirmSelf": "Bekreft fjerning av meg selv",
"userRemoveOrgSelf": "Fjern deg selv fra organisasjonen",
"userRemoveOrgSelfWarning": "Du vil miste tilgangen til denne organisasjonen umiddelbart.",
"userRemoveOrgConfirmPhraseSelf": "FJERN MEG SELV FRA ORG",
"users": "Brukere",
"accessRoleMember": "Medlem",
"accessRoleOwner": "Eier",
@@ -495,6 +589,11 @@
"emailInvalid": "Ugyldig e-postadresse",
"inviteValidityDuration": "Vennligst velg en varighet",
"accessRoleSelectPlease": "Vennligst velg en rolle",
"removeOwnAdminRoleConfirmTitle": "Fjern din administratoradgang?",
"removeOwnAdminRoleConfirmDescription": "Du vil ikke lenger ha administratorrettigheter i denne organisasjonen etter lagring. En annen administrator kan gjenopprette tilgang hvis nødvendig.",
"removeOwnAdminRoleConfirmButton": "Fjern min administratoradgang",
"removeOwnAdminRoleConfirmPhrase": "FJERN MIN ADMINISTRATORADGANG",
"ownerMustRetainAdminRole": "Organisasjonseier må beholde minst én administratorrolle.",
"usernameRequired": "Brukernavn er påkrevd",
"idpSelectPlease": "Vennligst velg en identitetsleverandør",
"idpGenericOidc": "Generisk OAuth2/OIDC-leverandør.",
@@ -523,7 +622,7 @@
"userSettings": "Brukerinformasjon",
"userSettingsDescription": "Skriv inn detaljene for den nye brukeren",
"inviteEmailSent": "Send invitasjonsepost til bruker",
"inviteValid": "Invite Valid For (days)",
"inviteValid": "Gyldig for",
"selectDuration": "Velg varighet",
"selectResource": "Velg ressurs",
"filterByResource": "Filtrer etter ressurser",
@@ -579,7 +678,7 @@
"createdAt": "Opprettet",
"proxyErrorInvalidHeader": "Ugyldig verdi for egendefinert vertsoverskrift. Bruk domenenavnformat, eller lagre tomt for å fjerne den egendefinerte vertsoverskriften.",
"proxyErrorTls": "Ugyldig TLS-servernavn. Bruk domenenavnformat, eller la stå tomt for å fjerne TLS-servernavnet.",
"proxyEnableSSL": "Aktiver SSL",
"proxyEnableSSL": "Aktiver TLS",
"proxyEnableSSLDescription": "Aktivere SSL/TLS-kryptering for sikker HTTPS tilkobling til målene.",
"target": "Target",
"configureTarget": "Konfigurer mål",
@@ -622,6 +721,7 @@
"targetNoOneDescription": "Å legge til mer enn ett mål ovenfor vil aktivere lastbalansering.",
"targetsSubmit": "Lagre mål",
"addTarget": "Legg til mål",
"proxyMultiSiteRoundRobinNodeHelp": "Rundkjøringrutefordeling vil ikke fungere mellom steder som ikke er koblet til samme node, men failover vil fungere.",
"targetErrorInvalidIp": "Ugyldig IP-adresse",
"targetErrorInvalidIpDescription": "Skriv inn en gyldig IP-adresse eller vertsnavn",
"targetErrorInvalidPort": "Ugyldig port",
@@ -695,6 +795,16 @@
"rulesNoOne": "Ingen regler. Legg til en regel ved å bruke skjemaet.",
"rulesOrder": "Regler evalueres etter prioritet i stigende rekkefølge.",
"rulesSubmit": "Lagre regler",
"policyErrorCreate": "Feil ved opprettelse av policy",
"policyErrorCreateDescription": "Det oppstod en feil under opprettelse av policyen",
"policyErrorCreateMessageDescription": "En uventet feil oppstod",
"policyErrorUpdate": "Feil ved oppdatering av policy",
"policyErrorUpdateDescription": "Det oppstod en feil ved oppdatering av policyen",
"policyErrorUpdateMessageDescription": "En uventet feil oppstod",
"policyCreatedSuccess": "Ressurspolitikken ble opprettet vellykket",
"policyUpdatedSuccess": "Ressurspolitikken ble oppdatert vellykket",
"authMethodsSave": "Lagre autentiseringsmetoder",
"rulesSave": "Lagre Regler",
"resourceErrorCreate": "Feil under oppretting av ressurs",
"resourceErrorCreateDescription": "Det oppstod en feil under oppretting av ressursen",
"resourceErrorCreateMessage": "Feil ved oppretting av ressurs:",
@@ -731,6 +841,7 @@
"newtEndpoint": "Endpoint",
"newtId": "ID",
"newtSecretKey": "Sikkerhetsnøkkel",
"newtVersion": "Versjon",
"architecture": "Arkitektur",
"sites": "Områder",
"siteWgAnyClients": "Bruk hvilken som helst WireGuard klient til å koble til. Du må adressere interne ressurser ved hjelp av peer IP.",
@@ -757,6 +868,17 @@
"pincodeAdd": "Legg til PIN-kode",
"pincodeRemove": "Fjern PIN-kode",
"resourceAuthMethods": "Autentiseringsmetoder",
"resourcePolicyAuthMethodsEmpty": "Ingen autentiseringsmetode",
"resourcePolicyOtpEmpty": "Ingen engangspassord",
"resourcePolicyReadOnly": "Denne policyen er kun lesbar",
"resourcePolicyReadOnlyDescription": "Denne ressursreglen deles på tvers av flere ressurser, du kan ikke redigere den på denne siden.",
"editSharedPolicy": "Rediger Delte Rekvireringer",
"resourcePolicyTypeSave": "Lagre Ressurstype",
"resourcePolicySelect": "Velg ressurspolitikk",
"resourcePolicySelectError": "Velg en ressursregel",
"resourcePolicyNotFound": "Policy ikke funnet",
"resourcePolicySearch": "Søk etter regler",
"resourcePolicyRulesEmpty": "Ingen autentiseringsregler",
"resourceAuthMethodsDescriptions": "Tillat tilgang til ressursen via ytterligere autentiseringsmetoder",
"resourceAuthSettingsSave": "Lagret vellykket",
"resourceAuthSettingsSaveDescription": "Autentiseringsinnstillinger er lagret",
@@ -792,6 +914,12 @@
"resourcePincodeSetupTitle": "Angi PIN-kode",
"resourcePincodeSetupTitleDescription": "Sett en pinkode for å beskytte denne ressursen",
"resourceRoleDescription": "Administratorer har alltid tilgang til denne ressursen.",
"resourcePolicySelectTitle": "Ressurstilgangspolitikk",
"resourcePolicySelectDescription": "Velg policytype for autentisering",
"resourcePolicyInline": "Inline Ressursregler",
"resourcePolicyInlineDescription": "Tilgangspolitikk som kun er gyldig for denne ressursen",
"resourcePolicyShared": "Delte Ressursregler",
"resourcePolicySharedDescription": "Denne ressursen bruker en delt policy. Policyinnstillinger (autentiseringsmetoder, e-post whitelist) er låst. Du kan legge til ressurs-spesifikke regler, roller, og brukere nedenfor.",
"resourceUsersRoles": "Tilgangskontroller",
"resourceUsersRolesDescription": "Konfigurer hvilke brukere og roller som har tilgang til denne ressursen",
"resourceUsersRolesSubmit": "Lagre tilgangskontroller",
@@ -1087,6 +1215,18 @@
"idpErrorConnectingTo": "Det oppstod et problem med å koble til {name}. Vennligst kontakt din administrator.",
"idpErrorNotFound": "IdP ikke funnet",
"inviteInvalid": "Ugyldig invitasjon",
"labels": "Etiketter",
"orgLabelsDescription": "Administrer etiketter i denne organisasjonen.",
"addLabels": "Legg til etiketter",
"siteLabelsTab": "Etiketter",
"siteLabelsDescription": "Administrer etiketter knyttet til dette nettstedet.",
"labelsNotFound": "Etiketter ikke funnet",
"labelSearch": "Søk etter etiketter",
"accessLabelFilterCount": "{count, plural, one {en etikett} other {# etiketter}}",
"labelOverflowCount": "+{count, plural, one {en etikett} other {# etiketter}}",
"accessLabelFilterClear": "Fjern etikettfiltre",
"selectColor": "Velg farge",
"createNewLabel": "Opprett ny org-etikett \"{label}\"",
"inviteInvalidDescription": "Invitasjonslenken er ugyldig.",
"inviteErrorWrongUser": "Invitasjonen er ikke for denne brukeren",
"inviteErrorUserNotExists": "Brukeren eksisterer ikke. Vennligst opprett en konto først.",
@@ -1257,6 +1397,7 @@
"actionViewLogs": "Vis logger",
"noneSelected": "Ingen valgt",
"orgNotFound2": "Ingen organisasjoner funnet.",
"search": "Søk…",
"searchPlaceholder": "Søk...",
"emptySearchOptions": "Ingen valg funnet",
"create": "Opprett",
@@ -1320,6 +1461,8 @@
"sidebarResources": "Ressurser",
"sidebarProxyResources": "Offentlig",
"sidebarClientResources": "Privat",
"sidebarPolicies": "Retningslinjer",
"sidebarResourcePolicies": "Ressurser",
"sidebarAccessControl": "Tilgangskontroll",
"sidebarLogsAndAnalytics": "Logger og analyser",
"sidebarTeam": "Lag",
@@ -1341,12 +1484,170 @@
"sidebarGeneral": "Administrer",
"sidebarLogAndAnalytics": "Logg og analyser",
"sidebarBluePrints": "Tegninger",
"sidebarAlerting": "Varsling",
"sidebarHealthChecks": "Helsekontroller",
"sidebarOrganization": "Organisasjon",
"sidebarManagement": "Administrasjon",
"sidebarBillingAndLicenses": "Fakturering & lisenser",
"sidebarLogsAnalytics": "Analyser",
"alertingTitle": "Varsling",
"alertingDescription": "Definer kilder, triggere og handlinger for varsler",
"alertingRules": "Varslingsregler",
"alertingSearchRules": "Søk i regler…",
"alertingAddRule": "Opprett regel",
"alertingColumnSource": "Kilde",
"alertingColumnTrigger": "Utløser",
"alertingColumnActions": "Handlinger",
"alertingColumnEnabled": "Aktivert",
"alertingDeleteQuestion": "Vennligst bekreft at du vil slette denne varslingsregelen.",
"alertingDeleteRule": "Slett varslingsregel",
"alertingRuleDeleted": "Varslingsregel slettet",
"alertingRuleSaved": "Varslingsregel lagret",
"alertingRuleSavedCreatedDescription": "Din nye varslingsregel ble opprettet. Du kan fortsette å redigere den på denne siden.",
"alertingRuleSavedUpdatedDescription": "Endringene dine i denne varslingsregelen ble lagret.",
"alertingEditRule": "Rediger varslingsregel",
"alertingCreateRule": "Opprett varslingsregel",
"alertingRuleCredenzaDescription": "Velg hva som skal overvåkes, når det skal varsles, og hvordan du vil bli informert",
"alertingRuleNamePlaceholder": "Produksjonsside nede",
"alertingRuleEnabled": "Regel aktivert",
"alertingSectionSource": "Kilde",
"alertingSourceType": "Kildetype",
"alertingSourceSite": "Område",
"alertingSourceHealthCheck": "Helsekontroll",
"alertingPickSites": "Områder",
"alertingPickHealthChecks": "Helsekontroller",
"alertingPickResources": "Ressurser",
"alertingAllSites": "Alle områder",
"alertingAllSitesDescription": "Varsler for alle områder",
"alertingSpecificSites": "Spesifikke områder",
"alertingSpecificSitesDescription": "Velg spesifikke områder for overvåking",
"alertingAllHealthChecks": "Alle helsekontroller",
"alertingAllHealthChecksDescription": "Varsler for alle helsekontroller",
"alertingSpecificHealthChecks": "Spesifikke helsekontroller",
"alertingSpecificHealthChecksDescription": "Velg spesifikke helsekontroller for overvåking",
"alertingAllResources": "Alle ressurser",
"alertingAllResourcesDescription": "Varsler for alle ressurser",
"alertingSpecificResources": "Spesifikke ressurser",
"alertingSpecificResourcesDescription": "Velg spesifikke ressurser for overvåking",
"alertingSelectResources": "Velg ressurser…",
"alertingResourcesSelected": "{count} ressurser valgt",
"alertingResourcesEmpty": "Ingen ressurser med mål i de første 10 resultatene.",
"alertingSectionTrigger": "Utløser",
"alertingTrigger": "Når skal det varsles",
"alertingTriggerSiteOnline": "Nettsted er online",
"alertingTriggerSiteOffline": "Nettsted er offline",
"alertingTriggerSiteToggle": "Endringer i nettstedstatus",
"alertingTriggerHcHealthy": "Helsekontroll sunn",
"alertingTriggerHcUnhealthy": "Helsekontroll usunn",
"alertingTriggerHcToggle": "Endringer i helsekontrollstatus",
"alertingTriggerResourceHealthy": "Ressurs sunn",
"alertingTriggerResourceUnhealthy": "Ressurs usunn",
"alertingTriggerResourceDegraded": "Ressurs forringet",
"alertingSearchHealthChecks": "Søk i helsekontroller…",
"alertingHealthChecksEmpty": "Ingen tilgjengelige helsekontroller.",
"alertingTriggerResourceToggle": "Endringer i ressursstatus",
"alertingSourceResource": "Ressurs",
"alertingSectionActions": "Handlinger",
"alertingAddAction": "Legg til handling",
"alertingActionNotify": "E-post",
"alertingActionNotifyDescription": "Send e-postvarsler til brukere eller roller",
"alertingActionWebhook": "Webhook",
"alertingActionWebhookDescription": "Send en HTTP-forespørsel til et tilpasset endepunkt",
"alertingExternalIntegration": "Ekstern integrasjon",
"alertingExternalPagerDutyDescription": "Send varsler til PagerDuty for hendelseshåndtering",
"alertingExternalOpsgenieDescription": "Rute varsler til Opsgenie for vakt håndtering",
"alertingExternalServiceNowDescription": "Opprett ServiceNow hendelser fra varslingseventer",
"alertingExternalIncidentIoDescription": "Utløs Incident.io arbeidsflyter fra varsels begivenheter",
"alertingActionType": "Handlings type",
"alertingNotifyUsers": "Brukere",
"alertingNotifyRoles": "Roller",
"alertingNotifyEmails": "E-postadresser",
"alertingEmailPlaceholder": "Legg til e-post og trykk Enter",
"alertingWebhookMethod": "HTTP-metode",
"alertingWebhookSecret": "Signeringshemmelig (valgfritt)",
"alertingWebhookSecretPlaceholder": "HMAC-hemmelig",
"alertingWebhookHeaders": "Overskrifter",
"alertingAddHeader": "Legg til header",
"alertingSelectSites": "Velg områder…",
"alertingSitesSelected": "{count} områder valgt",
"alertingSelectHealthChecks": "Velg helsekontroller…",
"alertingHealthChecksSelected": "{count} helsekontroller valgt",
"alertingNoHealthChecks": "Ingen mål med helsekontroller aktivert",
"alertingHealthCheckStub": "Valg av helsekontrollkilde er ikke sluttført ennå - du kan fortsatt konfigurere triggere og handlinger.",
"alertingSelectUsers": "Velg brukere…",
"alertingUsersSelected": "{count} brukere valgt",
"alertingSelectRoles": "Velg roller…",
"alertingRolesSelected": "{count} roller valgt",
"alertingSummarySites": "Områder ({count})",
"alertingSummaryAllSites": "Alle områder",
"alertingSummaryHealthChecks": "Helsekontroller ({count})",
"alertingSummaryAllHealthChecks": "Alle helsekoner",
"alertingSummaryResources": "Ressurser ({count})",
"alertingSummaryAllResources": "Alle ressurser",
"alertingErrorNameRequired": "Skriv inn et navn",
"alertingErrorActionsMin": "Legg til minst én handling",
"alertingErrorPickSites": "Velg minst ett område",
"alertingErrorPickHealthChecks": "Velg minst én helsekontroll",
"alertingErrorPickResources": "Velg minst én ressurs",
"alertingErrorTriggerSite": "Velg en triggetjeneste for nettsted",
"alertingErrorTriggerHealth": "Velg en triggetjeneste for helsekontroll",
"alertingErrorTriggerResource": "Velg en triggetjeneste for ressurs",
"alertingErrorNotifyRecipients": "Velg brukere, roller, eller minst én e-post",
"alertingConfigureSource": "Konfigurer kilde",
"alertingConfigureTrigger": "Konfigurer trigger",
"alertingConfigureActions": "Konfigurer handlinger",
"alertingBackToRules": "Tilbake til regler",
"alertingRuleCooldown": "Nedkjøling (sekunder)",
"alertingRuleCooldownDescription": "Minimum tid mellom gjentatte varsler for samme regel. Sett til 0 for å skyte hver gang.",
"alertingDraftBadge": "Utkast - lagre for å lagre denne regelen",
"alertingSidebarHint": "Klikk på et steg på lerretet for å redigere det her.",
"alertingGraphCanvasTitle": "Regel Flyt",
"alertingGraphCanvasDescription": "Visuell oversikt over kilde, trigger og handlinger. Velg en node for å redigere den i panelet.",
"alertingNodeNotConfigured": "Ikke konfigurert ennå",
"alertingNodeActionsCount": "{count, plural, one {# handling} other {# handlinger}}",
"alertingNodeRoleSource": "Kilde",
"alertingNodeRoleTrigger": "Utløser",
"alertingNodeRoleAction": "Handling",
"alertingTabRules": "Varslingsregler",
"alertingTabHealthChecks": "Helsekontroller",
"alertingRulesBannerTitle": "Bli varslet",
"alertingRulesBannerDescription": "Hver regel binder sammen hva som skal overvåkes (et område, helsekontroll eller ressurs), når det skal varsles (for eksempel offline eller usunn), og hvordan varsle teamet ditt via e-post, webhooks eller integrasjoner. Bruk denne listen for å opprette, aktivere og administrere disse reglene.",
"alertingHealthChecksBannerTitle": "Overvåk helse & ressurser",
"alertingHealthChecksBannerDescription": "Helsekontroller er HTTP- eller TCP-monitorer du definerer én gang. Du kan deretter bruke dem som kilder i varslingsregler slik at du blir varslet når et mål blir sunt eller usunt. Helsekontroller på ressurser vises også her.",
"standaloneHcTableTitle": "Helsekontroller",
"standaloneHcSearchPlaceholder": "Søk i helsekontroller…",
"standaloneHcAddButton": "Opprett helsekontroll",
"standaloneHcCreateTitle": "Opprett helsekontroll",
"standaloneHcEditTitle": "Rediger helsekontroll",
"standaloneHcDescription": "Konfigurer en HTTP- eller TCP-helsekontroll for bruk i varslingsregler.",
"standaloneHcNameLabel": "Navn",
"standaloneHcNamePlaceholder": "Min HTTP-monitor",
"standaloneHcDeleteTitle": "Slett helsekontroll",
"standaloneHcDeleteQuestion": "Vennligst bekreft at du vil slette denne helsekontrollen.",
"standaloneHcDeleted": "Helsekontroll slettet",
"standaloneHcSaved": "Helsekontroll lagret",
"standaloneHcColumnHealth": "Helse",
"standaloneHcColumnMode": "Modus",
"standaloneHcColumnTarget": "Mål",
"standaloneHcHealthStateHealthy": "Sunn",
"standaloneHcHealthStateUnhealthy": "Usunn",
"standaloneHcHealthStateUnknown": "Ukjent",
"standaloneHcFilterAnySite": "Alle områder",
"standaloneHcFilterAnyResource": "Alle ressurser",
"standaloneHcFilterMode": "Modus",
"standaloneHcFilterModeHttp": "HTTP",
"standaloneHcFilterModeTcp": "TCP",
"standaloneHcFilterModeSnmp": "SNMP",
"standaloneHcFilterModePing": "Ping",
"standaloneHcFilterHealth": "Helse",
"standaloneHcFilterEnabled": "Aktivert",
"standaloneHcFilterEnabledOn": "Aktivert",
"standaloneHcFilterEnabledOff": "Deaktivert",
"standaloneHcFilterSiteIdFallback": "Område {id}",
"standaloneHcFilterResourceIdFallback": "Ressurs {id}",
"blueprints": "Tegninger",
"blueprintsDescription": "Bruk deklarative konfigurasjoner og vis tidligere kjøringer",
"blueprintsLog": "Blåkopieringslogg",
"blueprintsDescription": "Vis tidligere applikasjoner av blåkopier og deres resultater",
"blueprintAdd": "Legg til blåkopi",
"blueprintGoBack": "Se alle blåkopier",
"blueprintCreate": "Opprette mal",
@@ -1364,7 +1665,17 @@
"contents": "Innhold",
"parsedContents": "Parastinnhold (kun lese)",
"enableDockerSocket": "Aktiver Docker blåkopi",
"enableDockerSocketDescription": "Aktiver skraping av Docker Socket for blueprint Etiketter. Socket bane må brukes for nye.",
"enableDockerSocketDescription": "Aktiver Docker Socket etikett skrubbing for blueprint etiketter. Socket bane må oppgis til nettstedkobleren. Les om hvordan dette fungerer i <docsLink>dokumentasjonen</docsLink>.",
"newtAutoUpdate": "Aktiver Automatisk Oppdatering av Nettsted",
"newtAutoUpdateDescription": "Når aktivert, vil nettstedskoblere automatisk oppdatere til nyeste versjon når en ny utgave er tilgjengelig.",
"siteAutoUpdate": "Automatisk Oppdatering av Nettsted",
"siteAutoUpdateLabel": "Aktiver Automatisk Oppdatering",
"siteAutoUpdateDescription": "Kontroller om denne sidens kobler automatisk laster ned den nyeste versjonen.",
"siteAutoUpdateOrgDefault": "Organisasjon standard: {state}",
"siteAutoUpdateOverriding": "Overstyrer organisasjonens innstilling",
"siteAutoUpdateResetToOrg": "Tilbakestill til Organisasjonsstandard",
"siteAutoUpdateEnabled": "aktivert",
"siteAutoUpdateDisabled": "deaktivert",
"viewDockerContainers": "Vis Docker-containere",
"containersIn": "Containere i {siteName}",
"selectContainerDescription": "Velg en hvilken som helst container for å bruke som vertsnavn for dette målet. Klikk på en port for å bruke en port.",
@@ -1406,8 +1717,10 @@
"initialSetupDescription": "Opprett den første serveradministratorkontoen. Det kan bare finnes én serveradministrator. Du kan alltid endre denne påloggingsinformasjonen senere.",
"createAdminAccount": "Opprett administratorkonto",
"setupErrorCreateAdmin": "En feil oppstod under opprettelsen av serveradministratorkontoen.",
"certificateStatus": "Sertifikatstatus",
"certificateStatus": "Sertifikat",
"certificateStatusAutoRefreshHint": "Status oppdateres automatisk.",
"loading": "Laster inn",
"loadingEllipsis": "Laster inn...",
"loadingAnalytics": "Laster inn analyser",
"restart": "Start på nytt",
"domains": "Domener",
@@ -1475,6 +1788,7 @@
"pangolinUpdateAvailableReleaseNotes": "Se utgivelsesnotater",
"newtUpdateAvailable": "Oppdatering tilgjengelig",
"newtUpdateAvailableInfo": "En ny versjon av Newt er tilgjengelig. Vennligst oppdater til den nyeste versjonen for den beste opplevelsen.",
"pangolinNodeUpdateAvailableInfo": "En ny versjon av Pangolin Node er tilgjengelig. Vennligst oppdater til den nyeste versjonen for den beste opplevelsen.",
"domainPickerEnterDomain": "Domene",
"domainPickerPlaceholder": "minapp.eksempel.no",
"domainPickerDescription": "Skriv inn hele domenet til ressursen for å se tilgjengelige alternativer.",
@@ -1633,6 +1947,7 @@
"billingManageLicenseSubscription": "Administrer abonnementet for betalte lisensnøkler selv hostet",
"billingCurrentKeys": "Nåværende nøkler",
"billingModifyCurrentPlan": "Endre gjeldende plan",
"billingManageLicenseSubscriptionDescription": "Administrer ditt abonnement for betalte egenvertslisensnøkler og last ned fakturaer.",
"billingConfirmUpgrade": "Bekreft oppgradering",
"billingConfirmDowngrade": "Bekreft nedgradering",
"billingConfirmUpgradeDescription": "Du er i ferd med å oppgradere abonnementet ditt. Gå gjennom de nye grensene og pris nedenfor.",
@@ -1714,6 +2029,7 @@
"configureHealthCheck": "Konfigurer Helsekontroll",
"configureHealthCheckDescription": "Sett opp helsekontroll for {target}",
"enableHealthChecks": "Aktiver Helsekontroller",
"healthCheckDisabledStateDescription": "Når deaktivert, vil ikke nettstedet utføre helsekontroller, og tilstanden vil anses som ukjent.",
"enableHealthChecksDescription": "Overvåk helsen til dette målet. Du kan overvåke et annet endepunkt enn målet hvis nødvendig.",
"healthScheme": "Metode",
"healthSelectScheme": "Velg metode",
@@ -1729,7 +2045,36 @@
"timeIsInSeconds": "Tid er i sekunder",
"requireDeviceApproval": "Krev enhetsgodkjenning",
"requireDeviceApprovalDescription": "Brukere med denne rollen trenger nye enheter godkjent av en admin før de kan koble seg og få tilgang til ressurser.",
"sshAccess": "SSH tilgang",
"sshSettings": "SSH Innstillinger",
"rdpSettings": "RDP Innstillinger",
"vncSettings": "VNC Innstillinger",
"sshServer": "SSH-server",
"rdpServer": "RDP-server",
"vncServer": "VNC-server",
"sshServerDescription": "Sett opp autentiseringsmetoden, daemonplasseringen, og serverens destinasjon",
"rdpServerDescription": "Konfigurer destinasjonen og porten til RDP-serveren",
"vncServerDescription": "Konfigurer destinasjonen og porten til VNC-serveren",
"sshServerMode": "Modus",
"sshServerModeStandard": "Standard SSH-server",
"sshServerModePangolin": "Pangolin SSH",
"sshServerModeStandardDescription": "Ruter kommandoer over nettverk til en SSH-server som OpenSSH.",
"sshServerModeNative": "Innfødt SSH Server",
"sshServerModeNativeDescription": "Utfører kommandoer direkte på verten via Nettsted-kobleren. Ingen nettverkskonfigurasjon kreves.",
"sshAuthenticationMethod": "Autentiseringsmetode",
"sshAuthMethodManual": "Manuell Autentisering",
"sshAuthMethodManualDescription": "Krever eksisterende vertlegitimasjon. Omgår automatisk klargjøring.",
"sshAuthMethodAutomated": "Automatisk Klargjøring",
"sshAuthMethodAutomatedDescription": "Oppretter automatisk brukere, grupper og sudo-tillatelser på verten.",
"sshAuthDaemonLocation": "Autentisering Daemon-plassering",
"sshDaemonLocationSiteDescription": "Utføres lokalt på maskinen som er vert for nettstedkobleren.",
"sshDaemonLocationRemote": "På Ekstern Vert",
"sshDaemonLocationRemoteDescription": "Utføres på en separat målenhet på samme nettverk.",
"sshDaemonDisclaimer": "Sørg for at målenheten din er riktig konfigurert for å kjøre autentiseringsdaemon før du fullfører denne oppsettet, eller klargjøring vil mislykkes.",
"sshDaemonPort": "Daemon-port",
"sshServerDestination": "Serverens Destinasjon",
"sshServerDestinationDescription": "Konfigurer destinasjonen og porten til SSH-serveren",
"destination": "Destinasjon",
"bgTargetMultiSiteDisclaimer": "Ved å velge flere nettsteder aktiveres robust ruting og feilaktig avbrudd for høy tilgjengelighet.",
"roleAllowSsh": "Tillat SSH",
"roleAllowSshAllow": "Tillat",
"roleAllowSshDisallow": "Forby",
@@ -1743,7 +2088,7 @@
"sshSudoModeCommandsDescription": "Brukeren kan bare kjøre de angitte kommandoene med sudo.",
"sshSudo": "Tillat sudo",
"sshSudoCommands": "Sudo kommandoer",
"sshSudoCommandsDescription": "Kommaseparert liste med kommandoer brukeren kan kjøre med sudo.",
"sshSudoCommandsDescription": "Kommaseparert liste over kommandoer brukeren tillates å kjøre med sudo. Absolutte stier må brukes.",
"sshCreateHomeDir": "Opprett hjemmappe",
"sshUnixGroups": "Unix grupper",
"sshUnixGroupsDescription": "Kommaseparerte Unix grupper for å legge brukeren til på mål-verten.",
@@ -1763,9 +2108,20 @@
"healthCheckIntervalMin": "Sjekkeintervallet må være minst 5 sekunder",
"healthCheckTimeoutMin": "Timeout må være minst 1 sekund",
"healthCheckRetryMin": "Forsøk på nytt må være minst 1",
"healthCheckMode": "Sjekk modus",
"healthCheckStrategy": "Strategi",
"healthCheckModeDescription": "TCP-modus verifiserer kun tilkobling. HTTP-modus validerer HTTP-responsen.",
"healthyThreshold": "Sunnhets terskel",
"healthyThresholdDescription": "Suksesser på rad som kreves før man markerer som sunn.",
"unhealthyThreshold": "Usunn terskel",
"unhealthyThresholdDescription": "Feil på rad som kreves før man markerer som usunn.",
"healthCheckHealthyThresholdMin": "Sunnhet terskel må være minst 1",
"healthCheckUnhealthyThresholdMin": "Usunn terskel må være minst 1",
"httpMethod": "HTTP-metode",
"selectHttpMethod": "Velg HTTP-metode",
"domainPickerSubdomainLabel": "Underdomene",
"domainPickerWildcard": "Jokertegn",
"domainPickerWildcardPaidOnly": "Jokertegnsubdomener er en betalt funksjon. Vennligst oppgrader for å få tilgang til denne funksjonen.",
"domainPickerBaseDomainLabel": "Grunndomene",
"domainPickerSearchDomains": "Søk i domener...",
"domainPickerNoDomainsFound": "Ingen domener funnet",
@@ -1791,12 +2147,12 @@
"resourcesTableAliasAddressInfo": "Denne adressen er en del av organisasjonens undernettverk. Den brukes til å løse aliasposter ved hjelp av intern DNS-oppløsning.",
"resourcesTableClients": "Klienter",
"resourcesTableAndOnlyAccessibleInternally": "og er kun tilgjengelig internt når de er koblet til med en klient.",
"resourcesTableNoTargets": "Ingen mål",
"resourcesTableHealthy": "Frisk",
"resourcesTableDegraded": "Nedgradert",
"resourcesTableOffline": "Frakoblet",
"resourcesTableUnhealthy": "Usunn",
"resourcesTableUnknown": "Ukjent",
"resourcesTableNotMonitored": "Ikke overvåket",
"resourcesTableNoTargets": "Ingen mål",
"editInternalResourceDialogEditClientResource": "Rediger Private Ressurser",
"editInternalResourceDialogUpdateResourceProperties": "Oppdater ressurskonfigurasjonen og få tilgangskontroller for {resourceName}",
"editInternalResourceDialogResourceProperties": "Ressursegenskaper",
@@ -1822,6 +2178,12 @@
"editInternalResourceDialogModePort": "Port",
"editInternalResourceDialogModeHost": "Vert",
"editInternalResourceDialogModeCidr": "CIDR",
"editInternalResourceDialogModeHttp": "HTTP",
"editInternalResourceDialogModeHttps": "HTTPS",
"editInternalResourceDialogModeSsh": "SSH",
"editInternalResourceDialogScheme": "Skjema",
"editInternalResourceDialogEnableSsl": "Aktiver TLS",
"editInternalResourceDialogEnableSslDescription": "Aktiver SSL/TLS-kryptering for sikre HTTPS-tilkoblinger til destinasjonen.",
"editInternalResourceDialogDestination": "Destinasjon",
"editInternalResourceDialogDestinationHostDescription": "IP-adressen eller vertsnavnet til ressursen på nettstedets nettverk.",
"editInternalResourceDialogDestinationIPDescription": "IP eller vertsnavn til ressursen på nettstedets nettverk.",
@@ -1837,6 +2199,7 @@
"createInternalResourceDialogName": "Navn",
"createInternalResourceDialogSite": "Område",
"selectSite": "Velg område...",
"multiSitesSelectorSitesCount": "{count, plural, one {# sted} other {# steder}}",
"noSitesFound": "Ingen områder funnet.",
"createInternalResourceDialogProtocol": "Protokoll",
"createInternalResourceDialogTcp": "TCP",
@@ -1865,11 +2228,20 @@
"createInternalResourceDialogModePort": "Port",
"createInternalResourceDialogModeHost": "Vert",
"createInternalResourceDialogModeCidr": "CIDR",
"createInternalResourceDialogModeHttp": "HTTP",
"createInternalResourceDialogModeHttps": "HTTPS",
"createInternalResourceDialogModeSsh": "SSH",
"scheme": "Skjema",
"createInternalResourceDialogScheme": "Skjema",
"createInternalResourceDialogEnableSsl": "Aktiver TLS",
"createInternalResourceDialogEnableSslDescription": "Aktiver SSL/TLS-kryptering for sikre HTTPS-tilkoblinger til destinasjonen.",
"createInternalResourceDialogDestination": "Destinasjon",
"createInternalResourceDialogDestinationHostDescription": "IP-adressen eller vertsnavnet til ressursen på nettstedets nettverk.",
"createInternalResourceDialogDestinationCidrDescription": "CIDR-rekkevidden til ressursen på nettstedets nettverk.",
"createInternalResourceDialogAlias": "Alias",
"createInternalResourceDialogAliasDescription": "Et valgfritt internt DNS-alias for denne ressursen.",
"internalResourceDownstreamSchemeRequired": "Skjema er påkrevd for HTTP-ressurser",
"internalResourceHttpPortRequired": "Destinasjonsport er nødvendig for HTTP-ressurser",
"siteConfiguration": "Konfigurasjon",
"siteAcceptClientConnections": "Godta klientforbindelser",
"siteAcceptClientConnectionsDescription": "Tillat brukere og klienter å få tilgang til ressurser på denne siden. Dette kan endres senere.",
@@ -1994,7 +2366,7 @@
"description": "Sikre og lavvedlikeholdsservere, selvbetjente Pangolin med ekstra klokker, og understell",
"introTitle": "Administrert Self-Hosted Pangolin",
"introDescription": "er et alternativ for bruk utviklet for personer som ønsker enkel og ekstra pålitelighet mens de fortsatt holder sine data privat og selvdrevne.",
"introDetail": "Med dette valget kjører du fortsatt din egen Pangolin-node - tunneler, SSL-terminering og trafikken ligger på serveren din. Forskjellen er at behandling og overvåking håndteres gjennom vårt skydashbord, som låser opp en rekke fordeler:",
"introDetail": "Med dette valget kjører du fortsatt din egen Pangolin-node - tunneler, TLS-terminering, og trafikken ligger på serveren din. Forskjellen er at behandling og overvåking håndteres gjennom vårt sky-dashbord, som låser opp en rekke fordeler:",
"benefitSimplerOperations": {
"title": "Enklere operasjoner",
"description": "Ingen grunn til å kjøre din egen e-postserver eller sette opp kompleks varsling. Du vil få helsesjekk og nedetid varsler ut av boksen."
@@ -2123,7 +2495,7 @@
"domainPickerVerified": "Bekreftet",
"domainPickerUnverified": "Uverifisert",
"domainPickerManual": "Manuell",
"domainPickerInvalidSubdomainStructure": "Dette underdomenet inneholder ugyldige tegn eller struktur. Det vil automatisk bli utsatt når du lagrer.",
"domainPickerInvalidSubdomainStructure": "Ugyldige tegn vil bli sanitert når de er lagret.",
"domainPickerError": "Feil",
"domainPickerErrorLoadDomains": "Kan ikke laste organisasjonens domener",
"domainPickerErrorCheckAvailability": "Kunne ikke kontrollere domenetilgjengelighet",
@@ -2136,7 +2508,7 @@
"orgAuthChooseIdpDescription": "Velg din identitet leverandør for å fortsette",
"orgAuthNoIdpConfigured": "Denne organisasjonen har ikke noen identitetstjeneste konfigurert. Du kan i stedet logge inn med Pangolin identiteten din.",
"orgAuthSignInWithPangolin": "Logg inn med Pangolin",
"orgAuthSignInToOrg": "Logg inn på en organisasjon",
"orgAuthSignInToOrg": "Organisasjonens identitetsleverandør (SSO)",
"orgAuthSelectOrgTitle": "Organisasjonsinnlogging",
"orgAuthSelectOrgDescription": "Skriv inn organisasjons-ID-en din for å fortsette",
"orgAuthOrgIdPlaceholder": "din-organisasjon",
@@ -2416,7 +2788,7 @@
"action": "Handling",
"actor": "Aktør",
"timestamp": "Tidsstempel",
"accessLogs": "Authentication Logs",
"accessLogs": "Tilgangslogger (Automatic Translation)",
"exportCsv": "Eksportere CSV",
"exportError": "Ukjent feil ved eksport av CSV",
"exportCsvTooltip": "Innenfor tidsramme",
@@ -2429,6 +2801,9 @@
"validPassword": "Gyldig passord",
"validEmail": "Valid email",
"validSSO": "Valid SSO",
"view": "Vis",
"configManaged": "Konfigurasjon administrert",
"connectedClient": "Tilkoblet klient",
"resourceBlocked": "Ressurs blokkert",
"droppedByRule": "Legg i regelen",
"noSessions": "Ingen økter",
@@ -2436,25 +2811,25 @@
"noMoreAuthMethods": "No Valid Auth",
"ip": "IP",
"reason": "Grunn",
"requestLogs": "HTTPS Request Logs",
"requestLogs": "HTTP-forespørselslogger",
"requestAnalytics": "Be om analyser",
"host": "Vert",
"location": "Sted",
"actionLogs": "Admin Action Logs",
"sidebarLogsRequest": "HTTPS Request Logs",
"sidebarLogsAccess": "Authentication Logs",
"sidebarLogsAction": "Admin Action Logs",
"actionLogs": "Handlingslogger",
"sidebarLogsRequest": "HTTP-forespørselslogger",
"sidebarLogsAccess": "Tilgangslogger (Automatic Translation)",
"sidebarLogsAction": "Handlingslogger",
"logRetention": "Logg tilbaketrekning",
"logRetentionDescription": "Håndter hvor lenge ulike typer logger beholdes for denne organisasjonen, eller deaktiver dem",
"requestLogsDescription": "View detailed request logs for HTTPS resources in this organization",
"requestLogsDescription": "Se detaljerte forespørselslogger for ressurser i denne organisasjonen",
"requestAnalyticsDescription": "Se detaljert rekvisisjonsanalyse for ressurser i denne organisasjonen",
"logRetentionRequestLabel": "HTTPS Request Log Retention",
"logRetentionRequestLabel": "Be om loggbevaring",
"logRetentionRequestDescription": "Hvor lenge du vil beholde forespørselslogger",
"logRetentionAccessLabel": "Authentication Log Retention",
"logRetentionAccessLabel": "Få tilgang til loggoverføring",
"logRetentionAccessDescription": "Hvor lenge du vil beholde adgangslogger",
"logRetentionActionLabel": "Admin Action Log Retention",
"logRetentionActionLabel": "Handlings logg nytt",
"logRetentionActionDescription": "Hvor lenge handlingen skal lagres",
"logRetentionConnectionLabel": "Network Log Retention",
"logRetentionConnectionLabel": "Logg nyhet",
"logRetentionConnectionDescription": "Hvor lenge du vil beholde tilkoblingslogger",
"logRetentionDisabled": "Deaktivert",
"logRetention3Days": "3 dager",
@@ -2466,10 +2841,10 @@
"logRetentionEndOfFollowingYear": "Slutt på neste år",
"actionLogsDescription": "Vis historikk for handlinger som er utført i denne organisasjonen",
"accessLogsDescription": "Vis autoriseringsforespørsler for ressurser i denne organisasjonen",
"connectionLogs": "Network Logs",
"connectionLogsDescription": "View network session logs handled by sites in this organization",
"sidebarLogsConnection": "Network Logs",
"sidebarLogsStreaming": "Event Streaming",
"connectionLogs": "Loggfiler for tilkobling",
"connectionLogsDescription": "Vis tilkoblingslogger for tunneler i denne organisasjonen",
"sidebarLogsConnection": "Loggfiler for tilkobling",
"sidebarLogsStreaming": "Strømming",
"sourceAddress": "Kilde adresse",
"destinationAddress": "Måladresse (Automatic Translation)",
"duration": "Varighet",
@@ -2667,7 +3042,13 @@
"editInternalResourceDialogAddClients": "Legg til klienter",
"editInternalResourceDialogDestinationLabel": "Destinasjon",
"editInternalResourceDialogDestinationDescription": "Spesifiser destinasjonsadressen for den interne ressursen. Dette kan være et vertsnavn, IP-adresse eller CIDR-sjikt avhengig av valgt modus. Valgfrie oppsett av intern DNS-alias for enklere identifikasjon.",
"internalResourceFormMultiSiteRoutingHelp": "Valg av flere nettsteder muliggjør motstandskraftig ruting og failover for høy tilgjengelighet.",
"internalResourceFormMultiSiteRoutingHelpLearnMore": "Lær mer",
"editInternalResourceDialogPortRestrictionsDescription": "Begrens tilgang til spesifikke TCP/UDP-porter eller tillate/blokkere alle porter.",
"createInternalResourceDialogHttpConfiguration": "HTTP-konfigurasjon",
"createInternalResourceDialogHttpConfigurationDescription": "Velg domenet klienter vil bruke for å nå denne ressursen via HTTP eller HTTPS.",
"editInternalResourceDialogHttpConfiguration": "HTTP-konfigurasjon",
"editInternalResourceDialogHttpConfigurationDescription": "Velg domenet klienter vil bruke for å nå denne ressursen via HTTP eller HTTPS.",
"editInternalResourceDialogTcp": "TCP",
"editInternalResourceDialogUdp": "UDP",
"editInternalResourceDialogIcmp": "ICMP",
@@ -2689,7 +3070,7 @@
"learnMore": "Lær mer",
"backToHome": "Gå tilbake til start",
"needToSignInToOrg": "Trenger du å bruke organisasjonens identitetsleverandør?",
"maintenanceMode": "Vedlikeholdsmodus",
"maintenanceMode": "Vedlikeholdsside",
"maintenanceModeDescription": "Vis en vedlikeholdsside til besøkende",
"maintenanceModeType": "Vedlikeholdsmodus type",
"showMaintenancePage": "Vis en vedlikeholdsside til besøkende",
@@ -2706,6 +3087,9 @@
"maintenancePageMessagePlaceholder": "Vi kommer snart tilbake! Vårt nettsted gjennomgår for øyeblikket planlagt vedlikehold.",
"maintenancePageMessageDescription": "Detaljert beskjed som forklarer vedlikeholdet",
"maintenancePageTimeTitle": "Estimert ferdigstillelsestid (Valgfritt)",
"privateMaintenanceScreenTitle": "Privat plassholder skjerm",
"privateMaintenanceScreenMessage": "Dette domenet brukes på en privatressurs. Koble til ved å bruke Pangolin-klienten for å få tilgang til denne ressursen.",
"privateMaintenanceScreenSteps": "Når du er koblet til, hvis du fortsatt ser denne meldingen, peker kanskje DNS-cachen til nettleseren din fortsatt til den gamle adressen. For å rette på dette: lukk og åpne denne fanen eller nettleseren på nytt, og naviger deretter tilbake til denne siden.",
"maintenanceTime": "f.eks. 2 timer, 1. november kl. 17:00",
"maintenanceEstimatedTimeDescription": "Når du forventer at vedlikeholdet er ferdigstilt",
"editDomain": "Rediger domene",
@@ -2716,6 +3100,7 @@
"maintenanceScreenEstimatedCompletion": "Estimert ferdigstillelse:",
"createInternalResourceDialogDestinationRequired": "Destinasjonen er nødvendig",
"available": "Tilgjengelig",
"disabledResourceDescription": "Når deaktivert, vil ressursen være utilgjengelig for alle.",
"archived": "Arkivert",
"noArchivedDevices": "Ingen arkiverte enheter funnet",
"deviceArchived": "Enhet arkivert",
@@ -2829,7 +3214,7 @@
"streamingDatadogTitle": "Datadog",
"streamingDatadogDescription": "Videresend arrangementer direkte til din Datadog-konto. Kommer snart.",
"streamingTypePickerDescription": "Velg en måltype for å komme i gang.",
"streamingFailedToLoad": "Kan ikke laste inn destinasjoner",
"streamingLastSyncError": "Det oppstod en feil under siste synkronisering",
"streamingUnexpectedError": "En uventet feil oppstod.",
"streamingFailedToUpdate": "Kunne ikke oppdatere destinasjon",
"streamingDeletedSuccess": "Målet ble slettet",
@@ -2843,6 +3228,41 @@
"httpDestAddTitle": "Legg til HTTP-destinasjon",
"httpDestEditDescription": "Oppdater konfigurasjonen for denne HTTP-hendelsesstrømmedestinasjonen.",
"httpDestAddDescription": "Konfigurer et nytt HTTP endepunkt for å motta organisasjonens hendelser.",
"S3DestEditTitle": "Rediger destinasjon",
"S3DestAddTitle": "Legg til S3 destinasjon",
"S3DestEditDescription": "Oppdatere konfigurasjonen for denne S3-hendelsesstrømmingsdestinasjonen.",
"S3DestAddDescription": "Konfigurer en ny Amazon S3 (eller S3-kompatibel) bucket for å motta din organisasjons hendelser.",
"s3DestTabSettings": "Innstillinger",
"s3DestTabFormat": "Format",
"s3DestNameLabel": "Navn",
"s3DestNamePlaceholder": "Min S3-destinasjon",
"s3DestAccessKeyIdLabel": "AWS tilgangsnøkkel-ID",
"s3DestSecretAccessKeyLabel": "AWS hemmelige tilgangsnøkkel",
"s3DestSecretAccessKeyPlaceholder": "Din AWS secret access key",
"s3DestRegionLabel": "AWS-region",
"s3DestBucketLabel": "Bucket-navn",
"s3DestPrefixLabel": "Nøkkelprefiks (valgfritt)",
"s3DestPrefixDescription": "Valgfritt bane-prefiks lagt til hver objektnøkkel. Objekter er lagret på {prefix}/{logType}/{YYYY}/{MM}/{DD}/{filename}.",
"s3DestEndpointLabel": "Egendefinert endepunkt (valgfritt)",
"s3DestEndpointDescription": "Overstyr S3-endepunktet for S3-kompatibel lagring som MinIO eller Cloudflare R2. La stå tomt for standard AWS S3.",
"s3DestGzipLabel": "Gzip-komprimering",
"s3DestGzipDescription": "Komprimer hvert opplastede objekt med gzip. Reduserer lagringskostnader og opplastingsstørrelse.",
"s3DestFormatTitle": "Filformat",
"s3DestFormatDescription": "Hvordan hendelser er serialisert inni hvert opplastede objekt.",
"s3DestFormatJsonArrayDescription": "Hvert objekt er et JSON-array av hendelsesposter. Kompatibel med de fleste analyseverktøy.",
"s3DestFormatNdjsonDescription": "Hvert objekt inneholder en JSON-post per linje (nylinje-delt JSON). Kompatibel med Athena, BigQuery, og Spark.",
"s3DestFormatCsvTitle": "CSV",
"s3DestFormatCsvDescription": "Hvert objekt er en RFC-4180 CSV-fil med en overskriftsrad. Kolonnenavn er avledet fra hendelsesdatafeltene.",
"s3DestSaveChanges": "Lagre endringer",
"s3DestCreateDestination": "Opprett destinasjon",
"s3DestUpdatedSuccess": "Destinasjon oppdatert vellykket",
"s3DestCreatedSuccess": "Destinasjon opprettet vellykket",
"s3DestUpdateFailed": "Kunne ikke oppdatere destinasjon",
"s3DestCreateFailed": "Kunne ikke opprette destinasjon",
"datadogDestEditTitle": "Rediger destinasjon",
"datadogDestAddTitle": "Legg til Datadog destinasjon",
"datadogDestEditDescription": "Oppdatere konfigurasjonen for denne Datadog-hendelsesstrømmingsdestinasjonen.",
"datadogDestAddDescription": "Konfigurer et nytt Datadog-endepunkt for å motta organisasjonens hendelser.",
"httpDestTabSettings": "Innstillinger",
"httpDestTabHeaders": "Overskrifter",
"httpDestTabBody": "Innhold",
@@ -2882,18 +3302,18 @@
"httpDestFormatJsonArrayTitle": "JSON liste",
"httpDestFormatJsonArrayDescription": "Én forespørsel per batch, innholdet er en JSON-liste. Kompatibel med de mest generiske webhooks og Datadog.",
"httpDestFormatNdjsonTitle": "NDJSON",
"httpDestFormatNdjsonDescription": "Én forespørsel per sats, innholdet er nytt avgrenset JSON et objekt per linje, ingen ytterarray. Kreves av Splunk HEC, Elastisk/OpenSearch, og Grafana Loki.",
"httpDestFormatNdjsonDescription": "Én forespørsel per sats, innholdet er nytt avgrenset JSON - et objekt per linje, ingen ytterarray. Kreves av Splunk HEC, Elastisk/OpenSearch, og Grafana Loki.",
"httpDestFormatSingleTitle": "En hendelse per forespørsel",
"httpDestFormatSingleDescription": "Sender en separat HTTP POST for hver enkelt hendelse. Bruk bare for endepunkter som ikke kan håndtere batcher.",
"httpDestLogTypesTitle": "Logg typer",
"httpDestLogTypesDescription": "Velg hvilke loggtyper som blir videresendt til dette målet. Bare aktiverte loggtyper vil bli strømmet.",
"httpDestAccessLogsTitle": "Authentication Logs",
"httpDestAccessLogsTitle": "Tilgangslogger (Automatic Translation)",
"httpDestAccessLogsDescription": "Adgangsforsøk for ressurser, inkludert godkjente og nektet forespørsler.",
"httpDestActionLogsTitle": "Admin Action Logs",
"httpDestActionLogsTitle": "Handlingslogger",
"httpDestActionLogsDescription": "Administrative tiltak som utføres av brukere innenfor organisasjonen.",
"httpDestConnectionLogsTitle": "Network Logs",
"httpDestConnectionLogsTitle": "Loggfiler for tilkobling",
"httpDestConnectionLogsDescription": "Utstyrs- og tunneltilkoblingshendelser, inkludert forbindelser og frakobling.",
"httpDestRequestLogsTitle": "HTTPS Request Logs",
"httpDestRequestLogsTitle": "HTTP-forespørselslogger",
"httpDestRequestLogsDescription": "HTTP-forespørsel logger for bekreftede ressurser, inkludert metode, bane og responskode.",
"httpDestSaveChanges": "Lagre endringer",
"httpDestCreateDestination": "Opprett mål",
@@ -2901,6 +3321,18 @@
"httpDestCreatedSuccess": "Målet er opprettet",
"httpDestUpdateFailed": "Kunne ikke oppdatere destinasjon",
"httpDestCreateFailed": "Kan ikke opprette mål",
"followRedirects": "Følg videresendinger",
"followRedirectsDescription": "Følg automatisk HTTP-videresendinger for forespørsler.",
"alertingErrorWebhookUrl": "Vennligst skriv inn en gyldig URL for webhooken.",
"healthCheckStrategyHttp": "Validerer tilkobling og sjekker HTTP-responsstatus.",
"healthCheckStrategyTcp": "Bekrefter kun TCP-tilkobling, uten å inspisere responsen.",
"healthCheckStrategySnmp": "Utfører en SNMP get-forespørsel for å sjekke helsen til nettverksenheter og infrastruktur.",
"healthCheckStrategyIcmp": "Bruker ICMP ekko forespørsler (ping) for å sjekke om en ressurs er tilgjengelig og responsiv.",
"healthCheckTabStrategy": "Strategi",
"healthCheckTabConnection": "Tilkobling",
"healthCheckTabAdvanced": "Avansert",
"healthCheckStrategyNotAvailable": "Denne strategien er ikke tilgjengelig. Vennligst kontakt salgsavdelingen for å aktivere denne funksjonen.",
"uptime30d": "Oppetid (30d)",
"idpAddActionCreateNew": "Opprett ny identitetsleverandør",
"idpAddActionImportFromOrg": "Importer fra en annen organisasjon",
"idpImportDialogTitle": "Importer identitetsleverandør",
@@ -2918,5 +3350,107 @@
"idpUnassociatedDescription": "Identitetsleverandør er vellykket frakoblet fra denne organisasjonen",
"idpUnassociateMenu": "Frakoble",
"idpDeleteAllOrgsMenu": "Slett",
"publicIpEndpoint": "Endpoint"
"publicIpEndpoint": "Endepunkt",
"lastTriggeredAt": "Siste utløste",
"reject": "Avvis",
"uptimeDaysAgo": "{count} dager siden",
"uptimeToday": "I dag",
"uptimeNoDataAvailable": "Ingen data tilgjengelig",
"uptimeSuffix": "oppetid",
"uptimeDowntimeSuffix": "nedetid",
"uptimeTooltipUptimeLabel": "Oppetid",
"uptimeTooltipDowntimeLabel": "Nedetid",
"uptimeOngoing": "pågående",
"uptimeNoMonitoringData": "Ingen overvåkingsdata",
"uptimeNoData": "Ingen data",
"uptimeMiniBarDown": "Nede",
"uptimeSectionTitle": "Oppetid",
"uptimeSectionDescription": "Tilgjengelighet de siste {days} dagene",
"uptimeAddAlert": "Legg til varsling",
"uptimeViewAlerts": "Vis varsler",
"uptimeCreateEmailAlert": "Opprett e-postvarsel",
"uptimeAlertDescriptionSite": "Få beskjed på e-post når dette nettstedet går offline eller kommer tilbake online.",
"uptimeAlertDescriptionResource": "Få beskjed på e-post når denne ressursen går offline eller kommer tilbake online.",
"uptimeAlertNamePlaceholder": "Varslingsnavn",
"uptimeAdditionalEmails": "Flere e-poster",
"uptimeCreateAlert": "Opprett varsling",
"uptimeAlertNoRecipients": "Ingen mottakere",
"uptimeAlertNoRecipientsDescription": "Vennligst legg til minst én bruker, rolle, eller e-post for å varsle.",
"uptimeAlertCreated": "Varsel opprettet",
"uptimeAlertCreatedDescription": "Du vil bli varslet når dette endrer status.",
"uptimeAlertCreateFailed": "Kunne ikke opprette varsel",
"webhookUrlLabel": "URL",
"webhookHeaderKeyPlaceholder": "Nøkkel",
"webhookHeaderValuePlaceholder": "Verdi",
"alertLabel": "Varsel",
"domainPickerWildcardSubdomainNotAllowed": "Jokertegnsubdomener er ikke tillatt.",
"domainPickerWildcardCertWarning": "Jokertegnressurser kan kreve ekstra konfigurasjon for å fungere skikkelig.",
"domainPickerWildcardCertWarningLink": "Lær mer",
"health": "Helse",
"domainPendingErrorTitle": "Verifiseringsproblem",
"memberPortalTitle": "Ressurser",
"memberPortalDescription": "Ressurser du har tilgang til i denne organisasjonen",
"memberPortalSortBy": "Sorter etter...",
"memberPortalSortNameAsc": "Navn A-Å",
"memberPortalSortNameDesc": "Navn Å-A",
"memberPortalSortDomainAsc": "Domene A-Å",
"memberPortalSortDomainDesc": "Domene Å-A",
"memberPortalSortEnabledFirst": "Aktivert først",
"memberPortalSortDisabledFirst": "Deaktivert først",
"memberPortalRefresh": "Oppdater",
"memberPortalRefreshResources": "Oppdater ressurser",
"memberPortalFailedToLoad": "Kunne ikke laste inn ressurser",
"memberPortalFailedToLoadDescription": "Kunne ikke laste inn ressurser. Vennligst sjekk tilkoblingen din og prøv igjen.",
"memberPortalUnableToLoad": "Kan ikke laste inn ressurser",
"memberPortalTryAgain": "Prøv igjen",
"memberPortalNoResourcesFound": "Ingen ressurser funnet",
"memberPortalNoResourcesAvailable": "Ingen ressurser tilgjengelig",
"memberPortalNoResourcesMatchSearch": "Ingen ressurser samsvarer med \"{query}\". Prøv å justere søkeordene dine eller fjern søket for å se alle ressurser.",
"memberPortalNoResourcesAccess": "Du har ennå ikke tilgang til noen ressurser. Kontakt administratoren din for å få tilgang til de ressursene du trenger.",
"memberPortalClearSearch": "Fjern søk",
"memberPortalPublicResources": "Offentlige ressurser",
"memberPortalPublicResourcesDescription": "Webapplikasjoner og -tjenester tilgjengelige via nettleser",
"memberPortalCopiedToClipboard": "Kopiert til utklippstavlen",
"memberPortalCopiedUrlDescription": "Ressurs-URL er kopiert til utklippstavlen din.",
"memberPortalOpenResource": "Åpne ressurs",
"memberPortalPrivateResources": "Private ressurser",
"memberPortalPrivateResourcesDescription": "Interne nettverksressurser tilgjengelige via klient",
"memberPortalResourceDetails": "Ressursdetaljer",
"memberPortalMode": "Modus",
"memberPortalDestination": "Destinasjon",
"memberPortalAlias": "Navn",
"memberPortalCopiedAliasDescription": "Ressursalias er kopiert til utklippstavlen din.",
"memberPortalCopiedDestinationDescription": "Ressursdestinasjon er kopiert til utklippstavlen din.",
"memberPortalRequiresClientConnection": "Krever klienttilkobling",
"memberPortalAuthMethods": "Autentiseringsmetoder",
"memberPortalSso": "Enkeltpålogging (SSO)",
"memberPortalPasswordProtected": "Passordbeskyttet",
"memberPortalPinCode": "PIN-kode",
"memberPortalEmailWhitelist": "E-post-hviteliste",
"memberPortalResourceDisabled": "Ressurs deaktivert",
"memberPortalShowingResources": "Viser {start}-{end} av {total} ressurser",
"memberPortalPrevious": "Forrige",
"memberPortalNext": "Neste",
"httpSettings": "HTTP Innstillinger",
"tcpSettings": "TCP Innstillinger",
"udpSettings": "UDP Innstillinger",
"sshTitle": "SSH",
"sshConnectingDescription": "Opprette en sikker tilkobling…",
"sshConnecting": "Kobler til…",
"sshInitializing": "Initialiserer…",
"sshSignInTitle": "Logg inn på SSH",
"sshSignInDescription": "Oppgi dine SSH-legitimasjoner",
"sshPasswordTab": "Passord",
"sshPrivateKeyTab": "Privat Nøkkel",
"sshPrivateKeyField": "Privat Nøkkel",
"sshPrivateKeyDisclaimer": "Din private nøkkel er ikke lagret eller synlig for Pangolin. Alternativt kan du bruke kortevaliderte sertifikater for sømløs autentisering ved å bruke din eksisterende Pangolin-identitet.",
"sshLearnMore": "Lær mer",
"sshPrivateKeyFile": "Privat Nøkkelfil",
"sshAuthenticate": "Autentiser",
"sshTerminate": "Avslutt",
"sshPoweredBy": "Drevet av",
"sshErrorNoTarget": "Ingen mål spesifisert",
"sshErrorWebSocket": "WebSocket-tilkobling mislyktes",
"sshErrorAuthFailed": "Autentisering mislyktes",
"sshErrorConnectionClosed": "Tilkobling avsluttet før autentisering ble fullført"
}
+573 -39
View File
@@ -1,4 +1,8 @@
{
"contactSalesEnable": "Neem contact op met de verkoopafdeling om deze functie in te schakelen.",
"contactSalesBookDemo": "Boek een demo",
"contactSalesOr": "of",
"contactSalesContactUs": "neem contact met ons op",
"setupCreate": "Maak de organisatie, site en bronnen aan",
"headerAuthCompatibilityInfo": "Schakel dit in om een 401 Niet Geautoriseerd antwoord af te dwingen wanneer een authenticatietoken ontbreekt. Dit is vereist voor browsers of specifieke HTTP-bibliotheken die geen referenties verzenden zonder een serveruitdaging.",
"headerAuthCompatibility": "Uitgebreide compatibiliteit",
@@ -19,6 +23,18 @@
"componentsInvalidKey": "Ongeldige of verlopen licentiesleutels gedetecteerd. Volg de licentievoorwaarden om alle functies te blijven gebruiken.",
"dismiss": "Uitschakelen",
"subscriptionViolationMessage": "U overschrijdt uw huidige abonnement. Corrigeer het probleem door sites, gebruikers of andere bronnen te verwijderen om binnen uw plan te blijven.",
"trialBannerMessage": "Uw proefversie verloopt over {countdown}. Upgrade om toegang te behouden.",
"trialBannerExpired": "Uw proefperiode is verlopen. Upgrade nu om toegang te herstellen.",
"billingTrialBannerTitle": "Proefperiode Actief",
"billingTrialBannerDescription": "Je bent momenteel bezig met een gratis proefperiode op het zakelijke niveau. Wanneer de proefperiode eindigt, wordt je account automatisch teruggezet naar de functies en limieten van het Basic-niveau. Upgrade op elk moment om toegang te houden tot de functies van je huidige plan.",
"billingTrialBannerUpgrade": "Nu Upgraden",
"billingTrialBadge": "Gratis Proefversie",
"trialActive": "Gratis proefversie actief",
"trialExpired": "Proefversie verlopen",
"trialHasEnded": "Uw proefperiode is geëindigd.",
"trialDaysRemaining": "{count, plural, one {# dag resterend} other {# dagen resterend}}",
"trialDaysLeftShort": "{days}d over in proefversie",
"trialGoToBilling": "Ga naar factureringspagina",
"subscriptionViolationViewBilling": "Facturering bekijken",
"componentsLicenseViolation": "Licentie overtreding: Deze server gebruikt {usedSites} sites die de gelicentieerde limiet van {maxSites} sites overschrijden. Volg de licentievoorwaarden om door te gaan met het gebruik van alle functies.",
"componentsSupporterMessage": "Bedankt voor het ondersteunen van Pangolin als {tier}!",
@@ -81,6 +97,8 @@
"siteConfirmCopy": "Ik heb de configuratie gekopieerd",
"searchSitesProgress": "Sites zoeken...",
"siteAdd": "Site toevoegen",
"sitesTableViewPublicResources": "Openbare bronnen bekijken",
"sitesTableViewPrivateResources": "Privébronnen bekijken",
"siteInstallNewt": "Installeer Newt",
"siteInstallNewtDescription": "Laat Newt draaien op uw systeem",
"WgConfiguration": "WireGuard Configuratie",
@@ -98,6 +116,21 @@
"siteUpdatedDescription": "De site is bijgewerkt.",
"siteGeneralDescription": "Algemene instellingen voor deze site configureren",
"siteSettingDescription": "Configureer de instellingen van de site",
"siteResourcesTab": "Bronnen",
"siteResourcesNoneOnSite": "Deze site heeft nog geen openbare of privébronnen.",
"siteResourcesSectionPublic": "Openbare bronnen",
"siteResourcesSectionPrivate": "Privébronnen",
"siteResourcesSectionPublicDescription": "Bronnen extern blootgesteld via domeinen of poorten.",
"siteResourcesSectionPrivateDescription": "Bronnen beschikbaar op uw privénetwerk via de site.",
"siteResourcesViewAllPublic": "Bekijk alle bronnen",
"siteResourcesViewAllPrivate": "Bekijk alle bronnen",
"siteResourcesDialogDescription": "Overzicht van openbare en privébronnen die geassocieerd zijn met deze site.",
"siteResourcesShowMore": "Meer weergeven",
"siteResourcesPermissionDenied": "U heeft geen toestemming om deze bronnen te vermelden.",
"siteResourcesEmptyPublic": "Geen openbare bronnen richten zich nog op deze site.",
"siteResourcesEmptyPrivate": "Er zijn nog geen privébronnen gekoppeld aan deze site.",
"siteResourcesHowToAccess": "Hoe te openen",
"siteResourcesTargetsOnSite": "Doelen op deze site",
"siteSetting": "{siteName} instellingen",
"siteNewtTunnel": "Nieuwste site (Aanbevolen)",
"siteNewtTunnelDescription": "Makkelijkste manier om een ingangspunt in een netwerk te maken. Geen extra opzet.",
@@ -123,6 +156,10 @@
"shareErrorDeleteMessage": "Fout opgetreden tijdens het verwijderen link",
"shareDeleted": "Link verwijderd",
"shareDeletedDescription": "De link is verwijderd",
"shareDelete": "Verwijder Deel Link",
"shareDeleteConfirm": "Bevestig verwijdering van Deel Link",
"shareQuestionRemove": "Weet u zeker dat u deze deel link wilt verwijderen?",
"shareMessageRemove": "Zodra verwijderd, zal de link niet meer werken en zal iedereen die het gebruikt de toegang tot de bron verliezen.",
"shareTokenDescription": "De toegangstoken kan op twee manieren worden doorgegeven: als queryparameter of in de aanvraagheaders. Deze moeten worden doorgegeven van de client op elk verzoek voor geverifieerde toegang.",
"accessToken": "Toegangs-token",
"usageExamples": "Voorbeelden van gebruik",
@@ -139,6 +176,7 @@
"shareErrorCreateDescription": "Fout opgetreden tijdens het maken van de share link",
"shareCreateDescription": "Iedereen met deze link heeft toegang tot de pagina",
"shareTitleOptional": "Titel (optioneel)",
"sharePathOptional": "Pad (optioneel)",
"expireIn": "Vervalt in",
"neverExpire": "Nooit verlopen",
"shareExpireDescription": "Vervaltijd is hoe lang de link bruikbaar is en geeft toegang tot de bron. Na deze tijd zal de link niet meer werken en zullen gebruikers die deze link hebben gebruikt de toegang tot de pagina verliezen.",
@@ -163,7 +201,7 @@
"proxyResourceTitle": "Openbare bronnen beheren",
"proxyResourceDescription": "Creëer en beheer bronnen die openbaar toegankelijk zijn via een webbrowser",
"proxyResourcesBannerTitle": "Webgebaseerde openbare toegang",
"proxyResourcesBannerDescription": "Public resources are HTTPS proxies accessible to anyone on the internet through a web browser. Unlike private resources, they do not require client-side software and can include identity and context-aware access policies.",
"proxyResourcesBannerDescription": "Openbare bronnen zijn HTTPS of TCP/UDP-proxies die toegankelijk zijn voor iedereen op het internet via een webbrowser. In tegenstelling tot privbronnen vereisen ze geen client-side software maar kunnen ze identiteits- en context-bewuste toegangsrichtlijnen bevatten.",
"clientResourceTitle": "Privébronnen beheren",
"clientResourceDescription": "Creëer en beheer bronnen die alleen toegankelijk zijn via een verbonden client",
"privateResourcesBannerTitle": "Zero-Trust Private Access",
@@ -171,11 +209,33 @@
"resourcesSearch": "Zoek bronnen...",
"resourceAdd": "Bron toevoegen",
"resourceErrorDelte": "Fout bij verwijderen document",
"resourcePoliciesTitle": "Beheer Bron Beleid",
"resourcePoliciesAttachedResourcesColumnTitle": "Bijgevoegde bronnen",
"resourcePoliciesAttachedResources": "{count} bron(nen)",
"resourcePoliciesAttachedResourcesEmpty": "geen bronnen",
"resourcePoliciesDescription": "Maak en beheer authenticatiebeleid om toegang tot uw bronnen te controleren",
"resourcePoliciesSearch": "Beleidsregels zoeken...",
"resourcePoliciesAdd": "Beleid toevoegen",
"resourcePoliciesDefaultBadgeText": "Standaard beleidsregel",
"resourcePoliciesCreate": "Creëer Bronbeleid",
"resourcePoliciesCreateDescription": "Volg de onderstaande stappen om een nieuw beleid aan te maken",
"resourcePolicyName": "Beleidsregelnaam",
"resourcePolicyNameDescription": "Geef deze beleidsregel een naam om deze te identificeren in uw bronnen",
"resourcePolicyNamePlaceholder": "bijv. Intern Toegangsbeleid",
"resourcePoliciesSeeAll": "Zie Alle Beleid",
"resourcePolicyAuthMethodAdd": "Authenticatiemethode toevoegen",
"resourcePolicyOtpEmailAdd": "OTP e-mails toevoegen",
"resourcePolicyRulesAdd": "Regels toevoegen",
"resourcePolicyAuthMethodsDescription": "Sta toegang tot bronnen toe via aanvullende authenticatiemethoden",
"resourcePolicyUsersRolesDescription": "Bepaal welke gebruikers en rollen geassocieerde bronnen kunnen bezoeken",
"rulesResourcePolicyDescription": "Stel regels in om toegang te regelen tot bronnen die zijn gekoppeld aan dit beleid",
"authentication": "Authenticatie",
"protected": "Beschermd",
"notProtected": "Niet beveiligd",
"resourceMessageRemove": "Eenmaal verwijderd, zal het bestand niet langer toegankelijk zijn. Alle doelen die gekoppeld zijn aan het hulpbron, zullen ook verwijderd worden.",
"resourceQuestionRemove": "Weet u zeker dat u het document van de organisatie wilt verwijderen?",
"resourcePolicyMessageRemove": "Zodra verwijderd, zal het bronbeleid niet langer toegankelijk zijn. Alle met de bron geassocieerde bronnen worden ontkoppeld en zonder authenticatie achtergelaten.",
"resourcePolicyQuestionRemove": "Weet u zeker dat u het bronbeleid uit de organisatie wilt verwijderen?",
"resourceHTTP": "HTTPS bron",
"resourceHTTPDescription": "Proxyverzoeken via HTTPS met een volledig gekwalificeerde domeinnaam.",
"resourceRaw": "TCP/UDP bron",
@@ -183,8 +243,9 @@
"resourceRawDescriptionCloud": "Proxy verzoeken over rauwe TCP/UDP met behulp van een poortnummer. Vereist sites om verbinding te maken met een remote node.",
"resourceCreate": "Bron maken",
"resourceCreateDescription": "Volg de onderstaande stappen om een nieuwe bron te maken",
"resourceCreateGeneralDescription": "Configureer de basisinstellingen van de bron, inclusief de naam en het type",
"resourceSeeAll": "Alle bronnen bekijken",
"resourceInfo": "Bron informatie",
"resourceCreateGeneral": "Algemeen",
"resourceNameDescription": "Dit is de weergavenaam voor het document.",
"siteSelect": "Selecteer site",
"siteSearch": "Zoek site",
@@ -194,12 +255,15 @@
"noCountryFound": "Geen land gevonden.",
"siteSelectionDescription": "Deze site zal connectiviteit met het doelwit bieden.",
"resourceType": "Type bron",
"resourceTypeDescription": "Bepaal hoe u toegang wilt tot de bron",
"resourceTypeDescription": "Dit bepaalt het bronprotocol en hoe het in de browser wordt weergegeven. Dit kan later niet gewijzigd worden.",
"resourceDomainDescription": "De bron zal worden bediend onder deze volledig gekwalificeerde domeinnaam.",
"resourceHTTPSSettings": "HTTPS instellingen",
"resourceHTTPSSettingsDescription": "Stel in hoe de bron wordt benaderd via HTTPS",
"resourcePortDescription": "De externe poort op de Pangolin-instantie of -node waar de bron toegankelijk zal zijn.",
"domainType": "Domein type",
"subdomain": "Subdomein",
"baseDomain": "Basis domein",
"configure": "Configureren",
"subdomnainDescription": "Het subdomein waar de bron toegankelijk zal zijn.",
"resourceRawSettings": "TCP/UDP instellingen",
"resourceRawSettingsDescription": "Stel in hoe de bron wordt benaderd via TCP/UDP",
@@ -216,8 +280,27 @@
"resourceLearnRaw": "Leer hoe je TCP/UDP bronnen kunt configureren",
"resourceBack": "Terug naar bronnen",
"resourceGoTo": "Ga naar Resource",
"resourcePolicyDelete": "Verwijder Bronbeleid",
"resourcePolicyDeleteConfirm": "Bevestig Verwijderen Bronbeleid",
"resourceDelete": "Document verwijderen",
"resourceDeleteConfirm": "Bevestig Verwijderen Document",
"labelDelete": "Label verwijderen",
"labelAdd": "Label toevoegen",
"labelCreateSuccessMessage": "Label succesvol aangemaakt",
"labelEditSuccessMessage": "Label succesvol gewijzigd",
"labelNameField": "Labelnaam",
"labelColorField": "Label kleur",
"labelPlaceholder": "Bijv.: homelab",
"labelCreate": "Label aanmaken",
"createLabelDialogTitle": "Label aanmaken",
"createLabelDialogDescription": "Maak een nieuw label aan dat aan deze organisatie kan worden gekoppeld",
"labelEdit": "Label bewerken",
"editLabelDialogTitle": "Label bijwerken",
"editLabelDialogDescription": "Bewerk een nieuw label dat aan deze organisatie kan worden gekoppeld",
"labelDeleteConfirm": "Bevestigen Verwijderen Label",
"labelErrorDelete": "Kan label niet verwijderen",
"labelMessageRemove": "Deze handeling is definitief. Alle sites, bronnen en klanten met dit label zullen worden onttakeld.",
"labelQuestionRemove": "Weet u zeker dat u het label uit de organisatie wilt verwijderen?",
"visibility": "Zichtbaarheid",
"enabled": "Ingeschakeld",
"disabled": "Uitgeschakeld",
@@ -228,6 +311,8 @@
"rules": "Regels",
"resourceSettingDescription": "Configureer de instellingen in de bron",
"resourceSetting": "{resourceName} instellingen",
"resourcePolicySettingDescription": "Configureer de instellingen op het bronbeleid",
"resourcePolicySetting": "{policyName} instellingen",
"alwaysAllow": "Authenticatie omzeilen",
"alwaysDeny": "Blokkeer toegang",
"passToAuth": "Passeren naar Auth",
@@ -267,8 +352,11 @@
"orgMissing": "Organisatie-ID ontbreekt",
"orgMissingMessage": "Niet in staat om de uitnodiging te regenereren zonder organisatie-ID.",
"accessUsersManage": "Gebruikers beheren",
"accessUserManage": "Beheer gebruiker",
"accessUsersDescription": "Nodig uit en beheer gebruikers met toegang tot deze organisatie",
"accessUsersSearch": "Gebruikers zoeken...",
"accessUsersRoleFilterCount": "{count, plural, one {# rol} other {# rollen}}",
"accessUsersRoleFilterClear": "Rolfilters wissen",
"accessUserCreate": "Gebruiker aanmaken",
"accessUserRemove": "Gebruiker verwijderen",
"username": "Gebruikersnaam",
@@ -380,7 +468,7 @@
"userTitle": "Alle gebruikers beheren",
"userDescription": "Bekijk en beheer alle gebruikers in het systeem",
"userAbount": "Over gebruikersbeheer",
"userAbountDescription": "This table displays all base user objects in the system. Each user may belong to multiple organizations. Removing a user from an organization does not delete their base user object. They will remain in the system. To completely remove a user from the system, you must delete their base user object using the delete action in this table.",
"userAbountDescription": "Deze tabel toont alle root user objecten in het systeem. Elke gebruiker kan tot meerdere organisaties behoren. Een gebruiker verwijderen uit een organisatie verwijdert hun root gebruiker object niet - ze zullen in het systeem blijven. Om een gebruiker volledig te verwijderen uit het systeem, moet u hun root gebruiker object verwijderen met behulp van de actie in deze tabel.",
"userServer": "Server Gebruikers",
"userSearch": "Zoek server gebruikers...",
"userErrorDelete": "Fout bij verwijderen gebruiker",
@@ -487,6 +575,12 @@
"userMessageOrgRemove": "Eenmaal verwijderd, heeft deze gebruiker geen toegang meer tot de organisatie. Je kunt ze later altijd opnieuw uitnodigen, maar ze zullen de uitnodiging opnieuw moeten accepteren.",
"userRemoveOrgConfirm": "Bevestig verwijderen gebruiker",
"userRemoveOrg": "Gebruiker uit organisatie verwijderen",
"userQuestionOrgRemoveSelf": "Weet u zeker dat u zichzelf uit deze organisatie wilt verwijderen?",
"userMessageOrgRemoveSelf": "U verliest onmiddellijk toegang. Een beheerder kan u later opnieuw uitnodigen, maar u moet een nieuwe uitnodiging accepteren.",
"userRemoveOrgConfirmSelf": "Bevestig Verwijder Mijn Persoon",
"userRemoveOrgSelf": "Verwijder uzelf uit de organisatie",
"userRemoveOrgSelfWarning": "U verliest onmiddellijk toegang tot deze organisatie.",
"userRemoveOrgConfirmPhraseSelf": "VERWIJDER MIJ UIT ORGANISATIE",
"users": "Gebruikers",
"accessRoleMember": "Lid",
"accessRoleOwner": "Eigenaar",
@@ -495,6 +589,11 @@
"emailInvalid": "Ongeldig e-mailadres",
"inviteValidityDuration": "Selecteer een tijdsduur",
"accessRoleSelectPlease": "Selecteer een rol",
"removeOwnAdminRoleConfirmTitle": "Uw beheerderstoegang verwijderen?",
"removeOwnAdminRoleConfirmDescription": "U zult na het opslaan geen beheerdersrechten meer hebben in deze organisatie. Een andere beheerder kan de toegang indien nodig herstellen.",
"removeOwnAdminRoleConfirmButton": "Verwijder Mijn Beheerderstoegang",
"removeOwnAdminRoleConfirmPhrase": "VERWIJDER MIJN BEHEERDERSTOEGANG",
"ownerMustRetainAdminRole": "De organisatie-eigenaar moet minstens één beheerdersrol behouden.",
"usernameRequired": "Gebruikersnaam is verplicht",
"idpSelectPlease": "Selecteer een identiteitsprovider",
"idpGenericOidc": "Algemene OAuth2/OIDC provider.",
@@ -523,7 +622,7 @@
"userSettings": "Gebruikers informatie",
"userSettingsDescription": "Voer de gegevens van de nieuwe gebruiker in",
"inviteEmailSent": "Stuur uitnodigingsmail naar de gebruiker",
"inviteValid": "Invite Valid For (days)",
"inviteValid": "Geldig voor",
"selectDuration": "Selecteer duur",
"selectResource": "Selecteer Document",
"filterByResource": "Filter op pagina",
@@ -579,7 +678,7 @@
"createdAt": "Aangemaakt op",
"proxyErrorInvalidHeader": "Ongeldige aangepaste Header waarde. Gebruik het domeinnaam formaat, of sla leeg op om de aangepaste Host header ongedaan te maken.",
"proxyErrorTls": "Ongeldige TLS servernaam. Gebruik de domeinnaam of sla leeg op om de TLS servernaam te verwijderen.",
"proxyEnableSSL": "SSL inschakelen",
"proxyEnableSSL": "Schakel TLS in",
"proxyEnableSSLDescription": "SSL/TLS-versleuteling inschakelen voor beveiligde HTTPS-verbindingen naar de doelen.",
"target": "Target",
"configureTarget": "Doelstellingen configureren",
@@ -622,6 +721,7 @@
"targetNoOneDescription": "Het toevoegen van meer dan één doel hierboven zal de load balancering mogelijk maken.",
"targetsSubmit": "Doelstellingen opslaan",
"addTarget": "Doelwit toevoegen",
"proxyMultiSiteRoundRobinNodeHelp": "Round-robin routering werkt niet tussen locaties die niet met hetzelfde knooppunt zijn verbonden, maar failover werkt wel.",
"targetErrorInvalidIp": "Ongeldig IP-adres",
"targetErrorInvalidIpDescription": "Voer een geldig IP-adres of hostnaam in",
"targetErrorInvalidPort": "Ongeldige poort",
@@ -695,6 +795,16 @@
"rulesNoOne": "Geen regels. Voeg een regel toe via het formulier.",
"rulesOrder": "Regels worden in oplopende volgorde volgens prioriteit beoordeeld.",
"rulesSubmit": "Regels opslaan",
"policyErrorCreate": "Fout bij het maken van beleid",
"policyErrorCreateDescription": "Er is een fout opgetreden bij het maken van het beleid",
"policyErrorCreateMessageDescription": "Er is een onverwachte fout opgetreden",
"policyErrorUpdate": "Fout bij het bijwerken van beleid",
"policyErrorUpdateDescription": "Er is een fout opgetreden bij het bijwerken van het beleid",
"policyErrorUpdateMessageDescription": "Er is een onverwachte fout opgetreden",
"policyCreatedSuccess": "Bronbeleid met succes aangemaakt",
"policyUpdatedSuccess": "Bronbeleid succesvol bijgewerkt",
"authMethodsSave": "Bewaar authenticatiemethoden",
"rulesSave": "Regels opslaan",
"resourceErrorCreate": "Fout bij maken document",
"resourceErrorCreateDescription": "Er is een fout opgetreden bij het maken van het document",
"resourceErrorCreateMessage": "Fout bij maken bron:",
@@ -731,6 +841,7 @@
"newtEndpoint": "Endpoint",
"newtId": "ID",
"newtSecretKey": "Geheim",
"newtVersion": "Versie",
"architecture": "Architectuur",
"sites": "Sites",
"siteWgAnyClients": "Gebruik een willekeurige WireGuard client om verbinding te maken. Je zult interne bronnen moeten aanspreken met behulp van de peer IP.",
@@ -757,6 +868,17 @@
"pincodeAdd": "PIN-code toevoegen",
"pincodeRemove": "PIN-code verwijderen",
"resourceAuthMethods": "Authenticatie methoden",
"resourcePolicyAuthMethodsEmpty": "Geen authenticatiemethode",
"resourcePolicyOtpEmpty": "Geen eenmalig wachtwoord",
"resourcePolicyReadOnly": "Dit beleid is alleen-lezen",
"resourcePolicyReadOnlyDescription": "Dit bronbeleid wordt gedeeld over meerdere bronnen, u kunt het niet op deze pagina bewerken.",
"editSharedPolicy": "Gedeeld Beleid Bewerken",
"resourcePolicyTypeSave": "Bewaar brontype",
"resourcePolicySelect": "Selecteer bronbeleid",
"resourcePolicySelectError": "Selecteer een bronbeleid",
"resourcePolicyNotFound": "Beleid niet gevonden",
"resourcePolicySearch": "Beleidsregels zoeken",
"resourcePolicyRulesEmpty": "Geen authenticatieregels",
"resourceAuthMethodsDescriptions": "Sta toegang tot de bron toe via extra autorisatiemethoden",
"resourceAuthSettingsSave": "Succesvol opgeslagen",
"resourceAuthSettingsSaveDescription": "Verificatie-instellingen zijn opgeslagen",
@@ -792,6 +914,12 @@
"resourcePincodeSetupTitle": "Pincode instellen",
"resourcePincodeSetupTitleDescription": "Stel een pincode in om deze hulpbron te beschermen",
"resourceRoleDescription": "Beheerders hebben altijd toegang tot deze bron.",
"resourcePolicySelectTitle": "Toegangsbeleid voor bronnen",
"resourcePolicySelectDescription": "Selecteer het bronbeleidstype voor authenticatie",
"resourcePolicyInline": "Inline bronbeleid",
"resourcePolicyInlineDescription": "Toegangsbeleid alleen gericht op deze bron",
"resourcePolicyShared": "Gedeeld bronbeleid",
"resourcePolicySharedDescription": "Deze bron gebruikt een gedeeld beleid. Instellingen op beleidsniveau (authenticatiemethoden, e-mailwhitelist) zijn vergrendeld. U kunt hieronder bron-specifieke regels, rollen en gebruikers toevoegen.",
"resourceUsersRoles": "Toegang Bediening",
"resourceUsersRolesDescription": "Configureer welke gebruikers en rollen deze pagina kunnen bezoeken",
"resourceUsersRolesSubmit": "Bewaar Toegangsbesturing",
@@ -1087,6 +1215,18 @@
"idpErrorConnectingTo": "Er was een probleem bij het verbinden met {name}. Neem contact op met uw beheerder.",
"idpErrorNotFound": "IdP niet gevonden",
"inviteInvalid": "Ongeldige uitnodiging",
"labels": "Labels",
"orgLabelsDescription": "Beheer labels in deze organisatie.",
"addLabels": "Labels toevoegen",
"siteLabelsTab": "Labels",
"siteLabelsDescription": "Beheer labels geassocieerd met deze site.",
"labelsNotFound": "Labels niet gevonden",
"labelSearch": "Labels zoeken",
"accessLabelFilterCount": "{count, plural, one {# label} other {# labels}}",
"labelOverflowCount": "+{count, plural, one {# label} other {# labels}}",
"accessLabelFilterClear": "Labelfilters wissen",
"selectColor": "Kleur selecteren",
"createNewLabel": "Nieuw org-label \"{label}\" aanmaken",
"inviteInvalidDescription": "Uitnodigingslink is ongeldig.",
"inviteErrorWrongUser": "Uitnodiging is niet voor deze gebruiker",
"inviteErrorUserNotExists": "Gebruiker bestaat niet. Maak eerst een account aan.",
@@ -1257,6 +1397,7 @@
"actionViewLogs": "Logboeken bekijken",
"noneSelected": "Niet geselecteerd",
"orgNotFound2": "Geen organisaties gevonden.",
"search": "Zoeken…",
"searchPlaceholder": "Zoeken...",
"emptySearchOptions": "Geen opties gevonden",
"create": "Aanmaken",
@@ -1320,6 +1461,8 @@
"sidebarResources": "Bronnen",
"sidebarProxyResources": "Openbaar",
"sidebarClientResources": "Privé",
"sidebarPolicies": "Beleid",
"sidebarResourcePolicies": "Bronnen",
"sidebarAccessControl": "Toegangs controle",
"sidebarLogsAndAnalytics": "Logs & Analytics",
"sidebarTeam": "Team",
@@ -1341,12 +1484,170 @@
"sidebarGeneral": "Beheren",
"sidebarLogAndAnalytics": "Log & Analytics",
"sidebarBluePrints": "Blauwdrukken",
"sidebarAlerting": "Waarschuwingen",
"sidebarHealthChecks": "Gezondheidscontroles",
"sidebarOrganization": "Organisatie",
"sidebarManagement": "Beheer",
"sidebarBillingAndLicenses": "Facturatie & Licenties",
"sidebarLogsAnalytics": "Analyses",
"alertingTitle": "Waarschuwingen",
"alertingDescription": "Definieer bronnen, triggers en acties voor meldingen",
"alertingRules": "Waarschuwingsregels",
"alertingSearchRules": "Zoek regels…",
"alertingAddRule": "Regel aanmaken",
"alertingColumnSource": "Bron",
"alertingColumnTrigger": "Trigger",
"alertingColumnActions": "Acties",
"alertingColumnEnabled": "Ingeschakeld",
"alertingDeleteQuestion": "Bevestig alstublieft dat u deze waarschuwingsregel wilt verwijderen.",
"alertingDeleteRule": "Verwijder waarschuwingsregel",
"alertingRuleDeleted": "Waarschuwingsregel verwijderd",
"alertingRuleSaved": "Waarschuwingsregel opgeslagen",
"alertingRuleSavedCreatedDescription": "Uw nieuwe waarschuwingsregel is aangemaakt. U kunt deze op deze pagina blijven bewerken.",
"alertingRuleSavedUpdatedDescription": "Uw wijzigingen in deze waarschuwingsregel zijn opgeslagen.",
"alertingEditRule": "Bewerk waarschuwingsregel",
"alertingCreateRule": "Waarschuwingsregel aanmaken",
"alertingRuleCredenzaDescription": "Kies wat te bekijken, wanneer het moet gebeuren en hoe te waarschuwen",
"alertingRuleNamePlaceholder": "Productiesite offline",
"alertingRuleEnabled": "Regel ingeschakeld",
"alertingSectionSource": "Bron",
"alertingSourceType": "Brontype",
"alertingSourceSite": "Site",
"alertingSourceHealthCheck": "Gezondheidscontrole",
"alertingPickSites": "Sites",
"alertingPickHealthChecks": "Gezondheidscontroles",
"alertingPickResources": "Bronnen",
"alertingAllSites": "Alle sites",
"alertingAllSitesDescription": "Waarschuwing voor elke site",
"alertingSpecificSites": "Specifieke sites",
"alertingSpecificSitesDescription": "Kies specifieke sites om in de gaten te houden",
"alertingAllHealthChecks": "Alle Gezondheidscontroles",
"alertingAllHealthChecksDescription": "Waarschuwing voor elke gezondheidscontrole",
"alertingSpecificHealthChecks": "Specifieke Gezondheidscontroles",
"alertingSpecificHealthChecksDescription": "Kies specifieke gezondheidscontroles om in de gaten te houden",
"alertingAllResources": "Alle bronnen",
"alertingAllResourcesDescription": "Waarschuwing voor elke bron",
"alertingSpecificResources": "Specifieke bronnen",
"alertingSpecificResourcesDescription": "Kies specifieke bronnen om in de gaten te houden",
"alertingSelectResources": "Selecteer bronnen…",
"alertingResourcesSelected": "{count} bronnen geselecteerd",
"alertingResourcesEmpty": "Geen bronnen met doelen in de eerste 10 resultaten.",
"alertingSectionTrigger": "Trigger",
"alertingTrigger": "Wanneer te waarschuwen",
"alertingTriggerSiteOnline": "Site online",
"alertingTriggerSiteOffline": "Site offline",
"alertingTriggerSiteToggle": "Site status wijzigt",
"alertingTriggerHcHealthy": "Gezondheidscontrole gezond",
"alertingTriggerHcUnhealthy": "Gezondheidscontrole ongezond",
"alertingTriggerHcToggle": "Gezondheidscontrole status verandert",
"alertingTriggerResourceHealthy": "Bron gezond",
"alertingTriggerResourceUnhealthy": "Bron ongezond",
"alertingTriggerResourceDegraded": "Bron gedegradeerd",
"alertingSearchHealthChecks": "Zoek gezondheidscontroles…",
"alertingHealthChecksEmpty": "Geen gezondheidscontroles beschikbaar.",
"alertingTriggerResourceToggle": "Bronstatus wijzigt",
"alertingSourceResource": "Bron",
"alertingSectionActions": "Acties",
"alertingAddAction": "Actie toevoegen",
"alertingActionNotify": "E-mail",
"alertingActionNotifyDescription": "Stuur e-mailmeldingen naar gebruikers of rollen",
"alertingActionWebhook": "Webhook",
"alertingActionWebhookDescription": "Stuur een HTTP-verzoek naar een aangepast eindpunt",
"alertingExternalIntegration": "Externe integratie",
"alertingExternalPagerDutyDescription": "Stuur waarschuwingen naar PagerDuty voor incidentbeheer",
"alertingExternalOpsgenieDescription": "Routeer waarschuwingen naar Opsgenie voor wachtdienstbeheer",
"alertingExternalServiceNowDescription": "Maak ServiceNow-incidenten aan vanuit waarschuwingsgebeurtenissen",
"alertingExternalIncidentIoDescription": "Trigger Incident.io workflows van waarschuwingsgebeurtenissen",
"alertingActionType": "Actietype",
"alertingNotifyUsers": "Gebruikers",
"alertingNotifyRoles": "Rollen",
"alertingNotifyEmails": "E-mailadressen",
"alertingEmailPlaceholder": "Voeg e-mail toe en druk op Enter",
"alertingWebhookMethod": "HTTP-methode",
"alertingWebhookSecret": "Ondertekengeheim (optioneel)",
"alertingWebhookSecretPlaceholder": "HMAC-geheim",
"alertingWebhookHeaders": "Headers",
"alertingAddHeader": "Header toevoegen",
"alertingSelectSites": "Selecteer sites…",
"alertingSitesSelected": "{count} sites geselecteerd",
"alertingSelectHealthChecks": "Selecteer gezondheidscontroles…",
"alertingHealthChecksSelected": "{count} gezondheidscontroles geselecteerd",
"alertingNoHealthChecks": "Geen doelen met ingeschakelde gezondheidscontroles",
"alertingHealthCheckStub": "Gezondheidscontrole brondeselectie is nog niet gekoppeld - u kunt nog steeds triggers en acties configureren.",
"alertingSelectUsers": "Selecteer gebruikers…",
"alertingUsersSelected": "{count} gebruikers geselecteerd",
"alertingSelectRoles": "Selecteer rollen…",
"alertingRolesSelected": "{count} rollen geselecteerd",
"alertingSummarySites": "Sites ({count})",
"alertingSummaryAllSites": "Alle sites",
"alertingSummaryHealthChecks": "Gezondheidscontroles ({count})",
"alertingSummaryAllHealthChecks": "Alle gezondheidscontroles",
"alertingSummaryResources": "Bronnen ({count})",
"alertingSummaryAllResources": "Alle bronnen",
"alertingErrorNameRequired": "Voer een naam in",
"alertingErrorActionsMin": "Voeg minimaal één actie toe",
"alertingErrorPickSites": "Selecteer minimaal één site",
"alertingErrorPickHealthChecks": "Selecteer minimaal één gezondheidscontrole",
"alertingErrorPickResources": "Selecteer minimaal één bron",
"alertingErrorTriggerSite": "Kies een site-trigger",
"alertingErrorTriggerHealth": "Kies een gezondheidscontrole-trigger",
"alertingErrorTriggerResource": "Kies een bron-trigger",
"alertingErrorNotifyRecipients": "Kies gebruikers, rollen of ten minste één e-mail",
"alertingConfigureSource": "Bron configureren",
"alertingConfigureTrigger": "Trigger configureren",
"alertingConfigureActions": "Acties configureren",
"alertingBackToRules": "Terug naar regels",
"alertingRuleCooldown": "Aflkoelperiode (seconden)",
"alertingRuleCooldownDescription": "Minimale tijd tussen herhaalwaarschuwingen voor dezelfde regel. Zet op 0 om elke keer te laten vuren.",
"alertingDraftBadge": "Concept - opslaan om deze regel op te slaan",
"alertingSidebarHint": "Klik op een stap in het canvas om deze hier te bewerken.",
"alertingGraphCanvasTitle": "Regelstroom",
"alertingGraphCanvasDescription": "Visueel overzicht van bron, trigger en acties. Selecteer een node om deze in het paneel te bewerken.",
"alertingNodeNotConfigured": "Nog niet geconfigureerd",
"alertingNodeActionsCount": "{count, plural, one {# actie} other {# acties}}",
"alertingNodeRoleSource": "Bron",
"alertingNodeRoleTrigger": "Trigger",
"alertingNodeRoleAction": "Actie",
"alertingTabRules": "Waarschuwingsregels",
"alertingTabHealthChecks": "Gezondheidscontroles",
"alertingRulesBannerTitle": "Meldingen ontvangen",
"alertingRulesBannerDescription": "Elke regel koppelt wat te bekijken (een site, gezondheidscontrole of bron), wanneer te vuren (bijvoorbeeld offline of ongezond), en hoe uw team te waarschuwen via e-mail, webhooks of integraties. Gebruik deze lijst om die regels te maken, in te schakelen en te beheren.",
"alertingHealthChecksBannerTitle": "Gezondheid & bronnen bewaken",
"alertingHealthChecksBannerDescription": "Gezondheidscontroles zijn HTTP- of TCP-monitoren die u één keer definieert. U kunt ze vervolgens als bronnen in waarschuwingsregels gebruiken, zodat u meldingen krijgt wanneer een doelwit gezond of ongezond wordt. Gezondheidscontroles van bronnen verschijnen ook hier.",
"standaloneHcTableTitle": "Gezondheidscontroles",
"standaloneHcSearchPlaceholder": "Zoek gezondheidscontroles…",
"standaloneHcAddButton": "Gezondheidscontrole aanmaken",
"standaloneHcCreateTitle": "Gezondheidscontrole aanmaken",
"standaloneHcEditTitle": "Gezondheidscontrole bewerken",
"standaloneHcDescription": "Configureer een HTTP- of TCP-gezondheidscontrole voor gebruik in waarschuwingsregels.",
"standaloneHcNameLabel": "Naam",
"standaloneHcNamePlaceholder": "Mijn HTTP-monitor",
"standaloneHcDeleteTitle": "Gezondheidscontrole verwijderen",
"standaloneHcDeleteQuestion": "Bevestig alstublieft dat u deze gezondheidscontrole wilt verwijderen.",
"standaloneHcDeleted": "Gezondheidscontrole verwijderd",
"standaloneHcSaved": "Gezondheidscontrole opgeslagen",
"standaloneHcColumnHealth": "Gezondheid",
"standaloneHcColumnMode": "Modus",
"standaloneHcColumnTarget": "Doelwit",
"standaloneHcHealthStateHealthy": "Gezond",
"standaloneHcHealthStateUnhealthy": "Ongezond",
"standaloneHcHealthStateUnknown": "Onbekend",
"standaloneHcFilterAnySite": "Alle sites",
"standaloneHcFilterAnyResource": "Alle bronnen",
"standaloneHcFilterMode": "Modus",
"standaloneHcFilterModeHttp": "HTTP",
"standaloneHcFilterModeTcp": "TCP",
"standaloneHcFilterModeSnmp": "SNMP",
"standaloneHcFilterModePing": "Ping",
"standaloneHcFilterHealth": "Gezondheid",
"standaloneHcFilterEnabled": "Ingeschakeld",
"standaloneHcFilterEnabledOn": "Ingeschakeld",
"standaloneHcFilterEnabledOff": "Uitgeschakeld",
"standaloneHcFilterSiteIdFallback": "Site {id}",
"standaloneHcFilterResourceIdFallback": "Bron {id}",
"blueprints": "Blauwdrukken",
"blueprintsDescription": "Gebruik declaratieve configuraties en bekijk vorige uitvoeringen.",
"blueprintsLog": "Log Blueprints",
"blueprintsDescription": "Bekijk eerdere blueprint-toepassingen en hun resultaten",
"blueprintAdd": "Blauwdruk toevoegen",
"blueprintGoBack": "Bekijk alle Blauwdrukken",
"blueprintCreate": "Creëer blauwdruk",
@@ -1364,7 +1665,17 @@
"contents": "Inhoud",
"parsedContents": "Geparseerde inhoud (alleen lezen)",
"enableDockerSocket": "Schakel Docker Blauwdruk in",
"enableDockerSocketDescription": "Schakel Docker Socket label in voor blauwdruk labels. Pad naar Nieuw.",
"enableDockerSocketDescription": "Schakel Docker Socket-label in voor blueprint-labels. Socket-pad moet worden opgegeven aan de siteconnector. Lees meer over hoe dit werkt in <docsLink>de documentatie</docsLink>.",
"newtAutoUpdate": "Automatische site-update inschakelen",
"newtAutoUpdateDescription": "Wanneer ingeschakeld, zullen site-connectors automatisch updaten naar de nieuwste versie wanneer een nieuwe release beschikbaar is.",
"siteAutoUpdate": "Automatische site-update",
"siteAutoUpdateLabel": "Automatische update inschakelen",
"siteAutoUpdateDescription": "Controleer of de siteconnector automatisch de laatste versie downloadt.",
"siteAutoUpdateOrgDefault": "Standaard van organisatie: {state}",
"siteAutoUpdateOverriding": "Overschrijving van organisatiestandaardinstelling",
"siteAutoUpdateResetToOrg": "Terugzetten naar standaard van organisatie",
"siteAutoUpdateEnabled": "ingeschakeld",
"siteAutoUpdateDisabled": "uitgeschakeld",
"viewDockerContainers": "Bekijk Docker containers",
"containersIn": "Containers in {siteName}",
"selectContainerDescription": "Selecteer een container om als hostnaam voor dit doel te gebruiken. Klik op een poort om een poort te gebruiken.",
@@ -1406,8 +1717,10 @@
"initialSetupDescription": "Maak het eerste serverbeheeraccount aan. Er kan slechts één serverbeheerder bestaan. U kunt deze inloggegevens later altijd wijzigen.",
"createAdminAccount": "Maak een beheeraccount aan",
"setupErrorCreateAdmin": "Er is een fout opgetreden bij het maken van het serverbeheerdersaccount.",
"certificateStatus": "Certificaatstatus",
"certificateStatus": "Certificaat",
"certificateStatusAutoRefreshHint": "Status ververst automatisch.",
"loading": "Bezig met laden",
"loadingEllipsis": "Bezig met laden...",
"loadingAnalytics": "Laden van Analytics",
"restart": "Herstarten",
"domains": "Domeinen",
@@ -1475,6 +1788,7 @@
"pangolinUpdateAvailableReleaseNotes": "Uitgaveopmerkingen bekijken",
"newtUpdateAvailable": "Update beschikbaar",
"newtUpdateAvailableInfo": "Er is een nieuwe versie van Newt beschikbaar. Update naar de nieuwste versie voor de beste ervaring.",
"pangolinNodeUpdateAvailableInfo": "Er is een nieuwe versie van Pangolin Node beschikbaar. Update naar de nieuwste versie voor de beste ervaring.",
"domainPickerEnterDomain": "Domein",
"domainPickerPlaceholder": "mijnapp.voorbeeld.nl",
"domainPickerDescription": "Voer de volledige domein van de bron in om beschikbare opties te zien.",
@@ -1633,6 +1947,7 @@
"billingManageLicenseSubscription": "Beheer je abonnement voor betaalde zelf gehoste licentiesleutels",
"billingCurrentKeys": "Huidige toetsen",
"billingModifyCurrentPlan": "Huidig plan wijzigen",
"billingManageLicenseSubscriptionDescription": "Beheer uw abonnement voor betaalde zelf-gehoste licentiesleutels en download facturen.",
"billingConfirmUpgrade": "Bevestig Upgrade",
"billingConfirmDowngrade": "Downgraden bevestigen",
"billingConfirmUpgradeDescription": "U staat op het punt uw abonnement te upgraden. Controleer de nieuwe limieten en prijzen hieronder.",
@@ -1714,6 +2029,7 @@
"configureHealthCheck": "Configureer Gezondheidscontrole",
"configureHealthCheckDescription": "Stel gezondheid monitor voor {target} in",
"enableHealthChecks": "Inschakelen Gezondheidscontroles",
"healthCheckDisabledStateDescription": "Wanneer uitgeschakeld, zal de site geen gezondheidscontroles uitvoeren en wordt de staat als onbekend beschouwd.",
"enableHealthChecksDescription": "Controleer de gezondheid van dit doel. U kunt een ander eindpunt monitoren dan het doel indien vereist.",
"healthScheme": "Methode",
"healthSelectScheme": "Selecteer methode",
@@ -1729,7 +2045,36 @@
"timeIsInSeconds": "Tijd is in seconden",
"requireDeviceApproval": "Vereist goedkeuring van apparaat",
"requireDeviceApprovalDescription": "Gebruikers met deze rol hebben nieuwe apparaten nodig die door een beheerder zijn goedgekeurd voordat ze verbinding kunnen maken met bronnen en deze kunnen gebruiken.",
"sshAccess": "SSH toegang",
"sshSettings": "SSH-instellingen",
"rdpSettings": "RDP-instellingen",
"vncSettings": "VNC-instellingen",
"sshServer": "SSH-server",
"rdpServer": "RDP-server",
"vncServer": "VNC-server",
"sshServerDescription": "Stel de authenticatiemethode, demoonlocatie en serverbestemming in",
"rdpServerDescription": "Configureer de bestemming en poort van de RDP-server",
"vncServerDescription": "Configureer de bestemming en poort van de VNC-server",
"sshServerMode": "Modus",
"sshServerModeStandard": "Standaard SSH-server",
"sshServerModePangolin": "Pangolin SSH",
"sshServerModeStandardDescription": "Opdrachten over netwerk routeren naar een SSH-server zoals OpenSSH.",
"sshServerModeNative": "Natuurlijke SSH-server",
"sshServerModeNativeDescription": "Voert rechtstreeks opdrachten uit op de host via de Siteconnector. Geen netwerkconfiguratie vereist.",
"sshAuthenticationMethod": "Authenticatiemethode",
"sshAuthMethodManual": "Handmatige authenticatie",
"sshAuthMethodManualDescription": "Vereist bestaande hostreferenties. Omzeilt automatische voorziening.",
"sshAuthMethodAutomated": "Automatische voorziening",
"sshAuthMethodAutomatedDescription": "Creëert automatisch gebruikers, groepen en sudo-rechten op host.",
"sshAuthDaemonLocation": "Auth Daemon Locatie",
"sshDaemonLocationSiteDescription": "Wordt lokaal uitgevoerd op de machine die de siteconnector host.",
"sshDaemonLocationRemote": "Op Remote Host",
"sshDaemonLocationRemoteDescription": "Wordt uitgevoerd op een aparte doelmachine in hetzelfde netwerk.",
"sshDaemonDisclaimer": "Zorg ervoor dat uw doelhost goed is geconfigureerd om de auth daemon uit te voeren voordat u deze configuratie voltooit, anders zal de voorziening mislukken.",
"sshDaemonPort": "Demonpoort",
"sshServerDestination": "Serverbestemming",
"sshServerDestinationDescription": "Configureer de bestemming en poort van de SSH-server",
"destination": "Bestemming",
"bgTargetMultiSiteDisclaimer": "Het selecteren van meerdere sites maakt veerkrachtige routering mogelijk en failover voor hoge beschikbaarheid.",
"roleAllowSsh": "SSH toestaan",
"roleAllowSshAllow": "Toestaan",
"roleAllowSshDisallow": "Weigeren",
@@ -1743,7 +2088,7 @@
"sshSudoModeCommandsDescription": "Gebruiker kan alleen de opgegeven commando's uitvoeren met de sudo.",
"sshSudo": "sudo toestaan",
"sshSudoCommands": "Sudo Commando's",
"sshSudoCommandsDescription": "Komma's gescheiden lijst van commando's waar de gebruiker een sudo mee mag uitvoeren.",
"sshSudoCommandsDescription": "Commagescheiden lijst van commando's die de gebruiker met sudo mag uitvoeren. Absolute paden moeten worden gebruikt.",
"sshCreateHomeDir": "Maak Home Directory",
"sshUnixGroups": "Unix groepen",
"sshUnixGroupsDescription": "Door komma's gescheiden Unix-groepen om de gebruiker toe te voegen aan de doelhost.",
@@ -1763,9 +2108,20 @@
"healthCheckIntervalMin": "Controle interval moet minimaal 5 seconden zijn",
"healthCheckTimeoutMin": "Timeout moet minimaal 1 seconde zijn",
"healthCheckRetryMin": "Herhaal pogingen moet minimaal 1 zijn",
"healthCheckMode": "Controlemodus",
"healthCheckStrategy": "Strategie",
"healthCheckModeDescription": "TCP-modus verifieert alleen connectiviteit. HTTP-modus valideert de HTTP-respons.",
"healthyThreshold": "Gezonde drempel",
"healthyThresholdDescription": "Opeenvolgende successen vereist voordat gemarkeerd wordt als gezond.",
"unhealthyThreshold": "Ongezonde drempel",
"unhealthyThresholdDescription": "Opeenvolgende fouten vereist voordat gemarkeerd wordt als ongezond.",
"healthCheckHealthyThresholdMin": "Gezonde drempel moet minimaal 1 zijn",
"healthCheckUnhealthyThresholdMin": "Ongezonde drempel moet minimaal 1 zijn",
"httpMethod": "HTTP-methode",
"selectHttpMethod": "Selecteer HTTP-methode",
"domainPickerSubdomainLabel": "Subdomein",
"domainPickerWildcard": "Wildcard",
"domainPickerWildcardPaidOnly": "Wildcard-subdomeinen zijn een betaalde functie. Upgrade om deze functie te gebruiken.",
"domainPickerBaseDomainLabel": "Basisdomein",
"domainPickerSearchDomains": "Zoek domeinen...",
"domainPickerNoDomainsFound": "Geen domeinen gevonden",
@@ -1791,12 +2147,12 @@
"resourcesTableAliasAddressInfo": "Dit adres is onderdeel van het hulpprogramma subnet van de organisatie. Het wordt gebruikt om aliasrecords op te lossen met behulp van interne DNS-resolutie.",
"resourcesTableClients": "Clienten",
"resourcesTableAndOnlyAccessibleInternally": "en zijn alleen intern toegankelijk wanneer verbonden met een client.",
"resourcesTableNoTargets": "Geen doelen",
"resourcesTableHealthy": "Gezond",
"resourcesTableDegraded": "Verminderde",
"resourcesTableOffline": "Offline",
"resourcesTableUnhealthy": "Ongezond",
"resourcesTableUnknown": "onbekend",
"resourcesTableNotMonitored": "Niet gecontroleerd",
"resourcesTableNoTargets": "Geen doelen",
"editInternalResourceDialogEditClientResource": "Privépagina bewerken",
"editInternalResourceDialogUpdateResourceProperties": "Update de resource configuratie en access control voor {resourceName}",
"editInternalResourceDialogResourceProperties": "Bron eigenschappen",
@@ -1822,6 +2178,12 @@
"editInternalResourceDialogModePort": "Poort",
"editInternalResourceDialogModeHost": "Hostnaam",
"editInternalResourceDialogModeCidr": "CIDR",
"editInternalResourceDialogModeHttp": "HTTP",
"editInternalResourceDialogModeHttps": "HTTPS",
"editInternalResourceDialogModeSsh": "SSH",
"editInternalResourceDialogScheme": "Schema",
"editInternalResourceDialogEnableSsl": "Schakel TLS in",
"editInternalResourceDialogEnableSslDescription": "Schakel SSL/TLS-encryptie in voor beveiligde HTTPS-verbindingen met de bestemming.",
"editInternalResourceDialogDestination": "Bestemming",
"editInternalResourceDialogDestinationHostDescription": "Het IP-adres of de hostnaam van de bron op het netwerk van de site.",
"editInternalResourceDialogDestinationIPDescription": "Het IP of hostnaam adres van de bron op het netwerk van de site.",
@@ -1837,6 +2199,7 @@
"createInternalResourceDialogName": "Naam",
"createInternalResourceDialogSite": "Site",
"selectSite": "Selecteer site...",
"multiSitesSelectorSitesCount": "{count, plural, one {# site} other {# sites}}",
"noSitesFound": "Geen sites gevonden.",
"createInternalResourceDialogProtocol": "Protocol",
"createInternalResourceDialogTcp": "TCP",
@@ -1865,11 +2228,20 @@
"createInternalResourceDialogModePort": "Poort",
"createInternalResourceDialogModeHost": "Hostnaam",
"createInternalResourceDialogModeCidr": "CIDR",
"createInternalResourceDialogModeHttp": "HTTP",
"createInternalResourceDialogModeHttps": "HTTPS",
"createInternalResourceDialogModeSsh": "SSH",
"scheme": "Schema",
"createInternalResourceDialogScheme": "Schema",
"createInternalResourceDialogEnableSsl": "Schakel TLS in",
"createInternalResourceDialogEnableSslDescription": "Schakel SSL/TLS-encryptie in voor beveiligde HTTPS-verbindingen met de bestemming.",
"createInternalResourceDialogDestination": "Bestemming",
"createInternalResourceDialogDestinationHostDescription": "Het IP-adres of de hostnaam van de bron op het netwerk van de site.",
"createInternalResourceDialogDestinationCidrDescription": "Het CIDR-bereik van het document op het netwerk van de site.",
"createInternalResourceDialogAlias": "Alias",
"createInternalResourceDialogAliasDescription": "Een optionele interne DNS-alias voor dit document.",
"internalResourceDownstreamSchemeRequired": "Schema is vereist voor HTTP-bronnen",
"internalResourceHttpPortRequired": "Bestemmingspoort is vereist voor HTTP-bronnen",
"siteConfiguration": "Configuratie",
"siteAcceptClientConnections": "Accepteer clientverbindingen",
"siteAcceptClientConnectionsDescription": "Sta gebruikersapparaten en clients toegang toe tot bronnen op deze site. Dit kan later worden gewijzigd.",
@@ -1994,7 +2366,7 @@
"description": "betrouwbaardere en slecht onderhouden Pangolin server met extra klokken en klokkenluiders",
"introTitle": "Beheerde zelfgehoste pangolin",
"introDescription": "is een implementatieoptie ontworpen voor mensen die eenvoud en extra betrouwbaarheid willen, terwijl hun gegevens privé en zelf georganiseerd blijven.",
"introDetail": "Met deze optie beheert u nog steeds uw eigen Pangolin node - uw tunnels, SSL-verbinding en verkeer alles op uw server. Het verschil is dat beheer en monitoring worden behandeld via onze cloud dashboard, wat een aantal voordelen oplevert:",
"introDetail": "Met deze optie beheert u nog steeds uw eigen Pangolin-node - uw tunnels, TLS-terminatie en verkeer blijven allemaal op uw server. Het verschil is dat beheer en monitoring worden afgehandeld via ons cloud-dashboard, wat een aantal voordelen oplevert:",
"benefitSimplerOperations": {
"title": "Simpler operaties",
"description": "Je hoeft geen eigen mailserver te draaien of complexe waarschuwingen in te stellen. Je krijgt gezondheidscontroles en downtime meldingen uit de box."
@@ -2119,11 +2491,11 @@
"selectDomainForOrgAuthPage": "Selecteer een domein voor de authenticatiepagina van de organisatie",
"domainPickerProvidedDomain": "Opgegeven domein",
"domainPickerFreeProvidedDomain": "Gratis verstrekt domein",
"domainPickerFreeDomainsPaidFeature": "Geleverde domeinen zijn een betaalde functie. Abonneer je om een domein bij je plan te krijgen je hoeft er zelf geen mee te brengen.",
"domainPickerFreeDomainsPaidFeature": "Geleverde domeinen zijn een betaalde functie. Abonneer je om een domein bij je plan te krijgen - je hoeft er zelf geen mee te brengen.",
"domainPickerVerified": "Geverifieerd",
"domainPickerUnverified": "Ongeverifieerd",
"domainPickerManual": "Handleiding",
"domainPickerInvalidSubdomainStructure": "Dit subdomein bevat ongeldige tekens of structuur. Het zal automatisch worden gesaneerd wanneer u opslaat.",
"domainPickerInvalidSubdomainStructure": "Ongeldige tekens worden gesaneerd bij het opslaan.",
"domainPickerError": "Foutmelding",
"domainPickerErrorLoadDomains": "Fout bij het laden van organisatiedomeinen",
"domainPickerErrorCheckAvailability": "Kan domein beschikbaarheid niet controleren",
@@ -2136,7 +2508,7 @@
"orgAuthChooseIdpDescription": "Kies uw identiteitsprovider om door te gaan",
"orgAuthNoIdpConfigured": "Deze organisatie heeft geen identiteitsproviders geconfigureerd. Je kunt in plaats daarvan inloggen met je Pangolin-identiteit.",
"orgAuthSignInWithPangolin": "Log in met Pangolin",
"orgAuthSignInToOrg": "Log in bij een organisatie",
"orgAuthSignInToOrg": "Organisatie Identiteitsprovider (SSO)",
"orgAuthSelectOrgTitle": "Organisatie Inloggen",
"orgAuthSelectOrgDescription": "Voer je organisatie-ID in om verder te gaan",
"orgAuthOrgIdPlaceholder": "jouw-organisatie",
@@ -2416,7 +2788,7 @@
"action": "actie",
"actor": "Acteur",
"timestamp": "Artikeldatering",
"accessLogs": "Authentication Logs",
"accessLogs": "Toegang tot logboek",
"exportCsv": "Exporteren als CSV",
"exportError": "Onbekende fout bij exporteren naar CSV",
"exportCsvTooltip": "Binnen tijdsbereik",
@@ -2429,6 +2801,9 @@
"validPassword": "Geldig wachtwoord",
"validEmail": "Valid email",
"validSSO": "Valid SSO",
"view": "Bekijk",
"configManaged": "Configuratie Beheerd",
"connectedClient": "Verbonden Client",
"resourceBlocked": "Bron geblokkeerd",
"droppedByRule": "Achtergelaten door regel",
"noSessions": "Geen sessies",
@@ -2436,25 +2811,25 @@
"noMoreAuthMethods": "No Valid Auth",
"ip": "IP-adres",
"reason": "Reden",
"requestLogs": "HTTPS Request Logs",
"requestLogs": "HTTP-aanvraaglogboeken",
"requestAnalytics": "Analytics opvragen",
"host": "Hostnaam",
"location": "Locatie",
"actionLogs": "Admin Action Logs",
"sidebarLogsRequest": "HTTPS Request Logs",
"sidebarLogsAccess": "Authentication Logs",
"sidebarLogsAction": "Admin Action Logs",
"actionLogs": "Actie logs",
"sidebarLogsRequest": "HTTP-aanvraaglogboeken",
"sidebarLogsAccess": "Toegang tot logboek",
"sidebarLogsAction": "Actie logs",
"logRetention": "Log bewaring",
"logRetentionDescription": "Beheren hoe lang verschillende soorten logs bewaard worden voor deze organisatie of schakel ze uit",
"requestLogsDescription": "View detailed request logs for HTTPS resources in this organization",
"requestLogsDescription": "Bekijk gedetailleerde verzoeklogboeken voor resources in deze organisatie",
"requestAnalyticsDescription": "Bekijk gedetailleerde request analytics voor resources in deze organisatie",
"logRetentionRequestLabel": "HTTPS Request Log Retention",
"logRetentionRequestLabel": "Bewaring van HTTP-aanvraaglogboeken",
"logRetentionRequestDescription": "Hoe lang de aanvraaglogboeken te behouden",
"logRetentionAccessLabel": "Authentication Log Retention",
"logRetentionAccessLabel": "Toegang logboek bewaring",
"logRetentionAccessDescription": "Hoe lang de toegangslogboeken behouden blijven",
"logRetentionActionLabel": "Admin Action Log Retention",
"logRetentionActionLabel": "Actie log bewaring",
"logRetentionActionDescription": "Hoe lang de action logs behouden moeten blijven",
"logRetentionConnectionLabel": "Network Log Retention",
"logRetentionConnectionLabel": "Connectie log bewaring",
"logRetentionConnectionDescription": "Hoe lang de verbindingslogs onderhouden",
"logRetentionDisabled": "Uitgeschakeld",
"logRetention3Days": "3 dagen",
@@ -2466,10 +2841,10 @@
"logRetentionEndOfFollowingYear": "Einde van volgend jaar",
"actionLogsDescription": "Bekijk een geschiedenis van acties die worden uitgevoerd in deze organisatie",
"accessLogsDescription": "Toegangsverificatieverzoeken voor resources in deze organisatie bekijken",
"connectionLogs": "Network Logs",
"connectionLogsDescription": "View network session logs handled by sites in this organization",
"sidebarLogsConnection": "Network Logs",
"sidebarLogsStreaming": "Event Streaming",
"connectionLogs": "Connectie Logs",
"connectionLogsDescription": "Toon verbindingslogs voor tunnels in deze organisatie",
"sidebarLogsConnection": "Connectie Logs",
"sidebarLogsStreaming": "Streamen",
"sourceAddress": "Bron adres",
"destinationAddress": "Adres bestemming",
"duration": "Duur",
@@ -2667,7 +3042,13 @@
"editInternalResourceDialogAddClients": "Clienten toevoegen",
"editInternalResourceDialogDestinationLabel": "Bestemming",
"editInternalResourceDialogDestinationDescription": "Specificeer het bestemmingsadres voor de interne bron. Dit kan een hostnaam, IP-adres of CIDR-bereik zijn, afhankelijk van de geselecteerde modus. Stel optioneel een interne DNS-alias in voor eenvoudigere identificatie.",
"internalResourceFormMultiSiteRoutingHelp": "Selecteren van meerdere sites maakt veerkrachtige routing en failover mogelijk voor hoge beschikbaarheid.",
"internalResourceFormMultiSiteRoutingHelpLearnMore": "Meer informatie",
"editInternalResourceDialogPortRestrictionsDescription": "Beperk toegang tot specifieke TCP/UDP-poorten of sta alle poorten toe/blokkeer.",
"createInternalResourceDialogHttpConfiguration": "HTTP-configuratie",
"createInternalResourceDialogHttpConfigurationDescription": "Kies het domein dat cliënten zullen gebruiken om deze bron via HTTP of HTTPS te bereiken.",
"editInternalResourceDialogHttpConfiguration": "HTTP-configuratie",
"editInternalResourceDialogHttpConfigurationDescription": "Kies het domein dat cliënten zullen gebruiken om deze bron via HTTP of HTTPS te bereiken.",
"editInternalResourceDialogTcp": "TCP",
"editInternalResourceDialogUdp": "UDP",
"editInternalResourceDialogIcmp": "ICMP",
@@ -2689,7 +3070,7 @@
"learnMore": "Meer informatie",
"backToHome": "Ga terug naar startpagina",
"needToSignInToOrg": "Moet u de identiteit provider van uw organisatie gebruiken?",
"maintenanceMode": "Onderhoudsmodus",
"maintenanceMode": "Onderhoudspagina",
"maintenanceModeDescription": "Toon een onderhoudspagina aan bezoekers",
"maintenanceModeType": "Type onderhoudsmodus",
"showMaintenancePage": "Toon een onderhoudspagina aan bezoekers",
@@ -2706,6 +3087,9 @@
"maintenancePageMessagePlaceholder": "We keren snel terug! Onze site ondergaat momenteel gepland onderhoud.",
"maintenancePageMessageDescription": "Gedetailleerd bericht dat het onderhoud uitlegt",
"maintenancePageTimeTitle": "Geschatte voltooiingstijd (optioneel)",
"privateMaintenanceScreenTitle": "Privéscherm maintenance screen",
"privateMaintenanceScreenMessage": "Dit domein wordt gebruikt op een privébron. Verbind met de Pangolin client om toegang te krijgen tot deze bron.",
"privateMaintenanceScreenSteps": "Eenmaal verbonden, als u dit bericht nog steeds ziet, kan het DNS-cache van uw browser nog steeds naar het oude adres wijzen. Om dit te corrigeren: sluit en heropen dit tabblad, of uw browser, dan navigeer weer naar deze pagina.",
"maintenanceTime": "bijv. 2 uur, 1 nov om 17:00",
"maintenanceEstimatedTimeDescription": "Wanneer u verwacht dat het onderhoud voltooid is",
"editDomain": "Domein bewerken",
@@ -2716,6 +3100,7 @@
"maintenanceScreenEstimatedCompletion": "Geschatte voltooiing:",
"createInternalResourceDialogDestinationRequired": "Bestemming is vereist",
"available": "Beschikbaar",
"disabledResourceDescription": "Wanneer uitgeschakeld, zal de bron voor iedereen ontoegankelijk zijn.",
"archived": "Gearchiveerd",
"noArchivedDevices": "Geen gearchiveerde apparaten gevonden",
"deviceArchived": "Apparaat gearchiveerd",
@@ -2829,7 +3214,7 @@
"streamingDatadogTitle": "Datadog",
"streamingDatadogDescription": "Stuur gebeurtenissen rechtstreeks door naar je Datadog account. Binnenkort beschikbaar.",
"streamingTypePickerDescription": "Kies een bestemmingstype om te beginnen.",
"streamingFailedToLoad": "Laden van bestemmingen mislukt",
"streamingLastSyncError": "Er is een fout opgetreden bij de laatste synchronisatie",
"streamingUnexpectedError": "Er is een onverwachte fout opgetreden.",
"streamingFailedToUpdate": "Bijwerken bestemming mislukt",
"streamingDeletedSuccess": "Bestemming succesvol verwijderd",
@@ -2843,6 +3228,41 @@
"httpDestAddTitle": "Voeg HTTP bestemming toe",
"httpDestEditDescription": "Werk de configuratie voor deze HTTP-event streaming bestemming bij.",
"httpDestAddDescription": "Configureer een nieuw HTTP-eindpunt om de gebeurtenissen van uw organisatie te ontvangen.",
"S3DestEditTitle": "Bestemming bewerken",
"S3DestAddTitle": "S3-bestemming toevoegen",
"S3DestEditDescription": "Werk de configuratie bij voor deze S3-gebeurtenisstreamingbestemming.",
"S3DestAddDescription": "Configureer een nieuwe Amazon S3 (of S3-compatibele) bucket om de gebeurtenissen van uw organisatie te ontvangen.",
"s3DestTabSettings": "Instellingen",
"s3DestTabFormat": "Formaat",
"s3DestNameLabel": "Naam",
"s3DestNamePlaceholder": "Mijn S3-bestemming",
"s3DestAccessKeyIdLabel": "AWS-toegangssleutel-ID",
"s3DestSecretAccessKeyLabel": "AWS Geheime Toegangssleutel",
"s3DestSecretAccessKeyPlaceholder": "Uw AWS geheime toegangssleutel",
"s3DestRegionLabel": "AWS-regio",
"s3DestBucketLabel": "Bucketnaam",
"s3DestPrefixLabel": "Sleutelvoorvoegsel (optioneel)",
"s3DestPrefixDescription": "Optioneel padvoorvoegsel dat aan elke object sleutel wordt toegevoegd. Objecten worden opgeslagen op {prefix}/{logType}/{YYYY}/{MM}/{DD}/{filename}.",
"s3DestEndpointLabel": "Aangepast Eindpunt (optioneel)",
"s3DestEndpointDescription": "Overschrijf het S3-eindpunt voor S3-compatibele opslag zoals MinIO of Cloudflare R2. Laat leeg voor standaard AWS S3.",
"s3DestGzipLabel": "Gzip-compressie",
"s3DestGzipDescription": "Comprimeer elk geüpload object met gzip. Verlaagt opslagkosten en uploadgrootte.",
"s3DestFormatTitle": "Bestandsformaat",
"s3DestFormatDescription": "Hoe gebeurtenissen binnen elk geüpload object worden geserialiseerd.",
"s3DestFormatJsonArrayDescription": "Elk object is een JSON-array van gebeurtenisrecords. Compatibel met de meeste analysetools.",
"s3DestFormatNdjsonDescription": "Elk object bevat één JSON-record per regel (nieuwregel-gescheiden JSON). Compatibel met Athena, BigQuery en Spark.",
"s3DestFormatCsvTitle": "CSV",
"s3DestFormatCsvDescription": "Elk object is een RFC-4180 CSV-bestand met een kopregel. Kolomnamen zijn afgeleid van de gebeurtenis gegevensvelden.",
"s3DestSaveChanges": "Wijzigingen opslaan",
"s3DestCreateDestination": "Bestemming maken",
"s3DestUpdatedSuccess": "Bestemming succesvol bijgewerkt",
"s3DestCreatedSuccess": "Bestemming succesvol gecreëerd",
"s3DestUpdateFailed": "Bijwerken bestemming mislukt",
"s3DestCreateFailed": "Aanmaken bestemming mislukt",
"datadogDestEditTitle": "Bestemming bewerken",
"datadogDestAddTitle": "Datadog-bestemming toevoegen",
"datadogDestEditDescription": "Werk de configuratie bij voor deze Datadog-gebeurtenisstreamingbestemming.",
"datadogDestAddDescription": "Configureer een nieuw Datadog-eindpunt om de gebeurtenissen van uw organisatie te ontvangen.",
"httpDestTabSettings": "Instellingen",
"httpDestTabHeaders": "Kopteksten",
"httpDestTabBody": "Lichaam",
@@ -2887,13 +3307,13 @@
"httpDestFormatSingleDescription": "Stuurt een aparte HTTP POST voor elk individueel event. Gebruik alleen voor eindpunten die geen batches kunnen verwerken.",
"httpDestLogTypesTitle": "Log soorten",
"httpDestLogTypesDescription": "Kies welke log types doorgestuurd worden naar deze bestemming. Alleen ingeschakelde log types worden gestreden.",
"httpDestAccessLogsTitle": "Authentication Logs",
"httpDestAccessLogsTitle": "Toegang tot logboek",
"httpDestAccessLogsDescription": "Hulpbrontoegangspogingen, inclusief geauthenticeerde en weigerde aanvragen.",
"httpDestActionLogsTitle": "Admin Action Logs",
"httpDestActionLogsTitle": "Actie logs",
"httpDestActionLogsDescription": "Administratieve acties uitgevoerd door gebruikers binnen de organisatie.",
"httpDestConnectionLogsTitle": "Network Logs",
"httpDestConnectionLogsTitle": "Connectie Logs",
"httpDestConnectionLogsDescription": "Verbinding met de Site en tunnel maken verbroken, inclusief verbindingen en verbindingen.",
"httpDestRequestLogsTitle": "HTTPS Request Logs",
"httpDestRequestLogsTitle": "HTTP-aanvraaglogboeken",
"httpDestRequestLogsDescription": "HTTP request logs voor proxied hulpmiddelen, waaronder methode, pad en response code.",
"httpDestSaveChanges": "Wijzigingen opslaan",
"httpDestCreateDestination": "Maak bestemming aan",
@@ -2901,6 +3321,18 @@
"httpDestCreatedSuccess": "Bestemming succesvol aangemaakt",
"httpDestUpdateFailed": "Bijwerken bestemming mislukt",
"httpDestCreateFailed": "Aanmaken bestemming mislukt",
"followRedirects": "Volg omleidingen",
"followRedirectsDescription": "Volg automatisch HTTP-omleidingen voor verzoeken.",
"alertingErrorWebhookUrl": "Voer een geldige URL voor de webhook in.",
"healthCheckStrategyHttp": "Valideert connectiviteit en controleert de HTTP-responsstatus.",
"healthCheckStrategyTcp": "Verifieert alleen TCP-connectiviteit zonder de respons te inspecteren.",
"healthCheckStrategySnmp": "Maakt een SNMP-verzoek om de gezondheid van netwerkapparaten en infrastructuur te controleren.",
"healthCheckStrategyIcmp": "Gebruikt ICMP-verzoeken (pings) om te controleren of een bron bereikbaar en responsief is.",
"healthCheckTabStrategy": "Strategie",
"healthCheckTabConnection": "Verbinding",
"healthCheckTabAdvanced": "Geavanceerd",
"healthCheckStrategyNotAvailable": "Deze strategie is niet beschikbaar. Neem contact op met sales om deze functie in te schakelen.",
"uptime30d": "Beschikbaarheid (30d)",
"idpAddActionCreateNew": "Nieuwe identiteitsprovider aanmaken",
"idpAddActionImportFromOrg": "Importeer vanuit een andere organisatie",
"idpImportDialogTitle": "Importeer Identiteitsprovider",
@@ -2918,5 +3350,107 @@
"idpUnassociatedDescription": "Identiteitsprovider succesvol losgekoppeld van deze organisatie",
"idpUnassociateMenu": "Ontkoppelen",
"idpDeleteAllOrgsMenu": "Verwijderen",
"publicIpEndpoint": "Endpoint"
"publicIpEndpoint": "Eindpunt",
"lastTriggeredAt": "Laatste Trigger",
"reject": "Afwijzen",
"uptimeDaysAgo": "{count} dagen geleden",
"uptimeToday": "Vandaag",
"uptimeNoDataAvailable": "Geen gegevens beschikbaar",
"uptimeSuffix": "werktijd",
"uptimeDowntimeSuffix": "uitvaltijd",
"uptimeTooltipUptimeLabel": "Werktijd",
"uptimeTooltipDowntimeLabel": "Uitvaltijd",
"uptimeOngoing": "lopend",
"uptimeNoMonitoringData": "Geen monitoringgegevens",
"uptimeNoData": "Geen gegevens",
"uptimeMiniBarDown": "Onder",
"uptimeSectionTitle": "Werktijd",
"uptimeSectionDescription": "Beschikbaarheid over de laatste {days} dagen",
"uptimeAddAlert": "Alarm toevoegen",
"uptimeViewAlerts": "Meldingen bekijken",
"uptimeCreateEmailAlert": "E-mailalert aanmaken",
"uptimeAlertDescriptionSite": "Ontvang een e-mailbericht wanneer deze site offline gaat of weer online komt.",
"uptimeAlertDescriptionResource": "Ontvang een e-mailbericht wanneer deze bron offline gaat of weer online komt.",
"uptimeAlertNamePlaceholder": "Waarschuwingsnaam",
"uptimeAdditionalEmails": "Extra e-mails",
"uptimeCreateAlert": "Alarm aanmaken",
"uptimeAlertNoRecipients": "Geen ontvangers",
"uptimeAlertNoRecipientsDescription": "Voeg ten minste één gebruiker, rol of e-mail toe om te melden.",
"uptimeAlertCreated": "Alarm aangemaakt",
"uptimeAlertCreatedDescription": "U wordt op de hoogte gebracht wanneer dit van status verandert.",
"uptimeAlertCreateFailed": "Kon alarm niet aanmaken",
"webhookUrlLabel": "URL",
"webhookHeaderKeyPlaceholder": "Sleutel",
"webhookHeaderValuePlaceholder": "Waarde",
"alertLabel": "Waarschuwing",
"domainPickerWildcardSubdomainNotAllowed": "Wildcard-subdomeinen zijn niet toegestaan.",
"domainPickerWildcardCertWarning": "Wildcard-bronnen hebben mogelijk extra configuratie nodig om correct te werken.",
"domainPickerWildcardCertWarningLink": "Meer informatie",
"health": "Gezondheid",
"domainPendingErrorTitle": "Verificatieprobleem",
"memberPortalTitle": "Bronnen",
"memberPortalDescription": "Bronnen waartoe je toegang hebt binnen deze organisatie",
"memberPortalSortBy": "Sorteren op...",
"memberPortalSortNameAsc": "Naam A-Z",
"memberPortalSortNameDesc": "Naam Z-A",
"memberPortalSortDomainAsc": "Domein A-Z",
"memberPortalSortDomainDesc": "Domein Z-A",
"memberPortalSortEnabledFirst": "Ingeschakeld Eerst",
"memberPortalSortDisabledFirst": "Uitgeschakeld Eerst",
"memberPortalRefresh": "Vernieuwen",
"memberPortalRefreshResources": "Bronnen Vernieuwen",
"memberPortalFailedToLoad": "Fout bij het laden van bronnen",
"memberPortalFailedToLoadDescription": "Fout bij het laden van bronnen. Controleer uw verbinding en probeer het opnieuw.",
"memberPortalUnableToLoad": "Niet in staat om bronnen te laden",
"memberPortalTryAgain": "Probeer Opnieuw",
"memberPortalNoResourcesFound": "Geen Bronnen Gevonden",
"memberPortalNoResourcesAvailable": "Geen Bronnen Beschikbaar",
"memberPortalNoResourcesMatchSearch": "Geen bronnen komen overeen met \"{query}\". Probeer uw zoektermen aan te passen of wis de zoekopdracht om alle bronnen te zien.",
"memberPortalNoResourcesAccess": "Je hebt nog geen toegang tot bronnen. Neem contact op met je beheerder om toegang te krijgen tot de benodigde bronnen.",
"memberPortalClearSearch": "Zoekopdracht Wissen",
"memberPortalPublicResources": "Publieke Bronnen",
"memberPortalPublicResourcesDescription": "Webapplicaties en services toegankelijk via browser",
"memberPortalCopiedToClipboard": "Gekopieerd naar klembord",
"memberPortalCopiedUrlDescription": "Bron URL is naar uw klembord gekopieerd.",
"memberPortalOpenResource": "Bron Openen",
"memberPortalPrivateResources": "Privé Bronnen",
"memberPortalPrivateResourcesDescription": "Interne netwerkbronnen toegankelijk via client",
"memberPortalResourceDetails": "Bron Details",
"memberPortalMode": "Modus",
"memberPortalDestination": "Bestemming",
"memberPortalAlias": "Alias",
"memberPortalCopiedAliasDescription": "Bron alias is naar uw klembord gekopieerd.",
"memberPortalCopiedDestinationDescription": "Bron bestemming is naar uw klembord gekopieerd.",
"memberPortalRequiresClientConnection": "Clientverbinding Vereist",
"memberPortalAuthMethods": "Authenticatiemethoden",
"memberPortalSso": "Single Sign-On (SSO)",
"memberPortalPasswordProtected": "Wachtwoord Beveiligd",
"memberPortalPinCode": "Pincode",
"memberPortalEmailWhitelist": "E-mail whitelist",
"memberPortalResourceDisabled": "Bron Uitgeschakeld",
"memberPortalShowingResources": "Toont {start}-{end} van {total} bronnen",
"memberPortalPrevious": "Vorige",
"memberPortalNext": "Volgende",
"httpSettings": "HTTP-instellingen",
"tcpSettings": "TCP-instellingen",
"udpSettings": "UDP-instellingen",
"sshTitle": "SSH",
"sshConnectingDescription": "Veilige verbinding tot stand brengen…",
"sshConnecting": "Verbinding maken…",
"sshInitializing": "Initialiseren…",
"sshSignInTitle": "Meld u aan bij SSH",
"sshSignInDescription": "Voer uw SSH-referenties in",
"sshPasswordTab": "Wachtwoord",
"sshPrivateKeyTab": "Privésleutel",
"sshPrivateKeyField": "Privésleutel",
"sshPrivateKeyDisclaimer": "Uw privésleutel wordt niet opgeslagen of zichtbaar gemaakt voor Pangolin. U kunt ook gebruik maken van kortlopende certificaten voor naadloze authenticatie met uw bestaande Pangolin-identiteit.",
"sshLearnMore": "Meer informatie",
"sshPrivateKeyFile": "Bestand met privésleutel",
"sshAuthenticate": "Authenticeren",
"sshTerminate": "Beëindigen",
"sshPoweredBy": "Aangeboden door",
"sshErrorNoTarget": "Geen doelwit gespecificeerd",
"sshErrorWebSocket": "WebSocket-verbinding is mislukt",
"sshErrorAuthFailed": "Authenticatie mislukt",
"sshErrorConnectionClosed": "Verbinding gesloten voordat authenticatie was voltooid"
}
+574 -40
View File
@@ -1,4 +1,8 @@
{
"contactSalesEnable": "Skontaktuj się z działem sprzedaży, aby włączyć tę funkcję.",
"contactSalesBookDemo": "Umów się na demo",
"contactSalesOr": "lub",
"contactSalesContactUs": "skontaktuj się z nami",
"setupCreate": "Utwórz organizację, witrynę i zasoby",
"headerAuthCompatibilityInfo": "Włącz to, aby wymusić odpowiedź Unauthorized 401, gdy brakuje tokena uwierzytelniania. Jest to wymagane dla przeglądarek lub określonych bibliotek HTTP, które nie wysyłają poświadczeń bez wyzwania serwera.",
"headerAuthCompatibility": "Rozszerzona kompatybilność",
@@ -19,6 +23,18 @@
"componentsInvalidKey": "Wykryto nieprawidłowe lub wygasłe klucze licencyjne. Postępuj zgodnie z warunkami licencji, aby kontynuować korzystanie ze wszystkich funkcji.",
"dismiss": "Odrzuć",
"subscriptionViolationMessage": "Nie masz ograniczeń dla aktualnego planu. Popraw problem poprzez usunięcie stron, użytkowników lub innych zasobów, aby pozostać w swoim planie.",
"trialBannerMessage": "Twój okres próbny wygasa za {countdown}. Uaktualnij, aby zachować dostęp.",
"trialBannerExpired": "Twój okres próbny wygasł. Uaktualnij teraz, aby przywrócić dostęp.",
"billingTrialBannerTitle": "Bezpłatna wersja próbna aktywna",
"billingTrialBannerDescription": "Obecnie korzystasz z bezpłatnej wersji próbnej na poziomie biznesowym. Po zakończeniu wersji próbnej, Twoje konto automatycznie powróci do funkcji i limitów poziomu Podstawowego. Możesz dokonać uaktualnienia w każdej chwili, aby zachować dostęp do funkcji obecnego planu.",
"billingTrialBannerUpgrade": "Uaktualnij teraz",
"billingTrialBadge": "Bezpłatna wersja próbna",
"trialActive": "Okres próbny aktywny",
"trialExpired": "Okres próbny wygasł",
"trialHasEnded": "Twój okres próbny dobiegł końca.",
"trialDaysRemaining": "{count, plural, one {# dzień pozostaje} few {# dni pozostają} many {# dni pozostaje} other {# dni pozostają}}",
"trialDaysLeftShort": "Pozostało {days}d próbny",
"trialGoToBilling": "Przejdź do strony rozliczeń",
"subscriptionViolationViewBilling": "Zobacz rozliczenie",
"componentsLicenseViolation": "Naruszenie licencji: Ten serwer używa stron {usedSites} , które przekraczają limit licencyjny stron {maxSites} . Postępuj zgodnie z warunkami licencji, aby kontynuować korzystanie ze wszystkich funkcji.",
"componentsSupporterMessage": "Dziękujemy za wsparcie Pangolina jako {tier}!",
@@ -81,6 +97,8 @@
"siteConfirmCopy": "Skopiowałem konfigurację",
"searchSitesProgress": "Szukaj witryn...",
"siteAdd": "Dodaj witrynę",
"sitesTableViewPublicResources": "Zobacz zasoby publiczne",
"sitesTableViewPrivateResources": "Zobacz zasoby prywatne",
"siteInstallNewt": "Zainstaluj Newt",
"siteInstallNewtDescription": "Uruchom Newt w swoim systemie",
"WgConfiguration": "Konfiguracja WireGuard",
@@ -98,6 +116,21 @@
"siteUpdatedDescription": "Strona została zaktualizowana.",
"siteGeneralDescription": "Skonfiguruj ustawienia ogólne dla tej witryny",
"siteSettingDescription": "Skonfiguruj ustawienia na stronie",
"siteResourcesTab": "Zasoby",
"siteResourcesNoneOnSite": "Ta strona nie ma jeszcze żadnych zasobów publicznych ani prywatnych.",
"siteResourcesSectionPublic": "Zasoby publiczne",
"siteResourcesSectionPrivate": "Zasoby prywatne",
"siteResourcesSectionPublicDescription": "Zasoby eksponowane zewnętrznie przez domeny lub porty.",
"siteResourcesSectionPrivateDescription": "Zasoby dostępne w twojej prywatnej sieci przez stronę.",
"siteResourcesViewAllPublic": "Zobacz wszystkie zasoby",
"siteResourcesViewAllPrivate": "Zobacz wszystkie zasoby",
"siteResourcesDialogDescription": "Przegląd zasobów publicznych i prywatnych związanych z tą stroną.",
"siteResourcesShowMore": "Pokaż więcej",
"siteResourcesPermissionDenied": "Nie masz uprawnień do wyświetlania tych zasobów.",
"siteResourcesEmptyPublic": "Brak publicznych zasobów powiązanych z tą stroną.",
"siteResourcesEmptyPrivate": "Brak prywatnych zasobów powiązanych z tą stroną.",
"siteResourcesHowToAccess": "Jak uzyskać dostęp",
"siteResourcesTargetsOnSite": "Cele na tej stronie",
"siteSetting": "Ustawienia {siteName}",
"siteNewtTunnel": "Newt Site (Rekomendowane)",
"siteNewtTunnelDescription": "Najprostszy sposób na stworzenie punktu wejścia w sieci. Nie ma dodatkowej konfiguracji.",
@@ -123,6 +156,10 @@
"shareErrorDeleteMessage": "Wystąpił błąd podczas usuwania linku",
"shareDeleted": "Link usunięty",
"shareDeletedDescription": "Link został usunięty",
"shareDelete": "Usuń link udostępniania",
"shareDeleteConfirm": "Potwierdź usunięcie linku udostępniania",
"shareQuestionRemove": "Czy na pewno chcesz usunąć ten link udostępniania?",
"shareMessageRemove": "Po usunięciu, link przestanie działać i wszyscy korzystający z niego stracą dostęp do zasobu.",
"shareTokenDescription": "Token dostępu może być przekazywany na dwa sposoby: jako parametr zapytania lub w nagłówkach żądania. Muszą być przekazywane z klienta na każde żądanie uwierzytelnionego dostępu.",
"accessToken": "Token dostępu",
"usageExamples": "Przykłady użycia",
@@ -139,6 +176,7 @@
"shareErrorCreateDescription": "Wystąpił błąd podczas tworzenia linku udostępniania",
"shareCreateDescription": "Każdy z tym linkiem może uzyskać dostęp do zasobu",
"shareTitleOptional": "Tytuł (opcjonalnie)",
"sharePathOptional": "Ścieżka (opcjonalnie)",
"expireIn": "Wygasa za",
"neverExpire": "Nigdy nie wygasa",
"shareExpireDescription": "Czas wygaśnięcia to jak długo link będzie mógł być użyty i zapewni dostęp do zasobu. Po tym czasie link nie będzie już działał, a użytkownicy, którzy użyli tego linku, utracą dostęp do zasobu.",
@@ -163,7 +201,7 @@
"proxyResourceTitle": "Zarządzaj zasobami publicznymi",
"proxyResourceDescription": "Twórz i zarządzaj zasobami, które są publicznie dostępne w przeglądarce internetowej",
"proxyResourcesBannerTitle": "Publiczny dostęp za pośrednictwem sieci Web",
"proxyResourcesBannerDescription": "Public resources are HTTPS proxies accessible to anyone on the internet through a web browser. Unlike private resources, they do not require client-side software and can include identity and context-aware access policies.",
"proxyResourcesBannerDescription": "Zasoby publiczne to proxy HTTPS lub TCP/UDP dostępne dla każdego w internecie za pośrednictwem przeglądarki internetowej. W przeciwieństwie do zasobów prywatnych, nie wymagają oprogramowania po stronie klienta i mogą obejmować polityki dostępu świadome tożsamości i kontekstu.",
"clientResourceTitle": "Zarządzaj zasobami prywatnymi",
"clientResourceDescription": "Twórz i zarządzaj zasobami, które są dostępne tylko za pośrednictwem połączonego klienta",
"privateResourcesBannerTitle": "Zero zaufania do prywatnego dostępu",
@@ -171,11 +209,33 @@
"resourcesSearch": "Szukaj zasobów...",
"resourceAdd": "Dodaj zasób",
"resourceErrorDelte": "Błąd podczas usuwania zasobu",
"resourcePoliciesTitle": "Zarządzaj politykami zasobów",
"resourcePoliciesAttachedResourcesColumnTitle": "Dołączone zasoby",
"resourcePoliciesAttachedResources": "{count} zasób(y)",
"resourcePoliciesAttachedResourcesEmpty": "brak zasobów",
"resourcePoliciesDescription": "Twórz i zarządzaj politykami uwierzytelniania, aby kontrolować dostęp do swoich zasobów",
"resourcePoliciesSearch": "Szukaj polityk...",
"resourcePoliciesAdd": "Dodaj politykę",
"resourcePoliciesDefaultBadgeText": "Domyślna polityka",
"resourcePoliciesCreate": "Utwórz politykę zasobu",
"resourcePoliciesCreateDescription": "Wykonaj poniższe kroki, aby utworzyć nową politykę",
"resourcePolicyName": "Nazwa polityki",
"resourcePolicyNameDescription": "Nadaj tej polityce nazwę, aby można ją było zidentyfikować w całych zasobach",
"resourcePolicyNamePlaceholder": "np. Polityka Dostępu Wewnętrznego",
"resourcePoliciesSeeAll": "Zobacz wszystkie polityki",
"resourcePolicyAuthMethodAdd": "Dodaj metodę uwierzytelniania",
"resourcePolicyOtpEmailAdd": "Dodaj OTP e-maile",
"resourcePolicyRulesAdd": "Dodaj zasady",
"resourcePolicyAuthMethodsDescription": "Zezwól na dostęp do zasobu poprzez dodatkowe metody uwierzytelniania",
"resourcePolicyUsersRolesDescription": "Skonfiguruj, którzy użytkownicy i role mogą odwiedzać powiązane zasoby",
"rulesResourcePolicyDescription": "Skonfiguruj zasady, aby kontrolować zasoby dostępne w ramach tej polityki",
"authentication": "Uwierzytelnianie",
"protected": "Chronione",
"notProtected": "Niechronione",
"resourceMessageRemove": "Po usunięciu zasób nie będzie już dostępny. Wszystkie cele związane z zasobem zostaną również usunięte.",
"resourceQuestionRemove": "Czy na pewno chcesz usunąć zasób z organizacji?",
"resourcePolicyMessageRemove": "Po usunięciu polityka zasobów nie będzie już dostępna. Wszystkie zasoby połączone z zasobem zostaną odłączone i pozostawione bez uwierzytelniania.",
"resourcePolicyQuestionRemove": "Czy na pewno chcesz usunąć politykę zasobu z organizacji?",
"resourceHTTP": "Zasób HTTPS",
"resourceHTTPDescription": "Proxy zapytań przez HTTPS przy użyciu w pełni kwalifikowanej nazwy domeny.",
"resourceRaw": "Surowy zasób TCP/UDP",
@@ -183,8 +243,9 @@
"resourceRawDescriptionCloud": "Żądania proxy nad surowym TCP/UDP przy użyciu numeru portu. Wymaga stron aby połączyć się ze zdalnym węzłem.",
"resourceCreate": "Utwórz zasób",
"resourceCreateDescription": "Wykonaj poniższe kroki, aby utworzyć nowy zasób",
"resourceCreateGeneralDescription": "Skonfiguruj podstawowe ustawienia zasobu, w tym nazwę i typ",
"resourceSeeAll": "Zobacz wszystkie zasoby",
"resourceInfo": "Informacje o zasobach",
"resourceCreateGeneral": "Ogólny",
"resourceNameDescription": "To jest wyświetlana nazwa zasobu.",
"siteSelect": "Wybierz witrynę",
"siteSearch": "Szukaj witryny",
@@ -194,12 +255,15 @@
"noCountryFound": "Nie znaleziono kraju.",
"siteSelectionDescription": "Ta strona zapewni połączenie z celem.",
"resourceType": "Typ zasobu",
"resourceTypeDescription": "Określ jak uzyskać dostęp do zasobu",
"resourceTypeDescription": "To kontroluje protokół zasobu i sposób jego renderowania w przeglądarce. Później nie można tego zmienić.",
"resourceDomainDescription": "Zasób będzie udostępniany pod tym w pełni kwalifikowanym adresem domenowym.",
"resourceHTTPSSettings": "Ustawienia HTTPS",
"resourceHTTPSSettingsDescription": "Skonfiguruj jak zasób będzie dostępny przez HTTPS",
"resourcePortDescription": "Zewnętrzny port na instancji lub węźle Pangolina, gdzie zasób będzie dostępny.",
"domainType": "Typ domeny",
"subdomain": "Poddomena",
"baseDomain": "Bazowa domena",
"configure": "Konfiguracja",
"subdomnainDescription": "Poddomena, w której zasób będzie dostępny.",
"resourceRawSettings": "Ustawienia TCP/UDP",
"resourceRawSettingsDescription": "Skonfiguruj jak zasób będzie dostępny przez TCP/UDP",
@@ -216,8 +280,27 @@
"resourceLearnRaw": "Dowiedz się, jak skonfigurować zasoby TCP/UDP",
"resourceBack": "Powrót do zasobów",
"resourceGoTo": "Przejdź do zasobu",
"resourcePolicyDelete": "Usuń politykę zasobu",
"resourcePolicyDeleteConfirm": "Potwierdź usunięcie polityki zasobu",
"resourceDelete": "Usuń zasób",
"resourceDeleteConfirm": "Potwierdź usunięcie zasobu",
"labelDelete": "Usuń etykietę",
"labelAdd": "Dodaj etykietę",
"labelCreateSuccessMessage": "Etykieta została utworzona pomyślnie",
"labelEditSuccessMessage": "Etykieta została pomyślnie zmodyfikowana",
"labelNameField": "Nazwa etykiety",
"labelColorField": "Kolor etykiety",
"labelPlaceholder": "Np.: homelab",
"labelCreate": "Utwórz etykietę",
"createLabelDialogTitle": "Utwórz etykietę",
"createLabelDialogDescription": "Utwórz nową etykietę, która może być przypisana do tej organizacji",
"labelEdit": "Edytuj etykietę",
"editLabelDialogTitle": "Aktualizuj etykietę",
"editLabelDialogDescription": "Edytuj nową etykietę, która może być przypisana do tej organizacji",
"labelDeleteConfirm": "Potwierdź usunięcie etykiety",
"labelErrorDelete": "Nie udało się usunąć etykiety",
"labelMessageRemove": "To działanie jest nieodwracalne. Wszystkie strony, zasoby i klienci oznaczeni tą etykietą zostaną odznaczeni.",
"labelQuestionRemove": "Czy na pewno chcesz usunąć etykietę z organizacji?",
"visibility": "Widoczność",
"enabled": "Włączone",
"disabled": "Wyłączone",
@@ -228,6 +311,8 @@
"rules": "Regulamin",
"resourceSettingDescription": "Skonfiguruj ustawienia zasobu",
"resourceSetting": "Ustawienia {resourceName}",
"resourcePolicySettingDescription": "Skonfiguruj ustawienia w polityce zasobów",
"resourcePolicySetting": "Ustawienia {policyName}",
"alwaysAllow": "Omijanie uwierzytelniania",
"alwaysDeny": "Blokuj dostęp",
"passToAuth": "Przekaż do Autoryzacji",
@@ -267,8 +352,11 @@
"orgMissing": "Brak ID organizacji",
"orgMissingMessage": "Nie można ponownie wygenerować zaproszenia bez ID organizacji.",
"accessUsersManage": "Zarządzaj użytkownikami",
"accessUserManage": "Zarządzaj użytkownikiem",
"accessUsersDescription": "Zaproś użytkowników z dostępem do tej organizacji i zarządzaj nimi",
"accessUsersSearch": "Szukaj użytkowników...",
"accessUsersRoleFilterCount": "{count, plural, one {# rola} few {# role} many {# ról} other {# ról}}",
"accessUsersRoleFilterClear": "Wyczyść filtry ról",
"accessUserCreate": "Utwórz użytkownika",
"accessUserRemove": "Usuń użytkownika",
"username": "Nazwa użytkownika",
@@ -380,7 +468,7 @@
"userTitle": "Zarządzaj wszystkimi użytkownikami",
"userDescription": "Zobacz i zarządzaj wszystkimi użytkownikami w systemie",
"userAbount": "O zarządzaniu użytkownikami",
"userAbountDescription": "This table displays all base user objects in the system. Each user may belong to multiple organizations. Removing a user from an organization does not delete their base user object. They will remain in the system. To completely remove a user from the system, you must delete their base user object using the delete action in this table.",
"userAbountDescription": "Ta tabela wyświetla wszystkie obiekty użytkownika root w systemie. Każdy użytkownik może należeć do wielu organizacji. Usunięcie użytkownika z organizacji nie usuwa ich głównego obiektu użytkownika - pozostanie on w systemie. Aby całkowicie usunąć użytkownika z systemu, musisz usunąć jego obiekt root użytkownika za pomocą akcji usuwania z tej tabeli.",
"userServer": "Użytkownicy serwera",
"userSearch": "Szukaj użytkowników serwera...",
"userErrorDelete": "Błąd podczas usuwania użytkownika",
@@ -487,6 +575,12 @@
"userMessageOrgRemove": "Po usunięciu ten użytkownik nie będzie miał już dostępu do organizacji. Zawsze możesz ponownie go zaprosić później, ale będzie musiał ponownie zaakceptować zaproszenie.",
"userRemoveOrgConfirm": "Potwierdź usunięcie użytkownika",
"userRemoveOrg": "Usuń użytkownika z organizacji",
"userQuestionOrgRemoveSelf": "Czy na pewno chcesz usunąć się z tej organizacji?",
"userMessageOrgRemoveSelf": "Stracisz dostęp natychmiastowo. Administrator może cię ponownie zaprosić, ale będziesz musiał przyjąć nowe zaproszenie.",
"userRemoveOrgConfirmSelf": "Potwierdź usunięcie siebie",
"userRemoveOrgSelf": "Usuń siebie z organizacji",
"userRemoveOrgSelfWarning": "Natychmiast stracisz dostęp do tej organizacji.",
"userRemoveOrgConfirmPhraseSelf": "USUŃ SIEBIE Z ORGANIZACJI",
"users": "Użytkownicy",
"accessRoleMember": "Członek",
"accessRoleOwner": "Właściciel",
@@ -495,6 +589,11 @@
"emailInvalid": "Nieprawidłowy adres e-mail",
"inviteValidityDuration": "Proszę wybrać okres ważności",
"accessRoleSelectPlease": "Proszę wybrać rolę",
"removeOwnAdminRoleConfirmTitle": "Usunąć dostęp administratora?",
"removeOwnAdminRoleConfirmDescription": "Po zapisaniu nie będziesz już posiadał uprawnień administratora w tej organizacji. Inny administrator może przywrócić dostęp, jeśli to konieczne.",
"removeOwnAdminRoleConfirmButton": "Usuń mój dostęp administratora",
"removeOwnAdminRoleConfirmPhrase": "USUŃ MÓJ DOSTĘP ADMINISTRATORA",
"ownerMustRetainAdminRole": "Właściciel organizacji musi zachować co najmniej jedną rolę administratora.",
"usernameRequired": "Nazwa użytkownika jest wymagana",
"idpSelectPlease": "Proszę wybrać dostawcę tożsamości",
"idpGenericOidc": "Ogólny dostawca OAuth2/OIDC.",
@@ -523,7 +622,7 @@
"userSettings": "Informacje o użytkowniku",
"userSettingsDescription": "Wprowadź dane nowego użytkownika",
"inviteEmailSent": "Wyślij email z zaproszeniem do użytkownika",
"inviteValid": "Invite Valid For (days)",
"inviteValid": "Ważne przez",
"selectDuration": "Wybierz okres",
"selectResource": "Wybierz zasób",
"filterByResource": "Filtruj według zasobów",
@@ -579,7 +678,7 @@
"createdAt": "Utworzono",
"proxyErrorInvalidHeader": "Nieprawidłowa wartość niestandardowego nagłówka hosta. Użyj formatu nazwy domeny lub zapisz pusty, aby usunąć niestandardowy nagłówek hosta.",
"proxyErrorTls": "Nieprawidłowa nazwa serwera TLS. Użyj formatu nazwy domeny lub zapisz pusty, aby usunąć nazwę serwera TLS.",
"proxyEnableSSL": "Włącz SSL",
"proxyEnableSSL": "Włącz TLS",
"proxyEnableSSLDescription": "Włącz szyfrowanie SSL/TLS dla bezpiecznych połączeń HTTPS z celami.",
"target": "Target",
"configureTarget": "Konfiguruj Targety",
@@ -622,6 +721,7 @@
"targetNoOneDescription": "Dodanie więcej niż jednego celu powyżej włączy równoważenie obciążenia.",
"targetsSubmit": "Zapisz cele",
"addTarget": "Dodaj cel",
"proxyMultiSiteRoundRobinNodeHelp": "Trasowanie round-robin nie będzie działać między witrynami, które nie są połączone z tym samym węzłem, ale przełączanie awaryjne będzie działać.",
"targetErrorInvalidIp": "Nieprawidłowy adres IP",
"targetErrorInvalidIpDescription": "Wprowadź prawidłowy adres IP lub nazwę hosta",
"targetErrorInvalidPort": "Nieprawidłowy port",
@@ -695,6 +795,16 @@
"rulesNoOne": "Brak reguł. Dodaj regułę używając formularza.",
"rulesOrder": "Reguły są oceniane według priorytetu w kolejności rosnącej.",
"rulesSubmit": "Zapisz reguły",
"policyErrorCreate": "Błąd przy tworzeniu polityki",
"policyErrorCreateDescription": "Wystąpił błąd podczas tworzenia polityki",
"policyErrorCreateMessageDescription": "Wystąpił nieoczekiwany błąd",
"policyErrorUpdate": "Błąd przy aktualizacji polityki",
"policyErrorUpdateDescription": "Wystąpił błąd podczas aktualizacji polityki",
"policyErrorUpdateMessageDescription": "Wystąpił nieoczekiwany błąd",
"policyCreatedSuccess": "Polityka zasobów została pomyślnie utworzona",
"policyUpdatedSuccess": "Polityka zasobów została pomyślnie zaktualizowana",
"authMethodsSave": "Zapisz metody uwierzytelniania",
"rulesSave": "Zapisz zasady",
"resourceErrorCreate": "Błąd podczas tworzenia zasobu",
"resourceErrorCreateDescription": "Wystąpił błąd podczas tworzenia zasobu",
"resourceErrorCreateMessage": "Błąd podczas tworzenia zasobu:",
@@ -731,6 +841,7 @@
"newtEndpoint": "Endpoint",
"newtId": "ID",
"newtSecretKey": "Sekret",
"newtVersion": "Wersja",
"architecture": "Architektura",
"sites": "Witryny",
"siteWgAnyClients": "Użyj dowolnego klienta WireGuard, aby się połączyć. Będziesz musiał przekierować wewnętrzne zasoby za pomocą adresu IP.",
@@ -757,6 +868,17 @@
"pincodeAdd": "Dodaj kod PIN",
"pincodeRemove": "Usuń kod PIN",
"resourceAuthMethods": "Metody uwierzytelniania",
"resourcePolicyAuthMethodsEmpty": "Brak metody uwierzytelniania",
"resourcePolicyOtpEmpty": "Brak jednorazowego hasła",
"resourcePolicyReadOnly": "Ta polityka jest tylko do odczytu",
"resourcePolicyReadOnlyDescription": "Ta polityka zasobów jest dzielona pomiędzy wieloma zasobami, nie możesz jej edytować na tej stronie.",
"editSharedPolicy": "Edytuj Dzieleną Politykę",
"resourcePolicyTypeSave": "Zapisz typ zasobu",
"resourcePolicySelect": "Wybierz politykę zasobów",
"resourcePolicySelectError": "Wybierz politykę zasobów",
"resourcePolicyNotFound": "Nie znaleziono polityki",
"resourcePolicySearch": "Szukaj polityki",
"resourcePolicyRulesEmpty": "Brak zasad uwierzytelniania",
"resourceAuthMethodsDescriptions": "Zezwól na dostęp do zasobu przez dodatkowe metody uwierzytelniania",
"resourceAuthSettingsSave": "Zapisano pomyślnie",
"resourceAuthSettingsSaveDescription": "Ustawienia uwierzytelniania zostały zapisane",
@@ -792,6 +914,12 @@
"resourcePincodeSetupTitle": "Ustaw kod PIN",
"resourcePincodeSetupTitleDescription": "Ustaw kod PIN, aby chronić ten zasób",
"resourceRoleDescription": "Administratorzy zawsze mają dostęp do tego zasobu.",
"resourcePolicySelectTitle": "Polityka dostępu do zasobów",
"resourcePolicySelectDescription": "Wybierz typ polityki zasobów do uwierzytelniania",
"resourcePolicyInline": "Warunkowa polityka zasobów",
"resourcePolicyInlineDescription": "Polityka dostępu tylko do tego zasobu",
"resourcePolicyShared": "Dzielona polityka zasobów",
"resourcePolicySharedDescription": "Ten zasób korzysta z dzielonej polityki. Ustawienia na poziomie polityki (metody uwierzytelniania, biała lista e-maili) są zablokowane. Możesz dodać zasady specyficzne dla zasobów, role i użytkowników poniżej.",
"resourceUsersRoles": "Kontrola dostępu",
"resourceUsersRolesDescription": "Skonfiguruj, którzy użytkownicy i role mogą odwiedzać ten zasób",
"resourceUsersRolesSubmit": "Zapisz kontrole dostępu",
@@ -1087,6 +1215,18 @@
"idpErrorConnectingTo": "Wystąpił problem z połączeniem z {name}. Skontaktuj się z administratorem.",
"idpErrorNotFound": "Nie znaleziono IdP",
"inviteInvalid": "Nieprawidłowe zaproszenie",
"labels": "Etykiety",
"orgLabelsDescription": "Zarządzaj etykietami w tej organizacji.",
"addLabels": "Dodaj etykiety",
"siteLabelsTab": "Etykiety",
"siteLabelsDescription": "Zarządzaj etykietami powiązanymi z tą stroną.",
"labelsNotFound": "Nie znaleziono etykiet",
"labelSearch": "Szukaj etykiet",
"accessLabelFilterCount": "{count, plural, one {# etykieta} few {# etykiety} many {# etykiet} other {# etykiet}}",
"labelOverflowCount": "+{count, plural, one {# etykieta} few {# etykiety} many {# etykiet} other {# etykiet}}",
"accessLabelFilterClear": "Wyczyść filtry etykiet",
"selectColor": "Wybierz kolor",
"createNewLabel": "Utwórz nową etykietę org \"{label}\"",
"inviteInvalidDescription": "Link zapraszający jest nieprawidłowy.",
"inviteErrorWrongUser": "Zaproszenie nie jest dla tego użytkownika",
"inviteErrorUserNotExists": "Użytkownik nie istnieje. Najpierw utwórz konto.",
@@ -1257,6 +1397,7 @@
"actionViewLogs": "Zobacz dzienniki",
"noneSelected": "Nie wybrano",
"orgNotFound2": "Nie znaleziono organizacji.",
"search": "Szukaj…",
"searchPlaceholder": "Szukaj...",
"emptySearchOptions": "Nie znaleziono opcji",
"create": "Utwórz",
@@ -1320,6 +1461,8 @@
"sidebarResources": "Zasoby",
"sidebarProxyResources": "Publiczne",
"sidebarClientResources": "Prywatny",
"sidebarPolicies": "Polityki",
"sidebarResourcePolicies": "Zasoby",
"sidebarAccessControl": "Kontrola dostępu",
"sidebarLogsAndAnalytics": "Logi i Analityki",
"sidebarTeam": "Drużyna",
@@ -1341,12 +1484,170 @@
"sidebarGeneral": "Zarządzaj",
"sidebarLogAndAnalytics": "Dziennik & Analityka",
"sidebarBluePrints": "Schematy",
"sidebarAlerting": "Alarmowanie",
"sidebarHealthChecks": "Kontrole zdrowia",
"sidebarOrganization": "Organizacja",
"sidebarManagement": "Zarządzanie",
"sidebarBillingAndLicenses": "Płatność i licencje",
"sidebarLogsAnalytics": "Analityka",
"alertingTitle": "Alarmowanie",
"alertingDescription": "Zdefiniuj źródła, ustawienia, i działania dla powiadomień",
"alertingRules": "Reguły alarmowe",
"alertingSearchRules": "Szukaj reguł…",
"alertingAddRule": "Utwórz Regułę",
"alertingColumnSource": "Źródło",
"alertingColumnTrigger": "Ustawienie",
"alertingColumnActions": "Akcje",
"alertingColumnEnabled": "Włączone",
"alertingDeleteQuestion": "Potwierdź, że chcesz usunąć tę regułę alarmową.",
"alertingDeleteRule": "Usuń regułę alarmową",
"alertingRuleDeleted": "Reguła alarmowa usunięta",
"alertingRuleSaved": "Reguła alarmowa zapisana",
"alertingRuleSavedCreatedDescription": "Nowa reguła alarmowa została utworzona. Możesz ją kontynuować edytować na tej stronie.",
"alertingRuleSavedUpdatedDescription": "Twoje zmiany w tej regule alarmowej zostały zapisane.",
"alertingEditRule": "Edytuj regułę alarmową",
"alertingCreateRule": "Utwórz regułę alarmową",
"alertingRuleCredenzaDescription": "Wybierz, co obserwować, kiedy uruchamiać i jak powiadamiać.",
"alertingRuleNamePlaceholder": "Strona produkcyjna w dół",
"alertingRuleEnabled": "Reguła włączona",
"alertingSectionSource": "Źródło",
"alertingSourceType": "Typ źródła",
"alertingSourceSite": "Witryna",
"alertingSourceHealthCheck": "Kontrola zdrowia",
"alertingPickSites": "Witryny",
"alertingPickHealthChecks": "Kontrole zdrowia",
"alertingPickResources": "Zasoby",
"alertingAllSites": "Wszystkie witryny",
"alertingAllSitesDescription": "Alarm uruchomiony dla dowolnej witryny",
"alertingSpecificSites": "Określone witryny",
"alertingSpecificSitesDescription": "Wybierz określone witryny do obserwacji",
"alertingAllHealthChecks": "Wszystkie Kontrole Zdrowia",
"alertingAllHealthChecksDescription": "Alarm uruchomiony dla dowolnej kontroli zdrowia",
"alertingSpecificHealthChecks": "Określone Kontrole Zdrowia",
"alertingSpecificHealthChecksDescription": "Wybierz określone kontrole zdrowia do obserwacji",
"alertingAllResources": "Wszystkie zasoby",
"alertingAllResourcesDescription": "Alarm uruchomiony dla dowolnego zasobu",
"alertingSpecificResources": "Określone Zasoby",
"alertingSpecificResourcesDescription": "Wybierz określone zasoby do obserwacji",
"alertingSelectResources": "Wybierz zasoby…",
"alertingResourcesSelected": "{count} zasobów wybrano",
"alertingResourcesEmpty": "Brak zasobów z celami w pierwszych 10 wynikach.",
"alertingSectionTrigger": "Ustawienie",
"alertingTrigger": "Kiedy alarmować",
"alertingTriggerSiteOnline": "Strona online",
"alertingTriggerSiteOffline": "Strona offline",
"alertingTriggerSiteToggle": "Status strony zmienia się",
"alertingTriggerHcHealthy": "Kontrola zdrowia zdrowa",
"alertingTriggerHcUnhealthy": "Kontrola zdrowia niezdrowa",
"alertingTriggerHcToggle": "Status kontroli zdrowia zmienia się",
"alertingTriggerResourceHealthy": "Zasób zdrowy",
"alertingTriggerResourceUnhealthy": "Zasób niezdrowy",
"alertingTriggerResourceDegraded": "Zasób pogorszony",
"alertingSearchHealthChecks": "Szukaj kontroli zdrowia…",
"alertingHealthChecksEmpty": "Brak dostępnych kontroli zdrowia.",
"alertingTriggerResourceToggle": "Zmiany statusu zasobu",
"alertingSourceResource": "Zasób",
"alertingSectionActions": "Akcje",
"alertingAddAction": "Dodaj Akcję",
"alertingActionNotify": "E-mail",
"alertingActionNotifyDescription": "Wyślij powiadomienia e-mail do użytkowników lub ról",
"alertingActionWebhook": "Webhook",
"alertingActionWebhookDescription": "Wyślij żądanie HTTP do niestandardowego punktu końcowego",
"alertingExternalIntegration": "Integracja Zewnętrzna",
"alertingExternalPagerDutyDescription": "Przesyłaj alerty do PagerDuty do zarządzania incydentami",
"alertingExternalOpsgenieDescription": "Kieruj alerty do Opsgenie dla zarządzania dyżurem",
"alertingExternalServiceNowDescription": "Twórz incydenty ServiceNow z alertów",
"alertingExternalIncidentIoDescription": "Wyzwalaj przepływy Incident.io z alertów",
"alertingActionType": "Typ akcji",
"alertingNotifyUsers": "Użytkownicy",
"alertingNotifyRoles": "Role",
"alertingNotifyEmails": "Adres e-mail",
"alertingEmailPlaceholder": "Dodaj e-mail i naciśnij Enter",
"alertingWebhookMethod": "Metoda HTTP",
"alertingWebhookSecret": "Sekret podpisu (opcjonalny)",
"alertingWebhookSecretPlaceholder": "Sekret HMAC",
"alertingWebhookHeaders": "Nagłówki",
"alertingAddHeader": "Dodaj nagłówek",
"alertingSelectSites": "Wybierz witryny…",
"alertingSitesSelected": "{count} witryny wybrano",
"alertingSelectHealthChecks": "Wybierz wyniki zdrowia…",
"alertingHealthChecksSelected": "{count} wyniki zdrowia wybrane",
"alertingNoHealthChecks": "Brak celów z aktywowanymi kontrolami zdrowia",
"alertingHealthCheckStub": "Wybór źródła kontroli zdrowia jeszcze nie skonfigurowany - możesz nadal skonfigurować wyzwalacze i akcje.",
"alertingSelectUsers": "Wybierz użytkowników…",
"alertingUsersSelected": "{count} użytkowników wybrano",
"alertingSelectRoles": "Wybierz role…",
"alertingRolesSelected": "{count} ról wybrano",
"alertingSummarySites": "Witryny ({count})",
"alertingSummaryAllSites": "Wszystkie witryny",
"alertingSummaryHealthChecks": "Kontrole zdrowia ({count})",
"alertingSummaryAllHealthChecks": "Wszystkie kontrole zdrowia",
"alertingSummaryResources": "Zasoby ({count})",
"alertingSummaryAllResources": "Wszystkie zasoby",
"alertingErrorNameRequired": "Wprowadź nazwę",
"alertingErrorActionsMin": "Dodaj co najmniej jedną akcję",
"alertingErrorPickSites": "Wybierz co najmniej jedną witrynę",
"alertingErrorPickHealthChecks": "Wybierz co najmniej jedną kontrolę zdrowia",
"alertingErrorPickResources": "Wybierz co najmniej jeden zasób",
"alertingErrorTriggerSite": "Wybierz wyzwalacz witryny",
"alertingErrorTriggerHealth": "Wybierz wyzwalacz kontroli zdrowia",
"alertingErrorTriggerResource": "Wybierz wyzwalacz zasobu",
"alertingErrorNotifyRecipients": "Wybierz użytkowników, role lub co najmniej jeden e-mail",
"alertingConfigureSource": "Skonfiguruj źródło",
"alertingConfigureTrigger": "Skonfiguruj wyzwalacz",
"alertingConfigureActions": "Skonfiguruj akcje",
"alertingBackToRules": "Powrót do reguł",
"alertingRuleCooldown": "Czas ochłodzenia (sekundy)",
"alertingRuleCooldownDescription": "Minimalny czas między powtórzonymi alarmami dla tej samej reguły. Ustaw na 0, aby wyzwalać za każdym razem.",
"alertingDraftBadge": "Szkic - zapisz, aby zachować tę regułę",
"alertingSidebarHint": "Kliknij krok na kanwie, aby edytować go tutaj.",
"alertingGraphCanvasTitle": "Przepływ reguł",
"alertingGraphCanvasDescription": "Wizualny podgląd źródła, wyzwalacza i akcji. Wybierz węzeł, aby edytować go w panelu.",
"alertingNodeNotConfigured": "Nie skonfigurowano jeszcze",
"alertingNodeActionsCount": "{count, plural, one {# akcja} few {# akcje} many {# akcji} other {# akcji}}",
"alertingNodeRoleSource": "Źródło",
"alertingNodeRoleTrigger": "Wyzwalacz",
"alertingNodeRoleAction": "Akcja",
"alertingTabRules": "Reguły Alarmowe",
"alertingTabHealthChecks": "Kontrole Zdrowia",
"alertingRulesBannerTitle": "Otrzymaj Powiadomienie",
"alertingRulesBannerDescription": "Każda reguła wiąże ze sobą co obserwować (np. witryna, kontrola zdrowia czy zasób), kiedy uruchomić (np. offline lub niezdrowy), oraz jak powiadomić zespół przez e-mail, webhooks lub integracje. Użyj tej listy, aby utworzyć, włączyć i zarządzać tymi regułami.",
"alertingHealthChecksBannerTitle": "Monitor Zdrowia i Zasobów",
"alertingHealthChecksBannerDescription": "Kontrole zdrowia to monitory HTTP lub TCP, które definiujesz raz. Następnie możesz używać ich jako źródeł w regułach alarmowych, aby otrzymywać powiadomienia, kiedy cel stanie się zdrowy lub niezdrowy. Kontrole zdrowia w zasobach również pojawiają się tutaj.",
"standaloneHcTableTitle": "Kontrole Zdrowia",
"standaloneHcSearchPlaceholder": "Szukaj kontroli zdrowia…",
"standaloneHcAddButton": "Utwórz Kontrolę Zdrowia",
"standaloneHcCreateTitle": "Utwórz Kontrolę Zdrowia",
"standaloneHcEditTitle": "Edytuj Kontrolę Zdrowia",
"standaloneHcDescription": "Skonfiguruj kontrolę zdrowia HTTP lub TCP do wykorzystania w regułach alarmowych.",
"standaloneHcNameLabel": "Nazwa",
"standaloneHcNamePlaceholder": "Mój Monitor HTTP",
"standaloneHcDeleteTitle": "Usuń kontrolę zdrowia",
"standaloneHcDeleteQuestion": "Potwierdź, że chcesz usunąć tę kontrolę zdrowia.",
"standaloneHcDeleted": "Kontrola zdrowia usunięta",
"standaloneHcSaved": "Kontrola zdrowia zapisana",
"standaloneHcColumnHealth": "Zdrowie",
"standaloneHcColumnMode": "Tryb",
"standaloneHcColumnTarget": "Cel",
"standaloneHcHealthStateHealthy": "Zdrowy",
"standaloneHcHealthStateUnhealthy": "Niezdrowy",
"standaloneHcHealthStateUnknown": "Nieznany",
"standaloneHcFilterAnySite": "Wszystkie witryny",
"standaloneHcFilterAnyResource": "Wszystkie zasoby",
"standaloneHcFilterMode": "Tryb",
"standaloneHcFilterModeHttp": "HTTP",
"standaloneHcFilterModeTcp": "TCP",
"standaloneHcFilterModeSnmp": "SNMP",
"standaloneHcFilterModePing": "Ping",
"standaloneHcFilterHealth": "Zdrowie",
"standaloneHcFilterEnabled": "Włączone",
"standaloneHcFilterEnabledOn": "Włączone",
"standaloneHcFilterEnabledOff": "Wyłączone",
"standaloneHcFilterSiteIdFallback": "Witryna {id}",
"standaloneHcFilterResourceIdFallback": "Zasób {id}",
"blueprints": "Schematy",
"blueprintsDescription": "Zastosuj konfiguracje deklaracyjne i wyświetl poprzednie operacje",
"blueprintsLog": "Dziennik szablonów",
"blueprintsDescription": "Zobacz wcześniejsze zastosowania szablonów i ich wyniki",
"blueprintAdd": "Dodaj schemat",
"blueprintGoBack": "Zobacz wszystkie schematy",
"blueprintCreate": "Utwórz schemat",
@@ -1364,7 +1665,17 @@
"contents": "Treść",
"parsedContents": "Przetworzona zawartość (tylko do odczytu)",
"enableDockerSocket": "Włącz schemat dokera",
"enableDockerSocketDescription": "Włącz etykietowanie kieszeni dokującej dla etykiet schematów. Ścieżka do gniazda musi być dostarczona do Newt.",
"enableDockerSocketDescription": "Włącz etykietowanie gniazda dokera dla etykiet szablonów. Ścieżka do gniazda musi być dostarczona do łącznika strony. Przeczytaj zarówno jak to działa w <docsLink>dokumentacji</docsLink>.",
"newtAutoUpdate": "Włącz automatyczną aktualizację witryny",
"newtAutoUpdateDescription": "Kiedy włączone, łączniki witryn będą się automatycznie aktualizować do najnowszej wersji, gdy dostępne będzie nowe wydanie.",
"siteAutoUpdate": "Automatyczna aktualizacja strony",
"siteAutoUpdateLabel": "Włącz aktualizacje automatyczne",
"siteAutoUpdateDescription": "Kontroluj czy łącznik tej strony automatycznie pobiera najnowszą wersję.",
"siteAutoUpdateOrgDefault": "Domyślnie dla organizacji: {state}",
"siteAutoUpdateOverriding": "Nadpisywanie ustawień organizacji",
"siteAutoUpdateResetToOrg": "Zresetuj do domyślnych ustawień organizacji",
"siteAutoUpdateEnabled": "włączone",
"siteAutoUpdateDisabled": "wyłączone",
"viewDockerContainers": "Zobacz kontenery dokujące",
"containersIn": "Pojemniki w {siteName}",
"selectContainerDescription": "Wybierz dowolny kontener do użycia jako nazwa hosta dla tego celu. Kliknij port, aby użyć portu.",
@@ -1406,8 +1717,10 @@
"initialSetupDescription": "Utwórz początkowe konto administratora serwera. Może istnieć tylko jeden administrator serwera. Zawsze można zmienić te dane uwierzytelniające.",
"createAdminAccount": "Utwórz konto administratora",
"setupErrorCreateAdmin": "Wystąpił błąd podczas tworzenia konta administratora serwera.",
"certificateStatus": "Status certyfikatu",
"certificateStatus": "Certyfikat",
"certificateStatusAutoRefreshHint": "Status odświeża się automatycznie.",
"loading": "Ładowanie",
"loadingEllipsis": "Ładowanie...",
"loadingAnalytics": "Ładowanie Analityki",
"restart": "Uruchom ponownie",
"domains": "Domeny",
@@ -1475,6 +1788,7 @@
"pangolinUpdateAvailableReleaseNotes": "Zobacz informacje o wydaniu",
"newtUpdateAvailable": "Dostępna aktualizacja",
"newtUpdateAvailableInfo": "Nowa wersja Newt jest dostępna. Prosimy o aktualizację do najnowszej wersji dla najlepszej pracy.",
"pangolinNodeUpdateAvailableInfo": "Nowa wersja Pangolin Node jest dostępna. Prosimy o aktualizację do najnowszej wersji dla najlepszej pracy.",
"domainPickerEnterDomain": "Domena",
"domainPickerPlaceholder": "mojapp.example.com",
"domainPickerDescription": "Wpisz pełną domenę zasobu, aby zobaczyć dostępne opcje.",
@@ -1633,6 +1947,7 @@
"billingManageLicenseSubscription": "Zarządzaj subskrypcją płatnych własnych kluczy licencyjnych",
"billingCurrentKeys": "Bieżące klucze",
"billingModifyCurrentPlan": "Modyfikuj bieżący plan",
"billingManageLicenseSubscriptionDescription": "Zarządzaj swoją subskrypcją dla płatnych kluczy licencyjnych na samoobsługowy hosting i pobieraj faktury.",
"billingConfirmUpgrade": "Potwierdź aktualizację",
"billingConfirmDowngrade": "Potwierdź obniżenie",
"billingConfirmUpgradeDescription": "Zamierzasz ulepszyć swój plan. Przejrzyj nowe limity i ceny poniżej.",
@@ -1714,6 +2029,7 @@
"configureHealthCheck": "Skonfiguruj Kontrolę Zdrowia",
"configureHealthCheckDescription": "Skonfiguruj monitorowanie zdrowia dla {target}",
"enableHealthChecks": "Włącz Kontrole Zdrowia",
"healthCheckDisabledStateDescription": "Gdy wyłączone, strona nie będzie wykonywać kontroli zdrowia, a stan zostanie uznany za nieznany.",
"enableHealthChecksDescription": "Monitoruj zdrowie tego celu. Możesz monitorować inny punkt końcowy niż docelowy w razie potrzeby.",
"healthScheme": "Metoda",
"healthSelectScheme": "Wybierz metodę",
@@ -1729,7 +2045,36 @@
"timeIsInSeconds": "Czas w sekundach",
"requireDeviceApproval": "Wymagaj zatwierdzenia urządzenia",
"requireDeviceApprovalDescription": "Użytkownicy o tej roli potrzebują nowych urządzeń zatwierdzonych przez administratora, zanim będą mogli połączyć się i uzyskać dostęp do zasobów.",
"sshAccess": "Dostęp SSH",
"sshSettings": "Ustawienia SSH",
"rdpSettings": "Ustawienia RDP",
"vncSettings": "Ustawienia VNC",
"sshServer": "Serwer SSH",
"rdpServer": "Serwer RDP",
"vncServer": "Serwer VNC",
"sshServerDescription": "Skonfiguruj metodę uwierzytelniania, lokalizację demona i miejsce docelowe serwera",
"rdpServerDescription": "Skonfiguruj miejsce docelowe i port serwera RDP",
"vncServerDescription": "Skonfiguruj miejsce docelowe i port serwera VNC",
"sshServerMode": "Tryb",
"sshServerModeStandard": "Standardowy Serwer SSH",
"sshServerModePangolin": "Pangolin SSH",
"sshServerModeStandardDescription": "Przesyła polecenia przez sieć do serwera SSH takiego jak OpenSSH.",
"sshServerModeNative": "Natywny Serwer SSH",
"sshServerModeNativeDescription": "Wykonuje polecenia bezpośrednio na hoście za pomocą łącznika strony. Nie wymaga konfiguracji sieci.",
"sshAuthenticationMethod": "Metoda uwierzytelniania",
"sshAuthMethodManual": "Ręczne uwierzytelnianie",
"sshAuthMethodManualDescription": "Wymaga istniejących poświadczeń hosta. Omiija automatyczne provisioning.",
"sshAuthMethodAutomated": "Automatyczne Provisioning",
"sshAuthMethodAutomatedDescription": "Automatycznie tworzy użytkowników, grupy i uprawnienia sudo na hoście.",
"sshAuthDaemonLocation": "Lokalizacja Demona Uwierzytelniania",
"sshDaemonLocationSiteDescription": "Wykonuje lokalnie na maszynie hostującej łącznik strony.",
"sshDaemonLocationRemote": "Na Zdalnym Hoście",
"sshDaemonLocationRemoteDescription": "Wykonuje się na innej maszynie docelowej w tej samej sieci.",
"sshDaemonDisclaimer": "Upewnij się, że Twoja maszyna docelowa jest poprawnie skonfigurowana do uruchamiania demona uwierzytelniania zanim ukończysz tę konfigurację, w przeciwnym razie provisioning zakończy się niepowodzeniem.",
"sshDaemonPort": "Port Demona",
"sshServerDestination": "Miejsce docelowe serwera",
"sshServerDestinationDescription": "Skonfiguruj miejsce docelowe i port serwera SSH",
"destination": "Miejsce docelowe",
"bgTargetMultiSiteDisclaimer": "Wybór wielu stron umożliwia odporność trasowania i zmienioność dla wysokiej dostępności.",
"roleAllowSsh": "Zezwalaj na SSH",
"roleAllowSshAllow": "Zezwól",
"roleAllowSshDisallow": "Nie zezwalaj",
@@ -1743,7 +2088,7 @@
"sshSudoModeCommandsDescription": "Użytkownik może uruchamiać tylko określone polecenia z sudo.",
"sshSudo": "Zezwól na sudo",
"sshSudoCommands": "Komendy Sudo",
"sshSudoCommandsDescription": "Lista poleceń oddzielonych przecinkami, które użytkownik może uruchamiać z sudo.",
"sshSudoCommandsDescription": "Lista rozdzielona przecinkami poleceń, które użytkownik może uruchomić z sudo. Należy używać ścieżek bezwzględnych.",
"sshCreateHomeDir": "Utwórz katalog domowy",
"sshUnixGroups": "Grupy Unix",
"sshUnixGroupsDescription": "Oddzielone przecinkami grupy Unix, aby dodać użytkownika do docelowego hosta.",
@@ -1763,9 +2108,20 @@
"healthCheckIntervalMin": "Interwał sprawdzania musi wynosić co najmniej 5 sekund",
"healthCheckTimeoutMin": "Limit czasu musi wynosić co najmniej 1 sekundę",
"healthCheckRetryMin": "Liczba prób ponowienia musi wynosić co najmniej 1",
"healthCheckMode": "Tryb kontroli",
"healthCheckStrategy": "Strategia",
"healthCheckModeDescription": "Tryb TCP weryfikuje tylko łączność. Tryb HTTP ocenia odpowiedź HTTP.",
"healthyThreshold": "Próg zdrowia",
"healthyThresholdDescription": "Wymagane sukcesy pod rząd, zanim oznaczy się jako zdrowe.",
"unhealthyThreshold": "Próg niezdrowia",
"unhealthyThresholdDescription": "Wymagane niepowodzenia z rzędu, zanim oznaczy się jako niezdrowe.",
"healthCheckHealthyThresholdMin": "Próg zdrowia musi wynosić co najmniej 1",
"healthCheckUnhealthyThresholdMin": "Próg niezdrowia musi wynosić co najmniej 1",
"httpMethod": "Metoda HTTP",
"selectHttpMethod": "Wybierz metodę HTTP",
"domainPickerSubdomainLabel": "Poddomena",
"domainPickerWildcard": "Uniwersalny",
"domainPickerWildcardPaidOnly": "Uniwersalne subdomeny są płatną funkcją. Proszę dokonać aktualizacji, aby uzyskać dostęp do tej funkcji.",
"domainPickerBaseDomainLabel": "Domen bazowa",
"domainPickerSearchDomains": "Szukaj domen...",
"domainPickerNoDomainsFound": "Nie znaleziono domen",
@@ -1791,12 +2147,12 @@
"resourcesTableAliasAddressInfo": "Ten adres jest częścią podsieci użyteczności organizacji. Jest używany do rozwiązywania rekordów aliasu przy użyciu wewnętrznej rozdzielczości DNS.",
"resourcesTableClients": "Klientami",
"resourcesTableAndOnlyAccessibleInternally": "i są dostępne tylko wewnętrznie po połączeniu z klientem.",
"resourcesTableNoTargets": "Brak celów",
"resourcesTableHealthy": "Zdrowe",
"resourcesTableDegraded": "Degradacja",
"resourcesTableOffline": "Offline",
"resourcesTableUnhealthy": "Niezdrowy",
"resourcesTableUnknown": "Nieznane",
"resourcesTableNotMonitored": "Nie monitorowano",
"resourcesTableNoTargets": "Brak celów",
"editInternalResourceDialogEditClientResource": "Edytuj Zasoby Prywatne",
"editInternalResourceDialogUpdateResourceProperties": "Aktualizuj konfigurację zasobów i kontrolę dostępu dla {resourceName}",
"editInternalResourceDialogResourceProperties": "Właściwości zasobów",
@@ -1822,6 +2178,12 @@
"editInternalResourceDialogModePort": "Port",
"editInternalResourceDialogModeHost": "Host",
"editInternalResourceDialogModeCidr": "CIDR",
"editInternalResourceDialogModeHttp": "HTTP",
"editInternalResourceDialogModeHttps": "HTTPS",
"editInternalResourceDialogModeSsh": "SSH",
"editInternalResourceDialogScheme": "Schemat",
"editInternalResourceDialogEnableSsl": "Włącz TLS",
"editInternalResourceDialogEnableSslDescription": "Włącz szyfrowanie SSL/TLS dla bezpiecznych połączeń HTTPS z miejscem docelowym.",
"editInternalResourceDialogDestination": "Miejsce docelowe",
"editInternalResourceDialogDestinationHostDescription": "Adres IP lub nazwa hosta zasobu w sieci witryny.",
"editInternalResourceDialogDestinationIPDescription": "Adres IP lub nazwa hosta zasobu w sieci witryny.",
@@ -1837,6 +2199,7 @@
"createInternalResourceDialogName": "Nazwa",
"createInternalResourceDialogSite": "Witryna",
"selectSite": "Wybierz stronę...",
"multiSitesSelectorSitesCount": "{count, plural, one {# witryna} few {# witryny} many {# witryn} other {# witryn}}",
"noSitesFound": "Nie znaleziono stron.",
"createInternalResourceDialogProtocol": "Protokół",
"createInternalResourceDialogTcp": "TCP",
@@ -1865,11 +2228,20 @@
"createInternalResourceDialogModePort": "Port",
"createInternalResourceDialogModeHost": "Host",
"createInternalResourceDialogModeCidr": "CIDR",
"createInternalResourceDialogModeHttp": "HTTP",
"createInternalResourceDialogModeHttps": "HTTPS",
"createInternalResourceDialogModeSsh": "SSH",
"scheme": "Schemat",
"createInternalResourceDialogScheme": "Schemat",
"createInternalResourceDialogEnableSsl": "Włącz TLS",
"createInternalResourceDialogEnableSslDescription": "Włącz szyfrowanie SSL/TLS dla bezpiecznych połączeń HTTPS z miejscem docelowym.",
"createInternalResourceDialogDestination": "Miejsce docelowe",
"createInternalResourceDialogDestinationHostDescription": "Adres IP lub nazwa hosta zasobu w sieci witryny.",
"createInternalResourceDialogDestinationCidrDescription": "Zakres CIDR zasobu w sieci witryny.",
"createInternalResourceDialogAlias": "Alias",
"createInternalResourceDialogAliasDescription": "Opcjonalny wewnętrzny alias DNS dla tego zasobu.",
"internalResourceDownstreamSchemeRequired": "Schemat jest wymagany dla zasobów HTTP",
"internalResourceHttpPortRequired": "Port docelowy jest wymagany dla zasobów HTTP",
"siteConfiguration": "Konfiguracja",
"siteAcceptClientConnections": "Akceptuj połączenia klienta",
"siteAcceptClientConnectionsDescription": "Zezwalaj urządzeniom i klientom na dostęp do zasobów na tej stronie. Może to zostać zmienione później.",
@@ -1994,7 +2366,7 @@
"description": "Większa niezawodność i niska konserwacja serwera Pangolin z dodatkowymi dzwonkami i sygnałami",
"introTitle": "Zarządzany samowystarczalny Pangolin",
"introDescription": "jest opcją wdrażania zaprojektowaną dla osób, które chcą prostoty i dodatkowej niezawodności, przy jednoczesnym utrzymaniu swoich danych prywatnych i samodzielnych.",
"introDetail": "Z tą opcją nadal obsługujesz swój własny węzeł Pangolin tunele, zakończenie SSL i ruch na Twoim serwerze. Różnica polega na tym, że zarządzanie i monitorowanie odbywa się za pomocą naszej tablicy rozdzielczej, która odblokowuje szereg korzyści:",
"introDetail": "Z tą opcją nadal obsługujesz swój własny węzeł Pangolin - tunele, zakończenie TLS i ruch na Twoim serwerze. Różnica polega na tym, że zarządzanie i monitorowanie odbywa się za pomocą naszej tablicy rozdzielczej, która odblokowuje szereg korzyści:",
"benefitSimplerOperations": {
"title": "Uproszczone operacje",
"description": "Nie ma potrzeby uruchamiania własnego serwera pocztowego lub ustawiania skomplikowanych powiadomień. Będziesz mieć kontrolę zdrowia i powiadomienia o przestoju."
@@ -2119,11 +2491,11 @@
"selectDomainForOrgAuthPage": "Wybierz domenę dla strony uwierzytelniania organizacji",
"domainPickerProvidedDomain": "Dostarczona domena",
"domainPickerFreeProvidedDomain": "Darmowa oferowana domena",
"domainPickerFreeDomainsPaidFeature": "Dostarczane domeny to funkcja płatna. Subskrybuj, aby uzyskać domenę w ramach swojego planu nie ma potrzeby przynoszenia własnej.",
"domainPickerFreeDomainsPaidFeature": "Dostarczane domeny to funkcja płatna. Subskrybuj, aby uzyskać domenę w ramach swojego planu - nie ma potrzeby przynoszenia własnej.",
"domainPickerVerified": "Zweryfikowano",
"domainPickerUnverified": "Niezweryfikowane",
"domainPickerManual": "Podręcznik",
"domainPickerInvalidSubdomainStructure": "Ta subdomena zawiera nieprawidłowe znaki lub strukturę. Zostanie ona automatycznie oczyszczona po zapisaniu.",
"domainPickerInvalidSubdomainStructure": "Nieprawidłowe znaki zostaną zsanitowane, gdy zostaną zapisane.",
"domainPickerError": "Błąd",
"domainPickerErrorLoadDomains": "Nie udało się załadować domen organizacji",
"domainPickerErrorCheckAvailability": "Nie udało się sprawdzić dostępności domeny",
@@ -2136,7 +2508,7 @@
"orgAuthChooseIdpDescription": "Wybierz swojego dostawcę tożsamości, aby kontynuować",
"orgAuthNoIdpConfigured": "Ta organizacja nie ma skonfigurowanych żadnych dostawców tożsamości. Zamiast tego możesz zalogować się za pomocą swojej tożsamości Pangolin.",
"orgAuthSignInWithPangolin": "Zaloguj się używając Pangolin",
"orgAuthSignInToOrg": "Zaloguj się do organizacji",
"orgAuthSignInToOrg": "Dostawca tożsamości organizacji (SSO)",
"orgAuthSelectOrgTitle": "Logowanie do organizacji",
"orgAuthSelectOrgDescription": "Wprowadź identyfikator organizacji, aby kontynuować",
"orgAuthOrgIdPlaceholder": "twoja-organizacja",
@@ -2416,7 +2788,7 @@
"action": "Akcja",
"actor": "Aktor",
"timestamp": "Znacznik czasu",
"accessLogs": "Authentication Logs",
"accessLogs": "Logi dostępu",
"exportCsv": "Eksportuj CSV",
"exportError": "Nieznany błąd podczas eksportowania CSV",
"exportCsvTooltip": "W obrębie zakresu czasowego",
@@ -2429,6 +2801,9 @@
"validPassword": "Prawidłowe hasło",
"validEmail": "Valid email",
"validSSO": "Valid SSO",
"view": "Zobacz",
"configManaged": "Konfiguracja zarządzana",
"connectedClient": "Połączony Klient",
"resourceBlocked": "Zasób zablokowany",
"droppedByRule": "Upuszczone przez regułę",
"noSessions": "Brak sesji",
@@ -2436,25 +2811,25 @@
"noMoreAuthMethods": "No Valid Auth",
"ip": "IP",
"reason": "Powód",
"requestLogs": "HTTPS Request Logs",
"requestLogs": "Dzienniki żądań HTTP",
"requestAnalytics": "Żądanie Analityki",
"host": "Host",
"location": "Lokalizacja",
"actionLogs": "Admin Action Logs",
"sidebarLogsRequest": "HTTPS Request Logs",
"sidebarLogsAccess": "Authentication Logs",
"sidebarLogsAction": "Admin Action Logs",
"actionLogs": "Dzienniki działań",
"sidebarLogsRequest": "Dzienniki żądań HTTP",
"sidebarLogsAccess": "Logi dostępu",
"sidebarLogsAction": "Dzienniki działań",
"logRetention": "Zachowanie dziennika",
"logRetentionDescription": "Zarządzaj jak długo różne typy logów są zachowane dla tej organizacji lub wyłącz je",
"requestLogsDescription": "View detailed request logs for HTTPS resources in this organization",
"requestLogsDescription": "Zobacz szczegółowe dzienniki żądań zasobów w tej organizacji",
"requestAnalyticsDescription": "Zobacz szczegółowe analizy żądań dla zasobów w tej organizacji",
"logRetentionRequestLabel": "HTTPS Request Log Retention",
"logRetentionRequestLabel": "Przechowywanie dzienników żądań HTTP",
"logRetentionRequestDescription": "Jak długo zachować dzienniki żądań",
"logRetentionAccessLabel": "Authentication Log Retention",
"logRetentionAccessLabel": "Zachowanie dziennika dostępu",
"logRetentionAccessDescription": "Jak długo zachować dzienniki dostępu",
"logRetentionActionLabel": "Admin Action Log Retention",
"logRetentionActionLabel": "Zachowanie dziennika akcji",
"logRetentionActionDescription": "Jak długo zachować dzienniki akcji",
"logRetentionConnectionLabel": "Network Log Retention",
"logRetentionConnectionLabel": "Zachowanie dziennika połączeń",
"logRetentionConnectionDescription": "Jak długo zachować dzienniki połączeń",
"logRetentionDisabled": "Wyłączone",
"logRetention3Days": "3 dni",
@@ -2466,10 +2841,10 @@
"logRetentionEndOfFollowingYear": "Koniec następnego roku",
"actionLogsDescription": "Zobacz historię działań wykonywanych w tej organizacji",
"accessLogsDescription": "Wyświetl prośby o autoryzację dostępu do zasobów w tej organizacji",
"connectionLogs": "Network Logs",
"connectionLogsDescription": "View network session logs handled by sites in this organization",
"sidebarLogsConnection": "Network Logs",
"sidebarLogsStreaming": "Event Streaming",
"connectionLogs": "Dzienniki połączeń",
"connectionLogsDescription": "Wyświetl dzienniki połączeń dla tuneli w tej organizacji",
"sidebarLogsConnection": "Dzienniki połączeń",
"sidebarLogsStreaming": "Strumieniowanie",
"sourceAddress": "Adres źródłowy",
"destinationAddress": "Adres docelowy",
"duration": "Czas trwania",
@@ -2667,7 +3042,13 @@
"editInternalResourceDialogAddClients": "Dodaj klientów",
"editInternalResourceDialogDestinationLabel": "Miejsce docelowe",
"editInternalResourceDialogDestinationDescription": "Określ adres docelowy dla wewnętrznego zasobu. Może to być nazwa hosta, adres IP lub zakres CIDR, w zależności od wybranego trybu. Opcjonalnie ustaw wewnętrzny alias DNS dla łatwiejszej identyfikacji.",
"internalResourceFormMultiSiteRoutingHelp": "Wybór wielu stron umożliwia odporne trasowanie i awarię dla wysokiej dostępności.",
"internalResourceFormMultiSiteRoutingHelpLearnMore": "Dowiedz się więcej",
"editInternalResourceDialogPortRestrictionsDescription": "Ogranicz dostęp do konkretnych portów TCP/UDP lub zezwól/zablokuj wszystkie porty.",
"createInternalResourceDialogHttpConfiguration": "Konfiguracja HTTP",
"createInternalResourceDialogHttpConfigurationDescription": "Wybierz domenę, której klienci będą używać, aby dotrzeć do tego zasobu przez HTTP lub HTTPS.",
"editInternalResourceDialogHttpConfiguration": "Konfiguracja HTTP",
"editInternalResourceDialogHttpConfigurationDescription": "Wybierz domenę, której klienci będą używać, aby dotrzeć do tego zasobu przez HTTP lub HTTPS.",
"editInternalResourceDialogTcp": "TCP",
"editInternalResourceDialogUdp": "UDP",
"editInternalResourceDialogIcmp": "ICMP",
@@ -2689,7 +3070,7 @@
"learnMore": "Dowiedz się więcej",
"backToHome": "Wróć do strony głównej",
"needToSignInToOrg": "Czy potrzebujesz użyć dostawcy tożsamości organizacji?",
"maintenanceMode": "Tryb konserwacji",
"maintenanceMode": "Strona konserwacji",
"maintenanceModeDescription": "Wyświetl stronę konserwacyjną odwiedzającym",
"maintenanceModeType": "Typ trybu konserwacji",
"showMaintenancePage": "Pokaż odwiedzającym stronę konserwacji",
@@ -2706,6 +3087,9 @@
"maintenancePageMessagePlaceholder": "Wrócimy wkrótce! Nasza strona przechodzi obecnie zaplanowaną konserwację.",
"maintenancePageMessageDescription": "Szczegółowy komunikat wyjaśniający konserwację",
"maintenancePageTimeTitle": "Szacowany czas zakończenia (opcjonalnie)",
"privateMaintenanceScreenTitle": "Ekraan prywatnego utrzymania",
"privateMaintenanceScreenMessage": "Ta domena jest wykorzystywana na prywatnym zasobie. Połącz się za pomocą klienta Pangolin, aby uzyskać dostęp do tego zasobu.",
"privateMaintenanceScreenSteps": "Po połączeniu, jeśli nadal widzisz tę wiadomość, pamięć podręczna DNS przeglądarki może nadal wskazywać na stary adres. Aby to naprawić: zamknij i otwórz ponownie tę kartę lub przeglądarkę, a następnie przejdź z powrotem na tę stronę.",
"maintenanceTime": "np. 2 godziny, 1 listopad o 17:00",
"maintenanceEstimatedTimeDescription": "Kiedy oczekujesz zakończenia konserwacji",
"editDomain": "Edytuj domenę",
@@ -2716,6 +3100,7 @@
"maintenanceScreenEstimatedCompletion": "Szacowane zakończenie:",
"createInternalResourceDialogDestinationRequired": "Miejsce docelowe jest wymagane",
"available": "Dostępny",
"disabledResourceDescription": "Kiedy wyłączone, zasób będzie niedostępny dla wszystkich.",
"archived": "Zarchiwizowane",
"noArchivedDevices": "Nie znaleziono zarchiwizowanych urządzeń",
"deviceArchived": "Urządzenie zarchiwizowane",
@@ -2829,7 +3214,7 @@
"streamingDatadogTitle": "Datadog",
"streamingDatadogDescription": "Przekaż wydarzenia bezpośrednio do Twojego konta Datadog. Już wkrótce.",
"streamingTypePickerDescription": "Wybierz typ docelowy, aby rozpocząć.",
"streamingFailedToLoad": "Nie udało się załadować miejsc docelowych",
"streamingLastSyncError": "Wystąpił błąd podczas ostatniej synchronizacji",
"streamingUnexpectedError": "Wystąpił nieoczekiwany błąd.",
"streamingFailedToUpdate": "Nie udało się zaktualizować miejsca docelowego",
"streamingDeletedSuccess": "Cel usunięty pomyślnie",
@@ -2843,6 +3228,41 @@
"httpDestAddTitle": "Dodaj cel HTTP",
"httpDestEditDescription": "Aktualizuj konfigurację dla tego celu przesyłania strumieniowego zdarzeń HTTP.",
"httpDestAddDescription": "Skonfiguruj nowy punkt końcowy HTTP, aby otrzymywać wydarzenia organizacji.",
"S3DestEditTitle": "Edytuj Miejsce Docelowe",
"S3DestAddTitle": "Dodaj Miejsce Docelowe S3",
"S3DestEditDescription": "Zaktualizuj konfigurację dla tego miejsca docelowego strumieniowego zdarzeń S3.",
"S3DestAddDescription": "Skonfiguruj nowy zasobnik Amazon S3 (lub zgodny z S3), aby otrzymywać zdarzenia twojej organizacji.",
"s3DestTabSettings": "Ustawienia",
"s3DestTabFormat": "Format",
"s3DestNameLabel": "Nazwa",
"s3DestNamePlaceholder": "Moje miejsce docelowe S3",
"s3DestAccessKeyIdLabel": "AWS Access Key ID",
"s3DestSecretAccessKeyLabel": "AWS Secret Access Key",
"s3DestSecretAccessKeyPlaceholder": "Twój AWS Secret Access Key",
"s3DestRegionLabel": "Region AWS",
"s3DestBucketLabel": "Nazwa kubła",
"s3DestPrefixLabel": "Prefiks klucza (opcjonalnie)",
"s3DestPrefixDescription": "Opcjonalny prefiks ścieżki dołączony do każdego klucza obiektu. Obiekty są przechowywane w {prefix}/{logType}/{YYYY}/{MM}/{DD}/{filename}.",
"s3DestEndpointLabel": "Niestandardowy punkt końcowy (opcjonalnie)",
"s3DestEndpointDescription": "Nadpisz punkt końcowy S3 dla zgodnego przechowywania danych, takiego jak MinIO lub Cloudflare R2. Pozostaw puste dla standardowego AWS S3.",
"s3DestGzipLabel": "Kompresja Gzip",
"s3DestGzipDescription": "Skompresuj każdy przesłany obiekt za pomocą gzip. Zmniejsza koszty przechowywania i rozmiar przesyłu.",
"s3DestFormatTitle": "Format pliku",
"s3DestFormatDescription": "Jak zdarzenia są serializowane w każdym przesłanym obiekcie.",
"s3DestFormatJsonArrayDescription": "Każdy obiekt to tablica JSON z rekordami zdarzeń. Zgodne z większością narzędzi analitycznych.",
"s3DestFormatNdjsonDescription": "Każdy obiekt zawiera jeden rekord JSON na linię (nowa linia-dzielone JSON). Zgodne z Athena, BigQuery i Spark.",
"s3DestFormatCsvTitle": "CSV",
"s3DestFormatCsvDescription": "Każdy obiekt to plik CSV zgodny z RFC-4180 z wierszem nagłówka. Nazwy kolumn pochodzą z pól danych zdarzeń.",
"s3DestSaveChanges": "Zapisz zmiany",
"s3DestCreateDestination": "Utwórz miejsce docelowe",
"s3DestUpdatedSuccess": "Miejsce docelowe zaktualizowane pomyślnie",
"s3DestCreatedSuccess": "Miejsce docelowe utworzone pomyślnie",
"s3DestUpdateFailed": "Nie udało się zaktualizować miejsca docelowego",
"s3DestCreateFailed": "Nie udało się utworzyć miejsca docelowego",
"datadogDestEditTitle": "Edytuj Miejsce Docelowe",
"datadogDestAddTitle": "Dodaj Miejsce Docelowe Datadog",
"datadogDestEditDescription": "Zaktualizuj konfigurację dla tego miejsca docelowego strumieniowego zdarzeń Datadog.",
"datadogDestAddDescription": "Skonfiguruj nowy punkt końcowy Datadog, aby odbierać zdarzenia Twojej organizacji.",
"httpDestTabSettings": "Ustawienia",
"httpDestTabHeaders": "Nagłówki",
"httpDestTabBody": "Ciało",
@@ -2882,18 +3302,18 @@
"httpDestFormatJsonArrayTitle": "Tablica JSON",
"httpDestFormatJsonArrayDescription": "Jedna prośba na partię, treść jest tablicą JSON. Kompatybilna z najbardziej ogólnymi webhookami i Datadog.",
"httpDestFormatNdjsonTitle": "NDJSON",
"httpDestFormatNdjsonDescription": "Jedno żądanie na partię, ciałem jest plik JSON rozdzielony na newline-delimited jeden obiekt na wiersz, bez tablicy zewnętrznej. Wymagane przez Splunk HEC, Elastic / OpenSesearch i Grafana Loki.",
"httpDestFormatNdjsonDescription": "Jedno żądanie na partię, ciałem jest plik JSON rozdzielony na newline-delimited - jeden obiekt na wiersz, bez tablicy zewnętrznej. Wymagane przez Splunk HEC, Elastic / OpenSesearch i Grafana Loki.",
"httpDestFormatSingleTitle": "Jedno wydarzenie na żądanie",
"httpDestFormatSingleDescription": "Wysyła oddzielny POST HTTP dla każdego zdarzenia. Użyj tylko dla punktów końcowych, które nie mogą obsługiwać partii.",
"httpDestLogTypesTitle": "Typy logów",
"httpDestLogTypesDescription": "Wybierz, które typy logów są przekazywane do tego miejsca docelowego. Tylko włączone typy logów będą strumieniowane.",
"httpDestAccessLogsTitle": "Authentication Logs",
"httpDestAccessLogsTitle": "Logi dostępu",
"httpDestAccessLogsDescription": "Próby dostępu do zasobów, w tym uwierzytelnione i odrzucone żądania.",
"httpDestActionLogsTitle": "Admin Action Logs",
"httpDestActionLogsTitle": "Dzienniki działań",
"httpDestActionLogsDescription": "Działania administracyjne wykonywane przez użytkowników w organizacji.",
"httpDestConnectionLogsTitle": "Network Logs",
"httpDestConnectionLogsTitle": "Dzienniki połączeń",
"httpDestConnectionLogsDescription": "Zdarzenia związane z miejscem i tunelem, w tym połączenia i rozłączenia.",
"httpDestRequestLogsTitle": "HTTPS Request Logs",
"httpDestRequestLogsTitle": "Dzienniki żądań HTTP",
"httpDestRequestLogsDescription": "Logi żądań HTTP dla zasobów proxy, w tym metody, ścieżki i kodu odpowiedzi.",
"httpDestSaveChanges": "Zapisz zmiany",
"httpDestCreateDestination": "Utwórz cel",
@@ -2901,6 +3321,18 @@
"httpDestCreatedSuccess": "Cel został utworzony pomyślnie",
"httpDestUpdateFailed": "Nie udało się zaktualizować miejsca docelowego",
"httpDestCreateFailed": "Nie udało się utworzyć miejsca docelowego",
"followRedirects": "Podążaj za przekierowaniami",
"followRedirectsDescription": "Automatycznie podążaj za przekierowaniami HTTP dla żądań.",
"alertingErrorWebhookUrl": "Proszę wprowadzić poprawny URL dla web hooka.",
"healthCheckStrategyHttp": "Weryfikuje łączność i sprawdza status odpowiedzi HTTP.",
"healthCheckStrategyTcp": "Weryfikuje wyłącznie łączność TCP, bez sprawdzania odpowiedzi.",
"healthCheckStrategySnmp": "Wykonuje żądanie SNMP get w celu sprawdzenia stanu urządzeń sieciowych i infrastruktury.",
"healthCheckStrategyIcmp": "Używa żądań ICMP echo (pingów), aby sprawdzić, czy zasób jest dostępny i reagujący.",
"healthCheckTabStrategy": "Strategia",
"healthCheckTabConnection": "Łączenie",
"healthCheckTabAdvanced": "Zaawansowane",
"healthCheckStrategyNotAvailable": "Strategia ta nie jest dostępna. Skontaktuj się z działem sprzedaży, aby włączyć tę funkcję.",
"uptime30d": "Czas działania (30d)",
"idpAddActionCreateNew": "Utwórz nowego dostawcę tożsamości",
"idpAddActionImportFromOrg": "Importuj z innej organizacji",
"idpImportDialogTitle": "Importuj dostawcę tożsamości",
@@ -2918,5 +3350,107 @@
"idpUnassociatedDescription": "Dostawca tożsamości pomyślnie odłączony od tej organizacji",
"idpUnassociateMenu": "Odłącz",
"idpDeleteAllOrgsMenu": "Usuń",
"publicIpEndpoint": "Endpoint"
"publicIpEndpoint": "Koniec punktu pracy",
"lastTriggeredAt": "Ostatnie Wyzwolenie",
"reject": "Odrzuć",
"uptimeDaysAgo": "{count} dni temu",
"uptimeToday": "Dzisiaj",
"uptimeNoDataAvailable": "Brak danych dostępnych",
"uptimeSuffix": "czas pracy",
"uptimeDowntimeSuffix": "czas przestoju",
"uptimeTooltipUptimeLabel": "Czas pracy",
"uptimeTooltipDowntimeLabel": "Czas przestoju",
"uptimeOngoing": "w toku",
"uptimeNoMonitoringData": "Brak danych monitorowania",
"uptimeNoData": "Brak danych",
"uptimeMiniBarDown": "Nieaktywny",
"uptimeSectionTitle": "Czas pracy",
"uptimeSectionDescription": "Dostępność za ostatnie {days} dni",
"uptimeAddAlert": "Dodaj Alert",
"uptimeViewAlerts": "Zobacz Alerty",
"uptimeCreateEmailAlert": "Utwórz Alert Email",
"uptimeAlertDescriptionSite": "Otrzymuj powiadomienia e-mail, gdy ta strona jest offline lub wraca online.",
"uptimeAlertDescriptionResource": "Otrzymuj powiadomienia e-mail, gdy to zasób jest offline lub wraca online.",
"uptimeAlertNamePlaceholder": "Nazwa alertu",
"uptimeAdditionalEmails": "Dodatkowe adresy e-mail",
"uptimeCreateAlert": "Utwórz Alert",
"uptimeAlertNoRecipients": "Brak odbiorców",
"uptimeAlertNoRecipientsDescription": "Proszę dodać przynajmniej jednego użytkownika, rolę lub adres email do powiadomienia.",
"uptimeAlertCreated": "Alert utworzony",
"uptimeAlertCreatedDescription": "Zostaniesz powiadomiony, gdy status się zmieni.",
"uptimeAlertCreateFailed": "Nie udało się utworzyć alertu",
"webhookUrlLabel": "URL",
"webhookHeaderKeyPlaceholder": "Klucz",
"webhookHeaderValuePlaceholder": "Wartość",
"alertLabel": "Alert",
"domainPickerWildcardSubdomainNotAllowed": "Uniwersalne subdomeny nie są dozwolone.",
"domainPickerWildcardCertWarning": "Uniwersalne zasoby mogą wymagać dodatkowej konfiguracji, aby działać poprawnie.",
"domainPickerWildcardCertWarningLink": "Dowiedz się więcej",
"health": "Zdrowie",
"domainPendingErrorTitle": "Problem z weryfikacją",
"memberPortalTitle": "Zasoby",
"memberPortalDescription": "Zasoby, do których masz dostęp w tej organizacji",
"memberPortalSortBy": "Sortuj według...",
"memberPortalSortNameAsc": "Nazwa A-Z",
"memberPortalSortNameDesc": "Nazwa Z-A",
"memberPortalSortDomainAsc": "Domena A-Z",
"memberPortalSortDomainDesc": "Domena Z-A",
"memberPortalSortEnabledFirst": "Włączone najpierw",
"memberPortalSortDisabledFirst": "Wyłączone najpierw",
"memberPortalRefresh": "Odśwież",
"memberPortalRefreshResources": "Odśwież zasoby",
"memberPortalFailedToLoad": "Nie udało się załadować zasobów",
"memberPortalFailedToLoadDescription": "Nie udało się załadować zasobów. Sprawdź połączenie i spróbuj ponownie.",
"memberPortalUnableToLoad": "Nie można załadować zasobów",
"memberPortalTryAgain": "Spróbuj ponownie",
"memberPortalNoResourcesFound": "Nie znaleziono zasobów",
"memberPortalNoResourcesAvailable": "Brak dostępnych zasobów",
"memberPortalNoResourcesMatchSearch": "Żadne zasoby nie pasują do „{query}”. Spróbuj dostosować swoje warunki wyszukiwania lub wyczyść wyszukiwanie, aby zobaczyć wszystkie zasoby.",
"memberPortalNoResourcesAccess": "Nie masz jeszcze dostępu do żadnych zasobów. Skontaktuj się z administratorem, aby uzyskać dostęp do potrzebnych zasobów.",
"memberPortalClearSearch": "Wyczyść wyszukiwanie",
"memberPortalPublicResources": "Publiczne zasoby",
"memberPortalPublicResourcesDescription": "Aplikacje i usługi internetowe dostępne za pośrednictwem przeglądarki",
"memberPortalCopiedToClipboard": "Skopiowano do schowka",
"memberPortalCopiedUrlDescription": "URL zasobu został skopiowany do schowka.",
"memberPortalOpenResource": "Otwórz zasób",
"memberPortalPrivateResources": "Prywatne zasoby",
"memberPortalPrivateResourcesDescription": "Zasoby sieci wewnętrznej dostępne za pośrednictwem klienta",
"memberPortalResourceDetails": "Szczegóły zasobu",
"memberPortalMode": "Tryb",
"memberPortalDestination": "Miejsce docelowe",
"memberPortalAlias": "Pseudonim",
"memberPortalCopiedAliasDescription": "Alias zasobu został skopiowany do schowka.",
"memberPortalCopiedDestinationDescription": "Miejsce docelowe zasobu zostało skopiowane do schowka.",
"memberPortalRequiresClientConnection": "Wymaga połączenia z klientem",
"memberPortalAuthMethods": "Metody uwierzytelniania",
"memberPortalSso": "Jednorazowe logowanie (SSO)",
"memberPortalPasswordProtected": "Chronione hasłem",
"memberPortalPinCode": "Kod PIN",
"memberPortalEmailWhitelist": "Biała lista e-mail",
"memberPortalResourceDisabled": "Zasób wyłączony",
"memberPortalShowingResources": "Wyświetlanie zasobów od {start} do {end} z {total}",
"memberPortalPrevious": "Poprzedni",
"memberPortalNext": "Następny",
"httpSettings": "Ustawienia HTTP",
"tcpSettings": "Ustawienia TCP",
"udpSettings": "Ustawienia UDP",
"sshTitle": "SSH",
"sshConnectingDescription": "Nawiązywanie bezpiecznego połączenia…",
"sshConnecting": "Łączenie…",
"sshInitializing": "Inicjalizacja…",
"sshSignInTitle": "Zaloguj się do SSH",
"sshSignInDescription": "Wprowadź swoje poświadczenia SSH",
"sshPasswordTab": "Hasło",
"sshPrivateKeyTab": "Klucz prywatny",
"sshPrivateKeyField": "Klucz prywatny",
"sshPrivateKeyDisclaimer": "Twój klucz prywatny nie jest przechowywany ani widoczny dla Pangolin. Alternatywnie, możesz używać certyfikatów krótkoterminowych do bezproblemowego uwierzytelniania za pomocą Twojej istniejącej tożsamości Pangolin.",
"sshLearnMore": "Dowiedz się więcej",
"sshPrivateKeyFile": "Plik klucza prywatnego",
"sshAuthenticate": "Uwierzytelnij",
"sshTerminate": "Zakończ",
"sshPoweredBy": "Obsługiwane przez",
"sshErrorNoTarget": "Nie określono celu",
"sshErrorWebSocket": "Połączenie WebSocket nie powiodło się",
"sshErrorAuthFailed": "Uwierzytelnianie nie powiodło się",
"sshErrorConnectionClosed": "Połączenie zamknięte przed ukończeniem uwierzytelniania"
}
+575 -41
View File
File diff suppressed because it is too large Load Diff
+576 -42
View File
File diff suppressed because it is too large Load Diff
+573 -39
View File
@@ -1,4 +1,8 @@
{
"contactSalesEnable": "Bu özelliği etkinleştirmek için satış ekibiyle iletişime geçin.",
"contactSalesBookDemo": "Demo ayırt",
"contactSalesOr": "veya",
"contactSalesContactUs": "bize ulaşın",
"setupCreate": "Organizasyonu, siteyi ve kaynakları oluşturun",
"headerAuthCompatibilityInfo": "Kimlik doğrulama belirteci eksik olduğunda 401 Yetkisiz yanıtı zorlamak için bunu etkinleştirin. Bu, sunucu sorunu olmadan kimlik bilgilerini göndermeyen tarayıcılar veya belirli HTTP kütüphaneleri için gereklidir.",
"headerAuthCompatibility": "Genişletilmiş Uyumluluk",
@@ -19,6 +23,18 @@
"componentsInvalidKey": "Geçersiz veya süresi dolmuş lisans anahtarları tespit edildi. Tüm özellikleri kullanmaya devam etmek için lisans koşullarına uyun.",
"dismiss": "Kapat",
"subscriptionViolationMessage": "Geçerli planınız için limitlerinizi aştınız. Planınız dahilinde kalmak için siteleri, kullanıcıları veya diğer kaynakları kaldırarak sorunu düzeltin.",
"trialBannerMessage": "Deneme süreniz {countdown} içinde sona eriyor. Erişimi sürdürmek için yükseltin.",
"trialBannerExpired": "Deneme süreniz sona erdi. Erişimi geri yüklemek için şimdi yükseltin.",
"billingTrialBannerTitle": "Ücretsiz Deneme Aktif",
"billingTrialBannerDescription": "Şu anda iş seviyesi için ücretsiz deneme sürümündesiniz. Deneme süresi sona erdiğinde, hesabınız otomatik olarak Temel seviye özelliklerine ve limitlerine geri dönecektir. Mevcut planınızın özelliklerine erişimi sürdürmek için istediğiniz zaman yükseltin.",
"billingTrialBannerUpgrade": "Şimdi Yükselt",
"billingTrialBadge": "Ücretsiz Deneme",
"trialActive": "Ücretsiz Deneme Aktif",
"trialExpired": "Deneme Süresi Doldu",
"trialHasEnded": "Deneme süreniz sona erdi.",
"trialDaysRemaining": "{count, plural, one {# gün kaldı} other {# gün kaldı}}",
"trialDaysLeftShort": "Deneme süresi için {days}g kaldı",
"trialGoToBilling": "Fatura sayfasına git",
"subscriptionViolationViewBilling": "Faturalamayı görüntüle",
"componentsLicenseViolation": "Lisans İhlali: Bu sunucu, lisanslı sınırı olan {maxSites} sitesini aşarak {usedSites} site kullanmaktadır. Tüm özellikleri kullanmaya devam etmek için lisans koşullarına uyun.",
"componentsSupporterMessage": "Pangolin'e {tier} olarak destek olduğunuz için teşekkür ederiz!",
@@ -81,6 +97,8 @@
"siteConfirmCopy": "Yapılandırmayı kopyaladım",
"searchSitesProgress": "Siteleri ara...",
"siteAdd": "Site Ekle",
"sitesTableViewPublicResources": "Genel Kaynakları Görüntüle",
"sitesTableViewPrivateResources": "Özel Kaynakları Görüntüle",
"siteInstallNewt": "Newt Yükle",
"siteInstallNewtDescription": "Newt'i sisteminizde çalıştırma",
"WgConfiguration": "WireGuard Yapılandırması",
@@ -98,6 +116,21 @@
"siteUpdatedDescription": "Site güncellendi.",
"siteGeneralDescription": "Bu site için genel ayarları yapılandırın",
"siteSettingDescription": "Sitenizdeki ayarları yapılandırın",
"siteResourcesTab": "Kaynaklar",
"siteResourcesNoneOnSite": "Bu sitede henüz genel veya özel kaynak yok.",
"siteResourcesSectionPublic": "Genel Kaynaklar",
"siteResourcesSectionPrivate": "Özel Kaynaklar",
"siteResourcesSectionPublicDescription": "Alanlar veya portlar üzerinden dışarıdan açığa çıkan kaynaklar.",
"siteResourcesSectionPrivateDescription": "Site aracılığıyla özel ağınızda mevcut olan kaynaklar.",
"siteResourcesViewAllPublic": "Tüm kaynakları görüntüle",
"siteResourcesViewAllPrivate": "Tüm kaynakları görüntüle",
"siteResourcesDialogDescription": "Bu siteyle ilişkili genel ve özel kaynakların genel bakışı.",
"siteResourcesShowMore": "Daha fazla göster",
"siteResourcesPermissionDenied": "Bu kaynakları listeleme izniniz yok.",
"siteResourcesEmptyPublic": "Bu siteyi hedefleyen herhangi bir genel kaynak yok.",
"siteResourcesEmptyPrivate": "Bu siteyle ilişkilendirilmiş özel kaynak yok.",
"siteResourcesHowToAccess": "Nasıl erişilir",
"siteResourcesTargetsOnSite": "Bu sitedeki hedefler",
"siteSetting": "{siteName} Ayarları",
"siteNewtTunnel": "Newt Site (Önerilen)",
"siteNewtTunnelDescription": "Ağınıza giriş noktası oluşturmanın en kolay yolu. Ekstra kurulum gerekmez.",
@@ -123,6 +156,10 @@
"shareErrorDeleteMessage": "Bağlantı silinirken bir hata oluştu",
"shareDeleted": "Bağlantı silindi",
"shareDeletedDescription": "Bağlantı silindi",
"shareDelete": "Paylaşım Bağlantısını Sil",
"shareDeleteConfirm": "Paylaşım Bağlantısının Silinmesini Onayla",
"shareQuestionRemove": "Bu paylaşım bağlantısını silmek istediğinizden emin misiniz?",
"shareMessageRemove": "Silindikten sonra, bağlantı artık çalışmayacak ve kullanan herkes kaynağa erişimini kaybedecek.",
"shareTokenDescription": "Erişim jetonunuz iki şekilde iletilebilir: sorgu parametresi olarak veya istek başlıklarında. Kimlik doğrulanmış erişim için her istekten müşteri tarafından iletilmelidir.",
"accessToken": "Erişim Jetonu",
"usageExamples": "Kullanım Örnekleri",
@@ -139,6 +176,7 @@
"shareErrorCreateDescription": "Paylaşım bağlantısı oluşturulurken bir hata oluştu",
"shareCreateDescription": "Bu bağlantıya sahip olan herkes kaynağa erişebilir",
"shareTitleOptional": "Başlık (isteğe bağlı)",
"sharePathOptional": "Yol (isteğe bağlı)",
"expireIn": "Süresi Dolacak",
"neverExpire": "Hiçbir Zaman Sona Ermez",
"shareExpireDescription": "Son kullanma süresi, bağlantının kullanılabilir ve kaynağa erişim sağlayacak süresidir. Bu süreden sonra bağlantı çalışmayı durduracak ve bu bağlantıyı kullanan kullanıcılar kaynağa erişimini kaybedecektir.",
@@ -163,7 +201,7 @@
"proxyResourceTitle": "Herkese Açık Kaynakları Yönet",
"proxyResourceDescription": "Bir web tarayıcısı aracılığıyla kamuya açık kaynaklar oluşturun ve yönetin",
"proxyResourcesBannerTitle": "Web Tabanlı Genel Erişim",
"proxyResourcesBannerDescription": "Public resources are HTTPS proxies accessible to anyone on the internet through a web browser. Unlike private resources, they do not require client-side software and can include identity and context-aware access policies.",
"proxyResourcesBannerDescription": "Genel kaynaklar, web tarayıcısı aracılığıyla herkesin internette erişebileceği HTTPS veya TCP/UDP proxy'leridir. Özel kaynakların aksine, istemci tarafı yazılıma ihtiyaç duymazlar ve kimlik ve bağlam farkındalığı erişim politikalarını içerebilirler.",
"clientResourceTitle": "Özel Kaynakları Yönet",
"clientResourceDescription": "Sadece bağlı bir istemci aracılığıyla erişilebilen kaynakları oluşturun ve yönetin",
"privateResourcesBannerTitle": "Sıfır Güven Özel Erişim",
@@ -171,11 +209,33 @@
"resourcesSearch": "Kaynakları ara...",
"resourceAdd": "Kaynak Ekle",
"resourceErrorDelte": "Kaynak silinirken hata",
"resourcePoliciesTitle": "Kaynak Politikalarını Yönet",
"resourcePoliciesAttachedResourcesColumnTitle": "Ekteki kaynaklar",
"resourcePoliciesAttachedResources": "{count} kaynak",
"resourcePoliciesAttachedResourcesEmpty": "hiçbir kaynak",
"resourcePoliciesDescription": "Kaynaklarınıza erişimi kontrol etmek için kimlik doğrulama politikaları oluşturun ve yönetin",
"resourcePoliciesSearch": "Politikaları ara...",
"resourcePoliciesAdd": "Politika Ekle",
"resourcePoliciesDefaultBadgeText": "Varsayılan politika",
"resourcePoliciesCreate": "Kaynak Politikası Oluştur",
"resourcePoliciesCreateDescription": "Yeni bir politika oluşturmak için aşağıdaki adımları izleyin",
"resourcePolicyName": "Politika Adı",
"resourcePolicyNameDescription": "Bu politikaya kaynaklarınız arasında kolayca tanımlayabilmek için bir ad verin",
"resourcePolicyNamePlaceholder": "örneğin: İç Erişim Politikası",
"resourcePoliciesSeeAll": "Tüm Politikaları Gör",
"resourcePolicyAuthMethodAdd": "Kimlik Doğrulama Yöntemi Ekle",
"resourcePolicyOtpEmailAdd": "OTP e-postaları ekle",
"resourcePolicyRulesAdd": "Kurallar Ekle",
"resourcePolicyAuthMethodsDescription": "Ek kimlik doğrulama yöntemleri aracılığıyla kaynaklara erişime izin verin",
"resourcePolicyUsersRolesDescription": "Hangi kullanıcılar ve rollerin ilgili kaynakları ziyaret edebileceğini yapılandırın",
"rulesResourcePolicyDescription": "Bu politikayla ilişkilendirilmiş erişim kaynaklarını kontrol etmek için kuralları yapılandırın",
"authentication": "Kimlik Doğrulama",
"protected": "Korunan",
"notProtected": "Korunmayan",
"resourceMessageRemove": "Kaldırıldıktan sonra kaynak artık erişilebilir olmayacaktır. Kaynakla ilişkili tüm hedefler de kaldırılacaktır.",
"resourceQuestionRemove": "Kaynağı organizasyondan kaldırmak istediğinizden emin misiniz?",
"resourcePolicyMessageRemove": "Kaldırıldıktan sonra kaynak politikası artık erişilebilir olmayacak. Kaynakla ilişkili tüm öğeler bağlantıları koparılacak ve kimlik doğrulaması olmadan bırakılacaktır.",
"resourcePolicyQuestionRemove": "Kaynak politikasını organizasyondan kaldırmak istediğinizden emin misiniz?",
"resourceHTTP": "HTTPS Kaynağı",
"resourceHTTPDescription": "Tam nitelikli bir etki alanı adı kullanarak HTTPS üzerinden proxy isteklerini yönlendirin.",
"resourceRaw": "Ham TCP/UDP Kaynağı",
@@ -183,8 +243,9 @@
"resourceRawDescriptionCloud": "Proxy isteklerini bir port numarası kullanarak ham TCP/UDP üzerinden yapın. Sitelerin uzak bir düğüme bağlanması gereklidir.",
"resourceCreate": "Kaynak Oluştur",
"resourceCreateDescription": "Yeni bir kaynak oluşturmak için aşağıdaki adımları izleyin",
"resourceCreateGeneralDescription": "Adı ve türü dahil temel kaynak ayarlarını yapılandırın",
"resourceSeeAll": "Tüm Kaynakları Gör",
"resourceInfo": "Kaynak Bilgilendirmesi",
"resourceCreateGeneral": "Genel",
"resourceNameDescription": "Bu, kaynak için görünen addır.",
"siteSelect": "Site seç",
"siteSearch": "Site ara",
@@ -194,12 +255,15 @@
"noCountryFound": "Ülke bulunamadı.",
"siteSelectionDescription": "Bu site hedefe bağlantı sağlayacaktır.",
"resourceType": "Kaynak Türü",
"resourceTypeDescription": "Kaynağınıza nasıl erişmek istediğinizi belirleyin",
"resourceTypeDescription": "Bu, kaynak protokolünü ve tarayıcıda nasıl görüntüleneceğini kontrol eder. Bu daha sonra değiştirilemez.",
"resourceDomainDescription": "Kaynak bu tam etki alanı adıyla sunulacak.",
"resourceHTTPSSettings": "HTTPS Ayarları",
"resourceHTTPSSettingsDescription": "Kaynağınıza HTTPS üzerinden erişimin nasıl sağlanacağını yapılandırın",
"resourcePortDescription": "Kaynağa erişilebilecek Pangolin örneği veya düğüm üzerindeki harici bağlantı noktası.",
"domainType": "Alan Türü",
"subdomain": "Alt Alan Adı",
"baseDomain": "Temel Alan Adı",
"configure": "Yapılandır",
"subdomnainDescription": "Kaynağınızın erişilebileceği alt alan adı.",
"resourceRawSettings": "TCP/UDP Ayarları",
"resourceRawSettingsDescription": "Kaynaklara TCP/UDP üzerinden nasıl erişileceğini yapılandırın",
@@ -216,8 +280,27 @@
"resourceLearnRaw": "TCP/UDP kaynaklarını nasıl yapılandıracağınızı öğrenin",
"resourceBack": "Kaynaklara Geri Dön",
"resourceGoTo": "Kaynağa Git",
"resourcePolicyDelete": "Kaynak Politikasını Sil",
"resourcePolicyDeleteConfirm": "Kaynak Politikasının Silinmesini Onayla",
"resourceDelete": "Kaynağı Sil",
"resourceDeleteConfirm": "Kaynak Silmeyi Onayla",
"labelDelete": "Etiketi Sil",
"labelAdd": "Etiket Ekle",
"labelCreateSuccessMessage": "Etiket Başarıyla Oluşturuldu",
"labelEditSuccessMessage": "Etiket Başarıyla Değiştirildi",
"labelNameField": "Etiket Adı",
"labelColorField": "Etiket Rengi",
"labelPlaceholder": "Örn: homelab",
"labelCreate": "Etiket Oluştur",
"createLabelDialogTitle": "Etiket Oluştur",
"createLabelDialogDescription": "Bu kuruluşa eklenebilecek yeni bir etiket oluşturun",
"labelEdit": "Etiketi Düzenle",
"editLabelDialogTitle": "Etiketi Güncelle",
"editLabelDialogDescription": "Bu kuruluşa eklenebilecek yeni bir etiketi düzenleyin",
"labelDeleteConfirm": "Etiketi Silmeyi Onayla",
"labelErrorDelete": "Etiket silinirken hata oluştu",
"labelMessageRemove": "Bu işlem kalıcıdır. Bu etiket ile etiketlenmiş tüm siteler, kaynaklar ve kullanıcılar etiketsiz kalacaktır.",
"labelQuestionRemove": "Etiketi organizasyondan kaldırmak istediğinizden emin misiniz?",
"visibility": "Görünürlük",
"enabled": "Etkin",
"disabled": "Devre Dışı",
@@ -228,6 +311,8 @@
"rules": "Kurallar",
"resourceSettingDescription": "Kaynağınızdaki ayarları yapılandırın",
"resourceSetting": "{resourceName} Ayarları",
"resourcePolicySettingDescription": "Kaynak politikası üzerindeki ayarları yapılandır",
"resourcePolicySetting": "{policyName} Ayarları",
"alwaysAllow": "Kimlik Doğrulamayı Atla",
"alwaysDeny": "Erişimi Engelle",
"passToAuth": "Kimlik Doğrulamasına Geç",
@@ -267,8 +352,11 @@
"orgMissing": "Organizasyon Kimliği Eksik",
"orgMissingMessage": "Organizasyon kimliği olmadan daveti yeniden oluşturmanız mümkün değildir.",
"accessUsersManage": "Kullanıcıları Yönet",
"accessUserManage": "Kullanıcıyı Yönet",
"accessUsersDescription": "Bu organizasyona erişimi olan kullanıcıları davet edin ve yönetin",
"accessUsersSearch": "Kullanıcıları ara...",
"accessUsersRoleFilterCount": "{count, plural, one {# rol} other {# roller}}",
"accessUsersRoleFilterClear": "Rol filtrelerini temizle",
"accessUserCreate": "Kullanıcı Oluştur",
"accessUserRemove": "Kullanıcıyı Kaldır",
"username": "Kullanıcı Adı",
@@ -380,7 +468,7 @@
"userTitle": "Tüm Kullanıcıları Yönet",
"userDescription": "Sistemdeki tüm kullanıcıları görün ve yönetin",
"userAbount": "Kullanıcı Yönetimi Hakkında",
"userAbountDescription": "This table displays all base user objects in the system. Each user may belong to multiple organizations. Removing a user from an organization does not delete their base user object. They will remain in the system. To completely remove a user from the system, you must delete their base user object using the delete action in this table.",
"userAbountDescription": "Bu tablo sistemdeki tüm kök kullanıcı nesnelerini gösterir. Her kullanıcı birden fazla organizasyona ait olabilir. Bir kullanıcıyı bir organizasyondan kaldırmak, onların kök kullanıcı nesnesini silmez - sistemde kalmaya devam ederler. Bir kullanıcıyı sistemden tamamen kaldırmak için, bu tablodaki silme işlemini kullanarak kök kullanıcı nesnesini silmelisiniz.",
"userServer": "Sunucu Kullanıcıları",
"userSearch": "Sunucu kullanıcılarını ara...",
"userErrorDelete": "Kullanıcı silme hatası",
@@ -487,6 +575,12 @@
"userMessageOrgRemove": "Kaldırıldığında, bu kullanıcı organizasyona artık erişim sağlayamayacak. Kullanıcı tekrar davet edilebilir, ancak daveti kabul etmesi gerekecek.",
"userRemoveOrgConfirm": "Kullanıcıyı Kaldırmayı Onayla",
"userRemoveOrg": "Kullanıcıyı Organizasyondan Kaldır",
"userQuestionOrgRemoveSelf": "Bu organizasyondan kendinizi kaldırmak istediğinizden emin misiniz?",
"userMessageOrgRemoveSelf": "Erişiminizi hemen kaybedeceksiniz. Bir yönetici daha sonra sizi tekrar davet edebilir, ancak yeni bir daveti kabul etmeniz gerekecek.",
"userRemoveOrgConfirmSelf": "Kendimi Kaldırmayı Onayla",
"userRemoveOrgSelf": "Kendinizi organizasyondan kaldırın",
"userRemoveOrgSelfWarning": "Bu organizasyona erişiminizi anında kaybedeceksiniz.",
"userRemoveOrgConfirmPhraseSelf": "KENDİMİ ORGANİZASYONDAN KALDIR",
"users": "Kullanıcılar",
"accessRoleMember": "Üye",
"accessRoleOwner": "Sahip",
@@ -495,6 +589,11 @@
"emailInvalid": "Geçersiz e-posta adresi",
"inviteValidityDuration": "Lütfen bir süre seçin",
"accessRoleSelectPlease": "Lütfen bir rol seçin",
"removeOwnAdminRoleConfirmTitle": "Yönetici erişiminizi kaldırmak istiyor musunuz?",
"removeOwnAdminRoleConfirmDescription": "Kaydettikten sonra, bu organizasyonda artık yönetici izinleriniz olmayacak. Gerekirse başka bir yönetici erişimi geri yükleyebilir.",
"removeOwnAdminRoleConfirmButton": "Yönetici Erişimi Kaldır",
"removeOwnAdminRoleConfirmPhrase": "YÖNETİCİ ERİŞİMİMİ KALDIR",
"ownerMustRetainAdminRole": "Organizasyon sahibi en az bir yönetici rolü bulundurmalıdır.",
"usernameRequired": "Kullanıcı adı gereklidir",
"idpSelectPlease": "Lütfen bir kimlik sağlayıcı seçin",
"idpGenericOidc": "Genel OAuth2/OIDC sağlayıcısı.",
@@ -523,7 +622,7 @@
"userSettings": "Kullanıcı Bilgileri",
"userSettingsDescription": "Yeni kullanıcı için detayları girin",
"inviteEmailSent": "Kullanıcıya davet e-postası gönder",
"inviteValid": "Invite Valid For (days)",
"inviteValid": "Geçerli Süresi",
"selectDuration": "Süreyi seçin",
"selectResource": "Kaynak Seçin",
"filterByResource": "Kaynağa Göre Filtrele",
@@ -579,7 +678,7 @@
"createdAt": "Oluşturulma Tarihi",
"proxyErrorInvalidHeader": "Geçersiz özel Ana Bilgisayar Başlığı değeri. Alan adı formatını kullanın veya özel Ana Bilgisayar Başlığını ayarlamak için boş bırakın.",
"proxyErrorTls": "Geçersiz TLS Sunucu Adı. Alan adı formatını kullanın veya TLS Sunucu Adını kaldırmak için boş bırakılsın.",
"proxyEnableSSL": "SSL Etkinleştir",
"proxyEnableSSL": "TLS'yi Etkinleştir",
"proxyEnableSSLDescription": "Hedeflere güvenli HTTPS bağlantıları için SSL/TLS şifrelemesini etkinleştirin.",
"target": "Hedef",
"configureTarget": "Hedefleri Yapılandır",
@@ -622,6 +721,7 @@
"targetNoOneDescription": "Yukarıdaki birden fazla hedef ekleyerek yük dengeleme etkinleştirilecektir.",
"targetsSubmit": "Hedefleri Kaydet",
"addTarget": "Hedef Ekle",
"proxyMultiSiteRoundRobinNodeHelp": "Round robin yönlendirme, aynı düğüme bağlı olmayan siteler arasında çalışmayacaktır, ancak failover çalışacaktır.",
"targetErrorInvalidIp": "Geçersiz IP adresi",
"targetErrorInvalidIpDescription": "Lütfen geçerli bir IP adresi veya host adı girin",
"targetErrorInvalidPort": "Geçersiz port",
@@ -695,6 +795,16 @@
"rulesNoOne": "Kural yok. Formu kullanarak bir kural ekleyin.",
"rulesOrder": "Kurallar, artan öncelik sırasına göre değerlendirilir.",
"rulesSubmit": "Kuralları Kaydet",
"policyErrorCreate": "Politika oluşturulurken hata oluştu",
"policyErrorCreateDescription": "Politikayı oluştururken bir hata oluştu",
"policyErrorCreateMessageDescription": "Beklenmeyen bir hata oluştu",
"policyErrorUpdate": "Politika güncellenirken hata oluştu",
"policyErrorUpdateDescription": "Policayı güncellerken bir hata oluştu",
"policyErrorUpdateMessageDescription": "Beklenmeyen bir hata oluştu",
"policyCreatedSuccess": "Kaynak politikası başarıyla oluşturuldu",
"policyUpdatedSuccess": "Kaynak politikası başarıyla güncellendi",
"authMethodsSave": "Kimlik doğrulama yöntemlerini kaydet",
"rulesSave": "Kuralları Kaydet",
"resourceErrorCreate": "Kaynak oluşturma hatası",
"resourceErrorCreateDescription": "Kaynak oluşturulurken bir hata oluştu",
"resourceErrorCreateMessage": "Kaynak oluşturma hatası:",
@@ -731,6 +841,7 @@
"newtEndpoint": "Uç Nokta",
"newtId": "Kimlik",
"newtSecretKey": "Gizli",
"newtVersion": "Sürüm",
"architecture": "Mimari",
"sites": "Siteler",
"siteWgAnyClients": "Herhangi bir WireGuard istemcisi kullanarak bağlanın. Dahili kaynaklara eş IP adresini kullanarak erişmeniz gerekecek.",
@@ -757,6 +868,17 @@
"pincodeAdd": "PIN Kodu Ekle",
"pincodeRemove": "PIN Kodu Kaldır",
"resourceAuthMethods": "Kimlik Doğrulama Yöntemleri",
"resourcePolicyAuthMethodsEmpty": "Kimlik doğrulama yöntemi yok",
"resourcePolicyOtpEmpty": "Tek seferlik parola yok",
"resourcePolicyReadOnly": "Bu politika yalnızca okumalıdır",
"resourcePolicyReadOnlyDescription": "Bu kaynak politikası birden fazla kaynakla paylaşılmaktadır, bu sayfada düzenleyemezsiniz.",
"editSharedPolicy": "Paylaşılan Politikayı Düzenle",
"resourcePolicyTypeSave": "Kaynak türünü kaydet",
"resourcePolicySelect": "Kaynak politikasını seçin",
"resourcePolicySelectError": "Bir kaynak politikası seçin",
"resourcePolicyNotFound": "Politika bulunamadı",
"resourcePolicySearch": "Politikaları ara",
"resourcePolicyRulesEmpty": "Kimlik doğrulama kuralı yok",
"resourceAuthMethodsDescriptions": "Ek kimlik doğrulama yöntemleriyle kaynağa erişime izin verin",
"resourceAuthSettingsSave": "Başarıyla kaydedildi",
"resourceAuthSettingsSaveDescription": "Kimlik doğrulama ayarları kaydedildi",
@@ -792,6 +914,12 @@
"resourcePincodeSetupTitle": "Pincode Ayarla",
"resourcePincodeSetupTitleDescription": "Bu kaynağı korumak için bir pincode ayarlayın",
"resourceRoleDescription": "Yöneticiler her zaman bu kaynağa erişebilir.",
"resourcePolicySelectTitle": "Kaynak Erişim Politikası",
"resourcePolicySelectDescription": "Kimlik doğrulama için kaynak politika türünü seçin",
"resourcePolicyInline": "Satır İçi Kaynak Politikası",
"resourcePolicyInlineDescription": "Erişim Politikası sadece bu kaynağa yönelik",
"resourcePolicyShared": "Paylaşılan Kaynak Politikası",
"resourcePolicySharedDescription": "Bu kaynak paylaşılan bir politika kullanır. Politika düzeyindeki ayarlar (kimlik doğrulama yöntemleri, e-posta beyaz listesi) kilitlidir. Aşağıda, kaynakla ilgili özel kurallar, roller ve kullanıcılar ekleyebilirsiniz.",
"resourceUsersRoles": "Erişim Kontrolleri",
"resourceUsersRolesDescription": "Bu kaynağı kimlerin ziyaret edebileceği kullanıcıları ve rolleri yapılandırın",
"resourceUsersRolesSubmit": "Erişim Kontrollerini Kaydet",
@@ -1087,6 +1215,18 @@
"idpErrorConnectingTo": "{name} ile bağlantı kurarken bir sorun meydana geldi. Lütfen yöneticiye danışın.",
"idpErrorNotFound": "IdP bulunamadı",
"inviteInvalid": "Geçersiz Davet",
"labels": "Etiketler",
"orgLabelsDescription": "Bu organizasyondaki etiketleri yönetin.",
"addLabels": "Etiketler ekle",
"siteLabelsTab": "Etiketler",
"siteLabelsDescription": "Bu siteyle ilişkili etiketleri yönetin.",
"labelsNotFound": "Etiketler bulunamadı",
"labelSearch": "Etiket ara",
"accessLabelFilterCount": "{count, plural, one {# etiket} other {# etiketler}}",
"labelOverflowCount": "+{count, plural, one {# etiket} other {# etiketler}}",
"accessLabelFilterClear": "Etiket filtrelerini temizle",
"selectColor": "Renk seç",
"createNewLabel": "Yeni kuruluş etiketi \"{label}\" oluştur",
"inviteInvalidDescription": "Davet bağlantısı geçersiz.",
"inviteErrorWrongUser": "Davet bu kullanıcı için değil",
"inviteErrorUserNotExists": "Kullanıcı mevcut değil. Lütfen önce bir hesap oluşturun.",
@@ -1257,6 +1397,7 @@
"actionViewLogs": "Kayıtları Görüntüle",
"noneSelected": "Hiçbiri seçili değil",
"orgNotFound2": "Hiçbir organizasyon bulunamadı.",
"search": "Ara…",
"searchPlaceholder": "Ara...",
"emptySearchOptions": "Seçenek bulunamadı",
"create": "Oluştur",
@@ -1320,6 +1461,8 @@
"sidebarResources": "Kaynaklar",
"sidebarProxyResources": "Herkese Açık",
"sidebarClientResources": "Özel",
"sidebarPolicies": "Politikalar",
"sidebarResourcePolicies": "Kaynaklar",
"sidebarAccessControl": "Erişim Kontrolü",
"sidebarLogsAndAnalytics": "Kayıtlar & Analitik",
"sidebarTeam": "Ekip",
@@ -1341,12 +1484,170 @@
"sidebarGeneral": "Yönet",
"sidebarLogAndAnalytics": "Kayıt & Analiz",
"sidebarBluePrints": "Planlar",
"sidebarAlerting": "Uyarı",
"sidebarHealthChecks": "Sağlık kontrolleri",
"sidebarOrganization": "Organizasyon",
"sidebarManagement": "Yönetim",
"sidebarBillingAndLicenses": "Faturalandırma & Lisanslar",
"sidebarLogsAnalytics": "Analitik",
"alertingTitle": "Uyarı",
"alertingDescription": "Bildirimler için kaynakları, tetikleyicileri ve eylemleri tanımlayın",
"alertingRules": "Uyarı kuralları",
"alertingSearchRules": "Kuralları ara…",
"alertingAddRule": "Kural Oluştur",
"alertingColumnSource": "Kaynak",
"alertingColumnTrigger": "Tetikle",
"alertingColumnActions": "İşlemler",
"alertingColumnEnabled": "Etkin",
"alertingDeleteQuestion": "Bu uyarı kuralını silmek istediğinizi onaylayın lütfen.",
"alertingDeleteRule": "Uyarı kuralını sil",
"alertingRuleDeleted": "Uyarı kuralı silindi",
"alertingRuleSaved": "Uyarı kuralı kaydedildi",
"alertingRuleSavedCreatedDescription": "Yeni uyarı kuralınız oluşturuldu. Bu sayfada düzenlemeye devam edebilirsiniz.",
"alertingRuleSavedUpdatedDescription": "Bu uyarı kuralındaki değişiklikleriniz kaydedildi.",
"alertingEditRule": "Uyarı Kuralını Düzenle",
"alertingCreateRule": "Uyarı Kuralı Oluştur",
"alertingRuleCredenzaDescription": "Ne izlenecek, ne zaman tetiklenecek ve nasıl bildirilecek, bunları seçin",
"alertingRuleNamePlaceholder": "Üretim sitesi kapalı",
"alertingRuleEnabled": "Kural etkinleştirildi",
"alertingSectionSource": "Kaynak",
"alertingSourceType": "Kaynak türü",
"alertingSourceSite": "Site",
"alertingSourceHealthCheck": "Sağlık kontrolü",
"alertingPickSites": "Siteler",
"alertingPickHealthChecks": "Sağlık kontrolleri",
"alertingPickResources": "Kaynaklar",
"alertingAllSites": "Tüm Siteler",
"alertingAllSitesDescription": "Herhangi bir site için uyarı tetiklenir",
"alertingSpecificSites": "Belirli Siteler",
"alertingSpecificSitesDescription": "İzlemek için belirli siteleri seçin",
"alertingAllHealthChecks": "Tüm Sağlık Kontrolleri",
"alertingAllHealthChecksDescription": "Herhangi bir sağlık kontrolü için uyarı tetiklenir",
"alertingSpecificHealthChecks": "Belirli Sağlık Kontrolleri",
"alertingSpecificHealthChecksDescription": "İzlemek için belirli sağlık kontrollerini seçin",
"alertingAllResources": "Tüm Kaynaklar",
"alertingAllResourcesDescription": "Herhangi bir kaynak için uyarı tetiklenir",
"alertingSpecificResources": "Belirli Kaynaklar",
"alertingSpecificResourcesDescription": "İzlemek için belirli kaynakları seçin",
"alertingSelectResources": "Kaynakları seçin…",
"alertingResourcesSelected": "{count} kaynak seçildi",
"alertingResourcesEmpty": "İlk 10 sonuçta hedefleri olan kaynak yok.",
"alertingSectionTrigger": "Tetikle",
"alertingTrigger": "Uyarı zamanı",
"alertingTriggerSiteOnline": "Site çevrimiçi",
"alertingTriggerSiteOffline": "Site çevrimdışı",
"alertingTriggerSiteToggle": "Site durumu değişiyor",
"alertingTriggerHcHealthy": "Sağlık kontrolü sağlıklı",
"alertingTriggerHcUnhealthy": "Sağlık kontrolü sağlıksız",
"alertingTriggerHcToggle": "Sağlık kontrolü durumu değişiyor",
"alertingTriggerResourceHealthy": "Kaynak sağlıklı",
"alertingTriggerResourceUnhealthy": "Kaynak sağlıksız",
"alertingTriggerResourceDegraded": "Kaynak bozuk",
"alertingSearchHealthChecks": "Sağlık kontrollerini ara…",
"alertingHealthChecksEmpty": "Mevcut sağlık kontrolü yok.",
"alertingTriggerResourceToggle": "Kaynak durumu değişiyor",
"alertingSourceResource": "Kaynak",
"alertingSectionActions": "İşlemler",
"alertingAddAction": "Eylem Ekle",
"alertingActionNotify": "E-posta",
"alertingActionNotifyDescription": "Kullanıcılara veya role e-posta bildirimleri gönder",
"alertingActionWebhook": "Webhook",
"alertingActionWebhookDescription": "Özel bir uç noktaya HTTP isteği gönderin",
"alertingExternalIntegration": "Harici Entegrasyon",
"alertingExternalPagerDutyDescription": "Olay yönetimi için uyarıları PagerDuty'ye gönderin",
"alertingExternalOpsgenieDescription": "Nöbetçi yönetimi için uyarıları Opsgenie'ye yönlendirin",
"alertingExternalServiceNowDescription": "Uyarı olaylarından ServiceNow olayları oluşturun",
"alertingExternalIncidentIoDescription": "Uyarı olaylarından Incident.io iş akışlarını tetikleyin",
"alertingActionType": "Eylem türü",
"alertingNotifyUsers": "Kullanıcılar",
"alertingNotifyRoles": "Roller",
"alertingNotifyEmails": "E-posta adresleri",
"alertingEmailPlaceholder": "E-posta ekleyin ve Enter tuşuna basın",
"alertingWebhookMethod": "HTTP yöntemi",
"alertingWebhookSecret": "İmza sırrı (isteğe bağlı)",
"alertingWebhookSecretPlaceholder": "HMAC sırrı",
"alertingWebhookHeaders": "Başlıklar",
"alertingAddHeader": "Başlık ekle",
"alertingSelectSites": "Siteleri seçin…",
"alertingSitesSelected": "{count} site seçildi",
"alertingSelectHealthChecks": "Sağlık kontrolleri seçin…",
"alertingHealthChecksSelected": "{count} sağlık kontrolü seçildi",
"alertingNoHealthChecks": "Hedefleri etkinleştirilmiş sağlık kontrolleri yok",
"alertingHealthCheckStub": "Sağlık kontrolü kaynak seçimi henüz bağlanmadı - yine de tetikleyicileri ve eylemleri yapılandırabilirsiniz.",
"alertingSelectUsers": "Kullanıcıları seçin…",
"alertingUsersSelected": "{count} kullanıcı seçildi",
"alertingSelectRoles": "Rolleri seçin…",
"alertingRolesSelected": "{count} rol seçildi",
"alertingSummarySites": "Siteler ({count})",
"alertingSummaryAllSites": "Tüm siteler",
"alertingSummaryHealthChecks": "Sağlık kontrolleri ({count})",
"alertingSummaryAllHealthChecks": "Tüm sağlık kontrolleri",
"alertingSummaryResources": "Kaynaklar ({count})",
"alertingSummaryAllResources": "Tüm kaynaklar",
"alertingErrorNameRequired": "Bir ad girin",
"alertingErrorActionsMin": "En az bir eylem ekleyin",
"alertingErrorPickSites": "En az bir site seçin",
"alertingErrorPickHealthChecks": "En az bir sağlık kontrolü seçin",
"alertingErrorPickResources": "En az bir kaynak seçin",
"alertingErrorTriggerSite": "Bir site tetikleyicisi seçin",
"alertingErrorTriggerHealth": "Bir sağlık kontrolü tetikleyicisi seçin",
"alertingErrorTriggerResource": "Bir kaynak tetikleyicisi seçin",
"alertingErrorNotifyRecipients": "Kullanıcıları, rolleri veya en az bir e-posta seçin",
"alertingConfigureSource": "Kaynağı Yapılandır",
"alertingConfigureTrigger": "Tetikleyiciyi Yapılandır",
"alertingConfigureActions": "Eylemleri Yapılandır",
"alertingBackToRules": "Kurallara Geri Dön",
"alertingRuleCooldown": "Serinleme süresi (saniye)",
"alertingRuleCooldownDescription": "Aynı kural için tekrarlanan uyarılar arasında minimum süre. Her seferinde tetiklenmesi için 0 olarak ayarlayın.",
"alertingDraftBadge": "Taslak - bu kuralı kaydetmek için kaydedin",
"alertingSidebarHint": "Düzenlemek için kanvas üzerindeki bir adıma tıklayın.",
"alertingGraphCanvasTitle": "Kural Akışı",
"alertingGraphCanvasDescription": "Kaynak, tetikleyici ve eylemlerin görsel genel bakışı. Düzenlemek için bir düğümü seçin.",
"alertingNodeNotConfigured": "Henüz yapılandırılmadı",
"alertingNodeActionsCount": "{count, plural, one {# eylem} other {# eylemler}}",
"alertingNodeRoleSource": "Kaynak",
"alertingNodeRoleTrigger": "Tetikle",
"alertingNodeRoleAction": "Aksiyon",
"alertingTabRules": "Uyarı Kuralları",
"alertingTabHealthChecks": "Sağlık Kontrolleri",
"alertingRulesBannerTitle": "Bildirim Alın",
"alertingRulesBannerDescription": "Her kural neyin izleneceğini (bir site, sağlık kontrolü veya kaynak), ne zaman tetikleneceğini (örneğin çevrimdışı veya sağlıksız) ve ekibinize e-posta, web kancaları veya entegrasyonlar aracılığıyla nasıl bildirileceğini bağlar. Bu listeyi kullanarak kuralları oluşturun, etkinleştirin ve yönetin.",
"alertingHealthChecksBannerTitle": "Sağlık ve Kaynakları İzleyin",
"alertingHealthChecksBannerDescription": "Sağlık kontrolleri bir kez tanımladığınız HTTP veya TCP monitörleridir. Ardından hedef sağlıklı veya sağlıksız olduğunda bildirilmeniz için onları uyarı kurallarında kaynak olarak kullanabilirsiniz. Kaynaklar üzerindeki sağlık kontrolleri de burada görünür.",
"standaloneHcTableTitle": "Sağlık Kontrolleri",
"standaloneHcSearchPlaceholder": "Sağlık kontrollerini ara…",
"standaloneHcAddButton": "Sağlık Kontrolü Oluştur",
"standaloneHcCreateTitle": "Sağlık Kontrolü Oluştur",
"standaloneHcEditTitle": "Sağlık Kontrolünü Düzenle",
"standaloneHcDescription": "Uyarı kurallarında kullanılmak üzere bir HTTP veya TCP sağlık kontrolü yapılandırın.",
"standaloneHcNameLabel": "Ad",
"standaloneHcNamePlaceholder": "HTTP Monitörüm",
"standaloneHcDeleteTitle": "Sağlık kontrolünü sil",
"standaloneHcDeleteQuestion": "Bu sağlık kontrolünü silmek istediğinizi onaylayın lütfen.",
"standaloneHcDeleted": "Sağlık kontrolü silindi",
"standaloneHcSaved": "Sağlık kontrolü kaydedildi",
"standaloneHcColumnHealth": "Sağlık",
"standaloneHcColumnMode": "Mod",
"standaloneHcColumnTarget": "Hedef",
"standaloneHcHealthStateHealthy": "Sağlıklı",
"standaloneHcHealthStateUnhealthy": "Sağlıksız",
"standaloneHcHealthStateUnknown": "Bilinmiyor",
"standaloneHcFilterAnySite": "Tüm siteler",
"standaloneHcFilterAnyResource": "Tüm kaynaklar",
"standaloneHcFilterMode": "Mod",
"standaloneHcFilterModeHttp": "HTTP",
"standaloneHcFilterModeTcp": "TCP",
"standaloneHcFilterModeSnmp": "SNMP",
"standaloneHcFilterModePing": "Ping",
"standaloneHcFilterHealth": "Sağlık",
"standaloneHcFilterEnabled": "Etkin",
"standaloneHcFilterEnabledOn": "Etkin",
"standaloneHcFilterEnabledOff": "Devre Dışı",
"standaloneHcFilterSiteIdFallback": "Site {id}",
"standaloneHcFilterResourceIdFallback": "Kaynak {id}",
"blueprints": "Planlar",
"blueprintsDescription": "Deklaratif yapılandırmaları uygulayın ve önceki çalışmaları görüntüleyin",
"blueprintsLog": "Şablonlar Günlüğü",
"blueprintsDescription": "Geçmiş şablon uygulamalarını ve sonuçlarını görüntüleyin",
"blueprintAdd": "Plan Ekle",
"blueprintGoBack": "Tüm Planları Gör",
"blueprintCreate": "Plan Oluştur",
@@ -1364,7 +1665,17 @@
"contents": "İçerik",
"parsedContents": "Verilerin Ayrıştırılmış İçeriği (Salt Okunur)",
"enableDockerSocket": "Docker Soketini Etkinleştir",
"enableDockerSocketDescription": "Plan etiketleri için Docker Socket etiket toplamasını etkinleştirin. Newt'e soket yolu sağlanmalıdır.",
"enableDockerSocketDescription": "Plan etiketleri için Docker Socket etiket toplamasını etkinleştirin. Site bağlantısına soket yolu sağlanmalıdır. Bunun nasıl çalıştığını <docsLink>belgelemede</docsLink> okuyun.",
"newtAutoUpdate": "Site Otomatik-Güncellemesini Etkinleştir",
"newtAutoUpdateDescription": "Etkinleştirildiğinde, site bağdaştırıcıları yeni sürüm mevcut olduğunda otomatik olarak en son sürüme güncellenecek.",
"siteAutoUpdate": "Site Otomatik-Güncellemesi",
"siteAutoUpdateLabel": "Otomatik Güncellemeyi Etkinleştir",
"siteAutoUpdateDescription": "Bu sitenin bağdaştırıcısının en son sürümü otomatik olarak indirip indirmeyeceğini kontrol edin.",
"siteAutoUpdateOrgDefault": "Kuruluş varsayılanı: {state}",
"siteAutoUpdateOverriding": "Kuruluş ayarını geçersiz kılıyor",
"siteAutoUpdateResetToOrg": "Kuruluş Varsayılanına Sıfırla",
"siteAutoUpdateEnabled": "etkin",
"siteAutoUpdateDisabled": "devre dışı",
"viewDockerContainers": "Docker Konteynerlerini Görüntüle",
"containersIn": "{siteName} içindeki konteynerler",
"selectContainerDescription": "Bu hedef için bir ana bilgisayar adı olarak kullanmak üzere herhangi bir konteyner seçin. Bir bağlantı noktası kullanmak için bir bağlantı noktasına tıklayın.",
@@ -1406,8 +1717,10 @@
"initialSetupDescription": "İlk sunucu yönetici hesabını oluşturun. Yalnızca bir sunucu yöneticisi olabilir. Bu kimlik bilgilerini daha sonra her zaman değiştirebilirsiniz.",
"createAdminAccount": "Yönetici Hesabı Oluştur",
"setupErrorCreateAdmin": "Sunucu yönetici hesabı oluşturulurken bir hata oluştu.",
"certificateStatus": "Sertifika Durumu",
"certificateStatus": "Sertifika",
"certificateStatusAutoRefreshHint": "Durum otomatik olarak yenilenir.",
"loading": "Yükleniyor",
"loadingEllipsis": "Yükleniyor...",
"loadingAnalytics": "Analiz Yükleniyor",
"restart": "Yeniden Başlat",
"domains": "Alan Adları",
@@ -1475,6 +1788,7 @@
"pangolinUpdateAvailableReleaseNotes": "Yayın Notlarını Görüntüle",
"newtUpdateAvailable": "Güncelleme Mevcut",
"newtUpdateAvailableInfo": "Newt'in yeni bir versiyonu mevcut. En iyi deneyim için lütfen en son sürüme güncelleyin.",
"pangolinNodeUpdateAvailableInfo": "Pangolin Node'un yeni bir sürümü mevcut. En iyi deneyim için lütfen en son sürüme güncelleyin.",
"domainPickerEnterDomain": "Alan Adı",
"domainPickerPlaceholder": "myapp.example.com",
"domainPickerDescription": "Mevcut seçenekleri görmek için kaynağın tam etki alanını girin.",
@@ -1633,6 +1947,7 @@
"billingManageLicenseSubscription": "Kendi barındırdığınız ücretli lisans anahtarları için aboneliğinizi yönetin",
"billingCurrentKeys": "Mevcut Anahtarlar",
"billingModifyCurrentPlan": "Mevcut Planı Düzenle",
"billingManageLicenseSubscriptionDescription": "Ücretli kendi barındırdığı lisans anahtarları için aboneliğinizi yönetin ve faturaları indirin.",
"billingConfirmUpgrade": "Yükseltmeyi Onayla",
"billingConfirmDowngrade": "Düşürmeyi Onayla",
"billingConfirmUpgradeDescription": "Planınızı yükseltmek üzeresiniz. Yeni limitleri ve fiyatları aşağıda inceleyin.",
@@ -1714,6 +2029,7 @@
"configureHealthCheck": "Sağlık Kontrolünü Yapılandır",
"configureHealthCheckDescription": "{hedef} için sağlık izleme kurun",
"enableHealthChecks": "Sağlık Kontrollerini Etkinleştir",
"healthCheckDisabledStateDescription": "Devre dışı bırakıldığında, site sağlık kontrolleri yapmaz ve durum bilinmeyen olarak kabul edilecektir.",
"enableHealthChecksDescription": "Bu hedefin sağlığını izleyin. Gerekirse hedef dışındaki bir son noktayı izleyebilirsiniz.",
"healthScheme": "Yöntem",
"healthSelectScheme": "Yöntem Seç",
@@ -1729,7 +2045,36 @@
"timeIsInSeconds": "Zaman saniye cinsindendir",
"requireDeviceApproval": "Cihaz Onaylarını Gerektir",
"requireDeviceApprovalDescription": "Bu role sahip kullanıcıların yeni cihazlarının bağlanabilmesi ve kaynaklara erişebilmesi için bir yönetici tarafından onaylanması gerekiyor.",
"sshAccess": "SSH Erişimi",
"sshSettings": "SSH Ayarları",
"rdpSettings": "RDP Ayarları",
"vncSettings": "VNC Ayarları",
"sshServer": "SSH Sunucusu",
"rdpServer": "RDP Sunucusu",
"vncServer": "VNC Sunucusu",
"sshServerDescription": "Kimlik doğrulama yöntemi, daemon konumu ve sunucu hedefini ayarlayın",
"rdpServerDescription": "RDP sunucusunun hedefini ve bağlantı noktasını yapılandırın",
"vncServerDescription": "VNC sunucusunun hedefini ve bağlantı noktasını yapılandırın",
"sshServerMode": "Mod",
"sshServerModeStandard": "Standart SSH Sunucusu",
"sshServerModePangolin": "Pangolin SSH",
"sshServerModeStandardDescription": "Ağ üzerinden OpenSSH gibi bir SSH sunucusuna komutlar gönderir.",
"sshServerModeNative": "Yerel SSH Sunucusu",
"sshServerModeNativeDescription": "Site Bağlayıcısı üzerinden doğrudan ana bilgisayarda komutları çalıştırır. Ağ yapılandırması gerekmez.",
"sshAuthenticationMethod": "Kimlik Doğrulama Yöntemi",
"sshAuthMethodManual": "Manuel Kimlik Doğrulama",
"sshAuthMethodManualDescription": "Mevcut ana bilgisayar kimlik bilgileri gerektiriyor. Otomatik sağlama işlemini atlar.",
"sshAuthMethodAutomated": "Otomatik Sağlama",
"sshAuthMethodAutomatedDescription": "Ana bilgisayarda otomatik olarak kullanıcılar, gruplar ve sudo izinleri oluşturur.",
"sshAuthDaemonLocation": "Kimlik Doğrulama Daemon Konumu",
"sshDaemonLocationSiteDescription": "Site bağdaştırıcısını misafir eden makinada yerel olarak çalıştırır.",
"sshDaemonLocationRemote": "Uzak Ana Bilgisayarda",
"sshDaemonLocationRemoteDescription": "Aynı ağda ayrı bir hedef makinede çalıştırır.",
"sshDaemonDisclaimer": "Bu kurulumu tamamlamadan önce hedef ana bilgisayarınızın kimlik doğrulama daemonunu çalıştıracak şekilde düzgün yapılandırıldığından emin olun, aksi takdirde sağlama başarısız olur.",
"sshDaemonPort": "Daemon Bağlantı Noktası",
"sshServerDestination": "Sunucu Hedefi",
"sshServerDestinationDescription": "SSH sunucusunun hedefini ve bağlantı noktasını yapılandırın",
"destination": "Hedef",
"bgTargetMultiSiteDisclaimer": "Birden fazla site seçmek, yüksek erişilebilirlik için dayanıklı yönlendirme ve failover sağlar.",
"roleAllowSsh": "SSH'a İzin Ver",
"roleAllowSshAllow": "İzin Ver",
"roleAllowSshDisallow": "İzin Verme",
@@ -1743,7 +2088,7 @@
"sshSudoModeCommandsDescription": "Kullanıcı sadece belirtilen komutları sudo ile çalıştırabilir.",
"sshSudo": "Sudo'ya izin ver",
"sshSudoCommands": "Sudo Komutları",
"sshSudoCommandsDescription": "Kullanıcının sudo ile çalıştırmasına izin verilen komutların virgülle ayrılmış listesi.",
"sshSudoCommandsDescription": "Kullanıcının sudo ile çalıştırmasına izin verilen komutların virgülle ayrılmış listesi. Mutlak yollar kullanılmalıdır.",
"sshCreateHomeDir": "Ev Dizini Oluştur",
"sshUnixGroups": "Unix Grupları",
"sshUnixGroupsDescription": "Hedef konakta kullanıcıya eklenecek Unix gruplarının virgülle ayrılmış listesi.",
@@ -1763,9 +2108,20 @@
"healthCheckIntervalMin": "Kontrol aralığı en az 5 saniye olmalıdır",
"healthCheckTimeoutMin": "Zaman aşımı en az 1 saniye olmalıdır",
"healthCheckRetryMin": "Tekrar deneme girişimleri en az 1 olmalıdır",
"healthCheckMode": "Modu Kontrol Et",
"healthCheckStrategy": "Strateji",
"healthCheckModeDescription": "TCP modu yalnızca bağlantıyı doğrular. HTTP modu HTTP yanıtını doğrular.",
"healthyThreshold": "Sağlıklı Eşik",
"healthyThresholdDescription": "Sağlıklı olarak işaretlenmeden önce gereken ardışık başarılar.",
"unhealthyThreshold": "Sağlıksız Eşik",
"unhealthyThresholdDescription": "Sağlıksız olarak işaretlenmeden önce gereken ardışık başarısızlıklar.",
"healthCheckHealthyThresholdMin": "Sağlıklı eşik en az 1 olmalıdır",
"healthCheckUnhealthyThresholdMin": "Sağlıksız eşik en az 1 olmalıdır",
"httpMethod": "HTTP Yöntemi",
"selectHttpMethod": "HTTP yöntemini seçin",
"domainPickerSubdomainLabel": "Alt Alan Adı",
"domainPickerWildcard": "Genel karakter",
"domainPickerWildcardPaidOnly": "Genel alt alanlar ücretli bir özelliktir. Bu özelliğe erişmek için lütfen yükseltin.",
"domainPickerBaseDomainLabel": "Temel Alan Adı",
"domainPickerSearchDomains": "Alan adlarını ara...",
"domainPickerNoDomainsFound": "Hiçbir alan adı bulunamadı",
@@ -1791,12 +2147,12 @@
"resourcesTableAliasAddressInfo": "Bu adres, kuruluşun yardımcı ağ alt bantının bir parçasıdır. Alias kayıtlarını çözümlemek için dahili DNS çözümlemesi kullanılır.",
"resourcesTableClients": "İstemciler",
"resourcesTableAndOnlyAccessibleInternally": "veyalnızca bir istemci ile bağlandığında dahili olarak erişilebilir.",
"resourcesTableNoTargets": "Hedef yok",
"resourcesTableHealthy": "Sağlıklı",
"resourcesTableDegraded": "Düşük Performanslı",
"resourcesTableOffline": "Çevrimdışı",
"resourcesTableUnhealthy": "Sağlıksız",
"resourcesTableUnknown": "Bilinmiyor",
"resourcesTableNotMonitored": "İzlenmiyor",
"resourcesTableNoTargets": "Hedef yok",
"editInternalResourceDialogEditClientResource": "Özel Kaynak Düzenleyin",
"editInternalResourceDialogUpdateResourceProperties": "{resourceName} için kaynak ayarlarını ve erişim kontrollerini güncelleyin",
"editInternalResourceDialogResourceProperties": "Kaynak Özellikleri",
@@ -1822,6 +2178,12 @@
"editInternalResourceDialogModePort": "Bağlantı Noktası",
"editInternalResourceDialogModeHost": "Ev Sahibi",
"editInternalResourceDialogModeCidr": "CIDR",
"editInternalResourceDialogModeHttp": "HTTP",
"editInternalResourceDialogModeHttps": "HTTPS",
"editInternalResourceDialogModeSsh": "SSH",
"editInternalResourceDialogScheme": "Şema",
"editInternalResourceDialogEnableSsl": "TLS'yi Etkinleştir",
"editInternalResourceDialogEnableSslDescription": "Hedefe güvenli HTTPS bağlantıları için SSL/TLS şifrelemeyi etkinleştirin.",
"editInternalResourceDialogDestination": "Hedef",
"editInternalResourceDialogDestinationHostDescription": "Site ağındaki kaynağın IP adresi veya ana bilgisayar adı.",
"editInternalResourceDialogDestinationIPDescription": "Kaynağın site ağındaki IP veya ana bilgisayar adresi.",
@@ -1837,6 +2199,7 @@
"createInternalResourceDialogName": "Ad",
"createInternalResourceDialogSite": "Site",
"selectSite": "Site seç...",
"multiSitesSelectorSitesCount": "{count, plural, one {# site} other {# siteler}}",
"noSitesFound": "Site bulunamadı.",
"createInternalResourceDialogProtocol": "Protokol",
"createInternalResourceDialogTcp": "TCP",
@@ -1865,11 +2228,20 @@
"createInternalResourceDialogModePort": "Bağlantı Noktası",
"createInternalResourceDialogModeHost": "Ev Sahibi",
"createInternalResourceDialogModeCidr": "CIDR",
"createInternalResourceDialogModeHttp": "HTTP",
"createInternalResourceDialogModeHttps": "HTTPS",
"createInternalResourceDialogModeSsh": "SSH",
"scheme": "Şema",
"createInternalResourceDialogScheme": "Şema",
"createInternalResourceDialogEnableSsl": "TLS'yi Etkinleştir",
"createInternalResourceDialogEnableSslDescription": "Hedefe güvenli HTTPS bağlantıları için SSL/TLS şifrelemeyi etkinleştirin.",
"createInternalResourceDialogDestination": "Hedef",
"createInternalResourceDialogDestinationHostDescription": "Site ağındaki kaynağın IP adresi veya ana bilgisayar adı.",
"createInternalResourceDialogDestinationCidrDescription": "Site ağındaki kaynağın CIDR aralığı.",
"createInternalResourceDialogAlias": "Takma Ad",
"createInternalResourceDialogAliasDescription": "Bu kaynak için isteğe bağlı dahili DNS takma adı.",
"internalResourceDownstreamSchemeRequired": "HTTP kaynakları için şema gereklidir",
"internalResourceHttpPortRequired": "HTTP kaynakları için hedef bağlantı noktası gereklidir",
"siteConfiguration": "Yapılandırma",
"siteAcceptClientConnections": "İstemci Bağlantılarını Kabul Et",
"siteAcceptClientConnectionsDescription": "Kullanıcı cihazları ve istemcilerin bu sitedeki kaynaklara erişmesine izin verin. Bu daha sonra değiştirilebilir.",
@@ -1994,7 +2366,7 @@
"description": "Daha güvenilir ve düşük bakım gerektiren, ekstra özelliklere sahip kendi kendine barındırabileceğiniz Pangolin sunucusu",
"introTitle": "Yönetilen Kendi Kendine Barındırılan Pangolin",
"introDescription": "Bu, basitlik ve ekstra güvenilirlik arayan, ancak verilerini gizli tutmak ve kendi sunucularında barındırmak isteyen kişiler için tasarlanmış bir dağıtım seçeneğidir.",
"introDetail": "Bu seçenekle, kendi Pangolin düğümünüzü çalıştırmaya devam edersiniz tünelleriniz, SSL bitişiniz ve trafiğiniz tamamen sunucunuzda kalır. Fark, yönetim ve izlemeyi bulut panomuz üzerinden gerçekleştiririz, bu da bir dizi avantaj sağlar:",
"introDetail": "Bu seçenekle, kendi Pangolin düğümünüzü çalıştırmaya devam edersiniz - tünelleriniz, TLS bitişiniz ve trafiğiniz tamamen sunucunuzda kalır. Fark, yönetim ve izlemeyi bulut panomuz üzerinden gerçekleştiririz, bu da bir dizi avantaj sağlar:",
"benefitSimplerOperations": {
"title": "Daha basit işlemler",
"description": "Kendi e-posta sunucunuzu çalıştırmanıza veya karmaşık uyarılar kurmanıza gerek yok. Sağlık kontrolleri ve kesinti uyarılarını kutudan çıktığı gibi alırsınız."
@@ -2123,7 +2495,7 @@
"domainPickerVerified": "Doğrulandı",
"domainPickerUnverified": "Doğrulanmadı",
"domainPickerManual": "Manuel",
"domainPickerInvalidSubdomainStructure": "Bu alt alan adı geçersiz karakterler veya yapı içeriyor. Kaydettiğinizde otomatik olarak temizlenecektir.",
"domainPickerInvalidSubdomainStructure": "Geçersiz karakterler kaydedildiğinde temizlenecektir.",
"domainPickerError": "Hata",
"domainPickerErrorLoadDomains": "Organizasyon alan adları yüklenemedi",
"domainPickerErrorCheckAvailability": "Alan adı kullanılabilirliği kontrol edilemedi",
@@ -2136,7 +2508,7 @@
"orgAuthChooseIdpDescription": "Devam etmek için kimlik sağlayıcınızı seçin",
"orgAuthNoIdpConfigured": "Bu kuruluşta yapılandırılmış kimlik sağlayıcı yok. Bunun yerine Pangolin kimliğinizle giriş yapabilirsiniz.",
"orgAuthSignInWithPangolin": "Pangolin ile Giriş Yap",
"orgAuthSignInToOrg": "Bir kuruluşa giriş yapın",
"orgAuthSignInToOrg": "Kuruluş Kimlik Sağlayıcısı (SSO)",
"orgAuthSelectOrgTitle": "Kuruluş Giriş",
"orgAuthSelectOrgDescription": "Devam etmek için kuruluş kimliğinizi girin",
"orgAuthOrgIdPlaceholder": "kuruluşunuz",
@@ -2297,7 +2669,7 @@
"alerts": {
"commercialUseDisclosure": {
"title": "Kullanım Açıklaması",
"description": "Kullanım amacınızı doğru bir şekilde yansıtan lisans seviyesini seçin. Kişisel Lisans, yazılımın bireysel, ticari olmayan veya yıllık geliri 100,000 ABD Dolarının altında olan küçük ölçekli ticari faaliyetlerde ücretsiz kullanılmasına izin verir. Bu sınırların ötesinde kullanım bir işletme, organizasyon veya diğer gelir getirici ortamlarda kullanım dahil olmak üzere geçerli bir Kurumsal Lisans ve ilgili lisans ücretinin ödenmesini gerektirir. Tüm kullanıcılar, ister Kişisel ister Kurumsal, Fossorial Ticari Lisans Şartlarına uymalıdır."
"description": "Kullanım amacınızı doğru bir şekilde yansıtan lisans seviyesini seçin. Kişisel Lisans, yazılımın bireysel, ticari olmayan veya yıllık geliri 100,000 ABD Dolarının altında olan küçük ölçekli ticari faaliyetlerde ücretsiz kullanılmasına izin verir. Bu sınırların ötesinde kullanım - bir işletme, organizasyon veya diğer gelir getirici ortamlarda kullanım dahil olmak üzere - geçerli bir Kurumsal Lisans ve ilgili lisans ücretinin ödenmesini gerektirir. Tüm kullanıcılar, ister Kişisel ister Kurumsal, Fossorial Ticari Lisans Şartlarına uymalıdır."
},
"trialPeriodInformation": {
"title": "Deneme Süresi Bilgileri",
@@ -2416,7 +2788,7 @@
"action": "Eylem",
"actor": "Aktör",
"timestamp": "Zaman damgası",
"accessLogs": "Authentication Logs",
"accessLogs": "Erişim Günlükleri",
"exportCsv": "CSV Dışa Aktar",
"exportError": "CSV dışa aktarılırken bilinmeyen hata",
"exportCsvTooltip": "Zaman Aralığında",
@@ -2429,6 +2801,9 @@
"validPassword": "Geçerli Şifre",
"validEmail": "Geçerli E-posta",
"validSSO": "Geçerli SSO",
"view": "Görüntüle",
"configManaged": "Yapılandırma Yönetildi",
"connectedClient": "Bağlı İstemci",
"resourceBlocked": "Kaynak Engellendi",
"droppedByRule": "Kurallara Göre Çıkartıldı",
"noSessions": "Oturum Yok",
@@ -2436,25 +2811,25 @@
"noMoreAuthMethods": "Daha Fazla Kimlik Doğrulama Yöntemi Yok",
"ip": "IP",
"reason": "Sebep",
"requestLogs": "HTTPS Request Logs",
"requestLogs": "HTTP İstek Günlükleri",
"requestAnalytics": "İstek Analizi",
"host": "Sunucu",
"location": "Konum",
"actionLogs": "Admin Action Logs",
"sidebarLogsRequest": "HTTPS Request Logs",
"sidebarLogsAccess": "Authentication Logs",
"sidebarLogsAction": "Admin Action Logs",
"actionLogs": "Eylem Günlükleri",
"sidebarLogsRequest": "HTTP İstek Günlükleri",
"sidebarLogsAccess": "Erişim Günlükleri",
"sidebarLogsAction": "Eylem Günlükleri",
"logRetention": "Kayıt Saklama",
"logRetentionDescription": "Bu organizasyon için farklı türdeki günlüklerin ne kadar süre saklanacağını yönetin veya devre dışı bırakın",
"requestLogsDescription": "View detailed request logs for HTTPS resources in this organization",
"requestLogsDescription": "Bu organizasyondaki kaynaklar için ayrıntılı istek günlüklerini görüntüleyin",
"requestAnalyticsDescription": "Bu organizasyondaki kaynaklar için ayrıntılı istek analizlerini görüntüleyin.",
"logRetentionRequestLabel": "HTTPS Request Log Retention",
"logRetentionRequestLabel": "HTTP İstek Günlüğü Saklama",
"logRetentionRequestDescription": "İstek günlüklerini ne kadar süre tutacağını belirle",
"logRetentionAccessLabel": "Authentication Log Retention",
"logRetentionAccessLabel": "Erişim Günlüğü Saklama",
"logRetentionAccessDescription": "Erişim günlüklerini ne kadar süre tutacağını belirle",
"logRetentionActionLabel": "Admin Action Log Retention",
"logRetentionActionLabel": "Eylem Günlüğü Saklama",
"logRetentionActionDescription": "Eylem günlüklerini ne kadar süre tutacağını belirle",
"logRetentionConnectionLabel": "Network Log Retention",
"logRetentionConnectionLabel": "Bağlantı kayıtlarını ne kadar süre saklayacağınız",
"logRetentionConnectionDescription": "Bağlantı kayıtlarını ne kadar süre saklayacağınız",
"logRetentionDisabled": "Devre Dışı",
"logRetention3Days": "3 gün",
@@ -2466,10 +2841,10 @@
"logRetentionEndOfFollowingYear": "Bir sonraki yılın sonu",
"actionLogsDescription": "Bu organizasyondaki eylemler geçmişini görüntüleyin",
"accessLogsDescription": "Bu organizasyondaki kaynaklar için erişim kimlik doğrulama isteklerini görüntüleyin",
"connectionLogs": "Network Logs",
"connectionLogsDescription": "View network session logs handled by sites in this organization",
"sidebarLogsConnection": "Network Logs",
"sidebarLogsStreaming": "Event Streaming",
"connectionLogs": "Bağlantı Kayıtları",
"connectionLogsDescription": "Bu organizasyondaki tüneller için bağlantı geçmişine bakın",
"sidebarLogsConnection": "Bağlantı Kayıtları",
"sidebarLogsStreaming": "Akış",
"sourceAddress": "Kaynak Adresi",
"destinationAddress": "Hedef Adresi",
"duration": "Süre",
@@ -2667,7 +3042,13 @@
"editInternalResourceDialogAddClients": "Müşteriler Ekle",
"editInternalResourceDialogDestinationLabel": "Hedef",
"editInternalResourceDialogDestinationDescription": "Dahili kaynak için hedef adresi belirtin. Seçilen moda bağlı olarak bu bir ana bilgisayar adı, IP adresi veya CIDR aralığı olabilir. Daha kolay tanımlama için isteğe bağlı olarak dahili bir DNS takma adı ayarlayın.",
"internalResourceFormMultiSiteRoutingHelp": "Birden fazla site seçmek, yüksek kullanılabilirlik için dirençli yönlendirme ve yedeklik sağlar.",
"internalResourceFormMultiSiteRoutingHelpLearnMore": "Daha fazla bilgi",
"editInternalResourceDialogPortRestrictionsDescription": "Belirtilen TCP/UDP portlarına erişimi kısıtlayın veya tüm portlara izin/engelleme verin.",
"createInternalResourceDialogHttpConfiguration": "HTTP yapılandırması",
"createInternalResourceDialogHttpConfigurationDescription": "HTTP veya HTTPS üzerinden bu kaynağa ulaşmak için istemcilerin kullanacağı alan adını seçin.",
"editInternalResourceDialogHttpConfiguration": "HTTP yapılandırması",
"editInternalResourceDialogHttpConfigurationDescription": "HTTP veya HTTPS üzerinden bu kaynağa ulaşmak için istemcilerin kullanacağı alan adını seçin.",
"editInternalResourceDialogTcp": "TCP",
"editInternalResourceDialogUdp": "UDP",
"editInternalResourceDialogIcmp": "ICMP",
@@ -2689,7 +3070,7 @@
"learnMore": "Daha fazla bilgi",
"backToHome": "Ana sayfaya geri dön",
"needToSignInToOrg": "Kuruluşunuzun kimlik sağlayıcısını kullanmanız mı gerekiyor?",
"maintenanceMode": "Bakım Modu",
"maintenanceMode": "Bakım Sayfası",
"maintenanceModeDescription": "Ziyaretçilere bir bakım sayfası gösterin",
"maintenanceModeType": "Bakım Modu Türü",
"showMaintenancePage": "Ziyaretçilere bir bakım sayfası gösterin",
@@ -2706,6 +3087,9 @@
"maintenancePageMessagePlaceholder": "Yakında geri döneceğiz! Sitemiz şu anda planlı bakım altındadır.",
"maintenancePageMessageDescription": "Bakımın detaylarını açıklayan mesaj",
"maintenancePageTimeTitle": "Tahmini Tamamlanma Süresi (İsteğe Bağlı)",
"privateMaintenanceScreenTitle": "Özel Yer Tutucu Ekran",
"privateMaintenanceScreenMessage": "Bu alan adı özel bir kaynak üzerinde kullanılmaktadır. Bu kaynağa erişmek için Pangolin istemcisini kullanarak bağlanın.",
"privateMaintenanceScreenSteps": "Bağlanıldıktan sonra, hâlâ bu mesajı görüyorsanız tarayıcınızın DNS önbelleği eski adrese işaret ediyor olabilir. Bunu düzeltmek için: bu sekmeyi veya tarayıcınızı tamamen kapatıp tekrar açın, ardından bu sayfaya geri dönün.",
"maintenanceTime": "ör. 2 saat, 1 Kasım saat 17:00",
"maintenanceEstimatedTimeDescription": "Bakımın ne zaman tamamlanmasını bekliyorsunuz",
"editDomain": "Alan Adını Düzenle",
@@ -2716,6 +3100,7 @@
"maintenanceScreenEstimatedCompletion": "Tahmini Tamamlama:",
"createInternalResourceDialogDestinationRequired": "Hedef gereklidir",
"available": "Mevcut",
"disabledResourceDescription": "Devre dışı bırakıldığında, kaynağa herkes erişemez.",
"archived": "Arşivlenmiş",
"noArchivedDevices": "Arşivlenmiş cihaz bulunamadı",
"deviceArchived": "Cihaz arşivlendi",
@@ -2829,7 +3214,7 @@
"streamingDatadogTitle": "Datadog",
"streamingDatadogDescription": "Olayları doğrudan Datadog hesabınıza iletin. Yakında gelicek.",
"streamingTypePickerDescription": "Başlamak için bir hedef türü seçin.",
"streamingFailedToLoad": "Hedefler yüklenemedi",
"streamingLastSyncError": "Son senkronizasyonda bir hata oluştu",
"streamingUnexpectedError": "Beklenmeyen bir hata oluştu.",
"streamingFailedToUpdate": "Hedef güncellenemedi",
"streamingDeletedSuccess": "Hedef başarıyla silindi",
@@ -2843,6 +3228,41 @@
"httpDestAddTitle": "HTTP Hedefi Ekle",
"httpDestEditDescription": "Bu HTTP olay akışı hedefine yapılandırmayı güncelleyin.",
"httpDestAddDescription": "Organizasyonunuzun olaylarını almak için yeni bir HTTP uç noktası yapılandırın.",
"S3DestEditTitle": "Hedefi Düzenle",
"S3DestAddTitle": "S3 Hedefi Ekle",
"S3DestEditDescription": "Bu S3 olay akışı hedefi için yapılandırmayı güncelleyin.",
"S3DestAddDescription": "Kuruluşunuzun etkinliklerini almak için yeni bir Amazon S3 (veya S3-uyumlu) kovası yapılandırın.",
"s3DestTabSettings": "Ayarlar",
"s3DestTabFormat": "Biçim",
"s3DestNameLabel": "Ad",
"s3DestNamePlaceholder": "Benim S3 hedefim",
"s3DestAccessKeyIdLabel": "AWS Erişim Anahtar Kimliği",
"s3DestSecretAccessKeyLabel": "AWS Gizli Erişim Anahtarı",
"s3DestSecretAccessKeyPlaceholder": "AWS gizli erişim anahtarınız",
"s3DestRegionLabel": "AWS Bölgesi",
"s3DestBucketLabel": "Kova Adı",
"s3DestPrefixLabel": "Anahtar Ön Eki (isteğe bağlı)",
"s3DestPrefixDescription": "Her nesne anahtarının önüne eklenen isteğe bağlı yol öneki. Nesneler {prefix}/{logType}/{YYYY}/{MM}/{DD}/{filename} konumunda saklanır.",
"s3DestEndpointLabel": "Özel Uç Nokta (isteğe bağlı)",
"s3DestEndpointDescription": "MinIO veya Cloudflare R2 gibi S3-uyumlu depolama için S3 uç noktasını geçersiz kılın. Standart AWS S3 için boş bırakın.",
"s3DestGzipLabel": "Gzip sıkıştırması",
"s3DestGzipDescription": "Her yüklü nesneyi gzip ile sıkıştırın. Depolama maliyetlerini ve yükleme boyutunu azaltır.",
"s3DestFormatTitle": "Dosya Biçimi",
"s3DestFormatDescription": "Etkinliklerin her yüklendiği nesne içinde nasıl serileştirildiği.",
"s3DestFormatJsonArrayDescription": "Her nesne bir olay kayıtlarının JSON dizisidir. Çoğu analiz aracıyla uyumludur.",
"s3DestFormatNdjsonDescription": "Her nesne satır başına bir JSON kaydı içerir (yeni satır ile ayrılmış JSON). Athena, BigQuery ve Spark ile uyumludur.",
"s3DestFormatCsvTitle": "CSV",
"s3DestFormatCsvDescription": "Her nesne, bir başlık satırı ile birlikte RFC-4180 CSV dosyasıdır. Sütun isimleri olay verileri alanlarından türetilmiştir.",
"s3DestSaveChanges": "Değişiklikleri Kaydet",
"s3DestCreateDestination": "Hedef Oluştur",
"s3DestUpdatedSuccess": "Hedef başarıyla güncellendi",
"s3DestCreatedSuccess": "Hedef başarıyla oluşturuldu",
"s3DestUpdateFailed": "Hedef güncellenemedi",
"s3DestCreateFailed": "Hedef oluşturulamadı",
"datadogDestEditTitle": "Hedefi Düzenle",
"datadogDestAddTitle": "Datadog Hedefi Ekle",
"datadogDestEditDescription": "Bu Datadog olay akışı hedefi için yapılandırmayı güncelleyin.",
"datadogDestAddDescription": "Kuruluşunuzun olaylarını almak için yeni bir Datadog uç noktası yapılandırın.",
"httpDestTabSettings": "Ayarlar",
"httpDestTabHeaders": "Başlıklar",
"httpDestTabBody": "Gövde",
@@ -2887,13 +3307,13 @@
"httpDestFormatSingleDescription": "Her olay için ayrı bir HTTP POST gönderir. Toplu işlere yetkemeyen uç noktalar için kullanın.",
"httpDestLogTypesTitle": "Kayıt Türleri",
"httpDestLogTypesDescription": "Bu hedefe hangi kayıt türlerinin iletileceğini seçin. Yalnızca etkin kayıt türleri yayınlanacaktır.",
"httpDestAccessLogsTitle": "Authentication Logs",
"httpDestAccessLogsTitle": "Erişim Kayıtları",
"httpDestAccessLogsDescription": "Kimlik doğrulanmış ve reddedilen talepler dahil kaynak erişim denemeleri.",
"httpDestActionLogsTitle": "Admin Action Logs",
"httpDestActionLogsTitle": "Eylem Kayıtları",
"httpDestActionLogsDescription": "Kullanıcılar tarafından organizasyon içerisinde yapılan yönetici eylemleri.",
"httpDestConnectionLogsTitle": "Network Logs",
"httpDestConnectionLogsTitle": "Bağlantı Kayıtları",
"httpDestConnectionLogsDescription": "Site ve tünel bağlantı olayları, bağlantılar ve bağlantı kesilmeleri dahil.",
"httpDestRequestLogsTitle": "HTTPS Request Logs",
"httpDestRequestLogsTitle": "HTTP İstek Günlükleri",
"httpDestRequestLogsDescription": "Yönlendirilmiş kaynaklar için HTTP istek kayıtları, yöntem, yol ve yanıt kodu dahil.",
"httpDestSaveChanges": "Değişiklikleri Kaydet",
"httpDestCreateDestination": "Hedef Oluştur",
@@ -2901,6 +3321,18 @@
"httpDestCreatedSuccess": "Hedef başarıyla oluşturuldu",
"httpDestUpdateFailed": "Hedef güncellenemedi",
"httpDestCreateFailed": "Hedef oluşturulamadı",
"followRedirects": "Yönlendirmeleri Takip Et",
"followRedirectsDescription": "İstekler için HTTP yönlendirmelerini otomatik olarak takip edin.",
"alertingErrorWebhookUrl": "Webhook için geçerli bir URL girin lütfen.",
"healthCheckStrategyHttp": "Bağlantıyı doğrular ve HTTP yanıt durumunu kontrol eder.",
"healthCheckStrategyTcp": "Yanıtı denetlemeden sadece TCP bağlantısını doğrular.",
"healthCheckStrategySnmp": "Ağ aygıtlarının ve altyapısının sağlığını kontrol etmek için bir SNMP alma isteği yapar.",
"healthCheckStrategyIcmp": "Bir kaynağın erişilebilir ve yanıt verebilir olup olmadığını kontrol etmek için ICMP yankı isteklerini (ping) kullanır.",
"healthCheckTabStrategy": "Strateji",
"healthCheckTabConnection": "Bağlantı",
"healthCheckTabAdvanced": "Gelişmiş",
"healthCheckStrategyNotAvailable": "Bu strateji kullanılamıyor. Bu özelliği etkinleştirmek için lütfen satış ekibiyle iletişime geçin.",
"uptime30d": "Çalışma Süresi (30g)",
"idpAddActionCreateNew": "Yeni kimlik sağlayıcı oluştur",
"idpAddActionImportFromOrg": "Başka bir kuruluştan içe aktar",
"idpImportDialogTitle": "Kimlik Sağlayıcı İçe Aktar",
@@ -2918,5 +3350,107 @@
"idpUnassociatedDescription": "Kimlik sağlayıcı bu kuruluştan başarıyla ayrıldı",
"idpUnassociateMenu": "İlişkiyi Kes",
"idpDeleteAllOrgsMenu": "Sil",
"publicIpEndpoint": "Endpoint"
"publicIpEndpoint": "Uç Nokta",
"lastTriggeredAt": "Son Tetikleyici",
"reject": "Reddet",
"uptimeDaysAgo": "{count} gün önce",
"uptimeToday": "Bugün",
"uptimeNoDataAvailable": "Veri yok",
"uptimeSuffix": "çalışma süresi",
"uptimeDowntimeSuffix": "çalışma dışı",
"uptimeTooltipUptimeLabel": "Çalışma süresi",
"uptimeTooltipDowntimeLabel": "Çalışma dışı",
"uptimeOngoing": "devam eden",
"uptimeNoMonitoringData": "İzleme verisi yok",
"uptimeNoData": "Veri yok",
"uptimeMiniBarDown": "Kapalı",
"uptimeSectionTitle": "Çalışma Süresi",
"uptimeSectionDescription": "Son {days} gün boyunca kullanılabilirlik",
"uptimeAddAlert": "Uyarı Ekle",
"uptimeViewAlerts": "Uyarıları Görüntüle",
"uptimeCreateEmailAlert": "E-posta Uyarısı Oluştur",
"uptimeAlertDescriptionSite": "Bu site çevrimdışıyken veya yeniden çevrimiçi olduğunda e-posta ile bildirim alın.",
"uptimeAlertDescriptionResource": "Bu kaynak çevrimdışıyken veya yeniden çevrimiçi olduğunda e-posta ile bildirim alın.",
"uptimeAlertNamePlaceholder": "Uyarı adı",
"uptimeAdditionalEmails": "Ek E-postalar",
"uptimeCreateAlert": "Uyarı Oluştur",
"uptimeAlertNoRecipients": "Alıcı yok",
"uptimeAlertNoRecipientsDescription": "Lütfen en az bir kullanıcı, rol veya e-posta ekleyin.",
"uptimeAlertCreated": "Uyarı oluşturuldu",
"uptimeAlertCreatedDescription": "Durum değiştiğinde haberdar edileceksiniz.",
"uptimeAlertCreateFailed": "Uyarı oluşturulamadı",
"webhookUrlLabel": "URL",
"webhookHeaderKeyPlaceholder": "Anahtar",
"webhookHeaderValuePlaceholder": "Değer",
"alertLabel": "Uyarı",
"domainPickerWildcardSubdomainNotAllowed": "Genel alt alanlara izin verilmiyor.",
"domainPickerWildcardCertWarning": "Genel kaynaklar düzgün çalışmak için ek yapılandırma gerektirebilir.",
"domainPickerWildcardCertWarningLink": "Daha fazla bilgi",
"health": "Sağlık",
"domainPendingErrorTitle": "Doğrulama Sorunu",
"memberPortalTitle": "Kaynaklar",
"memberPortalDescription": "Bu organizasyondaki erişiminiz olan kaynaklar",
"memberPortalSortBy": "Şuna göre sırala...",
"memberPortalSortNameAsc": "İsim A-Z",
"memberPortalSortNameDesc": "İsim Z-A",
"memberPortalSortDomainAsc": "Alan A-Z",
"memberPortalSortDomainDesc": "Alan Z-A",
"memberPortalSortEnabledFirst": "İlk Etkinleştirilenler",
"memberPortalSortDisabledFirst": "İlk Devre Dışı Bırakılanlar",
"memberPortalRefresh": "Yenile",
"memberPortalRefreshResources": "Kaynakları Yenile",
"memberPortalFailedToLoad": "Kaynaklar yüklenemedi",
"memberPortalFailedToLoadDescription": "Kaynaklar yüklenemedi. Lütfen bağlantınızı kontrol edin ve tekrar deneyin.",
"memberPortalUnableToLoad": "Kaynaklar Yüklenemiyor",
"memberPortalTryAgain": "Tekrar Dene",
"memberPortalNoResourcesFound": "Hiçbir Kaynak Bulunamadı",
"memberPortalNoResourcesAvailable": "Uygun Kaynak Yok",
"memberPortalNoResourcesMatchSearch": "Hiçbir kaynak \"{query}\" ile eşleşmiyor. Arama terimlerinizi değiştirerek veya tüm kaynakları görmek için aramayı temizleyerek deneyin.",
"memberPortalNoResourcesAccess": "Henüz herhangi bir kaynağa erişiminiz yok. İhtiyacınız olan kaynaklara erişim sağlamak için yöneticinizle iletişime geçin.",
"memberPortalClearSearch": "Aramayı Temizle",
"memberPortalPublicResources": "Genel Kaynaklar",
"memberPortalPublicResourcesDescription": "Tarayıcı üzerinden erişilebilen web uygulamaları ve hizmetler",
"memberPortalCopiedToClipboard": "Panoya kopyalandı",
"memberPortalCopiedUrlDescription": "Kaynak URL'si panonuza kopyalandı.",
"memberPortalOpenResource": "Kaynağı Aç",
"memberPortalPrivateResources": "Özel Kaynaklar",
"memberPortalPrivateResourcesDescription": "İstemci üzerinden erişilebilen dahili ağ kaynakları",
"memberPortalResourceDetails": "Kaynak Detayları",
"memberPortalMode": "Mod",
"memberPortalDestination": "Hedef",
"memberPortalAlias": "Takma İsim",
"memberPortalCopiedAliasDescription": "Kaynak takma adı panonuza kopyalandı.",
"memberPortalCopiedDestinationDescription": "Kaynak hedefi panonuza kopyalandı.",
"memberPortalRequiresClientConnection": "İstemci Bağlantısı Gerektirir",
"memberPortalAuthMethods": "Kimlik Doğrulama Yöntemleri",
"memberPortalSso": "Tek Oturum Açma (SSO)",
"memberPortalPasswordProtected": "Parola ile Korunan",
"memberPortalPinCode": "PIN Kodu",
"memberPortalEmailWhitelist": "E-posta Beyaz Listesi",
"memberPortalResourceDisabled": "Kaynak Devre Dışı",
"memberPortalShowingResources": "{total} kaynaktan {start}-{end} gösteriliyor",
"memberPortalPrevious": "Önceki",
"memberPortalNext": "Sonraki",
"httpSettings": "HTTP Ayarları",
"tcpSettings": "TCP Ayarları",
"udpSettings": "UDP Ayarları",
"sshTitle": "SSH",
"sshConnectingDescription": "Güvenli bir bağlantı kuruluyor…",
"sshConnecting": "Bağlanılıyor…",
"sshInitializing": "Başlatılıyor…",
"sshSignInTitle": "SSH'a Giriş Yap",
"sshSignInDescription": "SSH kimlik bilgilerinizi girin",
"sshPasswordTab": "Şifre",
"sshPrivateKeyTab": "Özel Anahtar",
"sshPrivateKeyField": "Özel Anahtar",
"sshPrivateKeyDisclaimer": "Özel anahtarınız Pangolin'de saklanmaz veya görünmez. Alternatif olarak, mevcut Pangolin kimliğinizle sorunsuz kimlik doğrulama için kısa ömürlü sertifikalar kullanabilirsiniz.",
"sshLearnMore": "Daha fazla bilgi",
"sshPrivateKeyFile": "Özel Anahtar Dosyası",
"sshAuthenticate": "Kimlik Doğrulama",
"sshTerminate": "Sonlandır",
"sshPoweredBy": "Tarafından sağlanmaktadır",
"sshErrorNoTarget": "Belirtilen hedef yok",
"sshErrorWebSocket": "WebSocket bağlantısı başarısız oldu",
"sshErrorAuthFailed": "Kimlik doğrulama başarısız",
"sshErrorConnectionClosed": "Kimlik doğrulama tamamlanmadan bağlantı kapandı"
}
+575 -41
View File
File diff suppressed because it is too large Load Diff
+3 -3
View File
@@ -489,7 +489,7 @@
"createdAt": "創建於",
"proxyErrorInvalidHeader": "無效的自訂主機 Header。使用域名格式,或將空保存為取消自訂 Header。",
"proxyErrorTls": "無效的 TLS 伺服器名稱。使用域名格式,或保存空以刪除 TLS 伺服器名稱。",
"proxyEnableSSL": "啟用 SSL",
"proxyEnableSSL": "啟用 TLS",
"proxyEnableSSLDescription": "啟用 SSL/TLS 加密以確保您目標的 HTTPS 連接。",
"target": "目標",
"configureTarget": "配置目標",
@@ -1763,7 +1763,7 @@
"description": "更可靠、維護成本更低的自架 Pangolin 伺服器,並附帶額外的附加功能",
"introTitle": "託管式自架 Pangolin",
"introDescription": "這是一種部署選擇,為那些希望簡潔和額外可靠的人設計,同時仍然保持他們的數據的私密性和自我託管性。",
"introDetail": "通過此選項,您仍然運行您自己的 Pangolin 節點 — — 您的隧道、SSL 終止,並且流量在您的伺服器上保持所有狀態。 不同之處在於,管理和監測是通過我們的雲層儀錶板進行的,該儀錶板開啟了一些好處:",
"introDetail": "通過此選項,您仍然運行您自己的 Pangolin 節點 - - 您的隧道、TLS 終止,並且流量在您的伺服器上保持所有狀態。 不同之處在於,管理和監測是通過我們的雲層儀錶板進行的,該儀錶板開啟了一些好處:",
"benefitSimplerOperations": {
"title": "簡單的操作",
"description": "無需運行您自己的郵件伺服器或設置複雜的警報。您將從方框中獲得健康檢查和下限提醒。"
@@ -2035,7 +2035,7 @@
"alerts": {
"commercialUseDisclosure": {
"title": "使用情況披露",
"description": "選擇能準確反映您預定用途的許可等級。 個人許可證允許對個人、非商業性或小型商業活動免費使用軟體,年收入毛額不到 100,000 美元。 超出這些限度的任何用途,包括在企業、組織內的用途。 或其他創收環境——需要有效的企業許可證和支付適用的許可證費用。 所有用戶,不論是個人還是企業,都必須遵守寄養商業許可證條款。"
"description": "選擇能準確反映您預定用途的許可等級。 個人許可證允許對個人、非商業性或小型商業活動免費使用軟體,年收入毛額不到 100,000 美元。 超出這些限度的任何用途,包括在企業、組織內的用途。 或其他創收環境--需要有效的企業許可證和支付適用的許可證費用。 所有用戶,不論是個人還是企業,都必須遵守寄養商業許可證條款。"
},
"trialPeriodInformation": {
"title": "試用期資訊",
+32 -7
View File
@@ -1,17 +1,42 @@
import type { NextConfig } from "next";
import createNextIntlPlugin from "next-intl/plugin";
import fs from "fs";
import path from "path";
const withNextIntl = createNextIntlPlugin();
// read allowedDevOrigins.json if it exists
let allowedDevOrigins: string[] = [];
const allowedDevOriginsPath = path.join(
process.cwd(),
"allowedDevOrigins.json"
);
if (fs.existsSync(allowedDevOriginsPath)) {
try {
const data = fs.readFileSync(allowedDevOriginsPath, "utf-8");
allowedDevOrigins = JSON.parse(data);
} catch {}
}
const nextConfig: NextConfig = {
reactStrictMode: false,
eslint: {
ignoreDuringBuilds: true
},
experimental: {
reactCompiler: true
},
output: "standalone"
reactCompiler: true,
transpilePackages: ["@novnc/novnc"],
output: "standalone",
allowedDevOrigins,
async redirects() {
return [
{
source: "/:orgId/settings/resources/proxy/:path*",
destination: "/:orgId/settings/resources/public/:path*",
permanent: true
},
{
source: "/:orgId/settings/resources/client/:path*",
destination: "/:orgId/settings/resources/private/:path*",
permanent: true
}
];
}
};
export default withNextIntl(nextConfig);
+2377 -3626
View File
File diff suppressed because it is too large Load Diff
+64 -58
View File
@@ -32,13 +32,15 @@
"format": "prettier --write ."
},
"dependencies": {
"@asteasolutions/zod-to-openapi": "8.4.1",
"@aws-sdk/client-s3": "3.1011.0",
"@faker-js/faker": "10.3.0",
"@headlessui/react": "2.2.9",
"@hookform/resolvers": "5.2.2",
"@asteasolutions/zod-to-openapi": "8.5.0",
"@devolutions/iron-remote-desktop": "https://static.pangolin.net/packages/devolutions-iron-remote-desktop-0.0.0.tgz",
"@devolutions/iron-remote-desktop-rdp": "https://static.pangolin.net/packages/devolutions-iron-remote-desktop-rdp-0.0.0.tgz",
"@aws-sdk/client-s3": "3.1056.0",
"@headlessui/react": "2.2.10",
"@hookform/resolvers": "5.4.0",
"@monaco-editor/react": "4.7.0",
"@node-rs/argon2": "2.0.2",
"@novnc/novnc": "^1.7.0",
"@oslojs/crypto": "1.0.1",
"@oslojs/encoding": "1.1.0",
"@radix-ui/react-avatar": "1.1.11",
@@ -59,16 +61,20 @@
"@radix-ui/react-tabs": "1.1.13",
"@radix-ui/react-toast": "1.2.15",
"@radix-ui/react-tooltip": "1.2.8",
"@react-email/components": "1.0.8",
"@react-email/render": "2.0.4",
"@react-email/tailwind": "2.0.5",
"@react-email/body": "0.3.0",
"@react-email/components": "1.0.12",
"@react-email/render": "2.0.8",
"@react-email/tailwind": "2.0.7",
"@simplewebauthn/browser": "13.3.0",
"@simplewebauthn/server": "13.3.0",
"@simplewebauthn/server": "13.3.1",
"@tailwindcss/forms": "0.5.11",
"@tanstack/react-query": "5.90.21",
"@tanstack/react-query": "5.100.14",
"@tanstack/react-table": "8.21.3",
"@xterm/addon-fit": "^0.11.0",
"@xterm/addon-web-links": "^0.12.0",
"@xterm/xterm": "^6.0.0",
"arctic": "3.7.0",
"axios": "1.13.5",
"axios": "1.16.1",
"better-sqlite3": "11.9.1",
"canvas-confetti": "1.9.4",
"class-variance-authority": "0.7.1",
@@ -78,79 +84,78 @@
"cors": "2.8.6",
"crypto-js": "4.2.0",
"d3": "7.9.0",
"drizzle-orm": "0.45.1",
"drizzle-orm": "0.45.2",
"express": "5.2.1",
"express-rate-limit": "8.3.0",
"express-rate-limit": "8.5.2",
"glob": "13.0.6",
"helmet": "8.1.0",
"helmet": "8.2.0",
"http-errors": "2.0.1",
"input-otp": "1.4.2",
"ioredis": "5.10.0",
"ioredis": "5.11.0",
"jmespath": "0.16.0",
"js-yaml": "4.1.1",
"jsonwebtoken": "9.0.3",
"lucide-react": "0.577.0",
"maxmind": "5.0.5",
"lucide-react": "1.17.0",
"maxmind": "5.0.6",
"moment": "2.30.1",
"next": "15.5.14",
"next-intl": "4.8.3",
"next": "16.2.6",
"next-intl": "4.13.0",
"next-themes": "0.4.6",
"nextjs-toploader": "3.9.17",
"node-cache": "5.1.2",
"nodemailer": "8.0.4",
"nodemailer": "8.0.9",
"oslo": "1.2.1",
"pg": "8.20.0",
"posthog-node": "5.28.0",
"pg": "8.21.0",
"posthog-node": "5.35.6",
"qrcode.react": "4.2.0",
"react": "19.2.4",
"react": "19.2.6",
"react-day-picker": "9.14.0",
"react-dom": "19.2.4",
"react-dom": "19.2.6",
"react-easy-sort": "1.8.0",
"react-hook-form": "7.71.2",
"react-hook-form": "7.76.1",
"react-icons": "5.6.0",
"recharts": "2.15.4",
"recharts": "3.8.1",
"reodotdev": "1.1.0",
"resend": "6.9.2",
"semver": "7.7.4",
"semver": "7.8.1",
"sshpk": "1.18.0",
"stripe": "20.4.1",
"stripe": "22.2.0",
"swagger-ui-express": "5.0.1",
"tailwind-merge": "3.5.0",
"tailwind-merge": "3.6.0",
"topojson-client": "3.1.0",
"tw-animate-css": "1.4.0",
"use-debounce": "10.1.0",
"uuid": "13.0.0",
"use-debounce": "10.1.1",
"uuid": "14.0.0",
"vaul": "1.1.2",
"visionscarto-world-atlas": "1.0.0",
"winston": "3.19.0",
"winston-daily-rotate-file": "5.0.0",
"ws": "8.19.0",
"yaml": "2.8.3",
"ws": "8.21.0",
"yaml": "2.9.0",
"yargs": "18.0.0",
"zod": "4.3.6",
"zod": "4.4.3",
"zod-validation-error": "5.0.0"
},
"devDependencies": {
"@dotenvx/dotenvx": "1.54.1",
"@dotenvx/dotenvx": "1.69.1",
"@esbuild-plugins/tsconfig-paths": "0.1.2",
"@react-email/preview-server": "5.2.10",
"@tailwindcss/postcss": "4.2.2",
"@tanstack/react-query-devtools": "5.91.3",
"@react-email/ui": "^6.5.0",
"@tailwindcss/postcss": "4.3.0",
"@tanstack/react-query-devtools": "5.100.14",
"@types/better-sqlite3": "7.6.13",
"@types/cookie-parser": "1.4.10",
"@types/cors": "2.8.19",
"@types/crypto-js": "4.2.2",
"@types/d3": "7.4.3",
"@types/express": "5.0.6",
"@types/express-session": "1.18.2",
"@types/express-session": "1.19.0",
"@types/jmespath": "0.15.2",
"@types/js-yaml": "4.0.9",
"@types/jsonwebtoken": "9.0.10",
"@types/node": "25.3.5",
"@types/nodemailer": "7.0.11",
"@types/node": "25.9.1",
"@types/nodemailer": "8.0.0",
"@types/nprogress": "0.2.3",
"@types/pg": "8.18.0",
"@types/react": "19.2.14",
"@types/pg": "8.20.0",
"@types/react": "19.2.15",
"@types/react-dom": "19.2.3",
"@types/semver": "7.7.1",
"@types/sshpk": "1.17.4",
@@ -160,21 +165,22 @@
"@types/yargs": "17.0.35",
"babel-plugin-react-compiler": "1.0.0",
"drizzle-kit": "0.31.10",
"esbuild": "0.27.4",
"esbuild-node-externals": "1.20.1",
"eslint": "10.0.3",
"eslint-config-next": "16.1.7",
"postcss": "8.5.8",
"prettier": "3.8.1",
"react-email": "5.2.10",
"tailwindcss": "4.2.2",
"tsc-alias": "1.8.16",
"tsx": "4.21.0",
"typescript": "5.9.3",
"typescript-eslint": "8.56.1"
"esbuild": "0.28.0",
"esbuild-node-externals": "1.22.0",
"eslint": "10.4.0",
"eslint-config-next": "16.2.6",
"postcss": "8.5.15",
"prettier": "3.8.3",
"react-email": "6.5.0",
"tailwindcss": "4.3.0",
"tsc-alias": "1.8.17",
"tsx": "4.22.3",
"typescript": "6.0.3",
"typescript-eslint": "8.60.0"
},
"overrides": {
"esbuild": "0.27.4",
"dompurify": "3.3.2"
"esbuild": "0.28.0",
"dompurify": "3.4.0",
"postcss": "8.5.15"
}
}
Binary file not shown.

Before

Width:  |  Height:  |  Size: 588 KiB

After

Width:  |  Height:  |  Size: 621 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 569 KiB

After

Width:  |  Height:  |  Size: 532 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 588 KiB

After

Width:  |  Height:  |  Size: 621 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.4 MiB

After

Width:  |  Height:  |  Size: 574 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 434 KiB

After

Width:  |  Height:  |  Size: 410 KiB

Some files were not shown because too many files have changed in this diff Show More