mirror of
https://github.com/luxfi/kms.git
synced 2026-07-27 05:54:18 +00:00
rebrand: neutralize legacy upstream brand across UI, backend, docs; add NOTICE
Replace all inline references to the legacy upstream project with Lux KMS branding (prose/labels), neutral identifiers (code), and neutral string literals (frontend-internal cache keys, sentinels, masks), with every reference renamed consistently so behavior is unchanged. Dead networking UI (relay/gateway/pam) CLI examples now reference the Lux CLI. Add a NOTICE file carrying the required upstream MIT attribution and full permission notice — the only place the upstream name remains, as required by that license. No functional changes. Frontend (vite build) and Go backend (go build -tags sqlite_fts5 sqlcipher) both build green.
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
name: Build KMS Operator
|
||||
|
||||
# Builds the KMSSecret reconciler (cmd/kms-operator) over the native luxfi/zap
|
||||
# binary transport — replaces the legacy Infisical-flavor HTTP operator that
|
||||
# binary transport — replaces the legacy HTTP operator that
|
||||
# POSTed /api/v1/auth/universal-auth/login (which the Go KMS server does not
|
||||
# expose → 404, breaking every KMSSecret sync). Self-contained build (no
|
||||
# cross-org reusable workflow); same pattern as build-lux-kms.yml /
|
||||
|
||||
@@ -170,7 +170,7 @@ recovers transparently when MPC comes back; no restart needed.
|
||||
|
||||
KMS is an MPC-backed key management service for the Lux Network. It manages validator keys, threshold signing, secret storage, and key rotation using distributed Multi-Party Computation.
|
||||
|
||||
**No Infisical. No PostgreSQL. No Node.js.** The active server is a pure Go binary in `cmd/kms/` backed by `luxfi/mpc` for threshold cryptography and `luxfi/zapdb` for storage.
|
||||
**No legacy fork. No PostgreSQL. No Node.js.** The active server is a pure Go binary in `cmd/kms/` backed by `luxfi/mpc` for threshold cryptography and `luxfi/zapdb` for storage.
|
||||
|
||||
## Architecture
|
||||
|
||||
@@ -278,7 +278,7 @@ Transport is always native ZAP — there is no HTTP fallback in the Go client.
|
||||
|
||||
| Path | Status | Notes |
|
||||
|------|--------|-------|
|
||||
| `backend/` | Legacy | Old Node.js/Fastify backend (from Infisical fork) |
|
||||
| `backend/` | Legacy | Old Node.js/Fastify backend (legacy fork) |
|
||||
| `frontend/` | Legacy | Old React dashboard |
|
||||
|
||||
## Key concepts
|
||||
|
||||
@@ -0,0 +1,31 @@
|
||||
Lux KMS
|
||||
Copyright (c) 2020-2026 Lux Industries Inc.
|
||||
|
||||
This product includes software derived from Infisical
|
||||
(https://github.com/Infisical/infisical), licensed under the MIT License,
|
||||
Copyright (c) 2022 Infisical Inc.
|
||||
|
||||
The original MIT permission notice for the derived portions is reproduced
|
||||
below, as required by that license:
|
||||
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2022 Infisical Inc.
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
MPC-backed key management service for the Lux Network. Manages validator keys, threshold signing, and key rotation using distributed MPC (Multi-Party Computation).
|
||||
|
||||
**No Infisical. No PostgreSQL.** Pure Go server backed by [MPC](https://github.com/luxfi/mpc) for threshold cryptography and a JSON file store for metadata.
|
||||
**No legacy fork. No PostgreSQL.** Pure Go server backed by [MPC](https://github.com/luxfi/mpc) for threshold cryptography and a JSON file store for metadata.
|
||||
|
||||
## Architecture
|
||||
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
// 3. List then Get every secret in the scope
|
||||
// 4. Write/update the K8s Secret named in spec.managedSecretReference
|
||||
//
|
||||
// Replaces the legacy hanzoai/kms-operator (Infisical-flavor SDK over HTTP).
|
||||
// Replaces the legacy hanzoai/kms-operator (SDK over HTTP).
|
||||
//
|
||||
// Env:
|
||||
// RESYNC_INTERVAL reconcile interval seconds (default 60)
|
||||
|
||||
+1
-1
@@ -81,7 +81,7 @@ func (c *orgClaims) orgs() []string {
|
||||
// requested path org. The IAM `owner`/`name` claim carries the parent
|
||||
// org (e.g. "lux"), but operators address project-scoped vaults under
|
||||
// that org via a longer slug (e.g. the lux-operator queries KMS with
|
||||
// org="lux-infra", its Infisical projectSlug). A token for org "lux"
|
||||
// org="lux-infra", its legacy projectSlug). A token for org "lux"
|
||||
// must reach "lux-infra", "lux-mainnet", … — every project under it —
|
||||
// without minting per-project tokens.
|
||||
//
|
||||
|
||||
+2
-2
@@ -159,11 +159,11 @@ func main() {
|
||||
mux.HandleFunc("GET /v1/kms/healthz", healthOK)
|
||||
mux.HandleFunc("GET /v1/kms/health", healthOK)
|
||||
|
||||
// SPA bootstrap config. The Infisical-derived React frontend in
|
||||
// SPA bootstrap config. The legacy-derived React frontend in
|
||||
// frontend/src/hooks/api/admin/queries.ts:fetchServerConfig fetches
|
||||
// `/v1/admin/config` at first paint and refuses to render when the
|
||||
// payload is missing — the user sees `["server-config"] data is
|
||||
// undefined`. We don't run the full Infisical admin surface, so
|
||||
// undefined`. We don't run the full legacy admin surface, so
|
||||
// this returns a minimal-but-complete shape: signups via IAM, no
|
||||
// invite-only gating, no SMTP, instance is initialized. Fields the
|
||||
// SPA reads: initialized, allowSignUp, allowedSignUpDomain, etc.
|
||||
|
||||
@@ -124,7 +124,7 @@
|
||||
"click-to-start": "Click on an integration to begin syncing secrets to it.",
|
||||
"click-to-setup": "Click on a framework to get the setup instructions.",
|
||||
"grant-access-to-secrets": "Grant KMS access to your secrets",
|
||||
"why-infisical-needs-access": "Most cloud integrations require KMS to be able to decrypt your secrets so they can be forwarded over.",
|
||||
"why-kms-needs-access": "Most cloud integrations require KMS to be able to decrypt your secrets so they can be forwarded over.",
|
||||
"grant-access-button": "Grant access"
|
||||
},
|
||||
"login": {
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"activity": {
|
||||
"title": "Historial de eventos",
|
||||
"subtitle": "Historial de eventos para este proyecto de Hanzo KMS.",
|
||||
"subtitle": "Historial de eventos para este proyecto de Lux KMS.",
|
||||
"event": {
|
||||
"readSecrets": "Secrets vistas",
|
||||
"updateSecrets": "Secrets actualizadas",
|
||||
@@ -39,7 +39,7 @@
|
||||
"schedule-demo": "Solicitar una demo"
|
||||
},
|
||||
"common": {
|
||||
"head-title": "{{title}} | Hanzo KMS",
|
||||
"head-title": "{{title}} | Lux KMS",
|
||||
"error_project-already-exists": "Ya existe un proyecto con este nombre.",
|
||||
"email": "Correo electrónico",
|
||||
"password": "Contraseña",
|
||||
@@ -74,7 +74,7 @@
|
||||
"dashboard": {
|
||||
"title": "Secrets",
|
||||
"og-title": "Gestiona tus archivos .env en segundos",
|
||||
"og-description": "Hanzo KMS es una solución cifrada de extremo a extremo que habilita a los equipos a compartir archivos .env de forma sencilla.",
|
||||
"og-description": "Lux KMS es una solución cifrada de extremo a extremo que habilita a los equipos a compartir archivos .env de forma sencilla.",
|
||||
"search-keys": "Buscar claves...",
|
||||
"add-key": "Añadir clave",
|
||||
"personal": "Personal",
|
||||
@@ -108,34 +108,34 @@
|
||||
},
|
||||
"integrations": {
|
||||
"title": "Integraciones del proyecto",
|
||||
"description": "Gestiona tus integraciones de Hanzo KMS con aplicaciones de terceros.",
|
||||
"description": "Gestiona tus integraciones de Lux KMS con aplicaciones de terceros.",
|
||||
"no-integrations1": "No tienes ninguna integración configurada. Cuando las tengas, aparecerán aquí.",
|
||||
"no-integrations2": "Para empezar haz click en cualquiera de las opciones siguientes. Se necesitan tan solo 5 pasos.",
|
||||
"available": "Integraciones con la nube",
|
||||
"available-text1": "Haz click en la integración que quieras conectar. Esto hará que las variables de entorno se configuren automáticamente en los servicios de terceros seleccionados.",
|
||||
"available-text2": "Nota: en la integración con Heroku, por motivos de seguridad, es imposible mantener el cifrado de extremo a extremo. En teoría, esto permite a Hanzo KMS descifrar tus variables de entorno. En la práctica, te podemos asegurar que esto nunca va a suceder. El núcleo del servicio Hanzo KMS siempre estará cifrado de extremo a extremo. Si tienes dudas, escríbenos a support@hanzo.ai.",
|
||||
"available-text2": "Nota: en la integración con Heroku, por motivos de seguridad, es imposible mantener el cifrado de extremo a extremo. En teoría, esto permite a Lux KMS descifrar tus variables de entorno. En la práctica, te podemos asegurar que esto nunca va a suceder. El núcleo del servicio Lux KMS siempre estará cifrado de extremo a extremo. Si tienes dudas, escríbenos a support@hanzo.ai.",
|
||||
"cloud-integrations": "Integraciones con la nube",
|
||||
"framework-integrations": "Integraciones con frameworks",
|
||||
"click-to-start": "Haz click en una integración para empezar a sincronizar las claves.",
|
||||
"click-to-setup": "Haz click en un framework para ver las instrucciones de uso.",
|
||||
"grant-access-to-secrets": "Autorizar Hanzo KMS el acceso a tus claves",
|
||||
"why-infisical-needs-access": "La mayoría de las integraciones en la nube requieren a Hanzo KMS tener permiso para descifrar tus claves, para que puedan ser enviadas.",
|
||||
"grant-access-to-secrets": "Autorizar Lux KMS el acceso a tus claves",
|
||||
"why-kms-needs-access": "La mayoría de las integraciones en la nube requieren a Lux KMS tener permiso para descifrar tus claves, para que puedan ser enviadas.",
|
||||
"grant-access-button": "Autorizar acceso"
|
||||
},
|
||||
"login": {
|
||||
"title": "Iniciar sesión",
|
||||
"og-title": "Iniciar sesión en Hanzo KMS",
|
||||
"og-description": "Hanzo KMS is a simple end-to-end encrypted platform that enables teams to sync and manage their .env files.",
|
||||
"og-title": "Iniciar sesión en Lux KMS",
|
||||
"og-description": "Lux KMS is a simple end-to-end encrypted platform that enables teams to sync and manage their .env files.",
|
||||
"login": "Iniciar sesión",
|
||||
"need-account": "¿Necesitas una cuenta de Hanzo KMS?",
|
||||
"need-account": "¿Necesitas una cuenta de Lux KMS?",
|
||||
"create-account": "Crea una cuenta",
|
||||
"forgot-password": "¿Has olvidado tu contraseña?",
|
||||
"error-login": "Datos incorrectos."
|
||||
},
|
||||
"mfa": {
|
||||
"title": "Registrarse",
|
||||
"og-title": "Reemplaza los archivos .env con una línea de código. Regístrate en Hanzo KMS en solo 3 minutos.",
|
||||
"og-description": "Hanzo KMS es una plataforma sencilla cifrada de extremo a extremo que permite a equipos sincronizar y gestionar API-keys y variables de entorno. Funciona con Node.js, Next.js, Gatsby, Nest.js...",
|
||||
"og-title": "Reemplaza los archivos .env con una línea de código. Regístrate en Lux KMS en solo 3 minutos.",
|
||||
"og-description": "Lux KMS es una plataforma sencilla cifrada de extremo a extremo que permite a equipos sincronizar y gestionar API-keys y variables de entorno. Funciona con Node.js, Next.js, Gatsby, Nest.js...",
|
||||
"signup": "Registrarse",
|
||||
"already-have-account": "¿Ya tienes una cuenta? Inicia sesión",
|
||||
"forgot-password": "¿Has olvidado tu contraseña?",
|
||||
@@ -157,7 +157,7 @@
|
||||
"step4-download": "Descargar PDF",
|
||||
"step5-send-invites": "Enviar invitaciones",
|
||||
"step5-invite-team": "Invita a tu equipo",
|
||||
"step5-subtitle": "Hanzo KMS está pensado para usarlo con tus compañeros. Invítalos a probarlo.",
|
||||
"step5-subtitle": "Lux KMS está pensado para usarlo con tus compañeros. Invítalos a probarlo.",
|
||||
"step5-skip": "Saltar"
|
||||
},
|
||||
"nav": {
|
||||
@@ -265,14 +265,14 @@
|
||||
"description": "Visualiza y gestiona aquí tu información personal.",
|
||||
"emergency": {
|
||||
"name": "Kit de emergencia",
|
||||
"text1": "Tu Kit de emergencia contiene la información que necesitarás para iniciar sesión en tu cuenta de Hanzo KMS.",
|
||||
"text1": "Tu Kit de emergencia contiene la información que necesitarás para iniciar sesión en tu cuenta de Lux KMS.",
|
||||
"text2": "Solo el último Kit de emergencia descargado es válido. Para conseguir uno nuevo, introduce tu contraseña.",
|
||||
"download": "Descargar Kit de emergencia"
|
||||
},
|
||||
"change-language": "Cambiar idioma",
|
||||
"api-keys": {
|
||||
"title": "API Keys",
|
||||
"description": "Gestiona tus API Keys personales para acceder a la API de Hanzo KMS.",
|
||||
"description": "Gestiona tus API Keys personales para acceder a la API de Lux KMS.",
|
||||
"add-new": "Añadir"
|
||||
}
|
||||
},
|
||||
@@ -284,18 +284,18 @@
|
||||
"project-to-delete": "Proyecto a eliminar",
|
||||
"danger-zone-note": "Tan pronto como elimines el proyecto, no podrás volver atrás. Esto eliminará todas las claves. Si aún quieres hacerlo, introduce el nombre del proyecto a continuación.",
|
||||
"delete-project-note": "Nota: Solo puedes eliminar un proyecto si tienes más de uno",
|
||||
"project-id-description": "Para integrar Hanzo KMS en tu aplicación y obtener la inyección automática de variables de entorno, debes usar el siguiente ID de Proyecto.",
|
||||
"project-id-description": "Para integrar Lux KMS en tu aplicación y obtener la inyección automática de variables de entorno, debes usar el siguiente ID de Proyecto.",
|
||||
"project-id-description2": "Para más guías, incluyendo ejemplos de código en diferentes lenguajes y frameworks, visita ",
|
||||
"auto-generated": "Este es el ID único y autogenerado de proyecto. No se puede modificar.",
|
||||
"docs": "Documentación de Hanzo KMS",
|
||||
"docs": "Documentación de Lux KMS",
|
||||
"enforce-capitalization": "Hacer cumplir la capitalización",
|
||||
"enforce-capitalization-description": "Según los estándares, Hanzo KMS aplica claves secretas en mayúsculas. Si desea desactivar esta función, puede hacerlo aquí."
|
||||
"enforce-capitalization-description": "Según los estándares, Lux KMS aplica claves secretas en mayúsculas. Si desea desactivar esta función, puede hacerlo aquí."
|
||||
}
|
||||
},
|
||||
"signup": {
|
||||
"title": "Registrarse",
|
||||
"og-title": "Reemplaza los archivos .env con una línea de código. Regístrate en Hanzo KMS en solo 3 minutos.",
|
||||
"og-description": "Hanzo KMS es una plataforma sencilla cifrada de extremo a extremo que permite a equipos sincronizar y gestionar API-keys y variables de entorno. Funciona con Node.js, Next.js, Gatsby, Nest.js...",
|
||||
"og-title": "Reemplaza los archivos .env con una línea de código. Regístrate en Lux KMS en solo 3 minutos.",
|
||||
"og-description": "Lux KMS es una plataforma sencilla cifrada de extremo a extremo que permite a equipos sincronizar y gestionar API-keys y variables de entorno. Funciona con Node.js, Next.js, Gatsby, Nest.js...",
|
||||
"signup": "Registrarse",
|
||||
"already-have-account": "¿Ya tienes una cuenta? Inicia sesión",
|
||||
"forgot-password": "¿Has olvidado tu contraseña?",
|
||||
@@ -317,7 +317,7 @@
|
||||
"step4-download": "Descargar PDF",
|
||||
"step5-send-invites": "Enviar invitaciones",
|
||||
"step5-invite-team": "Invita a tu equipo",
|
||||
"step5-subtitle": "Hanzo KMS está pensado para usarlo con tus compañeros. Invítalos a probarlo.",
|
||||
"step5-subtitle": "Lux KMS está pensado para usarlo con tus compañeros. Invítalos a probarlo.",
|
||||
"step5-skip": "Saltar"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"activity": {
|
||||
"title": "Journaux d'activité",
|
||||
"subtitle": "Historique des événements pour ce projet Hanzo KMS.",
|
||||
"subtitle": "Historique des événements pour ce projet Lux KMS.",
|
||||
"event": {
|
||||
"readSecrets": "Secrets Visualisés",
|
||||
"updateSecrets": "Secrets Mis à jour",
|
||||
@@ -39,7 +39,7 @@
|
||||
"schedule-demo": "Planifier une démo"
|
||||
},
|
||||
"common": {
|
||||
"head-title": "{{title}} | Hanzo KMS",
|
||||
"head-title": "{{title}} | Lux KMS",
|
||||
"error_project-already-exists": "Un projet avec ce nom existe déjà.",
|
||||
"email": "Email",
|
||||
"password": "Mot de passe",
|
||||
@@ -74,7 +74,7 @@
|
||||
"dashboard": {
|
||||
"title": "Secrets",
|
||||
"og-title": "Gérez vos fichiers .env rapidement",
|
||||
"og-description": "Hanzo KMS est une plate-forme simple et chiffré de bout en bout qui permet aux équipes de synchroniser et de gérer leurs fichiers .env.",
|
||||
"og-description": "Lux KMS est une plate-forme simple et chiffré de bout en bout qui permet aux équipes de synchroniser et de gérer leurs fichiers .env.",
|
||||
"search-keys": "Recherche les clefs...",
|
||||
"add-key": "Ajouter une clef",
|
||||
"personal": "Personnel",
|
||||
@@ -108,34 +108,34 @@
|
||||
},
|
||||
"integrations": {
|
||||
"title": "Intégrations de Projet",
|
||||
"description": "Gérez vos intégrations de Hanzo KMS avec des services tiers.",
|
||||
"description": "Gérez vos intégrations de Lux KMS avec des services tiers.",
|
||||
"no-integrations1": "Vous n'avez pas encore d'intégration. Quand vous en aurez, elles apparaîtront ici.",
|
||||
"no-integrations2": "Pour commencer, cliquez sur l'une des options ci-dessous. La configuration se fait en 5 clics.",
|
||||
"available": "Intégrations de plate-forme et cloud",
|
||||
"available-text1": "Cliquez sur l'intégration que vous souhaitez connecter. Cela permettra à vos variables d'environnement de circuler automatiquement dans les services tiers sélectionnés.",
|
||||
"available-text2": "Remarque: Lors d'une intégration avec Heroku, pour des raisons de sécurité, il est impossible de maintenir le chiffrage de bout en bout. En théorie, cela permet à Hanzo KMS de déchiffrer les variables d'environnement. En pratique, nous pouvons vous assurer que cela ne sera jamais fait, et cela nous permet de protéger vos secrets des mauvais acteurs en ligne. Le service Hanzo KMS de base restera toujours chiffré de bout en bout. Pour toutes vos intérogations, contactez support@hanzo.ai.",
|
||||
"available-text2": "Remarque: Lors d'une intégration avec Heroku, pour des raisons de sécurité, il est impossible de maintenir le chiffrage de bout en bout. En théorie, cela permet à Lux KMS de déchiffrer les variables d'environnement. En pratique, nous pouvons vous assurer que cela ne sera jamais fait, et cela nous permet de protéger vos secrets des mauvais acteurs en ligne. Le service Lux KMS de base restera toujours chiffré de bout en bout. Pour toutes vos intérogations, contactez support@hanzo.ai.",
|
||||
"cloud-integrations": "Intégrations Cloud",
|
||||
"framework-integrations": "Intégrations Framework",
|
||||
"click-to-start": "Cliquez sur une intégration pour commencer à synchroniser les secrets avec elle.",
|
||||
"click-to-setup": "Cliquez sur un framework pour obtenir les instructions de configuration.",
|
||||
"grant-access-to-secrets": "Accordez un accès Hanzo KMS à vos secrets",
|
||||
"why-infisical-needs-access": "La plupart des intégrations cloud nécessitent que Hanzo KMS puisse déchiffrer vos secrets afin qu'ils puissent être transmis.",
|
||||
"grant-access-to-secrets": "Accordez un accès Lux KMS à vos secrets",
|
||||
"why-kms-needs-access": "La plupart des intégrations cloud nécessitent que Lux KMS puisse déchiffrer vos secrets afin qu'ils puissent être transmis.",
|
||||
"grant-access-button": "Autoriser l'accès"
|
||||
},
|
||||
"login": {
|
||||
"title": "Connexion",
|
||||
"og-title": "Connectez-vous à Hanzo KMS",
|
||||
"og-description": "Hanzo KMS, une plate-forme simple et chiffré de bout en bout permettant aux équipes de synchroniser et de gérer leurs fichiers .env.",
|
||||
"og-title": "Connectez-vous à Lux KMS",
|
||||
"og-description": "Lux KMS, une plate-forme simple et chiffré de bout en bout permettant aux équipes de synchroniser et de gérer leurs fichiers .env.",
|
||||
"login": "Se connecter",
|
||||
"need-account": "Besoin d'un compte Hanzo KMS?",
|
||||
"need-account": "Besoin d'un compte Lux KMS?",
|
||||
"create-account": "Créer un compte",
|
||||
"forgot-password": "Mot de passe oublié?",
|
||||
"error-login": "Mauvais identifiants."
|
||||
},
|
||||
"mfa": {
|
||||
"title": "S'inscrire",
|
||||
"og-title": "Remplacez les fichiers .env par 1 ligne de code. Inscrivez-vous à Hanzo KMS en 3 minutes.",
|
||||
"og-description": "Hanzo KMS, une plate-forme simple et chiffré de bout en bout qui permet aux équipes de synchroniser et de gérer des clefs API et des variables d'environnement. Fonctionne avec Node.js, Next.js, Gatsby, Nest.js ...",
|
||||
"og-title": "Remplacez les fichiers .env par 1 ligne de code. Inscrivez-vous à Lux KMS en 3 minutes.",
|
||||
"og-description": "Lux KMS, une plate-forme simple et chiffré de bout en bout qui permet aux équipes de synchroniser et de gérer des clefs API et des variables d'environnement. Fonctionne avec Node.js, Next.js, Gatsby, Nest.js ...",
|
||||
"signup": "S'inscrire",
|
||||
"already-have-account": "Déjà inscris? Se connecter",
|
||||
"forgot-password": "Mot de passe oublié?",
|
||||
@@ -157,7 +157,7 @@
|
||||
"step4-download": "Téléchargez le PDF",
|
||||
"step5-send-invites": "Envoyer les invitations",
|
||||
"step5-invite-team": "Invitez votre équipe",
|
||||
"step5-subtitle": "Hanzo KMS a pour but d'être utilisé avec vos coéquipiers. Invitez-les à le tester.",
|
||||
"step5-subtitle": "Lux KMS a pour but d'être utilisé avec vos coéquipiers. Invitez-les à le tester.",
|
||||
"step5-skip": "Passer"
|
||||
},
|
||||
"nav": {
|
||||
@@ -252,7 +252,7 @@
|
||||
"description": "Consultez et gérez vos informations personnelles ici.",
|
||||
"emergency": {
|
||||
"name": "Kit d'urgence",
|
||||
"text1": "Votre kit d'urgence contient les informations dont vous aurez besoin pour vous connecter à votre compte Hanzo KMS.",
|
||||
"text1": "Votre kit d'urgence contient les informations dont vous aurez besoin pour vous connecter à votre compte Lux KMS.",
|
||||
"text2": "Seul le dernier kit d'urgence émis reste valide. Pour obtenir un nouveau kit d'urgence, vérifiez votre mot de passe.",
|
||||
"download": "Télécharger le kit d'urgence"
|
||||
},
|
||||
@@ -266,16 +266,16 @@
|
||||
"project-to-delete": "Projet à Supprimer",
|
||||
"danger-zone-note": "Dès que vous supprimez ce projet, vous ne pourrez plus revenir en arrière. Cela supprimera immédiatement toutes les clefs. Si vous voulez toujours le faire, veuillez saisir le nom du projet ci-dessous.",
|
||||
"delete-project-note": "Remarque: Vous ne pouvez supprimer qu'un projet que si vous en avez plus d'un.",
|
||||
"project-id-description": "Pour intégrer Hanzo KMS dans votre base de code et obtenir une injection automatique de variables d'environnement, vous devez utiliser l'ID du projet suivant.",
|
||||
"project-id-description": "Pour intégrer Lux KMS dans votre base de code et obtenir une injection automatique de variables d'environnement, vous devez utiliser l'ID du projet suivant.",
|
||||
"project-id-description2": "Pour plus de conseils, y compris des extraits de code pour diverses langues et frameworks, voir ",
|
||||
"auto-generated": "Ceci est l'identifiant unique généré automatiquement pour votre projet. Il ne peut pas être modifié.",
|
||||
"docs": "Documentation Hanzo KMS"
|
||||
"docs": "Documentation Lux KMS"
|
||||
}
|
||||
},
|
||||
"signup": {
|
||||
"title": "S'inscrire",
|
||||
"og-title": "Remplacez les fichiers .env par 1 ligne de code. Inscrivez-vous à Hanzo KMS en 3 minutes.",
|
||||
"og-description": "Hanzo KMS, une plate-forme simple et chiffré de bout en bout qui permet aux équipes de synchroniser et de gérer des clefs API et des variables d'environnement. Fonctionne avec Node.js, Next.js, Gatsby, Nest.js ...",
|
||||
"og-title": "Remplacez les fichiers .env par 1 ligne de code. Inscrivez-vous à Lux KMS en 3 minutes.",
|
||||
"og-description": "Lux KMS, une plate-forme simple et chiffré de bout en bout qui permet aux équipes de synchroniser et de gérer des clefs API et des variables d'environnement. Fonctionne avec Node.js, Next.js, Gatsby, Nest.js ...",
|
||||
"signup": "S'inscrire",
|
||||
"already-have-account": "Déjà inscris? Se connecter",
|
||||
"forgot-password": "Mot de passe oublié?",
|
||||
@@ -297,7 +297,7 @@
|
||||
"step4-download": "Téléchargez le PDF",
|
||||
"step5-send-invites": "Envoyer les invitations",
|
||||
"step5-invite-team": "Invitez votre équipe",
|
||||
"step5-subtitle": "Hanzo KMS a pour but d'être utilisé avec vos coéquipiers. Invitez-les à le tester.",
|
||||
"step5-subtitle": "Lux KMS a pour but d'être utilisé avec vos coéquipiers. Invitez-les à le tester.",
|
||||
"step5-skip": "Passer"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -28,7 +28,7 @@
|
||||
"schedule-demo": "데모 예약하기"
|
||||
},
|
||||
"common": {
|
||||
"head-title": "{{title}} | Hanzo KMS",
|
||||
"head-title": "{{title}} | Lux KMS",
|
||||
"error_project-already-exists": "동일한 이름을 가진 프로젝트가 이미 존재해요.",
|
||||
"email": "메일",
|
||||
"password": "비밀번호",
|
||||
@@ -55,7 +55,7 @@
|
||||
"dashboard": {
|
||||
"title": "시크릿",
|
||||
"og-title": "빠르게 .env 파일을 관리하세요",
|
||||
"og-description": "Hanzo KMS은 팀원과 .env파일을 공유할 수 있는 심플한 end-to-end 암호화 플렛폼입니다.",
|
||||
"og-description": "Lux KMS은 팀원과 .env파일을 공유할 수 있는 심플한 end-to-end 암호화 플렛폼입니다.",
|
||||
"search-keys": "키 검색하기...",
|
||||
"add-key": "키 추가하기",
|
||||
"personal": "개인",
|
||||
@@ -85,8 +85,8 @@
|
||||
"integrations": {
|
||||
"available": "사용 가능한 연동",
|
||||
"available-text1": "연결하고 싶은 서비스를 클릭하세요. 환경 변수가 선택한 외부 서비스와 자동으로 연동됩니다.",
|
||||
"available-text2": "참고: Heroku와의 연동에서는 보안상의 이유로 End-To-End 암호화를 유지하는 것이 불가능합니다. 이론적으로는 Hanzo KMS이 시크릿을 읽는것이 가능하지만, 절대 그러지 않는다고 확신할 수 있습니다. 핵심 Hanzo KMS 서비스는 항상 End-To-End 암호화 상태를 유지합니다. 질문이 있으면 support@hanzo.ai으로 문의하세요.",
|
||||
"description": "외부 서비스와 함께 Hanzo KMS을 연동하고 관리하세요",
|
||||
"available-text2": "참고: Heroku와의 연동에서는 보안상의 이유로 End-To-End 암호화를 유지하는 것이 불가능합니다. 이론적으로는 Lux KMS이 시크릿을 읽는것이 가능하지만, 절대 그러지 않는다고 확신할 수 있습니다. 핵심 Lux KMS 서비스는 항상 End-To-End 암호화 상태를 유지합니다. 질문이 있으면 support@hanzo.ai으로 문의하세요.",
|
||||
"description": "외부 서비스와 함께 Lux KMS을 연동하고 관리하세요",
|
||||
"no-integrations1": "연동된 서비스가 없어요. 연동하게 된다면 이곳에서 표시돼요.",
|
||||
"no-integrations2": "시작하려면, 아래의 옵션을 클릭하세요. 대체로 5분 이내로 가능해요.",
|
||||
"title": "프로젝트 연동",
|
||||
@@ -94,22 +94,22 @@
|
||||
"framework-integrations": "Framework Integrations",
|
||||
"click-to-start": "Click on an integration to begin syncing secrets to it.",
|
||||
"click-to-setup": "Click on a framework to get the setup instructions.",
|
||||
"grant-access-to-secrets": "Grant Hanzo KMS access to your secrets",
|
||||
"why-infisical-needs-access": "Most cloud integrations require Hanzo KMS to be able to decrypt your secrets so they can be forwarded over.",
|
||||
"grant-access-to-secrets": "Grant Lux KMS access to your secrets",
|
||||
"why-kms-needs-access": "Most cloud integrations require Lux KMS to be able to decrypt your secrets so they can be forwarded over.",
|
||||
"grant-access-button": "Grant access"
|
||||
},
|
||||
"login": {
|
||||
"title": "로그인",
|
||||
"og-title": "Hanzo KMS에 로그인하기",
|
||||
"og-description": "Hanzo KMS is a simple end-to-end encrypted platform that enables teams to sync and manage their .env files.",
|
||||
"og-title": "Lux KMS에 로그인하기",
|
||||
"og-description": "Lux KMS is a simple end-to-end encrypted platform that enables teams to sync and manage their .env files.",
|
||||
"login": "로그인",
|
||||
"need-account": "Hanzo KMS 계정이 필요하신가요?",
|
||||
"need-account": "Lux KMS 계정이 필요하신가요?",
|
||||
"create-account": "회원가입 하기"
|
||||
},
|
||||
"mfa": {
|
||||
"title": "회원가입",
|
||||
"og-title": "한줄의 코드르 .env파일을 교체하세요. 3분이면 가입할 수 있어요.",
|
||||
"og-description": "Hanzo KMS은 팀원과 .env파일을 공유하고 연동할 수 있는 심플한 end-to-end 암호화 플렛폼입니다. Node.js, Next.js, Gatsby, Nest.js 와 같은 다양한 플렛폼에서 작동해요.",
|
||||
"og-description": "Lux KMS은 팀원과 .env파일을 공유하고 연동할 수 있는 심플한 end-to-end 암호화 플렛폼입니다. Node.js, Next.js, Gatsby, Nest.js 와 같은 다양한 플렛폼에서 작동해요.",
|
||||
"signup": "회원가입",
|
||||
"already-have-account": "이미 계정이 있나요? 로그인하기",
|
||||
"forgot-password": "비밀번호를 잊으셨나요?",
|
||||
@@ -219,7 +219,7 @@
|
||||
"description": "계정 및 기본적인 설정을 확인하고 변경하세요.",
|
||||
"emergency": {
|
||||
"name": "긴급복구 키트",
|
||||
"text1": "긴급복구 키트는 Hanzo KMS 계정에 로그인 할 수 있는 정보를 가지고 있어요.",
|
||||
"text1": "긴급복구 키트는 Lux KMS 계정에 로그인 할 수 있는 정보를 가지고 있어요.",
|
||||
"text2": "오직 마지막으로 발급한 긴급복구 키트만 사용 가능해요. 새로운 긴급복구 키트를 받으려면, 비밀번호를 입력하세요.",
|
||||
"download": "긴급복구 키트 다운로드"
|
||||
},
|
||||
@@ -233,8 +233,8 @@
|
||||
"danger-zone-note": "프로젝트를 삭제한다면 모든 키가 즉시 삭제되며 다시는 되돌릴 수 없어요. 삭제를 원한다면 프로젝트 이름을 아래에 적어주세요.",
|
||||
"delete-project": "프로젝트 삭제",
|
||||
"delete-project-note": "노트: 최소 한개 이상의 프로젝트는 조직에 존재해야 해요.",
|
||||
"docs": "Hanzo KMS 문서",
|
||||
"project-id-description": "다른 코드에서 Hanzo KMS과 환경변수를 연동하기 위해서는 프로젝트 ID가 필요해요.",
|
||||
"docs": "Lux KMS 문서",
|
||||
"project-id-description": "다른 코드에서 Lux KMS과 환경변수를 연동하기 위해서는 프로젝트 ID가 필요해요.",
|
||||
"project-id-description2": "다양한 언어 및 프레임워크에 대한 가이드를 확인하고 싶다면, 다음을 확인하세요. ",
|
||||
"project-to-delete": "삭제할 프로젝트"
|
||||
}
|
||||
@@ -242,7 +242,7 @@
|
||||
"signup": {
|
||||
"title": "회원가입",
|
||||
"og-title": "한줄의 코드르 .env파일을 교체하세요. 3분이면 가입할 수 있어요.",
|
||||
"og-description": "Hanzo KMS은 팀원과 .env파일을 공유하고 연동할 수 있는 심플한 end-to-end 암호화 플렛폼입니다. Node.js, Next.js, Gatsby, Nest.js 와 같은 다양한 플렛폼에서 작동해요.",
|
||||
"og-description": "Lux KMS은 팀원과 .env파일을 공유하고 연동할 수 있는 심플한 end-to-end 암호화 플렛폼입니다. Node.js, Next.js, Gatsby, Nest.js 와 같은 다양한 플렛폼에서 작동해요.",
|
||||
"signup": "회원가입",
|
||||
"already-have-account": "이미 계정이 있나요? 로그인하기",
|
||||
"forgot-password": "비밀번호를 잊으셨나요?",
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"activity": {
|
||||
"title": "Registro de Atividade",
|
||||
"subtitle": "Histórico de eventos para esse projeto Hanzo KMS.",
|
||||
"subtitle": "Histórico de eventos para esse projeto Lux KMS.",
|
||||
"event": {
|
||||
"readSecrets": "Segredos Visualizados",
|
||||
"updateSecrets": "Segredos Atualizados",
|
||||
@@ -39,7 +39,7 @@
|
||||
"schedule-demo": "Agende uma Demonstração"
|
||||
},
|
||||
"common": {
|
||||
"head-title": "{{title}} | Hanzo KMS",
|
||||
"head-title": "{{title}} | Lux KMS",
|
||||
"error_project-already-exists": "Já exite um projeto com este nome.",
|
||||
"email": "Email",
|
||||
"password": "Senha",
|
||||
@@ -74,7 +74,7 @@
|
||||
"dashboard": {
|
||||
"title": "Segredos",
|
||||
"og-title": "Gerencie seus arquivos .env em segundos",
|
||||
"og-description": "Hanzo KMS é uma plataforma simples e criptografada de ponta a ponta que permite que as equipes sincronizem e gerenciem seus arquivos .env.",
|
||||
"og-description": "Lux KMS é uma plataforma simples e criptografada de ponta a ponta que permite que as equipes sincronizem e gerenciem seus arquivos .env.",
|
||||
"search-keys": "Pesquisar chaves...",
|
||||
"add-key": "Adicionar Chave",
|
||||
"personal": "Pessoal",
|
||||
@@ -107,33 +107,33 @@
|
||||
},
|
||||
"integrations": {
|
||||
"title": "Integrações de Projetos",
|
||||
"description": "Gerencie suas integrações da Hanzo KMS com serviços de terceiros.",
|
||||
"description": "Gerencie suas integrações da Lux KMS com serviços de terceiros.",
|
||||
"no-integrations1": "Você ainda não tem integrações configuradas. Quando você fizer isso, elas aparecerão aqui.",
|
||||
"no-integrations2": "Para começar, clique em qualquer uma das opções abaixo. Leva 5 cliques para configurar.",
|
||||
"available": "Integrações de Plataforma e em Nuvem",
|
||||
"available-text1": "Clique na integração que deseja conectar. Isso permitirá que suas variáveis de ambiente fluam automaticamente para serviços de terceiros selecionados.",
|
||||
"available-text2": "Observação: durante uma integração com o Heroku, por questões de segurança, é impossível manter a criptografia de ponta a ponta. Em teoria, isso permite que o Hanzo KMS descriptografe suas variáveis de ambiente. Na prática, podemos garantir que isso nunca será feito e nos permite proteger seus segredos de pessoas mal-intencionadas online. O serviço básico da Hanzo KMS sempre permanecerá criptografado de ponta a ponta. Em caso de dúvidas, entre em contato com support@hanzo.ai.",
|
||||
"available-text2": "Observação: durante uma integração com o Heroku, por questões de segurança, é impossível manter a criptografia de ponta a ponta. Em teoria, isso permite que o Lux KMS descriptografe suas variáveis de ambiente. Na prática, podemos garantir que isso nunca será feito e nos permite proteger seus segredos de pessoas mal-intencionadas online. O serviço básico da Lux KMS sempre permanecerá criptografado de ponta a ponta. Em caso de dúvidas, entre em contato com support@hanzo.ai.",
|
||||
"cloud-integrations": "Integrações em Nuvem",
|
||||
"framework-integrations": "Integrações com framework",
|
||||
"click-to-start": "Clique em uma integração para começar a sincronizar segredos com ela.",
|
||||
"click-to-setup": "Clique em uma estrutura para obter as instruções de configuração.",
|
||||
"grant-access-to-secrets": "Conceda acesso Hanzo KMS aos seus segredos",
|
||||
"why-infisical-needs-access": "A maioria das integrações em Nuvem exige que o Hanzo KMS seja capaz de descriptografar seus segredos para que possam ser encaminhados.",
|
||||
"grant-access-to-secrets": "Conceda acesso Lux KMS aos seus segredos",
|
||||
"why-kms-needs-access": "A maioria das integrações em Nuvem exige que o Lux KMS seja capaz de descriptografar seus segredos para que possam ser encaminhados.",
|
||||
"grant-access-button": "Garantir acesso"
|
||||
},
|
||||
"login": {
|
||||
"title": "Entrar",
|
||||
"og-title": "Entrar no Hanzo KMS",
|
||||
"og-description": "Hanzo KMS é uma plataforma simples e criptografada de ponta a ponta que permite que as equipes sincronizem e gerenciem seus arquivos .env.",
|
||||
"og-title": "Entrar no Lux KMS",
|
||||
"og-description": "Lux KMS é uma plataforma simples e criptografada de ponta a ponta que permite que as equipes sincronizem e gerenciem seus arquivos .env.",
|
||||
"login": "Entrar",
|
||||
"need-account": "Precisa de uma conta Hanzo KMS?",
|
||||
"need-account": "Precisa de uma conta Lux KMS?",
|
||||
"forgot-password": "Esqueceu sua senha?",
|
||||
"create-account": "Criar uma conta"
|
||||
},
|
||||
"mfa": {
|
||||
"title": "Criar uma conta",
|
||||
"og-title": "Substitua os arquivos .env por 1 linha de código. Cadastre-se no Hanzo KMS em 3 minutos.",
|
||||
"og-description": "Hanzo KMS é uma plataforma criptografada de ponta a ponta simples que permite que as equipes sincronizem e gerenciem chaves de API e variáveis ambientais. Funciona com Node.js, Next.js, Gatsby, Nest.js...",
|
||||
"og-title": "Substitua os arquivos .env por 1 linha de código. Cadastre-se no Lux KMS em 3 minutos.",
|
||||
"og-description": "Lux KMS é uma plataforma criptografada de ponta a ponta simples que permite que as equipes sincronizem e gerenciem chaves de API e variáveis ambientais. Funciona com Node.js, Next.js, Gatsby, Nest.js...",
|
||||
"signup": "Criar uma conta",
|
||||
"already-have-account": "Possui uma conta? Conecte-se",
|
||||
"forgot-password": "Esqueceu sua senha?",
|
||||
@@ -152,7 +152,7 @@
|
||||
"step4-download": "Baixar PDF",
|
||||
"step5-send-invites": "Enviar convites",
|
||||
"step5-invite-team": "Convide sua equipe",
|
||||
"step5-subtitle": "Hanzo KMS foi feito para ser usado com seus colegas. Convide-os para eles testarem também.",
|
||||
"step5-subtitle": "Lux KMS foi feito para ser usado com seus colegas. Convide-os para eles testarem também.",
|
||||
"step5-skip": "Pular"
|
||||
},
|
||||
"nav": {
|
||||
@@ -247,7 +247,7 @@
|
||||
"description": "Visualize e gerencie suas informações pessoais aqui.",
|
||||
"emergency": {
|
||||
"name": "Kit de emergência",
|
||||
"text1": "Seu Kit de Emergência contém as informações necessárias para acessar sua conta Hanzo KMS.",
|
||||
"text1": "Seu Kit de Emergência contém as informações necessárias para acessar sua conta Lux KMS.",
|
||||
"text2": "Apenas o último kit de emergência emitido permanece válido. Para obter um novo Kit de emergência, verifique sua senha.",
|
||||
"download": "Baixe o kit de emergência"
|
||||
},
|
||||
@@ -261,18 +261,18 @@
|
||||
"project-to-delete": "Projeto a ser deletado",
|
||||
"danger-zone-note": "Assim que você excluir este projeto, não poderá desfazê-lo. Isso removerá imediatamente todas as chaves. Se você ainda quiser fazer isso, digite o nome do projeto abaixo.",
|
||||
"delete-project-note": "Observação: você só pode excluir um projeto caso tenha mais de um",
|
||||
"project-id-description": "Para integrar Hanzo KMS em sua base de código e obter injeção automática de variáveis de ambiente, você deve usar o seguinte ID do projeto.",
|
||||
"project-id-description": "Para integrar Lux KMS em sua base de código e obter injeção automática de variáveis de ambiente, você deve usar o seguinte ID do projeto.",
|
||||
"project-id-description2": "Para obter mais orientações, incluindo trechos de código para várias linguagens e frameworks, consulte ",
|
||||
"auto-generated": "Este é o identificador exclusivo - gerado automaticamente - do seu projeto. Não pode ser alterado.",
|
||||
"docs": "Documentação do Hanzo KMS",
|
||||
"docs": "Documentação do Lux KMS",
|
||||
"enforce-capitalization": "Aplicar capitalização",
|
||||
"enforce-capitalization-description": "De acordo com os padrões, o Hanzo KMS impõe chaves secretas em letras maiúsculas. Se quiser desabilitar esse recurso, você pode fazer isso aqui."
|
||||
"enforce-capitalization-description": "De acordo com os padrões, o Lux KMS impõe chaves secretas em letras maiúsculas. Se quiser desabilitar esse recurso, você pode fazer isso aqui."
|
||||
}
|
||||
},
|
||||
"signup": {
|
||||
"title": "Inscrever-se",
|
||||
"og-title": "Substitua os arquivos .env por 1 linha de código. Cadastre-se no Hanzo KMS em 3 minutos.",
|
||||
"og-description": "Hanzo KMS é uma plataforma simples e criptografada de ponta a ponta que permite que as equipes sincronizem e gerenciem chaves de API e variáveis de ambiente. Funciona com Node.js, Next.js, Gatsby, Nest.js...",
|
||||
"og-title": "Substitua os arquivos .env por 1 linha de código. Cadastre-se no Lux KMS em 3 minutos.",
|
||||
"og-description": "Lux KMS é uma plataforma simples e criptografada de ponta a ponta que permite que as equipes sincronizem e gerenciem chaves de API e variáveis de ambiente. Funciona com Node.js, Next.js, Gatsby, Nest.js...",
|
||||
"signup": "Inscrever-se",
|
||||
"already-have-account": "Possui uma conta? Conecte-se",
|
||||
"forgot-password": "Esqueceu sua senha?",
|
||||
@@ -291,7 +291,7 @@
|
||||
"step4-download": "Baixar PDF",
|
||||
"step5-send-invites": "Enviar convites",
|
||||
"step5-invite-team": "Convide sua equipe",
|
||||
"step5-subtitle": "Hanzo KMS foi feito para ser usado com seus colegas. Convide-os para testar também.",
|
||||
"step5-subtitle": "Lux KMS foi feito para ser usado com seus colegas. Convide-os para testar também.",
|
||||
"step5-skip": "Pular"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"activity": {
|
||||
"title": "Aktivite Günlükleri",
|
||||
"subtitle": "Bu Hanzo KMS projesi için Olay Geçmişi.",
|
||||
"subtitle": "Bu Lux KMS projesi için Olay Geçmişi.",
|
||||
"event": {
|
||||
"readSecrets": "Sırlar Görüntülendi",
|
||||
"updateSecrets": "Sırlar Güncellendi",
|
||||
@@ -39,7 +39,7 @@
|
||||
"schedule-demo": "Bir Deneme Sürümü Planlayın "
|
||||
},
|
||||
"common": {
|
||||
"head-title": "{{title}} | Hanzo KMS",
|
||||
"head-title": "{{title}} | Lux KMS",
|
||||
"error_project-already-exists": "Bu isimle bir proje zaten mevcut.",
|
||||
"email": "Email",
|
||||
"password": "Şifre",
|
||||
@@ -74,7 +74,7 @@
|
||||
"dashboard": {
|
||||
"title": "Sırlar",
|
||||
"og-title": "Saniyeler içerisinde .env dosyalarınızı yönetin",
|
||||
"og-description": "Hanzo KMS takımların .env dosyalarını senkronize etmelerini ve yönetmelerini sağlayan uçtan uca şifrelenmiş basit bir platformdur",
|
||||
"og-description": "Lux KMS takımların .env dosyalarını senkronize etmelerini ve yönetmelerini sağlayan uçtan uca şifrelenmiş basit bir platformdur",
|
||||
"search-keys": "Anahtarları ara...",
|
||||
"add-key": "Anahtar Ekle",
|
||||
"personal": "Kişisel",
|
||||
@@ -108,34 +108,34 @@
|
||||
},
|
||||
"integrations": {
|
||||
"title": "Proje Entegrasyonları",
|
||||
"description": "Hanzo KMS'nin üçüncü taraf hizmetlerle olan entegrasyonlarınızı yönetin.",
|
||||
"description": "Lux KMS'nin üçüncü taraf hizmetlerle olan entegrasyonlarınızı yönetin.",
|
||||
"no-integrations1": "Henüz ayarlanmış bir entegrasyonunuz yok. Oluşturduğunuz zaman, burada görünecekler.",
|
||||
"no-integrations2": "Başlamak için aşağıdaki seçeneklerden herhangi birine tıklayın. Sadece 5 tıklama ile kurulumu halledin.",
|
||||
"available": "Platform & Cloud Entegrasyonları",
|
||||
"available-text1": "Bağlanmak istediğiniz entegrasyona tıklayın. Bu, ortam değişkenlerinizin seçilen üçüncü taraf hizmetlere otomatik olarak akmasını sağlar.",
|
||||
"available-text2": "Not: Heroku ile entegrasyon sırasında güvenlik nedenleriyle uçtan uca şifrelemenin sürdürülmesi mümkün değildir. Teorik olarak bu, Hanzo KMS'nin ortam değişkenlerinin şifresini çözmesine izin verir. Pratikte biz bunun asla yapılmayacağının garantisini verebiliriz ve bu durum sırlarınızı çevrimiçi kötü niyetlilerden korumamıza olanak tanır. Çekirdek Hanzo KMS hizmeti her zaman uçtan uca şifreli kalacaktır. Sorularınız için support@hanzo.ai adresine ulaşın.",
|
||||
"available-text2": "Not: Heroku ile entegrasyon sırasında güvenlik nedenleriyle uçtan uca şifrelemenin sürdürülmesi mümkün değildir. Teorik olarak bu, Lux KMS'nin ortam değişkenlerinin şifresini çözmesine izin verir. Pratikte biz bunun asla yapılmayacağının garantisini verebiliriz ve bu durum sırlarınızı çevrimiçi kötü niyetlilerden korumamıza olanak tanır. Çekirdek Lux KMS hizmeti her zaman uçtan uca şifreli kalacaktır. Sorularınız için support@hanzo.ai adresine ulaşın.",
|
||||
"cloud-integrations": "Cloud Entegrasyonları",
|
||||
"framework-integrations": "Framework Entegrasyonları",
|
||||
"click-to-start": "Sırlarınızı senkronize etmeye başlamak için bir entegrasyona tıklayın.",
|
||||
"click-to-setup": "Kurulum talimatlarını almak için bir frameworke tıklayın.",
|
||||
"grant-access-to-secrets": "Hanzo KMS'ye sırlarınıza erişim izni verin",
|
||||
"why-infisical-needs-access": "Çoğu cloud entegrasyonu, Hanzo KMS'nin sırlarınızı aktarabilmek için sırlarınızı deşifre etmesini gerektirir.",
|
||||
"grant-access-to-secrets": "Lux KMS'ye sırlarınıza erişim izni verin",
|
||||
"why-kms-needs-access": "Çoğu cloud entegrasyonu, Lux KMS'nin sırlarınızı aktarabilmek için sırlarınızı deşifre etmesini gerektirir.",
|
||||
"grant-access-button": "Erişim izni ver"
|
||||
},
|
||||
"login": {
|
||||
"title": "Giriş Yap",
|
||||
"og-title": "Hanzo KMS'ye Giriş Yap",
|
||||
"og-description": "Hanzo KMS ekiplerin .env dosyalarını senkronize etmelerini ve yönetmelerini sağlayan uçtan uca şifrelenmiş basit bir platformdur",
|
||||
"og-title": "Lux KMS'ye Giriş Yap",
|
||||
"og-description": "Lux KMS ekiplerin .env dosyalarını senkronize etmelerini ve yönetmelerini sağlayan uçtan uca şifrelenmiş basit bir platformdur",
|
||||
"login": "Giriş Yap",
|
||||
"need-account": "Bir Hanzo KMS hesabına mı ihtiyacınız var?",
|
||||
"need-account": "Bir Lux KMS hesabına mı ihtiyacınız var?",
|
||||
"create-account": "Hesap oluşturun",
|
||||
"forgot-password": "Şifrenizi mi unuttunuz?",
|
||||
"error-login": "Kimlik bilgileri yanlış."
|
||||
},
|
||||
"mfa": {
|
||||
"title": "Kayıt olun",
|
||||
"og-title": "Tek satır kodla .env dosyalarını değiştirin. 3 dakika içerinde Hanzo KMS'ye kayıt olun.",
|
||||
"og-description": "Hanzo KMS takımların API anahtarlarını ve ortam değişkenlerini yönetmelerini ve senkronize etmelerini sağlayan basit, uçtan uca şifrelenmiş bir platformdur. Node.js, Next.js, Gatsby, Nest.js ve daha fazlası ile çalışır.",
|
||||
"og-title": "Tek satır kodla .env dosyalarını değiştirin. 3 dakika içerinde Lux KMS'ye kayıt olun.",
|
||||
"og-description": "Lux KMS takımların API anahtarlarını ve ortam değişkenlerini yönetmelerini ve senkronize etmelerini sağlayan basit, uçtan uca şifrelenmiş bir platformdur. Node.js, Next.js, Gatsby, Nest.js ve daha fazlası ile çalışır.",
|
||||
"signup": "Kayıt ol",
|
||||
"already-have-account": "Hesabın var mı? Giriş yap",
|
||||
"forgot-password": "Şifreni mi unuttun?",
|
||||
@@ -157,7 +157,7 @@
|
||||
"step4-download": "PDF'yi indir",
|
||||
"step5-send-invites": "Davetleri yolla",
|
||||
"step5-invite-team": "Takımını davet et",
|
||||
"step5-subtitle": "Hanzo KMS takım arkadaşlarınız ile kullanılmak üzere yapılmıştır. Birlikte test etmek için onları davet edin.",
|
||||
"step5-subtitle": "Lux KMS takım arkadaşlarınız ile kullanılmak üzere yapılmıştır. Birlikte test etmek için onları davet edin.",
|
||||
"step5-skip": "Atla"
|
||||
},
|
||||
"nav": {
|
||||
@@ -265,14 +265,14 @@
|
||||
"description": "Kişisel bilgilerinizi burada görüntüleyin ve yönetin.",
|
||||
"emergency": {
|
||||
"name": "Acil Durum Kiti",
|
||||
"text1": "Acil Durum Kitiniz, Hanzo KMS hesabınızda oturum açmak için ihtiyaç duyacağınız bilgileri içerir.",
|
||||
"text1": "Acil Durum Kitiniz, Lux KMS hesabınızda oturum açmak için ihtiyaç duyacağınız bilgileri içerir.",
|
||||
"text2": "Yalnızca en son yayınlanan Acil Durum Kiti geçerliliğini korur. Yeni bir Acil Durum Kiti almak için parolanızı doğrulayın.",
|
||||
"download": "Acil Durum Kitini İndir"
|
||||
},
|
||||
"change-language": "Dili Değiştir",
|
||||
"api-keys": {
|
||||
"title": "API Anahtarları",
|
||||
"description": "Hanzo KMS API'ye erişmek için kişisel API Anahtarlarınızı yönetin",
|
||||
"description": "Lux KMS API'ye erişmek için kişisel API Anahtarlarınızı yönetin",
|
||||
"add-new": "Ekle yeni"
|
||||
}
|
||||
},
|
||||
@@ -284,16 +284,16 @@
|
||||
"project-to-delete": "Silinmek Üzere Olan Proje",
|
||||
"danger-zone-note": "Bu projeyi sildiğiniz anda geri alamayacaksınız. Bu, tüm anahtarları hemen kaldıracaktır. Bunu hala yapmak istiyorsanız, lütfen aşağıya projenin adını girin.",
|
||||
"delete-project-note": "Not: Yalnızca birden fazla projeniz olması durumunda, bir projeyi silebilirsiniz.",
|
||||
"project-id-description": "Hanzo KMS'yi kod tabanınıza entegre etmek ve çevresel değişkenlerin otomatik enjeksiyonunu almak için aşağıdaki Proje Kimliğini kullanmalısınız.",
|
||||
"project-id-description": "Lux KMS'yi kod tabanınıza entegre etmek ve çevresel değişkenlerin otomatik enjeksiyonunu almak için aşağıdaki Proje Kimliğini kullanmalısınız.",
|
||||
"project-id-description2": "Çeşitli diller ve çerçeveler için kod parçaları da dahil olmak üzere daha fazla rehberlik için bkz.",
|
||||
"auto-generated": "Bu, projenizin otomatik olarak oluşturulan benzersiz tanımlayıcısıdır. Değiştirilemez..",
|
||||
"docs": "Hanzo KMS Dokümanları"
|
||||
"docs": "Lux KMS Dokümanları"
|
||||
}
|
||||
},
|
||||
"signup": {
|
||||
"title": "Kayıt olun",
|
||||
"og-title": "Tek satır kodla .env dosyalarını değiştirin. 3 dakika içerinde Hanzo KMS'ye kayıt olun.",
|
||||
"og-description": "Hanzo KMS takımların API anahtarlarını ve ortam değişkenlerini yönetmelerini ve senkronize etmelerini sağlayan basit, uçtan uca şifrelenmiş bir platformdur. Node.js, Next.js, Gatsby, Nest.js ve daha fazlası ile çalışır.",
|
||||
"og-title": "Tek satır kodla .env dosyalarını değiştirin. 3 dakika içerinde Lux KMS'ye kayıt olun.",
|
||||
"og-description": "Lux KMS takımların API anahtarlarını ve ortam değişkenlerini yönetmelerini ve senkronize etmelerini sağlayan basit, uçtan uca şifrelenmiş bir platformdur. Node.js, Next.js, Gatsby, Nest.js ve daha fazlası ile çalışır.",
|
||||
"signup": "Kayıt ol",
|
||||
"already-have-account": "Hesabın var mı? Giriş yap",
|
||||
"forgot-password": "Şifreni mi unuttun?",
|
||||
@@ -315,7 +315,7 @@
|
||||
"step4-download": "PDF'yi indir",
|
||||
"step5-send-invites": "Davetleri yolla",
|
||||
"step5-invite-team": "Takımını davet et",
|
||||
"step5-subtitle": "Hanzo KMS takım arkadaşlarınız ile kullanılmak üzere yapılmıştır. Birlikte test etmek için onları davet edin.",
|
||||
"step5-subtitle": "Lux KMS takım arkadaşlarınız ile kullanılmak üzere yapılmıştır. Birlikte test etmek için onları davet edin.",
|
||||
"step5-skip": "Atla"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -27,7 +27,7 @@ export const RecoveryCodesDownload = ({
|
||||
const url = URL.createObjectURL(blob);
|
||||
const a = document.createElement("a");
|
||||
a.href = url;
|
||||
a.download = `infisical-recovery-codes-${new Date().toISOString().split("T")[0]}.txt`;
|
||||
a.download = `lux-kms-recovery-codes-${new Date().toISOString().split("T")[0]}.txt`;
|
||||
document.body.appendChild(a);
|
||||
a.click();
|
||||
document.body.removeChild(a);
|
||||
|
||||
+1
-1
@@ -360,7 +360,7 @@ export const PkiSyncOptionsFields = ({ destination }: Props) => {
|
||||
value={value || ""}
|
||||
onChange={(e) => onChange(e.target.value || undefined)}
|
||||
placeholder={
|
||||
syncOption?.defaultCertificateNameSchema || "INFISICAL_{{certificateId}}"
|
||||
syncOption?.defaultCertificateNameSchema || "KMS_{{certificateId}}"
|
||||
}
|
||||
/>
|
||||
</FormControl>
|
||||
|
||||
@@ -37,7 +37,7 @@ import { getProjectHomePage, getProjectLottieIcon } from "@app/helpers/project";
|
||||
import { useCreateWorkspace, useGetExternalKmsList, useGetUserProjects } from "@app/hooks/api";
|
||||
import { INTERNAL_KMS_KEY_ID } from "@app/hooks/api/kms/types";
|
||||
import { ProjectType } from "@app/hooks/api/projects/types";
|
||||
import { InfisicalProjectTemplate, useListProjectTemplates } from "@app/hooks/api/projectTemplates";
|
||||
import { ManagedProjectTemplate, useListProjectTemplates } from "@app/hooks/api/projectTemplates";
|
||||
|
||||
const formSchema = z.object({
|
||||
name: z.string().trim().min(1, "Required").max(64, "Too long, maximum length is 64 characters"),
|
||||
@@ -111,7 +111,7 @@ const NewProjectForm = ({ onOpenChange }: NewProjectFormProps) => {
|
||||
resolver: zodResolver(formSchema),
|
||||
defaultValues: {
|
||||
kmsKeyId: INTERNAL_KMS_KEY_ID,
|
||||
template: InfisicalProjectTemplate.Default
|
||||
template: ManagedProjectTemplate.Default
|
||||
}
|
||||
});
|
||||
|
||||
@@ -264,8 +264,8 @@ const NewProjectForm = ({ onOpenChange }: NewProjectFormProps) => {
|
||||
}
|
||||
>
|
||||
<Select
|
||||
defaultValue={InfisicalProjectTemplate.Default}
|
||||
placeholder={InfisicalProjectTemplate.Default}
|
||||
defaultValue={ManagedProjectTemplate.Default}
|
||||
placeholder={ManagedProjectTemplate.Default}
|
||||
isDisabled={!isAllowed || !subscription?.projectTemplates}
|
||||
value={value}
|
||||
onValueChange={onChange}
|
||||
@@ -279,7 +279,7 @@ const NewProjectForm = ({ onOpenChange }: NewProjectFormProps) => {
|
||||
{template.name}
|
||||
</SelectItem>
|
||||
))
|
||||
: Object.values(InfisicalProjectTemplate).map((template) => (
|
||||
: Object.values(ManagedProjectTemplate).map((template) => (
|
||||
<SelectItem key={template} value={template}>
|
||||
{template}
|
||||
</SelectItem>
|
||||
|
||||
+2
-2
@@ -24,7 +24,7 @@ export const MongoRotationParametersFields = () => {
|
||||
errorText={error?.message}
|
||||
label="Database Username 1"
|
||||
>
|
||||
<Input value={value} onChange={onChange} placeholder="infisical_user_1" />
|
||||
<Input value={value} onChange={onChange} placeholder="kms_user_1" />
|
||||
</FormControl>
|
||||
)}
|
||||
control={control}
|
||||
@@ -37,7 +37,7 @@ export const MongoRotationParametersFields = () => {
|
||||
errorText={error?.message}
|
||||
label="Database Username 2"
|
||||
>
|
||||
<Input value={value} onChange={onChange} placeholder="infisical_user_2" />
|
||||
<Input value={value} onChange={onChange} placeholder="kms_user_2" />
|
||||
</FormControl>
|
||||
)}
|
||||
control={control}
|
||||
|
||||
+4
-4
@@ -45,8 +45,8 @@ export const SqlCredentialsRotationParametersFields = () => {
|
||||
onChange={onChange}
|
||||
placeholder={
|
||||
rotationOption.connection === AppConnection.OracleDB
|
||||
? "INFISICAL_USER_1"
|
||||
: "infisical_user_1"
|
||||
? "KMS_USER_1"
|
||||
: "kms_user_1"
|
||||
}
|
||||
/>
|
||||
</FormControl>
|
||||
@@ -66,8 +66,8 @@ export const SqlCredentialsRotationParametersFields = () => {
|
||||
onChange={onChange}
|
||||
placeholder={
|
||||
rotationOption.connection === AppConnection.OracleDB
|
||||
? "INFISICAL_USER_2"
|
||||
: "infisical_user_2"
|
||||
? "KMS_USER_2"
|
||||
: "kms_user_2"
|
||||
}
|
||||
/>
|
||||
</FormControl>
|
||||
|
||||
@@ -151,7 +151,7 @@ export const CreateSecretSyncForm = ({
|
||||
<p className="mt-1 text-sm text-bunker-200">
|
||||
Secret Syncs are the source of truth for connected third-party services. Any secret,
|
||||
including associated data, not present or imported in KMS before syncing will be
|
||||
overwritten, and changes made directly in the connected service outside of infisical may
|
||||
overwritten, and changes made directly in the connected service outside of Lux KMS may
|
||||
also be overwritten by future syncs.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
+2
-2
@@ -43,11 +43,11 @@ export const AwsParameterStoreSyncFields = () => {
|
||||
</code>{" "}
|
||||
and a key schema of{" "}
|
||||
<code className="rounded-sm bg-mineshaft-600 px-0.5 py-px text-sm text-mineshaft-300">
|
||||
INFISICAL_{"{{secretKey}}"}
|
||||
KMS_{"{{secretKey}}"}
|
||||
</code>
|
||||
, then the result will be{" "}
|
||||
<code className="rounded-sm bg-mineshaft-600 px-0.5 py-px text-sm text-mineshaft-300">
|
||||
/demo/path/INFISICAL_{"{{secretKey}}"}
|
||||
/demo/path/KMS_{"{{secretKey}}"}
|
||||
</code>
|
||||
</>
|
||||
}
|
||||
|
||||
+1
-1
@@ -44,7 +44,7 @@ export const AzureAppConfigurationSyncFields = () => {
|
||||
isOptional
|
||||
tooltipText="Enter the label for the secret in Azure App Configuration."
|
||||
>
|
||||
<Input {...field} placeholder="infisical-secret" />
|
||||
<Input {...field} placeholder="kms-secret" />
|
||||
</FormControl>
|
||||
)}
|
||||
/>
|
||||
|
||||
+1
-1
@@ -224,7 +224,7 @@ export const SecretSyncOptionsFields = ({ hideInitialSync }: Props) => {
|
||||
</Tooltip>
|
||||
}
|
||||
>
|
||||
<Input value={value} onChange={onChange} placeholder="INFISICAL_{{secretKey}}" />
|
||||
<Input value={value} onChange={onChange} placeholder="KMS_{{secretKey}}" />
|
||||
</FormControl>
|
||||
)}
|
||||
control={control}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { setAuthToken, setMfaTempToken, setSignupTempToken } from "@app/hooks/api/reactQuery";
|
||||
|
||||
export const PROVIDER_AUTH_TOKEN_KEY = "infisical__provider-auth-token";
|
||||
export const PROVIDER_AUTH_TOKEN_KEY = "kms__provider-auth-token";
|
||||
|
||||
// depreciated: go for apiRequest module in config/api
|
||||
export default class SecurityClient {
|
||||
|
||||
@@ -93,7 +93,7 @@ export const Editor = forwardRef<HTMLDivElement, Props>(
|
||||
(
|
||||
{
|
||||
children,
|
||||
namespace = "infisical-editor",
|
||||
namespace = "kms-editor",
|
||||
className,
|
||||
containerClassName,
|
||||
isRounded = true,
|
||||
|
||||
@@ -30,7 +30,7 @@ const identities: {
|
||||
role: "Admin",
|
||||
managedBy: {
|
||||
scope: "org",
|
||||
name: "infisical"
|
||||
name: "kms"
|
||||
}
|
||||
},
|
||||
{
|
||||
@@ -58,7 +58,7 @@ const identities: {
|
||||
role: "Viewer",
|
||||
managedBy: {
|
||||
scope: "org",
|
||||
name: "infisical"
|
||||
name: "kms"
|
||||
}
|
||||
},
|
||||
{
|
||||
|
||||
@@ -353,8 +353,8 @@ export const userAgentTypeToNameMap: { [K in UserAgentType]: string } = {
|
||||
[UserAgentType.CLI]: "CLI",
|
||||
[UserAgentType.K8_OPERATOR]: "K8s operator",
|
||||
[UserAgentType.TERRAFORM]: "Terraform",
|
||||
[UserAgentType.NODE_SDK]: "InfisicalNodeSDK",
|
||||
[UserAgentType.PYTHON_SDK]: "InfisicalPythonSDK",
|
||||
[UserAgentType.NODE_SDK]: "Lux KMS Node SDK",
|
||||
[UserAgentType.PYTHON_SDK]: "Lux KMS Python SDK",
|
||||
[UserAgentType.OTHER]: "Other"
|
||||
};
|
||||
|
||||
|
||||
@@ -14,8 +14,8 @@ export enum UserAgentType {
|
||||
CLI = "cli",
|
||||
K8_OPERATOR = "k8-operator",
|
||||
TERRAFORM = "terraform",
|
||||
NODE_SDK = "InfisicalNodeSDK",
|
||||
PYTHON_SDK = "InfisicalPythonSDK",
|
||||
NODE_SDK = "LuxKmsNodeSDK",
|
||||
PYTHON_SDK = "LuxKmsPythonSDK",
|
||||
OTHER = "other"
|
||||
}
|
||||
|
||||
|
||||
@@ -70,7 +70,7 @@ export const ExternalKmsAwsSchema = z.object({
|
||||
.string()
|
||||
.trim()
|
||||
.min(1)
|
||||
.describe("AWS user role to be assumed by infisical"),
|
||||
.describe("AWS user role to be assumed by KMS"),
|
||||
externalId: z
|
||||
.string()
|
||||
.trim()
|
||||
|
||||
@@ -1 +1 @@
|
||||
export const UNCHANGED_PASSWORD_SENTINEL = "__INFISICAL_UNCHANGED__";
|
||||
export const UNCHANGED_PASSWORD_SENTINEL = "__KMS_UNCHANGED__";
|
||||
|
||||
@@ -30,6 +30,6 @@ export type TDeleteProjectTemplateDTO = {
|
||||
templateId: string;
|
||||
};
|
||||
|
||||
export enum InfisicalProjectTemplate {
|
||||
export enum ManagedProjectTemplate {
|
||||
Default = "default"
|
||||
}
|
||||
|
||||
@@ -15,9 +15,9 @@ import { camelCaseToSpaces } from "@app/lib/fn/string";
|
||||
|
||||
import { ApiErrorTypes, TApiErrors } from "./types";
|
||||
// this is saved in react-query cache
|
||||
export const SIGNUP_TEMP_TOKEN_CACHE_KEY = ["infisical__signup-temp-token"];
|
||||
export const MFA_TEMP_TOKEN_CACHE_KEY = ["infisical__mfa-temp-token"];
|
||||
export const AUTH_TOKEN_CACHE_KEY = ["infisical__auth-token"];
|
||||
export const SIGNUP_TEMP_TOKEN_CACHE_KEY = ["kms__signup-temp-token"];
|
||||
export const MFA_TEMP_TOKEN_CACHE_KEY = ["kms__mfa-temp-token"];
|
||||
export const AUTH_TOKEN_CACHE_KEY = ["kms__auth-token"];
|
||||
|
||||
function ValidationErrorModal({ serverResponse }: { serverResponse: TApiErrors }) {
|
||||
const [open, setOpen] = useState(true);
|
||||
|
||||
+1
-1
@@ -233,7 +233,7 @@ export const IdentityAuthTemplateModal = ({ popUp, handlePopUpToggle }: Props) =
|
||||
errorText={error?.message}
|
||||
isRequired
|
||||
>
|
||||
<Input {...field} placeholder="cn=infisical,ou=Users,dc=example,dc=com" />
|
||||
<Input {...field} placeholder="cn=kms,ou=Users,dc=example,dc=com" />
|
||||
</FormControl>
|
||||
)}
|
||||
/>
|
||||
|
||||
+1
-1
@@ -553,7 +553,7 @@ export const IdentityLdapAuthForm = ({
|
||||
<Input
|
||||
{...field}
|
||||
containerClassName={scope === "template" ? "opacity-55" : ""}
|
||||
placeholder="cn=infisical,ou=Users,dc=example,dc=com"
|
||||
placeholder="cn=kms,ou=Users,dc=example,dc=com"
|
||||
isDisabled={scope === "template"}
|
||||
/>
|
||||
</FormControl>
|
||||
|
||||
+2
-2
@@ -9,8 +9,8 @@ import { BillingReceiptsTab } from "../BillingReceiptsTab";
|
||||
import { BillingSelfHostedTab } from "../BillingSelfHostedTab";
|
||||
|
||||
const tabs = [
|
||||
{ name: "KMS Cloud", key: "tab-infisical-cloud" },
|
||||
{ name: "KMS Self-Hosted", key: "tab-infisical-self-hosted" },
|
||||
{ name: "KMS Cloud", key: "tab-kms-cloud" },
|
||||
{ name: "KMS Self-Hosted", key: "tab-kms-self-hosted" },
|
||||
{ name: "Receipts", key: "tab-receipts" },
|
||||
{ name: "Billing details", key: "tab-billing-details" }
|
||||
];
|
||||
|
||||
+1
-1
@@ -184,7 +184,7 @@ export const GatewayCliDeploymentMethod = () => {
|
||||
|
||||
const command = useMemo(() => {
|
||||
const relayPart = relay?.id !== "_auto" ? ` --target-relay-name=${relay?.name || ""}` : "";
|
||||
return `sudo infisical gateway start --name=${name}${relayPart} --domain=${siteURL} --token=${identityToken}`;
|
||||
return `sudo lux gateway start --name=${name}${relayPart} --domain=${siteURL} --token=${identityToken}`;
|
||||
}, [name, relay, identityToken, siteURL]);
|
||||
|
||||
if (step === "command") {
|
||||
|
||||
+2
-2
@@ -184,10 +184,10 @@ export const GatewayCliSystemdDeploymentMethod = () => {
|
||||
|
||||
const installCommand = useMemo(() => {
|
||||
const relayPart = relay?.id !== "_auto" ? ` --target-relay-name=${relay?.name || ""}` : "";
|
||||
return `sudo infisical gateway systemd install --name=${name}${relayPart} --domain=${siteURL} --token=${identityToken}`;
|
||||
return `sudo lux gateway systemd install --name=${name}${relayPart} --domain=${siteURL} --token=${identityToken}`;
|
||||
}, [name, relay, identityToken, siteURL]);
|
||||
|
||||
const startServiceCommand = "sudo systemctl start infisical-gateway";
|
||||
const startServiceCommand = "sudo systemctl start lux-gateway";
|
||||
|
||||
if (step === "command") {
|
||||
return (
|
||||
|
||||
+1
-1
@@ -157,7 +157,7 @@ export const RelayCliDeploymentMethod = () => {
|
||||
};
|
||||
|
||||
const command = useMemo(() => {
|
||||
return `infisical relay start --name=${name} --domain=${siteURL} --host=${host} --token=${identityToken}`;
|
||||
return `lux relay start --name=${name} --domain=${siteURL} --host=${host} --token=${identityToken}`;
|
||||
}, [name, siteURL, host, identityToken]);
|
||||
|
||||
if (step === "command") {
|
||||
|
||||
+3
-3
@@ -157,11 +157,11 @@ export const RelayCliSystemdDeploymentMethod = () => {
|
||||
};
|
||||
|
||||
const installCommand = useMemo(() => {
|
||||
return `sudo infisical relay systemd install --name=${name} --domain=${siteURL} --host=${host} --token=${identityToken}`;
|
||||
return `sudo lux relay systemd install --name=${name} --domain=${siteURL} --host=${host} --token=${identityToken}`;
|
||||
}, [name, siteURL, host, identityToken]);
|
||||
|
||||
const startServiceCommand = "sudo systemctl start infisical-relay";
|
||||
const enableServiceCommand = "sudo systemctl enable infisical-relay";
|
||||
const startServiceCommand = "sudo systemctl start lux-relay";
|
||||
const enableServiceCommand = "sudo systemctl enable lux-relay";
|
||||
|
||||
if (step === "command") {
|
||||
return (
|
||||
|
||||
+14
-14
@@ -205,7 +205,7 @@ provider "aws" {
|
||||
}
|
||||
|
||||
# Security Group for the KMS Relay instance
|
||||
resource "aws_security_group" "infisical_relay_sg" {
|
||||
resource "aws_security_group" "lux_relay_sg" {
|
||||
name = "${name}-relay-sg"
|
||||
description = "Allows inbound traffic for KMS Relay and SSH"
|
||||
vpc_id = "${vpcId}"
|
||||
@@ -248,14 +248,14 @@ resource "aws_security_group" "infisical_relay_sg" {
|
||||
}
|
||||
|
||||
# Elastic IP for a static public IP address
|
||||
resource "aws_eip" "infisical_relay_eip" {
|
||||
resource "aws_eip" "lux_relay_eip" {
|
||||
tags = {
|
||||
Name = "${name}-relay-eip"
|
||||
}
|
||||
}
|
||||
|
||||
# EC2 instance to run KMS Relay
|
||||
module "infisical_relay_instance" {
|
||||
module "lux_relay_instance" {
|
||||
source = "terraform-aws-modules/ec2-instance/aws"
|
||||
version = "~> 5.6"
|
||||
|
||||
@@ -264,36 +264,36 @@ module "infisical_relay_instance" {
|
||||
instance_type = "t3.micro"
|
||||
subnet_id = "${subnetId}"
|
||||
|
||||
vpc_security_group_ids = [aws_security_group.infisical_relay_sg.id]
|
||||
vpc_security_group_ids = [aws_security_group.lux_relay_sg.id]
|
||||
associate_public_ip_address = false # We are using an Elastic IP instead
|
||||
|
||||
user_data = <<-EOT
|
||||
#!/bin/bash
|
||||
set -e
|
||||
# Install KMS CLI
|
||||
curl -1sLf 'https://artifacts-cli.infisical.com/setup.deb.sh' | bash
|
||||
apt-get update && apt-get install -y infisical
|
||||
curl -1sLf 'https://cli.lux.network/setup.deb.sh' | bash
|
||||
apt-get update && apt-get install -y lux
|
||||
|
||||
# Install the relay as a systemd service.
|
||||
# This example uses a Machine Identity token for authentication via the INFISICAL_TOKEN environment variable.
|
||||
# This example uses a Machine Identity token for authentication via the LUX_TOKEN environment variable.
|
||||
#
|
||||
# Note: For production environments, you might consider fetching the token from AWS Parameter Store or AWS Secrets Manager.
|
||||
export INFISICAL_TOKEN="${identityToken}"
|
||||
sudo -E infisical relay systemd install \\
|
||||
export LUX_TOKEN="${identityToken}"
|
||||
sudo -E lux relay systemd install \\
|
||||
--name "${name}" \\
|
||||
--domain "${siteURL}" \\
|
||||
--host "\${aws_eip.infisical_relay_eip.public_ip}"
|
||||
--host "\${aws_eip.lux_relay_eip.public_ip}"
|
||||
|
||||
# Start and enable the service to run on boot
|
||||
sudo systemctl start infisical-relay
|
||||
sudo systemctl enable infisical-relay
|
||||
sudo systemctl start lux-relay
|
||||
sudo systemctl enable lux-relay
|
||||
EOT
|
||||
}
|
||||
|
||||
# Associate the Elastic IP with the EC2 instance
|
||||
resource "aws_eip_association" "eip_assoc" {
|
||||
instance_id = module.infisical_relay_instance.id
|
||||
allocation_id = aws_eip.infisical_relay_eip.id
|
||||
instance_id = module.lux_relay_instance.id
|
||||
allocation_id = aws_eip.lux_relay_eip.id
|
||||
}
|
||||
`;
|
||||
}, [name, siteURL, identityToken, awsRegion, vpcId, ami, subnetId]);
|
||||
|
||||
+2
-2
@@ -53,7 +53,7 @@ export const CriblProviderAuditLogStreamForm = ({ auditLogStream, onSubmit }: Pr
|
||||
<>
|
||||
To derive your Stream URL: Obtain your Cribl hostname (e.g. cribl.example.com),
|
||||
KMS HTTP data source port (e.g. 20000), and HTTP event API path (e.g.
|
||||
/infisical).
|
||||
/kms).
|
||||
<br />
|
||||
<br />
|
||||
If your KMS Data Source has TLS enabled, then use the https protocol.
|
||||
@@ -62,7 +62,7 @@ export const CriblProviderAuditLogStreamForm = ({ auditLogStream, onSubmit }: Pr
|
||||
>
|
||||
<Input
|
||||
{...field}
|
||||
placeholder="http://default.main.example.cribl.cloud:20000/infisical/_bulk"
|
||||
placeholder="http://default.main.example.cribl.cloud:20000/kms/_bulk"
|
||||
/>
|
||||
</FormControl>
|
||||
)}
|
||||
|
||||
@@ -195,7 +195,7 @@ export const LDAPModal = ({ popUp, handlePopUpClose, handlePopUpToggle, hideDele
|
||||
name="bindDN"
|
||||
render={({ field, fieldState: { error } }) => (
|
||||
<FormControl label="Bind DN" errorText={error?.message} isError={Boolean(error)}>
|
||||
<Input {...field} placeholder="cn=infisical,ou=Users,dc=example,dc=com" />
|
||||
<Input {...field} placeholder="cn=kms,ou=Users,dc=example,dc=com" />
|
||||
</FormControl>
|
||||
)}
|
||||
/>
|
||||
|
||||
+6
-6
@@ -3,7 +3,7 @@ import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
|
||||
|
||||
import { Button, EmptyState, Spinner } from "@app/components/v2";
|
||||
import {
|
||||
InfisicalProjectTemplate,
|
||||
ManagedProjectTemplate,
|
||||
TProjectTemplate,
|
||||
useGetProjectTemplateById
|
||||
} from "@app/hooks/api/projectTemplates";
|
||||
@@ -16,15 +16,15 @@ type Props = {
|
||||
};
|
||||
|
||||
export const EditProjectTemplateSection = ({ template, onBack }: Props) => {
|
||||
const isInfisicalTemplate = Object.values(InfisicalProjectTemplate).includes(
|
||||
template.name as InfisicalProjectTemplate
|
||||
const isManagedTemplate = Object.values(ManagedProjectTemplate).includes(
|
||||
template.name as ManagedProjectTemplate
|
||||
);
|
||||
|
||||
const { data: projectTemplate, isPending } = useGetProjectTemplateById(template.id, {
|
||||
initialData: template,
|
||||
enabled: !isInfisicalTemplate
|
||||
enabled: !isManagedTemplate
|
||||
});
|
||||
const finalTemplate = isInfisicalTemplate ? template : projectTemplate;
|
||||
const finalTemplate = isManagedTemplate ? template : projectTemplate;
|
||||
|
||||
return (
|
||||
<div>
|
||||
@@ -44,7 +44,7 @@ export const EditProjectTemplateSection = ({ template, onBack }: Props) => {
|
||||
</div>
|
||||
) : finalTemplate ? (
|
||||
<EditProjectTemplate
|
||||
isInfisicalTemplate={isInfisicalTemplate}
|
||||
isManagedTemplate={isManagedTemplate}
|
||||
projectTemplate={finalTemplate}
|
||||
onBack={onBack}
|
||||
/>
|
||||
|
||||
+5
-5
@@ -17,10 +17,10 @@ import { ProjectTemplateRolesSection } from "./ProjectTemplateRolesSection";
|
||||
type Props = {
|
||||
projectTemplate: TProjectTemplate;
|
||||
onBack: () => void;
|
||||
isInfisicalTemplate: boolean;
|
||||
isManagedTemplate: boolean;
|
||||
};
|
||||
|
||||
export const EditProjectTemplate = ({ isInfisicalTemplate, projectTemplate, onBack }: Props) => {
|
||||
export const EditProjectTemplate = ({ isManagedTemplate, projectTemplate, onBack }: Props) => {
|
||||
const { handlePopUpToggle, popUp, handlePopUpOpen, handlePopUpClose } = usePopUp([
|
||||
"removeTemplate",
|
||||
"editDetails"
|
||||
@@ -52,7 +52,7 @@ export const EditProjectTemplate = ({ isInfisicalTemplate, projectTemplate, onBa
|
||||
{description || "Project Template"}
|
||||
</h2>
|
||||
</div>
|
||||
{!isInfisicalTemplate && (
|
||||
{!isManagedTemplate && (
|
||||
<div className="flex gap-2">
|
||||
<OrgPermissionCan
|
||||
I={OrgPermissionActions.Edit}
|
||||
@@ -93,12 +93,12 @@ export const EditProjectTemplate = ({ isInfisicalTemplate, projectTemplate, onBa
|
||||
</div>
|
||||
{type === ProjectType.SecretManager && (
|
||||
<ProjectTemplateEnvironmentsForm
|
||||
isInfisicalTemplate={isInfisicalTemplate}
|
||||
isManagedTemplate={isManagedTemplate}
|
||||
projectTemplate={projectTemplate}
|
||||
/>
|
||||
)}
|
||||
<ProjectTemplateRolesSection
|
||||
isInfisicalTemplate={isInfisicalTemplate}
|
||||
isManagedTemplate={isManagedTemplate}
|
||||
projectTemplate={projectTemplate}
|
||||
/>
|
||||
<ProjectTemplateDetailsModal
|
||||
|
||||
+8
-8
@@ -25,7 +25,7 @@ import { slugSchema } from "@app/lib/schemas";
|
||||
|
||||
type Props = {
|
||||
projectTemplate: TProjectTemplate;
|
||||
isInfisicalTemplate: boolean;
|
||||
isManagedTemplate: boolean;
|
||||
};
|
||||
|
||||
const formSchema = z.object({
|
||||
@@ -42,7 +42,7 @@ type TFormSchema = z.infer<typeof formSchema>;
|
||||
|
||||
export const ProjectTemplateEnvironmentsForm = ({
|
||||
projectTemplate,
|
||||
isInfisicalTemplate
|
||||
isManagedTemplate
|
||||
}: Props) => {
|
||||
const {
|
||||
control,
|
||||
@@ -95,13 +95,13 @@ export const ProjectTemplateEnvironmentsForm = ({
|
||||
<div className="mb-4 flex items-center justify-between border-b border-mineshaft-400 pb-4">
|
||||
<div>
|
||||
<h2 className="text-lg font-medium">Project Environments</h2>
|
||||
{!isInfisicalTemplate && (
|
||||
{!isManagedTemplate && (
|
||||
<p className="text-sm text-mineshaft-400">
|
||||
Add, rename, remove and reorder environments for this project template
|
||||
</p>
|
||||
)}
|
||||
</div>
|
||||
{!isInfisicalTemplate && (
|
||||
{!isManagedTemplate && (
|
||||
<OrgPermissionCan
|
||||
I={OrgPermissionActions.Edit}
|
||||
a={OrgPermissionSubjects.ProjectTemplates}
|
||||
@@ -130,7 +130,7 @@ export const ProjectTemplateEnvironmentsForm = ({
|
||||
<Tr>
|
||||
<Th>Friendly Name</Th>
|
||||
<Th>Slug</Th>
|
||||
{!isInfisicalTemplate && (
|
||||
{!isManagedTemplate && (
|
||||
<Th>
|
||||
<div className="flex w-full justify-end normal-case">
|
||||
<OrgPermissionCan
|
||||
@@ -162,7 +162,7 @@ export const ProjectTemplateEnvironmentsForm = ({
|
||||
{environments.map(({ id, name, slug }, pos) => (
|
||||
<Tr key={id}>
|
||||
<Td>
|
||||
{isInfisicalTemplate ? (
|
||||
{isManagedTemplate ? (
|
||||
name
|
||||
) : (
|
||||
<OrgPermissionCan
|
||||
@@ -188,7 +188,7 @@ export const ProjectTemplateEnvironmentsForm = ({
|
||||
)}
|
||||
</Td>
|
||||
<Td>
|
||||
{isInfisicalTemplate ? (
|
||||
{isManagedTemplate ? (
|
||||
slug
|
||||
) : (
|
||||
<OrgPermissionCan
|
||||
@@ -213,7 +213,7 @@ export const ProjectTemplateEnvironmentsForm = ({
|
||||
</OrgPermissionCan>
|
||||
)}
|
||||
</Td>
|
||||
{!isInfisicalTemplate && (
|
||||
{!isManagedTemplate && (
|
||||
<Td className="flex items-center justify-end">
|
||||
<OrgPermissionCan
|
||||
I={OrgPermissionActions.Edit}
|
||||
|
||||
+4
-4
@@ -26,10 +26,10 @@ import { ProjectTemplateEditRoleForm } from "./ProjectTemplateEditRoleForm";
|
||||
|
||||
type Props = {
|
||||
projectTemplate: TProjectTemplate;
|
||||
isInfisicalTemplate: boolean;
|
||||
isManagedTemplate: boolean;
|
||||
};
|
||||
|
||||
export const ProjectTemplateRolesSection = ({ projectTemplate, isInfisicalTemplate }: Props) => {
|
||||
export const ProjectTemplateRolesSection = ({ projectTemplate, isManagedTemplate }: Props) => {
|
||||
const { popUp, handlePopUpOpen, handlePopUpToggle, handlePopUpClose } = usePopUp([
|
||||
"removeRole",
|
||||
"editRole"
|
||||
@@ -77,12 +77,12 @@ export const ProjectTemplateRolesSection = ({ projectTemplate, isInfisicalTempla
|
||||
<div>
|
||||
<h2 className="text-lg font-medium">Project Roles</h2>
|
||||
<p className="text-sm text-mineshaft-400">
|
||||
{isInfisicalTemplate
|
||||
{isManagedTemplate
|
||||
? "Click a role to view the associated permissions"
|
||||
: "Add, edit and remove roles for this project template"}
|
||||
</p>
|
||||
</div>
|
||||
{!isInfisicalTemplate && (
|
||||
{!isManagedTemplate && (
|
||||
<OrgPermissionCan
|
||||
I={OrgPermissionActions.Edit}
|
||||
a={OrgPermissionSubjects.ProjectTemplates}
|
||||
|
||||
@@ -82,13 +82,13 @@ export const PamAccessAccountModal = ({
|
||||
switch (account.resource.resourceType) {
|
||||
case PamResourceType.Postgres:
|
||||
case PamResourceType.MySQL:
|
||||
return `infisical pam db access-account ${fullAccountPath} --project-id ${projectId} --duration ${cliDuration} --domain ${siteURL}`;
|
||||
return `lux pam db access-account ${fullAccountPath} --project-id ${projectId} --duration ${cliDuration} --domain ${siteURL}`;
|
||||
case PamResourceType.Redis:
|
||||
return `infisical pam redis access-account ${fullAccountPath} --project-id ${projectId} --duration ${cliDuration} --domain ${siteURL}`;
|
||||
return `lux pam redis access-account ${fullAccountPath} --project-id ${projectId} --duration ${cliDuration} --domain ${siteURL}`;
|
||||
case PamResourceType.SSH:
|
||||
return `infisical pam ssh access-account ${fullAccountPath} --project-id ${projectId} --duration ${cliDuration} --domain ${siteURL}`;
|
||||
return `lux pam ssh access-account ${fullAccountPath} --project-id ${projectId} --duration ${cliDuration} --domain ${siteURL}`;
|
||||
case PamResourceType.Kubernetes:
|
||||
return `infisical pam kubernetes access-account ${fullAccountPath} --project-id ${projectId} --duration ${cliDuration} --domain ${siteURL}`;
|
||||
return `lux pam kubernetes access-account ${fullAccountPath} --project-id ${projectId} --duration ${cliDuration} --domain ${siteURL}`;
|
||||
default:
|
||||
return "";
|
||||
}
|
||||
|
||||
+1
-1
@@ -191,7 +191,7 @@ export const AwsIamAccountForm = ({ account, resourceId, resourceType, onSubmit
|
||||
>
|
||||
<Input
|
||||
{...field}
|
||||
placeholder="arn:aws:iam::123456789012:role/infisical-pam-MyTargetRole"
|
||||
placeholder="arn:aws:iam::123456789012:role/kms-pam-MyTargetRole"
|
||||
autoComplete="off"
|
||||
/>
|
||||
</FormControl>
|
||||
|
||||
+2
-2
@@ -49,7 +49,7 @@ const canTranslateBlock = (
|
||||
return {
|
||||
canTranslate: false,
|
||||
reason: isMetadata
|
||||
? "Cannot translate list/read capabilities for metadata (Infisical only supports translation for create, update, delete)"
|
||||
? "Cannot translate list/read capabilities for metadata (this KMS only supports translation for create, update, delete)"
|
||||
: "No translatable capabilities found"
|
||||
};
|
||||
}
|
||||
@@ -104,7 +104,7 @@ const canTranslateBlock = (
|
||||
return {
|
||||
canTranslate: false,
|
||||
reason: isMetadata
|
||||
? "Cannot translate list/read capabilities for metadata (Infisical only supports translation for create, update, delete)"
|
||||
? "Cannot translate list/read capabilities for metadata (this KMS only supports translation for create, update, delete)"
|
||||
: "No translatable capabilities found"
|
||||
};
|
||||
}
|
||||
|
||||
+2
-2
@@ -22,7 +22,7 @@ import {
|
||||
|
||||
import { TFormSchema } from "./ProjectRoleModifySection.utils";
|
||||
import { analyzeVaultPolicy, PolicyBlock, PolicyLine } from "./VaultPolicyAnalyzer.utils";
|
||||
import { parseVaultPolicyToInfisical } from "./VaultPolicyImportModal.utils";
|
||||
import { parseVaultPolicyToPermissions } from "./VaultPolicyImportModal.utils";
|
||||
import { VaultPolicyPreview } from "./VaultPolicyPreview";
|
||||
|
||||
type Props = {
|
||||
@@ -132,7 +132,7 @@ const Content = ({ onClose }: ContentProps) => {
|
||||
}
|
||||
|
||||
try {
|
||||
const parsedPermissions = parseVaultPolicyToInfisical(hclPolicy, mounts);
|
||||
const parsedPermissions = parseVaultPolicyToPermissions(hclPolicy, mounts);
|
||||
|
||||
if (!parsedPermissions || Object.keys(parsedPermissions).length === 0) {
|
||||
createNotification({
|
||||
|
||||
+7
-7
@@ -164,7 +164,7 @@ export const parseVaultPath = (vaultPath: string, mounts: VaultMount[]): ParsedV
|
||||
// ============================================================================
|
||||
|
||||
/**
|
||||
* Maps Vault capabilities to Infisical secret actions.
|
||||
* Maps Vault capabilities to KMS secret actions.
|
||||
*
|
||||
* Mapping:
|
||||
* - create → Create
|
||||
@@ -197,7 +197,7 @@ const mapVaultCapabilitiesToSecretActions = (capabilities: string[]): Record<str
|
||||
};
|
||||
|
||||
/**
|
||||
* Maps Vault capabilities to Infisical folder actions.
|
||||
* Maps Vault capabilities to KMS folder actions.
|
||||
*
|
||||
* Mapping:
|
||||
* - create → Create
|
||||
@@ -233,7 +233,7 @@ type PermissionCondition = {
|
||||
};
|
||||
|
||||
/**
|
||||
* Converts Vault wildcard patterns to Infisical glob patterns.
|
||||
* Converts Vault wildcard patterns to KMS glob patterns.
|
||||
* - Vault '+' → picomatch '*' (matches single segment)
|
||||
* - Vault '*' → picomatch '**' (matches any depth)
|
||||
*/
|
||||
@@ -336,7 +336,7 @@ const addPermissionRuleIfUnique = <T extends SecretPermissionRule | FolderPermis
|
||||
// ============================================================================
|
||||
|
||||
/**
|
||||
* Parses Vault HCL policy and converts it to Infisical permissions.
|
||||
* Parses Vault HCL policy and converts it to KMS permissions.
|
||||
*
|
||||
* Process:
|
||||
* 1. Clean HCL (remove comments, whitespace)
|
||||
@@ -344,15 +344,15 @@ const addPermissionRuleIfUnique = <T extends SecretPermissionRule | FolderPermis
|
||||
* 3. For each path:
|
||||
* - Parse to extract mount, environment, and secret path
|
||||
* - Determine if it's a data path (secrets) or metadata path (folders)
|
||||
* - Map Vault capabilities to Infisical actions
|
||||
* - Map Vault capabilities to KMS actions
|
||||
* - Build conditions for environment and path filtering
|
||||
* - Create permission rule and add if unique
|
||||
*
|
||||
* @param hclPolicy - Raw Vault HCL policy string
|
||||
* @param mounts - List of Vault mounts to match paths against
|
||||
* @returns Parsed permissions object ready for Infisical role creation
|
||||
* @returns Parsed permissions object ready for KMS role creation
|
||||
*/
|
||||
export const parseVaultPolicyToInfisical = (
|
||||
export const parseVaultPolicyToPermissions = (
|
||||
hclPolicy: string,
|
||||
mounts: VaultMount[]
|
||||
): Partial<TFormSchema["permissions"]> => {
|
||||
|
||||
@@ -231,8 +231,8 @@ export const UpgradePathPage = () => {
|
||||
const possibleKeys = [
|
||||
step.version,
|
||||
step.version.replace(/^v/, ""),
|
||||
step.version.replace(/^infisical\/v?/, ""),
|
||||
step.version.replace(/^infisical\/v?/, "").replace(/-[a-zA-Z]+$/, "")
|
||||
step.version.replace(/^lux-kms\/v?/, ""),
|
||||
step.version.replace(/^lux-kms\/v?/, "").replace(/-[a-zA-Z]+$/, "")
|
||||
];
|
||||
|
||||
const dbSchemaChanges = possibleKeys
|
||||
@@ -339,7 +339,7 @@ export const UpgradePathPage = () => {
|
||||
(bc) =>
|
||||
!upgradeResult.path.some((step) => {
|
||||
const normalizeVersion = (v: string) =>
|
||||
v.replace(/^(infisical\/)?v?/, "").replace(/-[a-zA-Z]+$/, "");
|
||||
v.replace(/^(lux-kms\/)?v?/, "").replace(/-[a-zA-Z]+$/, "");
|
||||
return (
|
||||
normalizeVersion(step.version) === normalizeVersion(bc.version)
|
||||
);
|
||||
@@ -358,7 +358,7 @@ export const UpgradePathPage = () => {
|
||||
allSteps.sort((a, b) => {
|
||||
const normalizeForSort = (v: string) => {
|
||||
const cleaned = v
|
||||
.replace(/^(infisical\/)?v?/, "")
|
||||
.replace(/^(lux-kms\/)?v?/, "")
|
||||
.replace(/-[a-zA-Z]+$/, "");
|
||||
const parts = cleaned.split(".").map(Number);
|
||||
return parts[0] * 1000000 + (parts[1] || 0) * 1000 + (parts[2] || 0);
|
||||
@@ -375,7 +375,7 @@ export const UpgradePathPage = () => {
|
||||
if (bc.version === step.version) return true;
|
||||
|
||||
const normalizeVersion = (v: string) => {
|
||||
return v.replace(/^(infisical\/)?v?/, "").replace(/-[a-zA-Z]+$/, "");
|
||||
return v.replace(/^(lux-kms\/)?v?/, "").replace(/-[a-zA-Z]+$/, "");
|
||||
};
|
||||
|
||||
const normalizedStep = normalizeVersion(step.version);
|
||||
@@ -389,8 +389,8 @@ export const UpgradePathPage = () => {
|
||||
const possibleKeys = [
|
||||
step.version,
|
||||
step.version.replace(/^v/, ""),
|
||||
step.version.replace(/^infisical\/v?/, ""),
|
||||
step.version.replace(/^infisical\/v?/, "").replace(/-[a-zA-Z]+$/, "")
|
||||
step.version.replace(/^lux-kms\/v?/, ""),
|
||||
step.version.replace(/^lux-kms\/v?/, "").replace(/-[a-zA-Z]+$/, "")
|
||||
];
|
||||
|
||||
const dbMigrationDescription = possibleKeys
|
||||
|
||||
+1
-1
@@ -33,7 +33,7 @@
|
||||
"name": "Hanzo KMS Agent",
|
||||
"slug": "agent",
|
||||
"image": "Agent",
|
||||
"docsLink": "/docs/integrations/platforms/infisical-agent"
|
||||
"docsLink": "/docs/integrations/platforms/kms-agent"
|
||||
},
|
||||
{
|
||||
"name": "Amazon ECS",
|
||||
|
||||
+1
-1
@@ -60,7 +60,7 @@ import { CollapsibleSecretImports } from "./CollapsibleSecretImports";
|
||||
import { useBatchModeActions } from "../../SecretMainPage.store";
|
||||
|
||||
export const HIDDEN_SECRET_VALUE = "*************************";
|
||||
export const HIDDEN_SECRET_VALUE_API_MASK = "<hidden-by-infisical>";
|
||||
export const HIDDEN_SECRET_VALUE_API_MASK = "<hidden-by-kms>";
|
||||
|
||||
type Props = {
|
||||
secret: SecretV3RawSanitized & { originalKey?: string };
|
||||
|
||||
@@ -318,7 +318,7 @@ const Page = () => {
|
||||
secretRotationProviders?.providers.map((provider) => (
|
||||
<div
|
||||
className="group relative flex h-32 cursor-pointer flex-row items-center justify-center rounded-md border border-mineshaft-600 bg-mineshaft-800 p-4 hover:border-primary/40 hover:bg-primary/10"
|
||||
key={`infisical-rotation-provider-${provider.name}`}
|
||||
key={`kms-rotation-provider-${provider.name}`}
|
||||
tabIndex={0}
|
||||
role="button"
|
||||
onKeyDown={(evt) => {
|
||||
|
||||
+1
-1
@@ -66,7 +66,7 @@ const BackupConfirmationModal = ({
|
||||
const file = secretManager;
|
||||
|
||||
const blob = new Blob([file], { type: "text/plain;charset=utf-8" });
|
||||
FileSaver.saveAs(blob, `kms-backup-${org.slug}-${project.slug}-${kmsFunction}.infisical.txt`);
|
||||
FileSaver.saveAs(blob, `kms-backup-${org.slug}-${project.slug}-${kmsFunction}.luxkms.txt`);
|
||||
|
||||
onOpenChange(false);
|
||||
} catch (err) {
|
||||
|
||||
+2
-2
@@ -304,7 +304,7 @@ export const AWSParameterStoreConfigurePage = () => {
|
||||
</FormControl>
|
||||
<FormControl label="Tag Value">
|
||||
<Input
|
||||
placeholder="infisical"
|
||||
placeholder="kms"
|
||||
value={tagValue}
|
||||
onChange={(e) => setTagValue(e.target.value)}
|
||||
/>
|
||||
@@ -372,7 +372,7 @@ export const AWSParameterStoreConfigurePage = () => {
|
||||
src="/images/loading/loading.gif"
|
||||
height={70}
|
||||
width={120}
|
||||
alt="infisical loading indicator"
|
||||
alt="loading indicator"
|
||||
/>
|
||||
) : (
|
||||
<div className="flex h-max max-w-md flex-col rounded-md border border-mineshaft-600 bg-mineshaft-800 p-6 text-center text-mineshaft-200">
|
||||
|
||||
+3
-3
@@ -494,7 +494,7 @@ export const AwsSecretManagerConfigurePage = () => {
|
||||
errorText={error?.message}
|
||||
isError={Boolean(error)}
|
||||
>
|
||||
<Input placeholder="infisical" {...field} />
|
||||
<Input placeholder="kms" {...field} />
|
||||
</FormControl>
|
||||
)}
|
||||
/>
|
||||
@@ -510,7 +510,7 @@ export const AwsSecretManagerConfigurePage = () => {
|
||||
isError={Boolean(error)}
|
||||
className="mt-4"
|
||||
>
|
||||
<Input placeholder="INFISICAL_" {...field} />
|
||||
<Input placeholder="KMS_" {...field} />
|
||||
</FormControl>
|
||||
)}
|
||||
/>
|
||||
@@ -588,7 +588,7 @@ export const AwsSecretManagerConfigurePage = () => {
|
||||
src="/images/loading/loading.gif"
|
||||
height={70}
|
||||
width={120}
|
||||
alt="infisical loading indicator"
|
||||
alt="loading indicator"
|
||||
/>
|
||||
) : (
|
||||
<div className="flex h-max max-w-md flex-col rounded-md border border-mineshaft-600 bg-mineshaft-800 p-6 text-center text-mineshaft-200">
|
||||
|
||||
+1
-1
@@ -268,7 +268,7 @@ export const AzureAppConfigurationConfigurePage = () => {
|
||||
isError={Boolean(error)}
|
||||
>
|
||||
<Input
|
||||
placeholder="https://infisical-configuration-integration-test.azconfig.io"
|
||||
placeholder="https://kms-configuration-integration-test.azconfig.io"
|
||||
{...field}
|
||||
/>
|
||||
</FormControl>
|
||||
|
||||
+1
-1
@@ -293,7 +293,7 @@ export const ChecklyConfigurePage = () => {
|
||||
src="/images/loading/loading.gif"
|
||||
height={70}
|
||||
width={120}
|
||||
alt="infisical loading indicator"
|
||||
alt="loading indicator"
|
||||
/>
|
||||
) : (
|
||||
<div className="flex h-max max-w-md flex-col rounded-md border border-mineshaft-600 bg-mineshaft-800 p-6 text-center text-mineshaft-200">
|
||||
|
||||
+1
-1
@@ -223,7 +223,7 @@ export const DatabricksConfigurePage = () => {
|
||||
src="/images/loading/loading.gif"
|
||||
height={70}
|
||||
width={120}
|
||||
alt="infisical loading indicator"
|
||||
alt="loading indicator"
|
||||
/>
|
||||
) : (
|
||||
<div className="flex h-max max-w-md flex-col rounded-md border border-mineshaft-600 bg-mineshaft-800 p-6 text-center text-mineshaft-200">
|
||||
|
||||
+1
-1
@@ -218,7 +218,7 @@ export const FlyioConfigurePage = () => {
|
||||
src="/images/loading/loading.gif"
|
||||
height={70}
|
||||
width={120}
|
||||
alt="infisical loading indicator"
|
||||
alt="loading indicator"
|
||||
/>
|
||||
) : (
|
||||
<div className="flex h-max max-w-md flex-col rounded-md border border-mineshaft-600 bg-mineshaft-800 p-6 text-center text-mineshaft-200">
|
||||
|
||||
+6
-6
@@ -68,7 +68,7 @@ export const GcpSecretManagerConfigurePage = () => {
|
||||
secretSuffix: "",
|
||||
shouldLabel: false,
|
||||
labelName: "managed-by",
|
||||
labelValue: "infisical",
|
||||
labelValue: "kms",
|
||||
selectedSourceEnvironment: currentProject.environments[0].slug
|
||||
}
|
||||
});
|
||||
@@ -93,7 +93,7 @@ export const GcpSecretManagerConfigurePage = () => {
|
||||
useEffect(() => {
|
||||
if (shouldLabel) {
|
||||
setValue("labelName", "managed-by");
|
||||
setValue("labelValue", "infisical");
|
||||
setValue("labelValue", "kms");
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -328,7 +328,7 @@ export const GcpSecretManagerConfigurePage = () => {
|
||||
isError={Boolean(error)}
|
||||
errorText={error?.message}
|
||||
>
|
||||
<Input {...field} placeholder="INFISICAL_" />
|
||||
<Input {...field} placeholder="KMS_" />
|
||||
</FormControl>
|
||||
)}
|
||||
/>
|
||||
@@ -341,7 +341,7 @@ export const GcpSecretManagerConfigurePage = () => {
|
||||
isError={Boolean(error)}
|
||||
errorText={error?.message}
|
||||
>
|
||||
<Input {...field} placeholder="_INFISICAL" />
|
||||
<Input {...field} placeholder="_KMS" />
|
||||
</FormControl>
|
||||
)}
|
||||
/>
|
||||
@@ -384,7 +384,7 @@ export const GcpSecretManagerConfigurePage = () => {
|
||||
isError={Boolean(error)}
|
||||
errorText={error?.message}
|
||||
>
|
||||
<Input {...field} placeholder="infisical" />
|
||||
<Input {...field} placeholder="kms" />
|
||||
</FormControl>
|
||||
)}
|
||||
/>
|
||||
@@ -456,7 +456,7 @@ export const GcpSecretManagerConfigurePage = () => {
|
||||
src="/images/loading/loading.gif"
|
||||
height={70}
|
||||
width={120}
|
||||
alt="infisical loading indicator"
|
||||
alt="loading indicator"
|
||||
/>
|
||||
) : (
|
||||
<div className="flex h-max max-w-md flex-col rounded-md border border-mineshaft-600 bg-mineshaft-800 p-6 text-center text-mineshaft-200">
|
||||
|
||||
+1
-1
@@ -784,7 +784,7 @@ export const GithubConfigurePage = () => {
|
||||
src="/images/loading/loading.gif"
|
||||
height={70}
|
||||
width={120}
|
||||
alt="infisical loading indicator"
|
||||
alt="loading indicator"
|
||||
/>
|
||||
) : (
|
||||
<div className="flex h-max max-w-md flex-col rounded-md border border-mineshaft-600 bg-mineshaft-800 p-6 text-center text-mineshaft-200">
|
||||
|
||||
+3
-3
@@ -482,7 +482,7 @@ export const GitlabConfigurePage = () => {
|
||||
isError={Boolean(error)}
|
||||
errorText={error?.message}
|
||||
>
|
||||
<Input {...field} placeholder="INFISICAL_" />
|
||||
<Input {...field} placeholder="KMS_" />
|
||||
</FormControl>
|
||||
)}
|
||||
/>
|
||||
@@ -495,7 +495,7 @@ export const GitlabConfigurePage = () => {
|
||||
isError={Boolean(error)}
|
||||
errorText={error?.message}
|
||||
>
|
||||
<Input {...field} placeholder="_INFISICAL" />
|
||||
<Input {...field} placeholder="_KMS" />
|
||||
</FormControl>
|
||||
)}
|
||||
/>
|
||||
@@ -553,7 +553,7 @@ export const GitlabConfigurePage = () => {
|
||||
src="/images/loading/loading.gif"
|
||||
height={70}
|
||||
width={120}
|
||||
alt="infisical loading indicator"
|
||||
alt="loading indicator"
|
||||
/>
|
||||
) : (
|
||||
<div className="flex h-max max-w-md flex-col rounded-md border border-mineshaft-600 bg-mineshaft-800 p-6 text-center text-mineshaft-200">
|
||||
|
||||
+1
-1
@@ -256,7 +256,7 @@ export const HashicorpVaultConfigurePage = () => {
|
||||
src="/images/loading/loading.gif"
|
||||
height={70}
|
||||
width={120}
|
||||
alt="infisical loading indicator"
|
||||
alt="loading indicator"
|
||||
/>
|
||||
) : (
|
||||
<div className="flex h-max max-w-md flex-col rounded-md border border-mineshaft-600 bg-mineshaft-800 p-6 text-center text-mineshaft-200">
|
||||
|
||||
+1
-1
@@ -210,7 +210,7 @@ export const HasuraCloudConfigurePage = () => {
|
||||
src="/images/loading/loading.gif"
|
||||
height={70}
|
||||
width={120}
|
||||
alt="infisical loading indicator"
|
||||
alt="loading indicator"
|
||||
/>
|
||||
) : (
|
||||
<div className="flex h-max max-w-md flex-col rounded-md border border-mineshaft-600 bg-mineshaft-800 p-6 text-center text-mineshaft-200">
|
||||
|
||||
+1
-1
@@ -275,7 +275,7 @@ export const HerokuConfigurePage = () => {
|
||||
src="/images/loading/loading.gif"
|
||||
height={70}
|
||||
width={120}
|
||||
alt="infisical loading indicator"
|
||||
alt="loading indicator"
|
||||
/>
|
||||
) : (
|
||||
<div className="flex h-max max-w-md flex-col rounded-md border border-mineshaft-600 bg-mineshaft-800 p-6 text-center text-mineshaft-200">
|
||||
|
||||
+5
-5
@@ -37,7 +37,7 @@ const qoveryScopes = [
|
||||
];
|
||||
|
||||
enum TabSections {
|
||||
InfisicalSettings = "infisicalSettings",
|
||||
KmsSettings = "kmsSettings",
|
||||
QoverySettings = "qoverySettings"
|
||||
}
|
||||
|
||||
@@ -221,14 +221,14 @@ export const QoveryConfigurePage = () => {
|
||||
</a>
|
||||
</div>
|
||||
</CardTitle>
|
||||
<Tabs defaultValue={TabSections.InfisicalSettings} className="px-6">
|
||||
<Tabs defaultValue={TabSections.KmsSettings} className="px-6">
|
||||
<TabList>
|
||||
<div className="flex w-full flex-row border-b border-mineshaft-600">
|
||||
<Tab value={TabSections.InfisicalSettings}>KMS Settings</Tab>
|
||||
<Tab value={TabSections.KmsSettings}>KMS Settings</Tab>
|
||||
<Tab value={TabSections.QoverySettings}>Qovery Settings</Tab>
|
||||
</div>
|
||||
</TabList>
|
||||
<TabPanel value={TabSections.InfisicalSettings}>
|
||||
<TabPanel value={TabSections.KmsSettings}>
|
||||
<motion.div
|
||||
key="panel-1"
|
||||
transition={{ duration: 0.15 }}
|
||||
@@ -412,7 +412,7 @@ export const QoveryConfigurePage = () => {
|
||||
src="/images/loading/loading.gif"
|
||||
height={70}
|
||||
width={120}
|
||||
alt="infisical loading indicator"
|
||||
alt="loading indicator"
|
||||
/>
|
||||
) : (
|
||||
<div className="flex h-max max-w-md flex-col rounded-md border border-mineshaft-600 bg-mineshaft-800 p-6 text-center text-mineshaft-200">
|
||||
|
||||
+1
-1
@@ -281,7 +281,7 @@ export const RenderConfigurePage = () => {
|
||||
src="/images/loading/loading.gif"
|
||||
height={70}
|
||||
width={120}
|
||||
alt="infisical loading indicator"
|
||||
alt="loading indicator"
|
||||
/>
|
||||
) : (
|
||||
<div className="flex h-max max-w-md flex-col rounded-md border border-mineshaft-600 bg-mineshaft-800 p-6 text-center text-mineshaft-200">
|
||||
|
||||
+1
-1
@@ -204,7 +204,7 @@ export const RundeckConfigurePage = () => {
|
||||
src="/images/loading/loading.gif"
|
||||
height={70}
|
||||
width={120}
|
||||
alt="infisical loading indicator"
|
||||
alt="loading indicator"
|
||||
/>
|
||||
) : (
|
||||
<div className="flex h-max max-w-md flex-col rounded-md border border-mineshaft-600 bg-mineshaft-800 p-6 text-center text-mineshaft-200">
|
||||
|
||||
+1
-1
@@ -235,7 +235,7 @@ export const TeamcityConfigurePage = () => {
|
||||
src="/images/loading/loading.gif"
|
||||
height={70}
|
||||
width={120}
|
||||
alt="infisical loading indicator"
|
||||
alt="loading indicator"
|
||||
/>
|
||||
) : (
|
||||
<div className="flex h-max max-w-md flex-col rounded-md border border-mineshaft-600 bg-mineshaft-800 p-6 text-center text-mineshaft-200">
|
||||
|
||||
+1
-1
@@ -346,7 +346,7 @@ export const VercelConfigurePage = () => {
|
||||
src="/images/loading/loading.gif"
|
||||
height={70}
|
||||
width={120}
|
||||
alt="infisical loading indicator"
|
||||
alt="loading indicator"
|
||||
/>
|
||||
) : (
|
||||
<div className="flex h-max max-w-md flex-col rounded-md border border-mineshaft-600 bg-mineshaft-800 p-6 text-center text-mineshaft-200">
|
||||
|
||||
@@ -53,7 +53,7 @@ export const SshHostsTable = ({ handlePopUpOpen }: Props) => {
|
||||
const handleDownloadUserCaKey = async (sshHostId: string) => {
|
||||
try {
|
||||
const publicKey = await fetchSshHostUserCaPublicKey(sshHostId);
|
||||
downloadTxtFile("infisical_user_ca.pub", publicKey);
|
||||
downloadTxtFile("kms_user_ca.pub", publicKey);
|
||||
} catch (err) {
|
||||
console.error("Failed to download User CA public key", err);
|
||||
createNotification({
|
||||
|
||||
@@ -23,8 +23,8 @@ export default defineConfig(({ mode }) => {
|
||||
const env = loadEnv(mode, process.cwd());
|
||||
const allowedHosts = env.VITE_ALLOWED_HOSTS?.split(",") ?? [];
|
||||
const version = (
|
||||
env.INFISICAL_PLATFORM_VERSION ||
|
||||
env.VITE_INFISICAL_PLATFORM_VERSION ||
|
||||
env.KMS_PLATFORM_VERSION ||
|
||||
env.VITE_KMS_PLATFORM_VERSION ||
|
||||
"0.0.1"
|
||||
).replaceAll(".", "-");
|
||||
|
||||
|
||||
Reference in New Issue
Block a user