feat: azure key vault (#14406)

* feat: azure key vault

* perf: add azure-keyvault-secrets

* perf:azure kv api

* perf: Translate

* perf: Update Dockerfile with new base image tag

* perf: Error when secret is empty

* perf: Translate

---------

Co-authored-by: halo <wuyihuangw@gmail.com>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
pull/14465/head
fit2bot 2024-11-11 19:41:47 +08:00 committed by GitHub
parent b660bfb7ff
commit e1b501c7d4
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
20 changed files with 1280 additions and 837 deletions

View File

@ -1,4 +1,4 @@
FROM jumpserver/core-base:20241029_080218 AS stage-build FROM jumpserver/core-base:20241105_025649 AS stage-build
ARG VERSION ARG VERSION

View File

@ -12,8 +12,7 @@ logger = get_logger(__file__)
def get_vault_client(raise_exception=False, **kwargs): def get_vault_client(raise_exception=False, **kwargs):
enabled = kwargs.get('VAULT_ENABLED') tp = kwargs.get('VAULT_BACKEND') if kwargs.get('VAULT_ENABLED') else VaultTypeChoices.local
tp = 'hcp' if enabled else 'local'
try: try:
module_path = f'apps.accounts.backends.{tp}.main' module_path = f'apps.accounts.backends.{tp}.main'
client = import_module(module_path).Vault(**kwargs) client = import_module(module_path).Vault(**kwargs)

View File

@ -0,0 +1 @@
from .main import *

View File

@ -0,0 +1,70 @@
import sys
from abc import ABC
from common.db.utils import Encryptor
from common.utils import lazyproperty
current_module = sys.modules[__name__]
__all__ = ['build_entry']
class BaseEntry(ABC):
def __init__(self, instance):
self.instance = instance
@lazyproperty
def full_path(self):
return self.path_spec
@property
def path_spec(self):
raise NotImplementedError
def to_internal_data(self):
secret = getattr(self.instance, '_secret', None)
if secret is not None:
secret = Encryptor(secret).encrypt()
return secret
@staticmethod
def to_external_data(secret):
if secret is not None:
secret = Encryptor(secret).decrypt()
return secret
class AccountEntry(BaseEntry):
@property
def path_spec(self):
# 长度 0-127
account_id = str(self.instance.id)[:18]
path = f'assets-{self.instance.asset_id}-accounts-{account_id}'
return path
class AccountTemplateEntry(BaseEntry):
@property
def path_spec(self):
path = f'account-templates-{self.instance.id}'
return path
class HistoricalAccountEntry(BaseEntry):
@property
def path_spec(self):
path = f'accounts-{self.instance.instance.id}-histories-{self.instance.history_id}'
return path
def build_entry(instance) -> BaseEntry:
class_name = instance.__class__.__name__
entry_class_name = f'{class_name}Entry'
entry_class = getattr(current_module, entry_class_name, None)
if not entry_class:
raise Exception(f'Entry class {entry_class_name} is not found')
return entry_class(instance)

View File

@ -0,0 +1,53 @@
from common.db.utils import get_logger
from .entries import build_entry
from .service import AZUREVaultClient
from ..base import BaseVault
__all__ = ['Vault']
logger = get_logger(__name__)
class Vault(BaseVault):
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.client = AZUREVaultClient(
vault_url=kwargs.get('VAULT_AZURE_HOST'),
tenant_id=kwargs.get('VAULT_AZURE_TENANT_ID'),
client_id=kwargs.get('VAULT_AZURE_CLIENT_ID'),
client_secret=kwargs.get('VAULT_AZURE_CLIENT_SECRET')
)
def is_active(self):
return self.client.is_active()
def _get(self, instance):
entry = build_entry(instance)
secret = self.client.get(name=entry.full_path)
secret = entry.to_external_data(secret)
return secret
def _create(self, instance):
entry = build_entry(instance)
secret = entry.to_internal_data()
self.client.create(name=entry.full_path, secret=secret)
def _update(self, instance):
entry = build_entry(instance)
secret = entry.to_internal_data()
self.client.update(name=entry.full_path, secret=secret)
def _delete(self, instance):
entry = build_entry(instance)
self.client.delete(name=entry.full_path)
def _clean_db_secret(self, instance):
instance.is_sync_metadata = False
instance.mark_secret_save_to_vault()
def _save_metadata(self, instance, metadata):
try:
entry = build_entry(instance)
self.client.update_metadata(name=entry.full_path, metadata=metadata)
except Exception as e:
logger.error(f'save metadata error: {e}')

View File

@ -0,0 +1,68 @@
# -*- coding: utf-8 -*-
#
from azure.core.exceptions import ResourceNotFoundError, ClientAuthenticationError
from azure.identity import ClientSecretCredential
from azure.keyvault.secrets import SecretClient
from common.utils import get_logger
logger = get_logger(__name__)
__all__ = ['AZUREVaultClient']
class AZUREVaultClient(object):
def __init__(self, vault_url, tenant_id, client_id, client_secret):
authentication_endpoint = 'https://login.microsoftonline.com/' \
if ('azure.net' in vault_url) else 'https://login.chinacloudapi.cn/'
credentials = ClientSecretCredential(
client_id=client_id, client_secret=client_secret, tenant_id=tenant_id, authority=authentication_endpoint
)
self.client = SecretClient(vault_url=vault_url, credential=credentials)
def is_active(self):
try:
self.client.set_secret('jumpserver', '666')
except (ResourceNotFoundError, ClientAuthenticationError) as e:
logger.error(str(e))
return False, f'Vault is not reachable: {e}'
else:
return True, ''
def get(self, name, version=None):
try:
secret = self.client.get_secret(name, version)
return secret.value
except (ResourceNotFoundError, ClientAuthenticationError) as e:
logger.error(f'get: {name} {str(e)}')
return ''
def create(self, name, secret):
try:
if not secret:
secret = ''
self.client.set_secret(name, secret)
except (ResourceNotFoundError, ClientAuthenticationError) as e:
logger.error(f'create: {name} {str(e)}')
def update(self, name, secret):
try:
if not secret:
secret = ''
self.client.set_secret(name, secret)
except (ResourceNotFoundError, ClientAuthenticationError) as e:
logger.error(f'update: {name} {str(e)}')
def delete(self, name):
try:
self.client.begin_delete_secret(name)
except (ResourceNotFoundError, ClientAuthenticationError) as e:
logger.error(f'delete: {name} {str(e)}')
def update_metadata(self, name, metadata: dict):
try:
self.client.update_secret_properties(name, tags=metadata)
except (ResourceNotFoundError, ClientAuthenticationError) as e:
logger.error(f'update_metadata: {name} {str(e)}')

View File

@ -20,9 +20,6 @@ class BaseVault(ABC):
self._clean_db_secret(instance) self._clean_db_secret(instance)
self.save_metadata(instance) self.save_metadata(instance)
if instance.is_sync_metadata:
self.save_metadata(instance)
def update(self, instance): def update(self, instance):
if not instance.secret_has_save_to_vault: if not instance.secret_has_save_to_vault:
self._update(instance) self._update(instance)

View File

@ -7,3 +7,4 @@ __all__ = ['VaultTypeChoices']
class VaultTypeChoices(models.TextChoices): class VaultTypeChoices(models.TextChoices):
local = 'local', _('Database') local = 'local', _('Database')
hcp = 'hcp', _('HCP Vault') hcp = 'hcp', _('HCP Vault')
azure = 'azure', _('Azure Key Vault')

View File

@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-11-06 11:28+0800\n" "POT-Creation-Date: 2024-11-11 19:17+0800\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@ -36,7 +36,7 @@ msgstr ""
#: accounts/automations/backup_account/handlers.py:156 #: accounts/automations/backup_account/handlers.py:156
#: accounts/automations/backup_account/handlers.py:295 #: accounts/automations/backup_account/handlers.py:295
#: accounts/automations/backup_account/manager.py:40 ops/serializers/job.py:76 #: accounts/automations/backup_account/manager.py:40 ops/serializers/job.py:82
#: settings/templates/ldap/_msg_import_ldap_user.html:7 #: settings/templates/ldap/_msg_import_ldap_user.html:7
msgid "Time cost" msgid "Time cost"
msgstr "" msgstr ""
@ -68,7 +68,7 @@ msgstr ""
#: assets/serializers/automations/base.py:52 audits/const.py:64 #: assets/serializers/automations/base.py:52 audits/const.py:64
#: audits/models.py:64 audits/signal_handlers/activity_log.py:33 #: audits/models.py:64 audits/signal_handlers/activity_log.py:33
#: common/const/choices.py:65 ops/const.py:74 ops/serializers/celery.py:48 #: common/const/choices.py:65 ops/const.py:74 ops/serializers/celery.py:48
#: terminal/const.py:78 terminal/models/session/sharing.py:121 #: terminal/const.py:80 terminal/models/session/sharing.py:121
#: tickets/views/approve.py:128 #: tickets/views/approve.py:128
msgid "Success" msgid "Success"
msgstr "Success" msgstr "Success"
@ -77,7 +77,7 @@ msgstr "Success"
#: accounts/const/account.py:34 accounts/const/automation.py:109 #: accounts/const/account.py:34 accounts/const/automation.py:109
#: accounts/serializers/automations/change_secret.py:174 audits/const.py:65 #: accounts/serializers/automations/change_secret.py:174 audits/const.py:65
#: audits/signal_handlers/activity_log.py:33 common/const/choices.py:66 #: audits/signal_handlers/activity_log.py:33 common/const/choices.py:66
#: ops/const.py:76 terminal/const.py:79 xpack/plugins/cloud/const.py:47 #: ops/const.py:76 terminal/const.py:81 xpack/plugins/cloud/const.py:47
msgid "Failed" msgid "Failed"
msgstr "" msgstr ""
@ -150,7 +150,7 @@ msgid "Access key"
msgstr "" msgstr ""
#: accounts/const/account.py:9 authentication/backends/passkey/models.py:16 #: accounts/const/account.py:9 authentication/backends/passkey/models.py:16
#: authentication/models/sso_token.py:14 settings/serializers/feature.py:55 #: authentication/models/sso_token.py:14 settings/serializers/feature.py:75
msgid "Token" msgid "Token"
msgstr "" msgstr ""
@ -305,12 +305,12 @@ msgstr ""
msgid "Email" msgid "Email"
msgstr "" msgstr ""
#: accounts/const/automation.py:105 terminal/const.py:87 #: accounts/const/automation.py:105 terminal/const.py:89
msgid "SFTP" msgid "SFTP"
msgstr "" msgstr ""
#: accounts/const/automation.py:111 assets/serializers/automations/base.py:54 #: accounts/const/automation.py:111 assets/serializers/automations/base.py:54
#: common/const/choices.py:63 terminal/const.py:77 tickets/const.py:29 #: common/const/choices.py:63 terminal/const.py:79 tickets/const.py:29
#: tickets/const.py:38 #: tickets/const.py:38
msgid "Pending" msgid "Pending"
msgstr "" msgstr ""
@ -320,10 +320,14 @@ msgstr ""
msgid "Database" msgid "Database"
msgstr "" msgstr ""
#: accounts/const/vault.py:9 settings/serializers/feature.py:46 #: accounts/const/vault.py:9 settings/serializers/feature.py:70
msgid "HCP Vault" msgid "HCP Vault"
msgstr "" msgstr ""
#: accounts/const/vault.py:10 settings/serializers/feature.py:83
msgid "Azure Key Vault"
msgstr ""
#: accounts/mixins.py:35 #: accounts/mixins.py:35
msgid "Export all" msgid "Export all"
msgstr "" msgstr ""
@ -468,9 +472,9 @@ msgstr ""
#: accounts/models/automations/backup_account.py:120 #: accounts/models/automations/backup_account.py:120
#: assets/models/automations/base.py:115 audits/models.py:65 #: assets/models/automations/base.py:115 audits/models.py:65
#: ops/models/base.py:55 ops/models/celery.py:89 ops/models/job.py:242 #: ops/models/base.py:55 ops/models/celery.py:89 ops/models/job.py:247
#: ops/templates/ops/celery_task_log.html:101 #: ops/templates/ops/celery_task_log.html:101
#: perms/models/asset_permission.py:78 settings/serializers/feature.py:25 #: perms/models/asset_permission.py:78 settings/serializers/feature.py:26
#: settings/templates/ldap/_msg_import_ldap_user.html:5 #: settings/templates/ldap/_msg_import_ldap_user.html:5
#: terminal/models/applet/host.py:141 terminal/models/session/session.py:45 #: terminal/models/applet/host.py:141 terminal/models/session/session.py:45
#: tickets/models/ticket/apply_application.py:30 #: tickets/models/ticket/apply_application.py:30
@ -507,7 +511,7 @@ msgstr ""
#: accounts/models/automations/backup_account.py:136 #: accounts/models/automations/backup_account.py:136
#: accounts/serializers/automations/change_secret.py:117 #: accounts/serializers/automations/change_secret.py:117
#: accounts/serializers/automations/change_secret.py:152 #: accounts/serializers/automations/change_secret.py:152
#: ops/serializers/job.py:74 terminal/serializers/session.py:54 #: ops/serializers/job.py:80 terminal/serializers/session.py:54
msgid "Is success" msgid "Is success"
msgstr "Is success" msgstr "Is success"
@ -582,7 +586,7 @@ msgstr ""
#: accounts/models/automations/change_secret.py:42 #: accounts/models/automations/change_secret.py:42
#: assets/models/automations/base.py:116 ops/models/base.py:56 #: assets/models/automations/base.py:116 ops/models/base.py:56
#: ops/models/celery.py:90 ops/models/job.py:243 #: ops/models/celery.py:90 ops/models/job.py:248
#: terminal/models/applet/host.py:142 #: terminal/models/applet/host.py:142
msgid "Date finished" msgid "Date finished"
msgstr "" msgstr ""
@ -590,7 +594,7 @@ msgstr ""
#: accounts/models/automations/change_secret.py:44 #: accounts/models/automations/change_secret.py:44
#: assets/models/automations/base.py:113 #: assets/models/automations/base.py:113
#: assets/serializers/automations/base.py:39 audits/models.py:208 #: assets/serializers/automations/base.py:39 audits/models.py:208
#: audits/serializers.py:54 ops/models/base.py:49 ops/models/job.py:234 #: audits/serializers.py:54 ops/models/base.py:49 ops/models/job.py:239
#: terminal/models/applet/applet.py:331 terminal/models/applet/host.py:140 #: terminal/models/applet/applet.py:331 terminal/models/applet/host.py:140
#: terminal/models/component/status.py:30 #: terminal/models/component/status.py:30
#: terminal/models/virtualapp/virtualapp.py:99 #: terminal/models/virtualapp/virtualapp.py:99
@ -665,12 +669,12 @@ msgstr ""
#: audits/models.py:92 audits/serializers.py:84 #: audits/models.py:92 audits/serializers.py:84
#: authentication/serializers/connect_token_secret.py:119 #: authentication/serializers/connect_token_secret.py:119
#: authentication/templates/authentication/_access_key_modal.html:34 #: authentication/templates/authentication/_access_key_modal.html:34
#: behemoth/serializers/environment.py:13 perms/serializers/permission.py:52 #: perms/serializers/permission.py:52 perms/serializers/permission.py:74
#: perms/serializers/permission.py:74 tickets/serializers/ticket/ticket.py:21 #: tickets/serializers/ticket/ticket.py:21
msgid "Action" msgid "Action"
msgstr "" msgstr ""
#: accounts/models/automations/push_account.py:57 #: accounts/models/automations/push_account.py:58
msgid "Push asset account" msgid "Push asset account"
msgstr "" msgstr ""
@ -719,13 +723,13 @@ msgstr ""
#: authentication/serializers/connect_token_secret.py:113 #: authentication/serializers/connect_token_secret.py:113
#: authentication/serializers/connect_token_secret.py:169 labels/models.py:11 #: authentication/serializers/connect_token_secret.py:169 labels/models.py:11
#: ops/mixin.py:28 ops/models/adhoc.py:19 ops/models/celery.py:15 #: ops/mixin.py:28 ops/models/adhoc.py:19 ops/models/celery.py:15
#: ops/models/celery.py:81 ops/models/job.py:142 ops/models/playbook.py:30 #: ops/models/celery.py:81 ops/models/job.py:145 ops/models/playbook.py:28
#: ops/serializers/job.py:18 orgs/models.py:82 #: ops/models/variable.py:9 ops/serializers/job.py:19 orgs/models.py:82
#: perms/models/asset_permission.py:61 rbac/models/role.py:29 #: perms/models/asset_permission.py:61 rbac/models/role.py:29
#: rbac/serializers/role.py:28 settings/models.py:35 settings/models.py:184 #: rbac/serializers/role.py:28 settings/models.py:35 settings/models.py:184
#: settings/serializers/msg.py:89 settings/serializers/terminal.py:9 #: settings/serializers/msg.py:89 settings/serializers/terminal.py:9
#: terminal/models/applet/applet.py:34 terminal/models/component/endpoint.py:13 #: terminal/models/applet/applet.py:34 terminal/models/component/endpoint.py:13
#: terminal/models/component/endpoint.py:111 #: terminal/models/component/endpoint.py:112
#: terminal/models/component/storage.py:26 terminal/models/component/task.py:13 #: terminal/models/component/storage.py:26 terminal/models/component/task.py:13
#: terminal/models/component/terminal.py:85 #: terminal/models/component/terminal.py:85
#: terminal/models/virtualapp/provider.py:10 #: terminal/models/virtualapp/provider.py:10
@ -874,7 +878,7 @@ msgstr ""
#: assets/serializers/asset/common.py:146 assets/serializers/platform.py:159 #: assets/serializers/asset/common.py:146 assets/serializers/platform.py:159
#: assets/serializers/platform.py:171 audits/serializers.py:53 #: assets/serializers/platform.py:171 audits/serializers.py:53
#: audits/serializers.py:170 #: audits/serializers.py:170
#: authentication/serializers/connect_token_secret.py:126 ops/models/job.py:150 #: authentication/serializers/connect_token_secret.py:126 ops/models/job.py:153
#: perms/serializers/user_permission.py:27 terminal/models/applet/applet.py:40 #: perms/serializers/user_permission.py:27 terminal/models/applet/applet.py:40
#: terminal/models/component/storage.py:58 #: terminal/models/component/storage.py:58
#: terminal/models/component/storage.py:152 terminal/serializers/applet.py:29 #: terminal/models/component/storage.py:152 terminal/serializers/applet.py:29
@ -910,10 +914,8 @@ msgstr ""
#: assets/models/automations/base.py:19 #: assets/models/automations/base.py:19
#: assets/serializers/automations/base.py:20 assets/serializers/domain.py:34 #: assets/serializers/automations/base.py:20 assets/serializers/domain.py:34
#: assets/serializers/platform.py:180 assets/serializers/platform.py:212 #: assets/serializers/platform.py:180 assets/serializers/platform.py:212
#: authentication/api/connection_token.py:410 #: authentication/api/connection_token.py:410 ops/models/base.py:17
#: behemoth/serializers/environment.py:11 #: ops/models/job.py:155 ops/serializers/job.py:20
#: behemoth/serializers/environment.py:22 ops/models/base.py:17
#: ops/models/job.py:152 ops/serializers/job.py:19
#: perms/serializers/permission.py:46 #: perms/serializers/permission.py:46
#: terminal/templates/terminal/_msg_command_execute_alert.html:16 #: terminal/templates/terminal/_msg_command_execute_alert.html:16
#: xpack/plugins/cloud/manager.py:89 #: xpack/plugins/cloud/manager.py:89
@ -1055,11 +1057,11 @@ msgstr ""
#: accounts/serializers/account/virtual.py:19 assets/models/cmd_filter.py:40 #: accounts/serializers/account/virtual.py:19 assets/models/cmd_filter.py:40
#: assets/models/cmd_filter.py:88 common/db/models.py:36 ops/models/adhoc.py:25 #: assets/models/cmd_filter.py:88 common/db/models.py:36 ops/models/adhoc.py:25
#: ops/models/job.py:158 ops/models/playbook.py:33 rbac/models/role.py:37 #: ops/models/job.py:163 ops/models/playbook.py:31 rbac/models/role.py:37
#: settings/models.py:40 terminal/models/applet/applet.py:46 #: settings/models.py:40 terminal/models/applet/applet.py:46
#: terminal/models/applet/applet.py:332 terminal/models/applet/host.py:143 #: terminal/models/applet/applet.py:332 terminal/models/applet/host.py:143
#: terminal/models/component/endpoint.py:26 #: terminal/models/component/endpoint.py:27
#: terminal/models/component/endpoint.py:121 #: terminal/models/component/endpoint.py:122
#: terminal/models/session/session.py:47 #: terminal/models/session/session.py:47
#: terminal/models/virtualapp/virtualapp.py:28 tickets/models/comment.py:32 #: terminal/models/virtualapp/virtualapp.py:28 tickets/models/comment.py:32
#: tickets/models/ticket/general.py:298 users/models/user/__init__.py:91 #: tickets/models/ticket/general.py:298 users/models/user/__init__.py:91
@ -1076,7 +1078,8 @@ msgstr ""
#: accounts/serializers/automations/base.py:23 #: accounts/serializers/automations/base.py:23
#: assets/models/asset/common.py:176 assets/serializers/asset/common.py:172 #: assets/models/asset/common.py:176 assets/serializers/asset/common.py:172
#: assets/serializers/automations/base.py:21 perms/serializers/permission.py:47 #: assets/serializers/automations/base.py:21 ops/serializers/job.py:21
#: perms/serializers/permission.py:47
msgid "Nodes" msgid "Nodes"
msgstr "" msgstr ""
@ -1330,12 +1333,12 @@ msgid "Notify and warn"
msgstr "" msgstr ""
#: acls/models/base.py:37 assets/models/cmd_filter.py:76 #: acls/models/base.py:37 assets/models/cmd_filter.py:76
#: terminal/models/component/endpoint.py:114 xpack/plugins/cloud/models.py:316 #: terminal/models/component/endpoint.py:115 xpack/plugins/cloud/models.py:316
msgid "Priority" msgid "Priority"
msgstr "" msgstr ""
#: acls/models/base.py:38 assets/models/cmd_filter.py:76 #: acls/models/base.py:38 assets/models/cmd_filter.py:76
#: terminal/models/component/endpoint.py:115 xpack/plugins/cloud/models.py:317 #: terminal/models/component/endpoint.py:116 xpack/plugins/cloud/models.py:317
msgid "1-100, the lower the value will be match first" msgid "1-100, the lower the value will be match first"
msgstr "" msgstr ""
@ -1349,8 +1352,8 @@ msgstr ""
#: authentication/models/connection_token.py:53 #: authentication/models/connection_token.py:53
#: authentication/models/ssh_key.py:13 #: authentication/models/ssh_key.py:13
#: authentication/templates/authentication/_access_key_modal.html:32 #: authentication/templates/authentication/_access_key_modal.html:32
#: perms/models/asset_permission.py:82 terminal/models/component/endpoint.py:27 #: perms/models/asset_permission.py:82 terminal/models/component/endpoint.py:28
#: terminal/models/component/endpoint.py:122 #: terminal/models/component/endpoint.py:123
#: terminal/models/session/sharing.py:29 terminal/serializers/terminal.py:44 #: terminal/models/session/sharing.py:29 terminal/serializers/terminal.py:44
#: tickets/const.py:36 #: tickets/const.py:36
msgid "Active" msgid "Active"
@ -1370,7 +1373,7 @@ msgid "Accounts"
msgstr "" msgstr ""
#: acls/models/command_acl.py:16 assets/models/cmd_filter.py:60 #: acls/models/command_acl.py:16 assets/models/cmd_filter.py:60
#: ops/serializers/job.py:73 terminal/const.py:86 #: ops/serializers/job.py:79 terminal/const.py:88
#: terminal/models/session/session.py:43 terminal/serializers/command.py:18 #: terminal/models/session/session.py:43 terminal/serializers/command.py:18
#: terminal/templates/terminal/_msg_command_alert.html:12 #: terminal/templates/terminal/_msg_command_alert.html:12
#: terminal/templates/terminal/_msg_command_execute_alert.html:10 #: terminal/templates/terminal/_msg_command_execute_alert.html:10
@ -1384,7 +1387,7 @@ msgid "Regex"
msgstr "" msgstr ""
#: acls/models/command_acl.py:26 assets/models/cmd_filter.py:79 #: acls/models/command_acl.py:26 assets/models/cmd_filter.py:79
#: settings/models.py:185 settings/serializers/feature.py:20 #: settings/models.py:185 settings/serializers/feature.py:21
#: settings/serializers/msg.py:78 xpack/plugins/license/models.py:30 #: settings/serializers/msg.py:78 xpack/plugins/license/models.py:30
msgid "Content" msgid "Content"
msgstr "" msgstr ""
@ -1638,7 +1641,7 @@ msgid "Authentication failed"
msgstr "" msgstr ""
#: assets/automations/ping_gateway/manager.py:60 #: assets/automations/ping_gateway/manager.py:60
#: assets/automations/ping_gateway/manager.py:86 terminal/const.py:102 #: assets/automations/ping_gateway/manager.py:86 terminal/const.py:104
msgid "Connect failed" msgid "Connect failed"
msgstr "" msgstr ""
@ -1686,9 +1689,9 @@ msgstr ""
#: assets/const/category.py:10 assets/models/asset/host.py:8 #: assets/const/category.py:10 assets/models/asset/host.py:8
#: settings/serializers/auth/radius.py:17 settings/serializers/auth/sms.py:76 #: settings/serializers/auth/radius.py:17 settings/serializers/auth/sms.py:76
#: settings/serializers/feature.py:52 settings/serializers/msg.py:30 #: settings/serializers/feature.py:72 settings/serializers/feature.py:85
#: terminal/models/component/endpoint.py:14 terminal/serializers/applet.py:17 #: settings/serializers/msg.py:30 terminal/models/component/endpoint.py:14
#: xpack/plugins/cloud/manager.py:89 #: terminal/serializers/applet.py:17 xpack/plugins/cloud/manager.py:89
#: xpack/plugins/cloud/serializers/account_attrs.py:72 #: xpack/plugins/cloud/serializers/account_attrs.py:72
msgid "Host" msgid "Host"
msgstr "" msgstr ""
@ -1990,18 +1993,19 @@ msgstr ""
msgid "Postgresql SSL mode" msgid "Postgresql SSL mode"
msgstr "" msgstr ""
#: assets/models/asset/gpt.py:8 settings/serializers/feature.py:92 #: assets/models/asset/gpt.py:8 settings/serializers/feature.py:115
msgid "Proxy" msgid "Proxy"
msgstr "" msgstr ""
#: assets/models/automations/base.py:18 assets/models/cmd_filter.py:32 #: assets/models/automations/base.py:18 assets/models/cmd_filter.py:32
#: assets/models/node.py:553 perms/models/asset_permission.py:72 #: assets/models/node.py:553 ops/models/job.py:156
#: tickets/models/ticket/apply_asset.py:14 xpack/plugins/cloud/models.py:388 #: perms/models/asset_permission.py:72 tickets/models/ticket/apply_asset.py:14
#: xpack/plugins/cloud/models.py:388
msgid "Node" msgid "Node"
msgstr "" msgstr ""
#: assets/models/automations/base.py:22 ops/models/job.py:237 #: assets/models/automations/base.py:22 ops/models/job.py:242
#: settings/serializers/auth/sms.py:108 #: ops/serializers/job.py:23 settings/serializers/auth/sms.py:108
msgid "Parameters" msgid "Parameters"
msgstr "" msgstr ""
@ -2014,7 +2018,7 @@ msgid "Asset automation task"
msgstr "" msgstr ""
#: assets/models/automations/base.py:114 assets/models/cmd_filter.py:41 #: assets/models/automations/base.py:114 assets/models/cmd_filter.py:41
#: common/db/models.py:34 ops/models/base.py:54 ops/models/job.py:241 #: common/db/models.py:34 ops/models/base.py:54 ops/models/job.py:246
#: users/models/user/__init__.py:311 #: users/models/user/__init__.py:311
msgid "Date created" msgid "Date created"
msgstr "" msgstr ""
@ -2146,7 +2150,7 @@ msgstr ""
msgid "Primary" msgid "Primary"
msgstr "" msgstr ""
#: assets/models/platform.py:18 #: assets/models/platform.py:18 ops/models/variable.py:20
msgid "Required" msgid "Required"
msgstr "" msgstr ""
@ -2682,7 +2686,7 @@ msgstr "Labels"
msgid "operate_log_id" msgid "operate_log_id"
msgstr "" msgstr ""
#: audits/backends/db.py:111 #: audits/backends/db.py:111 ops/models/variable.py:19
msgid "Tips" msgid "Tips"
msgstr "" msgstr ""
@ -2926,8 +2930,8 @@ msgid "Offline user session"
msgstr "" msgstr ""
#: audits/serializers.py:33 ops/models/adhoc.py:24 ops/models/base.py:16 #: audits/serializers.py:33 ops/models/adhoc.py:24 ops/models/base.py:16
#: ops/models/base.py:53 ops/models/celery.py:87 ops/models/job.py:151 #: ops/models/base.py:53 ops/models/celery.py:87 ops/models/job.py:154
#: ops/models/job.py:240 ops/models/playbook.py:32 #: ops/models/job.py:245 ops/models/playbook.py:30 ops/models/variable.py:17
#: terminal/models/session/sharing.py:25 #: terminal/models/session/sharing.py:25
msgid "Creator" msgid "Creator"
msgstr "" msgstr ""
@ -3466,7 +3470,7 @@ msgid "Please change your password"
msgstr "" msgstr ""
#: authentication/models/access_key.py:22 #: authentication/models/access_key.py:22
#: terminal/models/component/endpoint.py:112 #: terminal/models/component/endpoint.py:113
msgid "IP group" msgid "IP group"
msgstr "" msgstr ""
@ -3757,7 +3761,7 @@ msgstr ""
#: authentication/templates/authentication/_msg_oauth_bind.html:3 #: authentication/templates/authentication/_msg_oauth_bind.html:3
#: authentication/templates/authentication/_msg_reset_password.html:3 #: authentication/templates/authentication/_msg_reset_password.html:3
#: authentication/templates/authentication/_msg_reset_password_code.html:9 #: authentication/templates/authentication/_msg_reset_password_code.html:9
#: jumpserver/conf.py:522 #: jumpserver/conf.py:529
#: perms/templates/perms/_msg_item_permissions_expire.html:3 #: perms/templates/perms/_msg_item_permissions_expire.html:3
#: tickets/templates/tickets/approve_check_password.html:32 #: tickets/templates/tickets/approve_check_password.html:32
#: users/templates/users/_msg_account_expire_reminder.html:4 #: users/templates/users/_msg_account_expire_reminder.html:4
@ -4491,16 +4495,16 @@ msgstr ""
msgid "The mobile phone number format is incorrect" msgid "The mobile phone number format is incorrect"
msgstr "" msgstr ""
#: jumpserver/conf.py:516 #: jumpserver/conf.py:523
#, python-brace-format #, python-brace-format
msgid "The verification code is: {code}" msgid "The verification code is: {code}"
msgstr "" msgstr ""
#: jumpserver/conf.py:521 #: jumpserver/conf.py:528
msgid "Create account successfully" msgid "Create account successfully"
msgstr "" msgstr ""
#: jumpserver/conf.py:523 #: jumpserver/conf.py:530
msgid "Your account has been created successfully" msgid "Your account has been created successfully"
msgstr "" msgstr ""
@ -4597,7 +4601,7 @@ msgid ""
" work orders, and other notifications" " work orders, and other notifications"
msgstr "" msgstr ""
#: ops/ansible/inventory.py:116 ops/models/job.py:65 #: ops/ansible/inventory.py:116 ops/models/job.py:68
msgid "No account available" msgid "No account available"
msgstr "" msgstr ""
@ -4621,34 +4625,34 @@ msgstr ""
msgid "Task {} args or kwargs error" msgid "Task {} args or kwargs error"
msgstr "" msgstr ""
#: ops/api/job.py:83 #: ops/api/job.py:68
#, python-brace-format #, python-brace-format
msgid "" msgid ""
"Asset ({asset}) must have at least one of the following protocols added: " "Asset ({asset}) must have at least one of the following protocols added: "
"SSH, SFTP, or WinRM" "SSH, SFTP, or WinRM"
msgstr "" msgstr ""
#: ops/api/job.py:84 #: ops/api/job.py:69
#, python-brace-format #, python-brace-format
msgid "Asset ({asset}) authorization is missing SSH, SFTP, or WinRM protocol" msgid "Asset ({asset}) authorization is missing SSH, SFTP, or WinRM protocol"
msgstr "" msgstr ""
#: ops/api/job.py:85 #: ops/api/job.py:70
#, python-brace-format #, python-brace-format
msgid "Asset ({asset}) authorization lacks upload permissions" msgid "Asset ({asset}) authorization lacks upload permissions"
msgstr "" msgstr ""
#: ops/api/job.py:170 #: ops/api/job.py:157
msgid "Duplicate file exists" msgid "Duplicate file exists"
msgstr "" msgstr ""
#: ops/api/job.py:175 #: ops/api/job.py:162
#, python-brace-format #, python-brace-format
msgid "" msgid ""
"File size exceeds maximum limit. Please select a file smaller than {limit}MB" "File size exceeds maximum limit. Please select a file smaller than {limit}MB"
msgstr "" msgstr ""
#: ops/api/job.py:244 #: ops/api/job.py:231
msgid "" msgid ""
"The task is being created and cannot be interrupted. Please try again later." "The task is being created and cannot be interrupted. Please try again later."
msgstr "" msgstr ""
@ -4717,11 +4721,13 @@ msgstr ""
msgid "VCS" msgid "VCS"
msgstr "" msgstr ""
#: ops/const.py:38 ops/models/adhoc.py:44 settings/serializers/feature.py:123 #: ops/const.py:38 ops/models/adhoc.py:44 ops/models/variable.py:26
#: settings/serializers/feature.py:146
msgid "Adhoc" msgid "Adhoc"
msgstr "" msgstr ""
#: ops/const.py:39 ops/models/job.py:149 ops/models/playbook.py:91 #: ops/const.py:39 ops/models/job.py:152 ops/models/playbook.py:89
#: ops/models/variable.py:23
msgid "Playbook" msgid "Playbook"
msgstr "" msgstr ""
@ -4794,6 +4800,14 @@ msgstr ""
msgid "Private" msgid "Private"
msgstr "" msgstr ""
#: ops/const.py:91
msgid "Text"
msgstr ""
#: ops/const.py:92
msgid "Select"
msgstr ""
#: ops/exception.py:6 #: ops/exception.py:6
msgid "no valid program entry found." msgid "no valid program entry found."
msgstr "" msgstr ""
@ -4833,16 +4847,16 @@ msgstr ""
msgid "Pattern" msgid "Pattern"
msgstr "" msgstr ""
#: ops/models/adhoc.py:22 ops/models/job.py:146 #: ops/models/adhoc.py:22 ops/models/job.py:149
msgid "Module" msgid "Module"
msgstr "" msgstr ""
#: ops/models/adhoc.py:23 ops/models/celery.py:82 ops/models/job.py:144 #: ops/models/adhoc.py:23 ops/models/celery.py:82 ops/models/job.py:147
#: terminal/models/component/task.py:14 #: terminal/models/component/task.py:14
msgid "Args" msgid "Args"
msgstr "" msgstr ""
#: ops/models/adhoc.py:26 ops/models/playbook.py:36 ops/serializers/mixin.py:10 #: ops/models/adhoc.py:26 ops/models/playbook.py:34 ops/serializers/mixin.py:10
#: rbac/models/role.py:31 rbac/models/rolebinding.py:46 #: rbac/models/role.py:31 rbac/models/rolebinding.py:46
#: rbac/serializers/role.py:12 settings/serializers/auth/oauth2.py:37 #: rbac/serializers/role.py:12 settings/serializers/auth/oauth2.py:37
msgid "Scope" msgid "Scope"
@ -4856,16 +4870,16 @@ msgstr ""
msgid "Last execution" msgid "Last execution"
msgstr "" msgstr ""
#: ops/models/base.py:22 ops/serializers/job.py:17 #: ops/models/base.py:22 ops/serializers/job.py:18
msgid "Date last run" msgid "Date last run"
msgstr "" msgstr ""
#: ops/models/base.py:51 ops/models/job.py:238 #: ops/models/base.py:51 ops/models/job.py:243
#: xpack/plugins/cloud/models.py:225 #: xpack/plugins/cloud/models.py:225
msgid "Result" msgid "Result"
msgstr "" msgstr ""
#: ops/models/base.py:52 ops/models/job.py:239 #: ops/models/base.py:52 ops/models/job.py:244
#: xpack/plugins/cloud/manager.py:99 #: xpack/plugins/cloud/manager.py:99
msgid "Summary" msgid "Summary"
msgstr "" msgstr ""
@ -4894,55 +4908,89 @@ msgstr ""
msgid "Celery Task Execution" msgid "Celery Task Execution"
msgstr "" msgstr ""
#: ops/models/job.py:147 #: ops/models/job.py:150
msgid "Run dir" msgid "Run dir"
msgstr "" msgstr ""
#: ops/models/job.py:148 #: ops/models/job.py:151
msgid "Timeout (Seconds)" msgid "Timeout (Seconds)"
msgstr "" msgstr ""
#: ops/models/job.py:153 #: ops/models/job.py:157
msgid "Use Parameter Define" msgid "Use Parameter Define"
msgstr "" msgstr ""
#: ops/models/job.py:154 #: ops/models/job.py:158
msgid "Parameters define" msgid "Parameters define"
msgstr "" msgstr ""
#: ops/models/job.py:155 #: ops/models/job.py:159
#, fuzzy
#| msgid "Periodic run"
msgid "Periodic variable"
msgstr "Periodic"
#: ops/models/job.py:160
msgid "Run as" msgid "Run as"
msgstr "" msgstr ""
#: ops/models/job.py:157 #: ops/models/job.py:162
msgid "Run as policy" msgid "Run as policy"
msgstr "" msgstr ""
#: ops/models/job.py:222 ops/serializers/job.py:92 #: ops/models/job.py:227 ops/models/variable.py:28 ops/serializers/job.py:98
#: terminal/notifications.py:182 #: terminal/notifications.py:182
msgid "Job" msgid "Job"
msgstr "" msgstr ""
#: ops/models/job.py:245 #: ops/models/job.py:250
msgid "Material" msgid "Material"
msgstr "" msgstr ""
#: ops/models/job.py:247 #: ops/models/job.py:252
msgid "Material Type" msgid "Material Type"
msgstr "" msgstr ""
#: ops/models/job.py:558 #: ops/models/job.py:564
msgid "Job Execution" msgid "Job Execution"
msgstr "" msgstr ""
#: ops/models/playbook.py:35 #: ops/models/playbook.py:33
msgid "CreateMethod" msgid "CreateMethod"
msgstr "" msgstr ""
#: ops/models/playbook.py:37 #: ops/models/playbook.py:35
msgid "VCS URL" msgid "VCS URL"
msgstr "" msgstr ""
#: ops/models/variable.py:11
msgid "Variable name"
msgstr ""
#: ops/models/variable.py:12
msgid ""
"The variable name used in the script has a fixed prefix 'jms_' followed by "
"the input variable name. For example, if the variable name is 'name,' the "
"final generated environment variable will be 'jms_name'."
msgstr ""
#: ops/models/variable.py:16
msgid "Default Value"
msgstr ""
#: ops/models/variable.py:18
msgid "Variable type"
msgstr ""
#: ops/models/variable.py:21 ops/serializers/variable.py:23
msgid "ExtraVars"
msgstr ""
#: ops/models/variable.py:49 ops/serializers/adhoc.py:16
#: ops/serializers/job.py:22 ops/serializers/playbook.py:21
msgid "Variable"
msgstr ""
#: ops/notifications.py:20 #: ops/notifications.py:20
msgid "Server performance" msgid "Server performance"
msgstr "" msgstr ""
@ -4979,61 +5027,72 @@ msgstr ""
msgid "Next execution time" msgid "Next execution time"
msgstr "" msgstr ""
#: ops/serializers/job.py:15 #: ops/serializers/job.py:17
msgid "Execute after saving" msgid "Execute after saving"
msgstr "Execute after saving" msgstr "Execute after saving"
#: ops/serializers/job.py:52 terminal/serializers/session.py:49 #: ops/serializers/job.py:58 terminal/serializers/session.py:49
msgid "Duration" msgid "Duration"
msgstr "" msgstr ""
#: ops/serializers/job.py:72 #: ops/serializers/job.py:78
msgid "Job type" msgid "Job type"
msgstr "" msgstr ""
#: ops/serializers/job.py:75 terminal/serializers/session.py:58 #: ops/serializers/job.py:81 terminal/serializers/session.py:58
msgid "Is finished" msgid "Is finished"
msgstr "Finished" msgstr "Finished"
#: ops/serializers/job.py:89 #: ops/serializers/job.py:95
msgid "Task id" msgid "Task id"
msgstr "" msgstr ""
#: ops/serializers/job.py:98 #: ops/serializers/job.py:104
msgid "You do not have permission for the current job." msgid "You do not have permission for the current job."
msgstr "" msgstr ""
#: ops/tasks.py:51 #: ops/serializers/variable.py:20
msgid "Variable Type"
msgstr ""
#: ops/serializers/variable.py:25
msgid ""
"Each item is on a separate line, with each line separated by a colon. The "
"part before the colon is the display content, and the part after the colon "
"is the value."
msgstr ""
#: ops/tasks.py:53
msgid "Run ansible task" msgid "Run ansible task"
msgstr "" msgstr ""
#: ops/tasks.py:54 #: ops/tasks.py:56
msgid "" msgid ""
"Execute scheduled adhoc and playbooks, periodically invoking the task for " "Execute scheduled adhoc and playbooks, periodically invoking the task for "
"execution" "execution"
msgstr "" msgstr ""
#: ops/tasks.py:82 #: ops/tasks.py:88
msgid "Run ansible task execution" msgid "Run ansible task execution"
msgstr "" msgstr ""
#: ops/tasks.py:85 #: ops/tasks.py:91
msgid "Execute the task when manually adhoc or playbooks" msgid "Execute the task when manually adhoc or playbooks"
msgstr "" msgstr ""
#: ops/tasks.py:99 #: ops/tasks.py:107
msgid "Clear celery periodic tasks" msgid "Clear celery periodic tasks"
msgstr "" msgstr ""
#: ops/tasks.py:101 #: ops/tasks.py:109
msgid "At system startup, clean up celery tasks that no longer exist" msgid "At system startup, clean up celery tasks that no longer exist"
msgstr "" msgstr ""
#: ops/tasks.py:125 #: ops/tasks.py:133
msgid "Create or update periodic tasks" msgid "Create or update periodic tasks"
msgstr "" msgstr ""
#: ops/tasks.py:127 #: ops/tasks.py:135
msgid "" msgid ""
"With version iterations, new tasks may be added, or task names and execution " "With version iterations, new tasks may be added, or task names and execution "
"times may \n" "times may \n"
@ -5042,11 +5101,11 @@ msgid ""
" of scheduled tasks will be updated" " of scheduled tasks will be updated"
msgstr "" msgstr ""
#: ops/tasks.py:140 #: ops/tasks.py:148
msgid "Periodic check service performance" msgid "Periodic check service performance"
msgstr "" msgstr ""
#: ops/tasks.py:142 #: ops/tasks.py:150
msgid "" msgid ""
"Check every hour whether each component is offline and whether the CPU, " "Check every hour whether each component is offline and whether the CPU, "
"memory, \n" "memory, \n"
@ -5054,11 +5113,11 @@ msgid ""
"the administrator" "the administrator"
msgstr "" msgstr ""
#: ops/tasks.py:152 #: ops/tasks.py:160
msgid "Clean up unexpected jobs" msgid "Clean up unexpected jobs"
msgstr "" msgstr ""
#: ops/tasks.py:154 #: ops/tasks.py:162
msgid "" msgid ""
"Due to exceptions caused by executing adhoc and playbooks in the Job " "Due to exceptions caused by executing adhoc and playbooks in the Job "
"Center, \n" "Center, \n"
@ -5069,11 +5128,11 @@ msgid ""
" failed" " failed"
msgstr "" msgstr ""
#: ops/tasks.py:167 #: ops/tasks.py:175
msgid "Clean job_execution db record" msgid "Clean job_execution db record"
msgstr "" msgstr ""
#: ops/tasks.py:169 #: ops/tasks.py:177
msgid "" msgid ""
"Due to the execution of adhoc and playbooks in the Job Center, execution " "Due to the execution of adhoc and playbooks in the Job Center, execution "
"records will \n" "records will \n"
@ -5290,7 +5349,7 @@ msgid "today"
msgstr "" msgstr ""
#: perms/notifications.py:12 perms/notifications.py:44 #: perms/notifications.py:12 perms/notifications.py:44
#: settings/serializers/feature.py:114 #: settings/serializers/feature.py:137
msgid "day" msgid "day"
msgstr "" msgstr ""
@ -5535,7 +5594,7 @@ msgstr ""
msgid "App ops" msgid "App ops"
msgstr "Ops" msgstr "Ops"
#: rbac/tree.py:57 settings/serializers/feature.py:120 #: rbac/tree.py:57 settings/serializers/feature.py:143
msgid "Feature" msgid "Feature"
msgstr "" msgstr ""
@ -5570,8 +5629,8 @@ msgstr "Organizations"
msgid "Ticket comment" msgid "Ticket comment"
msgstr "" msgstr ""
#: rbac/tree.py:159 settings/serializers/feature.py:101 #: rbac/tree.py:159 settings/serializers/feature.py:124
#: settings/serializers/feature.py:103 tickets/models/ticket/general.py:308 #: settings/serializers/feature.py:126 tickets/models/ticket/general.py:308
msgid "Ticket" msgid "Ticket"
msgstr "" msgstr ""
@ -5589,7 +5648,7 @@ msgstr ""
#: settings/api/chat.py:79 settings/api/dingtalk.py:31 #: settings/api/chat.py:79 settings/api/dingtalk.py:31
#: settings/api/feishu.py:39 settings/api/slack.py:34 settings/api/sms.py:160 #: settings/api/feishu.py:39 settings/api/slack.py:34 settings/api/sms.py:160
#: settings/api/vault.py:40 settings/api/wecom.py:37 #: settings/api/vault.py:48 settings/api/wecom.py:37
msgid "Test success" msgid "Test success"
msgstr "" msgstr ""
@ -5963,12 +6022,13 @@ msgstr ""
msgid "Service provider" msgid "Service provider"
msgstr "" msgstr ""
#: settings/serializers/auth/oauth2.py:31 #: settings/serializers/auth/oauth2.py:31 settings/serializers/feature.py:88
#: xpack/plugins/cloud/serializers/account_attrs.py:35 #: xpack/plugins/cloud/serializers/account_attrs.py:35
msgid "Client ID" msgid "Client ID"
msgstr "" msgstr ""
#: settings/serializers/auth/oauth2.py:34 settings/serializers/auth/oidc.py:24 #: settings/serializers/auth/oauth2.py:34 settings/serializers/auth/oidc.py:24
#: settings/serializers/feature.py:91
#: xpack/plugins/cloud/serializers/account_attrs.py:38 #: xpack/plugins/cloud/serializers/account_attrs.py:38
msgid "Client Secret" msgid "Client Secret"
msgstr "" msgstr ""
@ -6374,38 +6434,38 @@ msgstr ""
msgid "Change secret and push record retention days (day)" msgid "Change secret and push record retention days (day)"
msgstr "" msgstr ""
#: settings/serializers/feature.py:19 settings/serializers/msg.py:68 #: settings/serializers/feature.py:20 settings/serializers/msg.py:68
msgid "Subject" msgid "Subject"
msgstr "" msgstr ""
#: settings/serializers/feature.py:23 #: settings/serializers/feature.py:24
msgid "More Link" msgid "More Link"
msgstr "" msgstr ""
#: settings/serializers/feature.py:26 #: settings/serializers/feature.py:27
#: settings/templates/ldap/_msg_import_ldap_user.html:6 #: settings/templates/ldap/_msg_import_ldap_user.html:6
#: terminal/models/session/session.py:46 #: terminal/models/session/session.py:46
msgid "Date end" msgid "Date end"
msgstr "" msgstr ""
#: settings/serializers/feature.py:39 settings/serializers/feature.py:41 #: settings/serializers/feature.py:40 settings/serializers/feature.py:42
#: settings/serializers/feature.py:42 #: settings/serializers/feature.py:43
msgid "Announcement" msgid "Announcement"
msgstr "" msgstr ""
#: settings/serializers/feature.py:49 #: settings/serializers/feature.py:47 settings/serializers/feature.py:50
msgid "Vault" msgid "Vault"
msgstr "" msgstr ""
#: settings/serializers/feature.py:58 #: settings/serializers/feature.py:53
msgid "Mount Point" msgid "Vault provider"
msgstr "" msgstr ""
#: settings/serializers/feature.py:64 #: settings/serializers/feature.py:58
msgid "Record limit" msgid "Record limit"
msgstr "" msgstr ""
#: settings/serializers/feature.py:66 #: settings/serializers/feature.py:60
msgid "" msgid ""
"If the specific value is less than 999 (default), the system will " "If the specific value is less than 999 (default), the system will "
"automatically perform a task every night: check and delete historical " "automatically perform a task every night: check and delete historical "
@ -6413,74 +6473,83 @@ msgid ""
"exceeds 999 (default), no historical account deletion will be performed" "exceeds 999 (default), no historical account deletion will be performed"
msgstr "" msgstr ""
#: settings/serializers/feature.py:76 settings/serializers/feature.py:82 #: settings/serializers/feature.py:78
msgid "Mount Point"
msgstr ""
#: settings/serializers/feature.py:94
#: xpack/plugins/cloud/serializers/account_attrs.py:41
msgid "Tenant ID"
msgstr ""
#: settings/serializers/feature.py:99 settings/serializers/feature.py:105
msgid "Chat AI" msgid "Chat AI"
msgstr "" msgstr ""
#: settings/serializers/feature.py:85 #: settings/serializers/feature.py:108
msgid "GPT Base URL" msgid "GPT Base URL"
msgstr "" msgstr ""
#: settings/serializers/feature.py:86 #: settings/serializers/feature.py:109
msgid "The base URL of the GPT service. For example: https://api.openai.com/v1" msgid "The base URL of the GPT service. For example: https://api.openai.com/v1"
msgstr "" msgstr ""
#: settings/serializers/feature.py:89 templates/_header_bar.html:96 #: settings/serializers/feature.py:112 templates/_header_bar.html:96
msgid "API Key" msgid "API Key"
msgstr "" msgstr ""
#: settings/serializers/feature.py:93 #: settings/serializers/feature.py:116
msgid "" msgid ""
"The proxy server address of the GPT service. For example: http://ip:port" "The proxy server address of the GPT service. For example: http://ip:port"
msgstr "" msgstr ""
#: settings/serializers/feature.py:96 #: settings/serializers/feature.py:119
msgid "GPT Model" msgid "GPT Model"
msgstr "" msgstr ""
#: settings/serializers/feature.py:105 #: settings/serializers/feature.py:128
msgid "Approval without login" msgid "Approval without login"
msgstr "" msgstr ""
#: settings/serializers/feature.py:106 #: settings/serializers/feature.py:129
msgid "Allow direct approval ticket without login" msgid "Allow direct approval ticket without login"
msgstr "" msgstr ""
#: settings/serializers/feature.py:110 #: settings/serializers/feature.py:133
msgid "Period" msgid "Period"
msgstr "" msgstr ""
#: settings/serializers/feature.py:111 #: settings/serializers/feature.py:134
msgid "" msgid ""
"The default authorization time period when applying for assets via a ticket" "The default authorization time period when applying for assets via a ticket"
msgstr "" msgstr ""
#: settings/serializers/feature.py:114 #: settings/serializers/feature.py:137
msgid "hour" msgid "hour"
msgstr "" msgstr ""
#: settings/serializers/feature.py:115 #: settings/serializers/feature.py:138
msgid "Unit" msgid "Unit"
msgstr "" msgstr ""
#: settings/serializers/feature.py:115 #: settings/serializers/feature.py:138
msgid "The unit of period" msgid "The unit of period"
msgstr "" msgstr ""
#: settings/serializers/feature.py:124 #: settings/serializers/feature.py:147
msgid "" msgid ""
"Allow users to execute batch commands in the Workbench - Job Center - Adhoc" "Allow users to execute batch commands in the Workbench - Job Center - Adhoc"
msgstr "" msgstr ""
#: settings/serializers/feature.py:128 #: settings/serializers/feature.py:151
msgid "Command blacklist" msgid "Command blacklist"
msgstr "" msgstr ""
#: settings/serializers/feature.py:129 #: settings/serializers/feature.py:152
msgid "Command blacklist in Adhoc" msgid "Command blacklist in Adhoc"
msgstr "" msgstr ""
#: settings/serializers/feature.py:134 #: settings/serializers/feature.py:157
#: terminal/models/virtualapp/provider.py:17 #: terminal/models/virtualapp/provider.py:17
#: terminal/models/virtualapp/virtualapp.py:36 #: terminal/models/virtualapp/virtualapp.py:36
#: terminal/models/virtualapp/virtualapp.py:97 #: terminal/models/virtualapp/virtualapp.py:97
@ -6488,11 +6557,11 @@ msgstr ""
msgid "Virtual app" msgid "Virtual app"
msgstr "" msgstr ""
#: settings/serializers/feature.py:137 #: settings/serializers/feature.py:160
msgid "Virtual App" msgid "Virtual App"
msgstr "" msgstr ""
#: settings/serializers/feature.py:139 #: settings/serializers/feature.py:162
msgid "" msgid ""
"Virtual applications, you can use the Linux operating system as an " "Virtual applications, you can use the Linux operating system as an "
"application server in remote applications." "application server in remote applications."
@ -7359,6 +7428,14 @@ msgstr ""
msgid "RDP Guide" msgid "RDP Guide"
msgstr "" msgstr ""
#: terminal/connect_methods.py:39
msgid "VNC Client"
msgstr ""
#: terminal/connect_methods.py:40
msgid "VNC Guide"
msgstr ""
#: terminal/const.py:10 #: terminal/const.py:10
msgid "Warning" msgid "Warning"
msgstr "" msgstr ""
@ -7383,7 +7460,7 @@ msgstr ""
msgid "High" msgid "High"
msgstr "" msgstr ""
#: terminal/const.py:47 terminal/const.py:84 #: terminal/const.py:47 terminal/const.py:86
#: users/templates/users/reset_password.html:54 #: users/templates/users/reset_password.html:54
msgid "Normal" msgid "Normal"
msgstr "" msgstr ""
@ -7392,47 +7469,47 @@ msgstr ""
msgid "Offline" msgid "Offline"
msgstr "" msgstr ""
#: terminal/const.py:80 #: terminal/const.py:82
msgid "Mismatch" msgid "Mismatch"
msgstr "" msgstr ""
#: terminal/const.py:85 #: terminal/const.py:87
msgid "Tunnel" msgid "Tunnel"
msgstr "" msgstr ""
#: terminal/const.py:91 #: terminal/const.py:93
msgid "Read only" msgid "Read only"
msgstr "" msgstr ""
#: terminal/const.py:92 #: terminal/const.py:94
msgid "Writable" msgid "Writable"
msgstr "" msgstr ""
#: terminal/const.py:96 #: terminal/const.py:98
msgid "Kill session" msgid "Kill session"
msgstr "" msgstr ""
#: terminal/const.py:97 #: terminal/const.py:99
msgid "Lock session" msgid "Lock session"
msgstr "" msgstr ""
#: terminal/const.py:98 #: terminal/const.py:100
msgid "Unlock session" msgid "Unlock session"
msgstr "" msgstr ""
#: terminal/const.py:103 #: terminal/const.py:105
msgid "Replay create failed" msgid "Replay create failed"
msgstr "" msgstr ""
#: terminal/const.py:104 #: terminal/const.py:106
msgid "Replay upload failed" msgid "Replay upload failed"
msgstr "" msgstr ""
#: terminal/const.py:105 #: terminal/const.py:107
msgid "Replay convert failed" msgid "Replay convert failed"
msgstr "" msgstr ""
#: terminal/const.py:106 #: terminal/const.py:108
msgid "Replay unsupported" msgid "Replay unsupported"
msgstr "" msgstr ""
@ -7573,15 +7650,19 @@ msgstr ""
msgid "SQLServer port" msgid "SQLServer port"
msgstr "" msgstr ""
#: terminal/models/component/endpoint.py:32 #: terminal/models/component/endpoint.py:25
#: terminal/models/component/endpoint.py:119 msgid "VNC port"
msgstr ""
#: terminal/models/component/endpoint.py:33
#: terminal/models/component/endpoint.py:120
#: terminal/serializers/endpoint.py:80 terminal/serializers/storage.py:41 #: terminal/serializers/endpoint.py:80 terminal/serializers/storage.py:41
#: terminal/serializers/storage.py:53 terminal/serializers/storage.py:83 #: terminal/serializers/storage.py:53 terminal/serializers/storage.py:83
#: terminal/serializers/storage.py:93 terminal/serializers/storage.py:101 #: terminal/serializers/storage.py:93 terminal/serializers/storage.py:101
msgid "Endpoint" msgid "Endpoint"
msgstr "" msgstr ""
#: terminal/models/component/endpoint.py:125 #: terminal/models/component/endpoint.py:126
msgid "Endpoint rule" msgid "Endpoint rule"
msgstr "" msgstr ""
@ -10081,10 +10162,6 @@ msgstr ""
msgid "Access key id" msgid "Access key id"
msgstr "Access key id" msgstr "Access key id"
#: xpack/plugins/cloud/serializers/account_attrs.py:41
msgid "Tenant ID"
msgstr ""
#: xpack/plugins/cloud/serializers/account_attrs.py:44 #: xpack/plugins/cloud/serializers/account_attrs.py:44
msgid "Subscription ID" msgid "Subscription ID"
msgstr "" msgstr ""

View File

@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-11-06 11:27+0800\n" "POT-Creation-Date: 2024-11-11 19:19+0800\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@ -36,7 +36,7 @@ msgstr "アセットまたはアプリケーション関連のバックアップ
#: accounts/automations/backup_account/handlers.py:156 #: accounts/automations/backup_account/handlers.py:156
#: accounts/automations/backup_account/handlers.py:295 #: accounts/automations/backup_account/handlers.py:295
#: accounts/automations/backup_account/manager.py:40 ops/serializers/job.py:76 #: accounts/automations/backup_account/manager.py:40 ops/serializers/job.py:82
#: settings/templates/ldap/_msg_import_ldap_user.html:7 #: settings/templates/ldap/_msg_import_ldap_user.html:7
msgid "Time cost" msgid "Time cost"
msgstr "時を過ごす" msgstr "時を過ごす"
@ -68,7 +68,7 @@ msgstr "仕上げ"
#: assets/serializers/automations/base.py:52 audits/const.py:64 #: assets/serializers/automations/base.py:52 audits/const.py:64
#: audits/models.py:64 audits/signal_handlers/activity_log.py:33 #: audits/models.py:64 audits/signal_handlers/activity_log.py:33
#: common/const/choices.py:65 ops/const.py:74 ops/serializers/celery.py:48 #: common/const/choices.py:65 ops/const.py:74 ops/serializers/celery.py:48
#: terminal/const.py:78 terminal/models/session/sharing.py:121 #: terminal/const.py:80 terminal/models/session/sharing.py:121
#: tickets/views/approve.py:128 #: tickets/views/approve.py:128
msgid "Success" msgid "Success"
msgstr "成功" msgstr "成功"
@ -77,7 +77,7 @@ msgstr "成功"
#: accounts/const/account.py:34 accounts/const/automation.py:109 #: accounts/const/account.py:34 accounts/const/automation.py:109
#: accounts/serializers/automations/change_secret.py:174 audits/const.py:65 #: accounts/serializers/automations/change_secret.py:174 audits/const.py:65
#: audits/signal_handlers/activity_log.py:33 common/const/choices.py:66 #: audits/signal_handlers/activity_log.py:33 common/const/choices.py:66
#: ops/const.py:76 terminal/const.py:79 xpack/plugins/cloud/const.py:47 #: ops/const.py:76 terminal/const.py:81 xpack/plugins/cloud/const.py:47
msgid "Failed" msgid "Failed"
msgstr "失敗しました" msgstr "失敗しました"
@ -150,7 +150,7 @@ msgid "Access key"
msgstr "アクセスキー" msgstr "アクセスキー"
#: accounts/const/account.py:9 authentication/backends/passkey/models.py:16 #: accounts/const/account.py:9 authentication/backends/passkey/models.py:16
#: authentication/models/sso_token.py:14 settings/serializers/feature.py:55 #: authentication/models/sso_token.py:14 settings/serializers/feature.py:75
msgid "Token" msgid "Token"
msgstr "トークン" msgstr "トークン"
@ -305,12 +305,12 @@ msgstr "作成のみ"
msgid "Email" msgid "Email"
msgstr "メール" msgstr "メール"
#: accounts/const/automation.py:105 terminal/const.py:87 #: accounts/const/automation.py:105 terminal/const.py:89
msgid "SFTP" msgid "SFTP"
msgstr "SFTP" msgstr "SFTP"
#: accounts/const/automation.py:111 assets/serializers/automations/base.py:54 #: accounts/const/automation.py:111 assets/serializers/automations/base.py:54
#: common/const/choices.py:63 terminal/const.py:77 tickets/const.py:29 #: common/const/choices.py:63 terminal/const.py:79 tickets/const.py:29
#: tickets/const.py:38 #: tickets/const.py:38
msgid "Pending" msgid "Pending"
msgstr "未定" msgstr "未定"
@ -320,10 +320,14 @@ msgstr "未定"
msgid "Database" msgid "Database"
msgstr "データベース" msgstr "データベース"
#: accounts/const/vault.py:9 settings/serializers/feature.py:46 #: accounts/const/vault.py:9 settings/serializers/feature.py:70
msgid "HCP Vault" msgid "HCP Vault"
msgstr "HashiCorp Vault" msgstr "HashiCorp Vault"
#: accounts/const/vault.py:10 settings/serializers/feature.py:83
msgid "Azure Key Vault"
msgstr "Azure Key Vault"
#: accounts/mixins.py:35 #: accounts/mixins.py:35
msgid "Export all" msgid "Export all"
msgstr "すべてエクスポート" msgstr "すべてエクスポート"
@ -468,9 +472,9 @@ msgstr "アカウントバックアップ計画"
#: accounts/models/automations/backup_account.py:120 #: accounts/models/automations/backup_account.py:120
#: assets/models/automations/base.py:115 audits/models.py:65 #: assets/models/automations/base.py:115 audits/models.py:65
#: ops/models/base.py:55 ops/models/celery.py:89 ops/models/job.py:242 #: ops/models/base.py:55 ops/models/celery.py:89 ops/models/job.py:247
#: ops/templates/ops/celery_task_log.html:101 #: ops/templates/ops/celery_task_log.html:101
#: perms/models/asset_permission.py:78 settings/serializers/feature.py:25 #: perms/models/asset_permission.py:78 settings/serializers/feature.py:26
#: settings/templates/ldap/_msg_import_ldap_user.html:5 #: settings/templates/ldap/_msg_import_ldap_user.html:5
#: terminal/models/applet/host.py:141 terminal/models/session/session.py:45 #: terminal/models/applet/host.py:141 terminal/models/session/session.py:45
#: tickets/models/ticket/apply_application.py:30 #: tickets/models/ticket/apply_application.py:30
@ -507,7 +511,7 @@ msgstr "理由"
#: accounts/models/automations/backup_account.py:136 #: accounts/models/automations/backup_account.py:136
#: accounts/serializers/automations/change_secret.py:117 #: accounts/serializers/automations/change_secret.py:117
#: accounts/serializers/automations/change_secret.py:152 #: accounts/serializers/automations/change_secret.py:152
#: ops/serializers/job.py:74 terminal/serializers/session.py:54 #: ops/serializers/job.py:80 terminal/serializers/session.py:54
msgid "Is success" msgid "Is success"
msgstr "成功は" msgstr "成功は"
@ -582,7 +586,7 @@ msgstr "開始日"
#: accounts/models/automations/change_secret.py:42 #: accounts/models/automations/change_secret.py:42
#: assets/models/automations/base.py:116 ops/models/base.py:56 #: assets/models/automations/base.py:116 ops/models/base.py:56
#: ops/models/celery.py:90 ops/models/job.py:243 #: ops/models/celery.py:90 ops/models/job.py:248
#: terminal/models/applet/host.py:142 #: terminal/models/applet/host.py:142
msgid "Date finished" msgid "Date finished"
msgstr "終了日" msgstr "終了日"
@ -590,7 +594,7 @@ msgstr "終了日"
#: accounts/models/automations/change_secret.py:44 #: accounts/models/automations/change_secret.py:44
#: assets/models/automations/base.py:113 #: assets/models/automations/base.py:113
#: assets/serializers/automations/base.py:39 audits/models.py:208 #: assets/serializers/automations/base.py:39 audits/models.py:208
#: audits/serializers.py:54 ops/models/base.py:49 ops/models/job.py:234 #: audits/serializers.py:54 ops/models/base.py:49 ops/models/job.py:239
#: terminal/models/applet/applet.py:331 terminal/models/applet/host.py:140 #: terminal/models/applet/applet.py:331 terminal/models/applet/host.py:140
#: terminal/models/component/status.py:30 #: terminal/models/component/status.py:30
#: terminal/models/virtualapp/virtualapp.py:99 #: terminal/models/virtualapp/virtualapp.py:99
@ -665,12 +669,12 @@ msgstr "トリガー方式"
#: audits/models.py:92 audits/serializers.py:84 #: audits/models.py:92 audits/serializers.py:84
#: authentication/serializers/connect_token_secret.py:119 #: authentication/serializers/connect_token_secret.py:119
#: authentication/templates/authentication/_access_key_modal.html:34 #: authentication/templates/authentication/_access_key_modal.html:34
#: behemoth/serializers/environment.py:13 perms/serializers/permission.py:52 #: perms/serializers/permission.py:52 perms/serializers/permission.py:74
#: perms/serializers/permission.py:74 tickets/serializers/ticket/ticket.py:21 #: tickets/serializers/ticket/ticket.py:21
msgid "Action" msgid "Action"
msgstr "アクション" msgstr "アクション"
#: accounts/models/automations/push_account.py:57 #: accounts/models/automations/push_account.py:58
msgid "Push asset account" msgid "Push asset account"
msgstr "アカウントプッシュ" msgstr "アカウントプッシュ"
@ -719,13 +723,13 @@ msgstr "パスワードルール"
#: authentication/serializers/connect_token_secret.py:113 #: authentication/serializers/connect_token_secret.py:113
#: authentication/serializers/connect_token_secret.py:169 labels/models.py:11 #: authentication/serializers/connect_token_secret.py:169 labels/models.py:11
#: ops/mixin.py:28 ops/models/adhoc.py:19 ops/models/celery.py:15 #: ops/mixin.py:28 ops/models/adhoc.py:19 ops/models/celery.py:15
#: ops/models/celery.py:81 ops/models/job.py:142 ops/models/playbook.py:30 #: ops/models/celery.py:81 ops/models/job.py:145 ops/models/playbook.py:28
#: ops/serializers/job.py:18 orgs/models.py:82 #: ops/models/variable.py:9 ops/serializers/job.py:19 orgs/models.py:82
#: perms/models/asset_permission.py:61 rbac/models/role.py:29 #: perms/models/asset_permission.py:61 rbac/models/role.py:29
#: rbac/serializers/role.py:28 settings/models.py:35 settings/models.py:184 #: rbac/serializers/role.py:28 settings/models.py:35 settings/models.py:184
#: settings/serializers/msg.py:89 settings/serializers/terminal.py:9 #: settings/serializers/msg.py:89 settings/serializers/terminal.py:9
#: terminal/models/applet/applet.py:34 terminal/models/component/endpoint.py:13 #: terminal/models/applet/applet.py:34 terminal/models/component/endpoint.py:13
#: terminal/models/component/endpoint.py:111 #: terminal/models/component/endpoint.py:112
#: terminal/models/component/storage.py:26 terminal/models/component/task.py:13 #: terminal/models/component/storage.py:26 terminal/models/component/task.py:13
#: terminal/models/component/terminal.py:85 #: terminal/models/component/terminal.py:85
#: terminal/models/virtualapp/provider.py:10 #: terminal/models/virtualapp/provider.py:10
@ -884,7 +888,7 @@ msgstr "カテゴリ"
#: assets/serializers/asset/common.py:146 assets/serializers/platform.py:159 #: assets/serializers/asset/common.py:146 assets/serializers/platform.py:159
#: assets/serializers/platform.py:171 audits/serializers.py:53 #: assets/serializers/platform.py:171 audits/serializers.py:53
#: audits/serializers.py:170 #: audits/serializers.py:170
#: authentication/serializers/connect_token_secret.py:126 ops/models/job.py:150 #: authentication/serializers/connect_token_secret.py:126 ops/models/job.py:153
#: perms/serializers/user_permission.py:27 terminal/models/applet/applet.py:40 #: perms/serializers/user_permission.py:27 terminal/models/applet/applet.py:40
#: terminal/models/component/storage.py:58 #: terminal/models/component/storage.py:58
#: terminal/models/component/storage.py:152 terminal/serializers/applet.py:29 #: terminal/models/component/storage.py:152 terminal/serializers/applet.py:29
@ -920,10 +924,8 @@ msgstr "編集済み"
#: assets/models/automations/base.py:19 #: assets/models/automations/base.py:19
#: assets/serializers/automations/base.py:20 assets/serializers/domain.py:34 #: assets/serializers/automations/base.py:20 assets/serializers/domain.py:34
#: assets/serializers/platform.py:180 assets/serializers/platform.py:212 #: assets/serializers/platform.py:180 assets/serializers/platform.py:212
#: authentication/api/connection_token.py:410 #: authentication/api/connection_token.py:410 ops/models/base.py:17
#: behemoth/serializers/environment.py:11 #: ops/models/job.py:155 ops/serializers/job.py:20
#: behemoth/serializers/environment.py:22 ops/models/base.py:17
#: ops/models/job.py:152 ops/serializers/job.py:19
#: perms/serializers/permission.py:46 #: perms/serializers/permission.py:46
#: terminal/templates/terminal/_msg_command_execute_alert.html:16 #: terminal/templates/terminal/_msg_command_execute_alert.html:16
#: xpack/plugins/cloud/manager.py:89 #: xpack/plugins/cloud/manager.py:89
@ -1074,11 +1076,11 @@ msgstr "关联平台,可以配置推送参数,如果不关联,则使用默
#: accounts/serializers/account/virtual.py:19 assets/models/cmd_filter.py:40 #: accounts/serializers/account/virtual.py:19 assets/models/cmd_filter.py:40
#: assets/models/cmd_filter.py:88 common/db/models.py:36 ops/models/adhoc.py:25 #: assets/models/cmd_filter.py:88 common/db/models.py:36 ops/models/adhoc.py:25
#: ops/models/job.py:158 ops/models/playbook.py:33 rbac/models/role.py:37 #: ops/models/job.py:163 ops/models/playbook.py:31 rbac/models/role.py:37
#: settings/models.py:40 terminal/models/applet/applet.py:46 #: settings/models.py:40 terminal/models/applet/applet.py:46
#: terminal/models/applet/applet.py:332 terminal/models/applet/host.py:143 #: terminal/models/applet/applet.py:332 terminal/models/applet/host.py:143
#: terminal/models/component/endpoint.py:26 #: terminal/models/component/endpoint.py:27
#: terminal/models/component/endpoint.py:121 #: terminal/models/component/endpoint.py:122
#: terminal/models/session/session.py:47 #: terminal/models/session/session.py:47
#: terminal/models/virtualapp/virtualapp.py:28 tickets/models/comment.py:32 #: terminal/models/virtualapp/virtualapp.py:28 tickets/models/comment.py:32
#: tickets/models/ticket/general.py:298 users/models/user/__init__.py:91 #: tickets/models/ticket/general.py:298 users/models/user/__init__.py:91
@ -1099,7 +1101,8 @@ msgstr ""
#: accounts/serializers/automations/base.py:23 #: accounts/serializers/automations/base.py:23
#: assets/models/asset/common.py:176 assets/serializers/asset/common.py:172 #: assets/models/asset/common.py:176 assets/serializers/asset/common.py:172
#: assets/serializers/automations/base.py:21 perms/serializers/permission.py:47 #: assets/serializers/automations/base.py:21 ops/serializers/job.py:21
#: perms/serializers/permission.py:47
msgid "Nodes" msgid "Nodes"
msgstr "ノード" msgstr "ノード"
@ -1382,12 +1385,12 @@ msgid "Notify and warn"
msgstr "プロンプトと警告" msgstr "プロンプトと警告"
#: acls/models/base.py:37 assets/models/cmd_filter.py:76 #: acls/models/base.py:37 assets/models/cmd_filter.py:76
#: terminal/models/component/endpoint.py:114 xpack/plugins/cloud/models.py:316 #: terminal/models/component/endpoint.py:115 xpack/plugins/cloud/models.py:316
msgid "Priority" msgid "Priority"
msgstr "優先順位" msgstr "優先順位"
#: acls/models/base.py:38 assets/models/cmd_filter.py:76 #: acls/models/base.py:38 assets/models/cmd_filter.py:76
#: terminal/models/component/endpoint.py:115 xpack/plugins/cloud/models.py:317 #: terminal/models/component/endpoint.py:116 xpack/plugins/cloud/models.py:317
msgid "1-100, the lower the value will be match first" msgid "1-100, the lower the value will be match first"
msgstr "1-100、低い値は最初に一致します" msgstr "1-100、低い値は最初に一致します"
@ -1401,8 +1404,8 @@ msgstr "レビュー担当者"
#: authentication/models/connection_token.py:53 #: authentication/models/connection_token.py:53
#: authentication/models/ssh_key.py:13 #: authentication/models/ssh_key.py:13
#: authentication/templates/authentication/_access_key_modal.html:32 #: authentication/templates/authentication/_access_key_modal.html:32
#: perms/models/asset_permission.py:82 terminal/models/component/endpoint.py:27 #: perms/models/asset_permission.py:82 terminal/models/component/endpoint.py:28
#: terminal/models/component/endpoint.py:122 #: terminal/models/component/endpoint.py:123
#: terminal/models/session/sharing.py:29 terminal/serializers/terminal.py:44 #: terminal/models/session/sharing.py:29 terminal/serializers/terminal.py:44
#: tickets/const.py:36 #: tickets/const.py:36
msgid "Active" msgid "Active"
@ -1422,7 +1425,7 @@ msgid "Accounts"
msgstr "アカウント" msgstr "アカウント"
#: acls/models/command_acl.py:16 assets/models/cmd_filter.py:60 #: acls/models/command_acl.py:16 assets/models/cmd_filter.py:60
#: ops/serializers/job.py:73 terminal/const.py:86 #: ops/serializers/job.py:79 terminal/const.py:88
#: terminal/models/session/session.py:43 terminal/serializers/command.py:18 #: terminal/models/session/session.py:43 terminal/serializers/command.py:18
#: terminal/templates/terminal/_msg_command_alert.html:12 #: terminal/templates/terminal/_msg_command_alert.html:12
#: terminal/templates/terminal/_msg_command_execute_alert.html:10 #: terminal/templates/terminal/_msg_command_execute_alert.html:10
@ -1436,7 +1439,7 @@ msgid "Regex"
msgstr "正規情報" msgstr "正規情報"
#: acls/models/command_acl.py:26 assets/models/cmd_filter.py:79 #: acls/models/command_acl.py:26 assets/models/cmd_filter.py:79
#: settings/models.py:185 settings/serializers/feature.py:20 #: settings/models.py:185 settings/serializers/feature.py:21
#: settings/serializers/msg.py:78 xpack/plugins/license/models.py:30 #: settings/serializers/msg.py:78 xpack/plugins/license/models.py:30
msgid "Content" msgid "Content"
msgstr "コンテンツ" msgstr "コンテンツ"
@ -1700,7 +1703,7 @@ msgid "Authentication failed"
msgstr "認証に失敗しました" msgstr "認証に失敗しました"
#: assets/automations/ping_gateway/manager.py:60 #: assets/automations/ping_gateway/manager.py:60
#: assets/automations/ping_gateway/manager.py:86 terminal/const.py:102 #: assets/automations/ping_gateway/manager.py:86 terminal/const.py:104
msgid "Connect failed" msgid "Connect failed"
msgstr "接続に失敗しました" msgstr "接続に失敗しました"
@ -1748,9 +1751,9 @@ msgstr "脚本"
#: assets/const/category.py:10 assets/models/asset/host.py:8 #: assets/const/category.py:10 assets/models/asset/host.py:8
#: settings/serializers/auth/radius.py:17 settings/serializers/auth/sms.py:76 #: settings/serializers/auth/radius.py:17 settings/serializers/auth/sms.py:76
#: settings/serializers/feature.py:52 settings/serializers/msg.py:30 #: settings/serializers/feature.py:72 settings/serializers/feature.py:85
#: terminal/models/component/endpoint.py:14 terminal/serializers/applet.py:17 #: settings/serializers/msg.py:30 terminal/models/component/endpoint.py:14
#: xpack/plugins/cloud/manager.py:89 #: terminal/serializers/applet.py:17 xpack/plugins/cloud/manager.py:89
#: xpack/plugins/cloud/serializers/account_attrs.py:72 #: xpack/plugins/cloud/serializers/account_attrs.py:72
msgid "Host" msgid "Host"
msgstr "ホスト" msgstr "ホスト"
@ -2062,18 +2065,19 @@ msgstr "証明書チェックを無視"
msgid "Postgresql SSL mode" msgid "Postgresql SSL mode"
msgstr "PostgreSQL SSL モード" msgstr "PostgreSQL SSL モード"
#: assets/models/asset/gpt.py:8 settings/serializers/feature.py:92 #: assets/models/asset/gpt.py:8 settings/serializers/feature.py:115
msgid "Proxy" msgid "Proxy"
msgstr "プロキシー" msgstr "プロキシー"
#: assets/models/automations/base.py:18 assets/models/cmd_filter.py:32 #: assets/models/automations/base.py:18 assets/models/cmd_filter.py:32
#: assets/models/node.py:553 perms/models/asset_permission.py:72 #: assets/models/node.py:553 ops/models/job.py:156
#: tickets/models/ticket/apply_asset.py:14 xpack/plugins/cloud/models.py:388 #: perms/models/asset_permission.py:72 tickets/models/ticket/apply_asset.py:14
#: xpack/plugins/cloud/models.py:388
msgid "Node" msgid "Node"
msgstr "ノード" msgstr "ノード"
#: assets/models/automations/base.py:22 ops/models/job.py:237 #: assets/models/automations/base.py:22 ops/models/job.py:242
#: settings/serializers/auth/sms.py:108 #: ops/serializers/job.py:23 settings/serializers/auth/sms.py:108
msgid "Parameters" msgid "Parameters"
msgstr "パラメータ" msgstr "パラメータ"
@ -2086,7 +2090,7 @@ msgid "Asset automation task"
msgstr "アセットの自動化タスク" msgstr "アセットの自動化タスク"
#: assets/models/automations/base.py:114 assets/models/cmd_filter.py:41 #: assets/models/automations/base.py:114 assets/models/cmd_filter.py:41
#: common/db/models.py:34 ops/models/base.py:54 ops/models/job.py:241 #: common/db/models.py:34 ops/models/base.py:54 ops/models/job.py:246
#: users/models/user/__init__.py:311 #: users/models/user/__init__.py:311
msgid "Date created" msgid "Date created"
msgstr "作成された日付" msgstr "作成された日付"
@ -2218,7 +2222,7 @@ msgstr "ノードを一致させることができます"
msgid "Primary" msgid "Primary"
msgstr "主要" msgstr "主要"
#: assets/models/platform.py:18 #: assets/models/platform.py:18 ops/models/variable.py:20
msgid "Required" msgid "Required"
msgstr "必要" msgstr "必要"
@ -2786,7 +2790,7 @@ msgstr "タグ"
msgid "operate_log_id" msgid "operate_log_id"
msgstr "操作ログID" msgstr "操作ログID"
#: audits/backends/db.py:111 #: audits/backends/db.py:111 ops/models/variable.py:19
msgid "Tips" msgid "Tips"
msgstr "謎々" msgstr "謎々"
@ -3030,8 +3034,8 @@ msgid "Offline user session"
msgstr "オフラインユーザセッション" msgstr "オフラインユーザセッション"
#: audits/serializers.py:33 ops/models/adhoc.py:24 ops/models/base.py:16 #: audits/serializers.py:33 ops/models/adhoc.py:24 ops/models/base.py:16
#: ops/models/base.py:53 ops/models/celery.py:87 ops/models/job.py:151 #: ops/models/base.py:53 ops/models/celery.py:87 ops/models/job.py:154
#: ops/models/job.py:240 ops/models/playbook.py:32 #: ops/models/job.py:245 ops/models/playbook.py:30 ops/models/variable.py:17
#: terminal/models/session/sharing.py:25 #: terminal/models/session/sharing.py:25
msgid "Creator" msgid "Creator"
msgstr "作成者" msgstr "作成者"
@ -3596,7 +3600,7 @@ msgid "Please change your password"
msgstr "パスワードを変更してください" msgstr "パスワードを変更してください"
#: authentication/models/access_key.py:22 #: authentication/models/access_key.py:22
#: terminal/models/component/endpoint.py:112 #: terminal/models/component/endpoint.py:113
msgid "IP group" msgid "IP group"
msgstr "IP グループ" msgstr "IP グループ"
@ -3891,7 +3895,7 @@ msgstr "コードエラー"
#: authentication/templates/authentication/_msg_oauth_bind.html:3 #: authentication/templates/authentication/_msg_oauth_bind.html:3
#: authentication/templates/authentication/_msg_reset_password.html:3 #: authentication/templates/authentication/_msg_reset_password.html:3
#: authentication/templates/authentication/_msg_reset_password_code.html:9 #: authentication/templates/authentication/_msg_reset_password_code.html:9
#: jumpserver/conf.py:522 #: jumpserver/conf.py:529
#: perms/templates/perms/_msg_item_permissions_expire.html:3 #: perms/templates/perms/_msg_item_permissions_expire.html:3
#: tickets/templates/tickets/approve_check_password.html:32 #: tickets/templates/tickets/approve_check_password.html:32
#: users/templates/users/_msg_account_expire_reminder.html:4 #: users/templates/users/_msg_account_expire_reminder.html:4
@ -4662,16 +4666,16 @@ msgstr "特殊文字を含むべきではない"
msgid "The mobile phone number format is incorrect" msgid "The mobile phone number format is incorrect"
msgstr "携帯電話番号の形式が正しくありません" msgstr "携帯電話番号の形式が正しくありません"
#: jumpserver/conf.py:516 #: jumpserver/conf.py:523
#, python-brace-format #, python-brace-format
msgid "The verification code is: {code}" msgid "The verification code is: {code}"
msgstr "認証コードは: {code}" msgstr "認証コードは: {code}"
#: jumpserver/conf.py:521 #: jumpserver/conf.py:528
msgid "Create account successfully" msgid "Create account successfully"
msgstr "アカウントを正常に作成" msgstr "アカウントを正常に作成"
#: jumpserver/conf.py:523 #: jumpserver/conf.py:530
msgid "Your account has been created successfully" msgid "Your account has been created successfully"
msgstr "アカウントが正常に作成されました" msgstr "アカウントが正常に作成されました"
@ -4778,7 +4782,7 @@ msgid ""
" work orders, and other notifications" " work orders, and other notifications"
msgstr "システムの警告やチケットなどを送信するためには、このタスクを実行します" msgstr "システムの警告やチケットなどを送信するためには、このタスクを実行します"
#: ops/ansible/inventory.py:116 ops/models/job.py:65 #: ops/ansible/inventory.py:116 ops/models/job.py:68
msgid "No account available" msgid "No account available"
msgstr "利用可能なアカウントがありません" msgstr "利用可能なアカウントがありません"
@ -4802,7 +4806,7 @@ msgstr "タスクは存在しません"
msgid "Task {} args or kwargs error" msgid "Task {} args or kwargs error"
msgstr "タスク実行パラメータエラー" msgstr "タスク実行パラメータエラー"
#: ops/api/job.py:83 #: ops/api/job.py:68
#, python-brace-format #, python-brace-format
msgid "" msgid ""
"Asset ({asset}) must have at least one of the following protocols added: " "Asset ({asset}) must have at least one of the following protocols added: "
@ -4811,22 +4815,22 @@ msgstr ""
"資産({asset})には、少なくともSSH、SFTP、WinRMのいずれか一つのプロトコルを追加" "資産({asset})には、少なくともSSH、SFTP、WinRMのいずれか一つのプロトコルを追加"
"する必要があります" "する必要があります"
#: ops/api/job.py:84 #: ops/api/job.py:69
#, python-brace-format #, python-brace-format
msgid "Asset ({asset}) authorization is missing SSH, SFTP, or WinRM protocol" msgid "Asset ({asset}) authorization is missing SSH, SFTP, or WinRM protocol"
msgstr "" msgstr ""
"資産({asset})の認証にはSSH、SFTP、またはWinRMプロトコルが不足しています" "資産({asset})の認証にはSSH、SFTP、またはWinRMプロトコルが不足しています"
#: ops/api/job.py:85 #: ops/api/job.py:70
#, python-brace-format #, python-brace-format
msgid "Asset ({asset}) authorization lacks upload permissions" msgid "Asset ({asset}) authorization lacks upload permissions"
msgstr "資産({asset})の認証にはアップロード権限が不足しています" msgstr "資産({asset})の認証にはアップロード権限が不足しています"
#: ops/api/job.py:170 #: ops/api/job.py:157
msgid "Duplicate file exists" msgid "Duplicate file exists"
msgstr "重複したファイルが存在する" msgstr "重複したファイルが存在する"
#: ops/api/job.py:175 #: ops/api/job.py:162
#, python-brace-format #, python-brace-format
msgid "" msgid ""
"File size exceeds maximum limit. Please select a file smaller than {limit}MB" "File size exceeds maximum limit. Please select a file smaller than {limit}MB"
@ -4834,7 +4838,7 @@ msgstr ""
"ファイルサイズが最大制限を超えています。{limit}MB より小さいファイルを選択し" "ファイルサイズが最大制限を超えています。{limit}MB より小さいファイルを選択し"
"てください。" "てください。"
#: ops/api/job.py:244 #: ops/api/job.py:231
msgid "" msgid ""
"The task is being created and cannot be interrupted. Please try again later." "The task is being created and cannot be interrupted. Please try again later."
msgstr "タスクを作成中で、中断できません。後でもう一度お試しください。" msgstr "タスクを作成中で、中断できません。後でもう一度お試しください。"
@ -4903,11 +4907,13 @@ msgstr "空欄"
msgid "VCS" msgid "VCS"
msgstr "VCS" msgstr "VCS"
#: ops/const.py:38 ops/models/adhoc.py:44 settings/serializers/feature.py:123 #: ops/const.py:38 ops/models/adhoc.py:44 ops/models/variable.py:26
#: settings/serializers/feature.py:146
msgid "Adhoc" msgid "Adhoc"
msgstr "コマンド" msgstr "コマンド"
#: ops/const.py:39 ops/models/job.py:149 ops/models/playbook.py:91 #: ops/const.py:39 ops/models/job.py:152 ops/models/playbook.py:89
#: ops/models/variable.py:23
msgid "Playbook" msgid "Playbook"
msgstr "Playbook" msgstr "Playbook"
@ -5019,16 +5025,16 @@ msgstr "定期的または定期的に設定を行う必要があります"
msgid "Pattern" msgid "Pattern"
msgstr "パターン" msgstr "パターン"
#: ops/models/adhoc.py:22 ops/models/job.py:146 #: ops/models/adhoc.py:22 ops/models/job.py:149
msgid "Module" msgid "Module"
msgstr "モジュール" msgstr "モジュール"
#: ops/models/adhoc.py:23 ops/models/celery.py:82 ops/models/job.py:144 #: ops/models/adhoc.py:23 ops/models/celery.py:82 ops/models/job.py:147
#: terminal/models/component/task.py:14 #: terminal/models/component/task.py:14
msgid "Args" msgid "Args"
msgstr "アルグ" msgstr "アルグ"
#: ops/models/adhoc.py:26 ops/models/playbook.py:36 ops/serializers/mixin.py:10 #: ops/models/adhoc.py:26 ops/models/playbook.py:34 ops/serializers/mixin.py:10
#: rbac/models/role.py:31 rbac/models/rolebinding.py:46 #: rbac/models/role.py:31 rbac/models/rolebinding.py:46
#: rbac/serializers/role.py:12 settings/serializers/auth/oauth2.py:37 #: rbac/serializers/role.py:12 settings/serializers/auth/oauth2.py:37
msgid "Scope" msgid "Scope"
@ -5042,16 +5048,16 @@ msgstr "アカウント ポリシー"
msgid "Last execution" msgid "Last execution"
msgstr "最後の実行" msgstr "最後の実行"
#: ops/models/base.py:22 ops/serializers/job.py:17 #: ops/models/base.py:22 ops/serializers/job.py:18
msgid "Date last run" msgid "Date last run"
msgstr "最終実行日" msgstr "最終実行日"
#: ops/models/base.py:51 ops/models/job.py:238 #: ops/models/base.py:51 ops/models/job.py:243
#: xpack/plugins/cloud/models.py:225 #: xpack/plugins/cloud/models.py:225
msgid "Result" msgid "Result"
msgstr "結果" msgstr "結果"
#: ops/models/base.py:52 ops/models/job.py:239 #: ops/models/base.py:52 ops/models/job.py:244
#: xpack/plugins/cloud/manager.py:99 #: xpack/plugins/cloud/manager.py:99
msgid "Summary" msgid "Summary"
msgstr "Summary" msgstr "Summary"
@ -5080,52 +5086,52 @@ msgstr "発売日"
msgid "Celery Task Execution" msgid "Celery Task Execution"
msgstr "Celery タスク実行" msgstr "Celery タスク実行"
#: ops/models/job.py:147 #: ops/models/job.py:150
msgid "Run dir" msgid "Run dir"
msgstr "実行ディレクトリ" msgstr "実行ディレクトリ"
#: ops/models/job.py:148 #: ops/models/job.py:151
msgid "Timeout (Seconds)" msgid "Timeout (Seconds)"
msgstr "タイムアウト(秒)" msgstr "タイムアウト(秒)"
#: ops/models/job.py:153 #: ops/models/job.py:157
msgid "Use Parameter Define" msgid "Use Parameter Define"
msgstr "パラメータ定義を使用する" msgstr "パラメータ定義を使用する"
#: ops/models/job.py:154 #: ops/models/job.py:158
msgid "Parameters define" msgid "Parameters define"
msgstr "パラメータ定義" msgstr "パラメータ定義"
#: ops/models/job.py:155 #: ops/models/job.py:160
msgid "Run as" msgid "Run as"
msgstr "実行アカウント (じっこうアカウント)" msgstr "実行アカウント (じっこうアカウント)"
#: ops/models/job.py:157 #: ops/models/job.py:162
msgid "Run as policy" msgid "Run as policy"
msgstr "アカウントポリシー " msgstr "アカウントポリシー "
#: ops/models/job.py:222 ops/serializers/job.py:92 #: ops/models/job.py:227 ops/models/variable.py:28 ops/serializers/job.py:98
#: terminal/notifications.py:182 #: terminal/notifications.py:182
msgid "Job" msgid "Job"
msgstr "ジョブ#ジョブ#" msgstr "ジョブ#ジョブ#"
#: ops/models/job.py:245 #: ops/models/job.py:250
msgid "Material" msgid "Material"
msgstr "Material" msgstr "Material"
#: ops/models/job.py:247 #: ops/models/job.py:252
msgid "Material Type" msgid "Material Type"
msgstr "Material を選択してオプションを設定します。" msgstr "Material を選択してオプションを設定します。"
#: ops/models/job.py:558 #: ops/models/job.py:564
msgid "Job Execution" msgid "Job Execution"
msgstr "ジョブ実行" msgstr "ジョブ実行"
#: ops/models/playbook.py:35 #: ops/models/playbook.py:33
msgid "CreateMethod" msgid "CreateMethod"
msgstr "创建方式" msgstr "创建方式"
#: ops/models/playbook.py:37 #: ops/models/playbook.py:35
msgid "VCS URL" msgid "VCS URL"
msgstr "VCS URL" msgstr "VCS URL"
@ -5165,27 +5171,27 @@ msgstr "ジョブ実行"
msgid "Next execution time" msgid "Next execution time"
msgstr "最後の実行" msgstr "最後の実行"
#: ops/serializers/job.py:15 #: ops/serializers/job.py:17
msgid "Execute after saving" msgid "Execute after saving"
msgstr "保存後に実行" msgstr "保存後に実行"
#: ops/serializers/job.py:52 terminal/serializers/session.py:49 #: ops/serializers/job.py:58 terminal/serializers/session.py:49
msgid "Duration" msgid "Duration"
msgstr "きかん" msgstr "きかん"
#: ops/serializers/job.py:72 #: ops/serializers/job.py:78
msgid "Job type" msgid "Job type"
msgstr "タスクの種類" msgstr "タスクの種類"
#: ops/serializers/job.py:75 terminal/serializers/session.py:58 #: ops/serializers/job.py:81 terminal/serializers/session.py:58
msgid "Is finished" msgid "Is finished"
msgstr "終了しました" msgstr "終了しました"
#: ops/serializers/job.py:89 #: ops/serializers/job.py:95
msgid "Task id" msgid "Task id"
msgstr "タスク ID" msgstr "タスク ID"
#: ops/serializers/job.py:98 #: ops/serializers/job.py:104
msgid "You do not have permission for the current job." msgid "You do not have permission for the current job."
msgstr "あなたは現在のジョブの権限を持っていません。" msgstr "あなたは現在のジョブの権限を持っていません。"
@ -5193,7 +5199,7 @@ msgstr "あなたは現在のジョブの権限を持っていません。"
msgid "Run ansible task" msgid "Run ansible task"
msgstr "Ansible タスクを実行する" msgstr "Ansible タスクを実行する"
#: ops/tasks.py:54 #: ops/tasks.py:56
msgid "" msgid ""
"Execute scheduled adhoc and playbooks, periodically invoking the task for " "Execute scheduled adhoc and playbooks, periodically invoking the task for "
"execution" "execution"
@ -5201,29 +5207,29 @@ msgstr ""
"タイムスケジュールのショートカットコマンドやplaybookを実行するときは、このタ" "タイムスケジュールのショートカットコマンドやplaybookを実行するときは、このタ"
"スクを呼び出します" "スクを呼び出します"
#: ops/tasks.py:82 #: ops/tasks.py:88
msgid "Run ansible task execution" msgid "Run ansible task execution"
msgstr "Ansible タスクの実行を開始する" msgstr "Ansible タスクの実行を開始する"
#: ops/tasks.py:85 #: ops/tasks.py:91
msgid "Execute the task when manually adhoc or playbooks" msgid "Execute the task when manually adhoc or playbooks"
msgstr "" msgstr ""
"手動でショートカットコマンドやplaybookを実行するときは、このタスクを実行しま" "手動でショートカットコマンドやplaybookを実行するときは、このタスクを実行しま"
"す" "す"
#: ops/tasks.py:99 #: ops/tasks.py:107
msgid "Clear celery periodic tasks" msgid "Clear celery periodic tasks"
msgstr "タスクログを定期的にクリアする" msgstr "タスクログを定期的にクリアする"
#: ops/tasks.py:101 #: ops/tasks.py:109
msgid "At system startup, clean up celery tasks that no longer exist" msgid "At system startup, clean up celery tasks that no longer exist"
msgstr "システム起動時、既に存在しないceleryのタスクをクリーニングします" msgstr "システム起動時、既に存在しないceleryのタスクをクリーニングします"
#: ops/tasks.py:125 #: ops/tasks.py:133
msgid "Create or update periodic tasks" msgid "Create or update periodic tasks"
msgstr "定期的なタスクの作成または更新" msgstr "定期的なタスクの作成または更新"
#: ops/tasks.py:127 #: ops/tasks.py:135
msgid "" msgid ""
"With version iterations, new tasks may be added, or task names and execution " "With version iterations, new tasks may be added, or task names and execution "
"times may \n" "times may \n"
@ -5235,11 +5241,11 @@ msgstr ""
"行時間が変更される可能性があるため、システムが起動すると、タスクを登録した" "行時間が変更される可能性があるため、システムが起動すると、タスクを登録した"
"り、タスクのパラメータを更新したりします" "り、タスクのパラメータを更新したりします"
#: ops/tasks.py:140 #: ops/tasks.py:148
msgid "Periodic check service performance" msgid "Periodic check service performance"
msgstr "サービスのパフォーマンスを定期的に確認する" msgstr "サービスのパフォーマンスを定期的に確認する"
#: ops/tasks.py:142 #: ops/tasks.py:150
msgid "" msgid ""
"Check every hour whether each component is offline and whether the CPU, " "Check every hour whether each component is offline and whether the CPU, "
"memory, \n" "memory, \n"
@ -5249,11 +5255,11 @@ msgstr ""
"毎時、各コンポーネントがオフラインになっていないか、CPU、メモリ、ディスク使用" "毎時、各コンポーネントがオフラインになっていないか、CPU、メモリ、ディスク使用"
"率が閾値を超えていないかをチェックし、管理者にメッセージで警告を送ります" "率が閾値を超えていないかをチェックし、管理者にメッセージで警告を送ります"
#: ops/tasks.py:152 #: ops/tasks.py:160
msgid "Clean up unexpected jobs" msgid "Clean up unexpected jobs"
msgstr "例外ジョブのクリーンアップ" msgstr "例外ジョブのクリーンアップ"
#: ops/tasks.py:154 #: ops/tasks.py:162
msgid "" msgid ""
"Due to exceptions caused by executing adhoc and playbooks in the Job " "Due to exceptions caused by executing adhoc and playbooks in the Job "
"Center, \n" "Center, \n"
@ -5267,11 +5273,11 @@ msgstr ""
"スクの状態が更新されないことがあります。そのため、システムは毎時間、3時間以上" "スクの状態が更新されないことがあります。そのため、システムは毎時間、3時間以上"
"終了していない異常なジョブをクリーニングし、タスクを失敗とマークします" "終了していない異常なジョブをクリーニングし、タスクを失敗とマークします"
#: ops/tasks.py:167 #: ops/tasks.py:175
msgid "Clean job_execution db record" msgid "Clean job_execution db record"
msgstr "ジョブセンター実行履歴のクリーンアップ" msgstr "ジョブセンター実行履歴のクリーンアップ"
#: ops/tasks.py:169 #: ops/tasks.py:177
msgid "" msgid ""
"Due to the execution of adhoc and playbooks in the Job Center, execution " "Due to the execution of adhoc and playbooks in the Job Center, execution "
"records will \n" "records will \n"
@ -5493,7 +5499,7 @@ msgid "today"
msgstr "今日" msgstr "今日"
#: perms/notifications.py:12 perms/notifications.py:44 #: perms/notifications.py:12 perms/notifications.py:44
#: settings/serializers/feature.py:114 #: settings/serializers/feature.py:137
msgid "day" msgid "day"
msgstr "日" msgstr "日"
@ -5750,7 +5756,7 @@ msgstr "アカウントの秘密の変更"
msgid "App ops" msgid "App ops"
msgstr "アプリ操作" msgstr "アプリ操作"
#: rbac/tree.py:57 settings/serializers/feature.py:120 #: rbac/tree.py:57 settings/serializers/feature.py:143
msgid "Feature" msgid "Feature"
msgstr "機能" msgstr "機能"
@ -5785,8 +5791,8 @@ msgstr "アプリ組織"
msgid "Ticket comment" msgid "Ticket comment"
msgstr "チケットコメント" msgstr "チケットコメント"
#: rbac/tree.py:159 settings/serializers/feature.py:101 #: rbac/tree.py:159 settings/serializers/feature.py:124
#: settings/serializers/feature.py:103 tickets/models/ticket/general.py:308 #: settings/serializers/feature.py:126 tickets/models/ticket/general.py:308
msgid "Ticket" msgid "Ticket"
msgstr "チケット" msgstr "チケット"
@ -5804,7 +5810,7 @@ msgstr "チャットAIがオンになっていない"
#: settings/api/chat.py:79 settings/api/dingtalk.py:31 #: settings/api/chat.py:79 settings/api/dingtalk.py:31
#: settings/api/feishu.py:39 settings/api/slack.py:34 settings/api/sms.py:160 #: settings/api/feishu.py:39 settings/api/slack.py:34 settings/api/sms.py:160
#: settings/api/vault.py:40 settings/api/wecom.py:37 #: settings/api/vault.py:48 settings/api/wecom.py:37
msgid "Test success" msgid "Test success"
msgstr "テストの成功" msgstr "テストの成功"
@ -6206,12 +6212,13 @@ msgstr "アイコン"
msgid "Service provider" msgid "Service provider"
msgstr "サービスプロバイダー" msgstr "サービスプロバイダー"
#: settings/serializers/auth/oauth2.py:31 #: settings/serializers/auth/oauth2.py:31 settings/serializers/feature.py:88
#: xpack/plugins/cloud/serializers/account_attrs.py:35 #: xpack/plugins/cloud/serializers/account_attrs.py:35
msgid "Client ID" msgid "Client ID"
msgstr "クライアントID" msgstr "クライアントID"
#: settings/serializers/auth/oauth2.py:34 settings/serializers/auth/oidc.py:24 #: settings/serializers/auth/oauth2.py:34 settings/serializers/auth/oidc.py:24
#: settings/serializers/feature.py:91
#: xpack/plugins/cloud/serializers/account_attrs.py:38 #: xpack/plugins/cloud/serializers/account_attrs.py:38
msgid "Client Secret" msgid "Client Secret"
msgstr "クライアント秘密" msgstr "クライアント秘密"
@ -6645,38 +6652,38 @@ msgstr ""
msgid "Change secret and push record retention days (day)" msgid "Change secret and push record retention days (day)"
msgstr "パスワード変更プッシュ記録を保持する日数 (日)" msgstr "パスワード変更プッシュ記録を保持する日数 (日)"
#: settings/serializers/feature.py:19 settings/serializers/msg.py:68 #: settings/serializers/feature.py:20 settings/serializers/msg.py:68
msgid "Subject" msgid "Subject"
msgstr "件名" msgstr "件名"
#: settings/serializers/feature.py:23 #: settings/serializers/feature.py:24
msgid "More Link" msgid "More Link"
msgstr "もっとURL" msgstr "もっとURL"
#: settings/serializers/feature.py:26 #: settings/serializers/feature.py:27
#: settings/templates/ldap/_msg_import_ldap_user.html:6 #: settings/templates/ldap/_msg_import_ldap_user.html:6
#: terminal/models/session/session.py:46 #: terminal/models/session/session.py:46
msgid "Date end" msgid "Date end"
msgstr "終了日" msgstr "終了日"
#: settings/serializers/feature.py:39 settings/serializers/feature.py:41 #: settings/serializers/feature.py:40 settings/serializers/feature.py:42
#: settings/serializers/feature.py:42 #: settings/serializers/feature.py:43
msgid "Announcement" msgid "Announcement"
msgstr "発表" msgstr "発表"
#: settings/serializers/feature.py:49 #: settings/serializers/feature.py:47 settings/serializers/feature.py:50
msgid "Vault" msgid "Vault"
msgstr "有効化 Vault" msgstr "有効化 Vault"
#: settings/serializers/feature.py:58 #: settings/serializers/feature.py:53
msgid "Mount Point" msgid "Vault provider"
msgstr "マウントポイント" msgstr "プロバイダー"
#: settings/serializers/feature.py:64 #: settings/serializers/feature.py:58
msgid "Record limit" msgid "Record limit"
msgstr "記録制限" msgstr "記録制限"
#: settings/serializers/feature.py:66 #: settings/serializers/feature.py:60
msgid "" msgid ""
"If the specific value is less than 999 (default), the system will " "If the specific value is less than 999 (default), the system will "
"automatically perform a task every night: check and delete historical " "automatically perform a task every night: check and delete historical "
@ -6687,76 +6694,85 @@ msgstr ""
"所定の数を超える履歴アカウントを確認して削除します。 値が 999 以上の場合、履" "所定の数を超える履歴アカウントを確認して削除します。 値が 999 以上の場合、履"
"歴アカウントの削除は実行されません。" "歴アカウントの削除は実行されません。"
#: settings/serializers/feature.py:76 settings/serializers/feature.py:82 #: settings/serializers/feature.py:78
msgid "Mount Point"
msgstr "マウントポイント"
#: settings/serializers/feature.py:94
#: xpack/plugins/cloud/serializers/account_attrs.py:41
msgid "Tenant ID"
msgstr "テナントID"
#: settings/serializers/feature.py:99 settings/serializers/feature.py:105
msgid "Chat AI" msgid "Chat AI"
msgstr "チャットAI" msgstr "チャットAI"
#: settings/serializers/feature.py:85 #: settings/serializers/feature.py:108
msgid "GPT Base URL" msgid "GPT Base URL"
msgstr "GPTアドレス" msgstr "GPTアドレス"
#: settings/serializers/feature.py:86 #: settings/serializers/feature.py:109
msgid "The base URL of the GPT service. For example: https://api.openai.com/v1" msgid "The base URL of the GPT service. For example: https://api.openai.com/v1"
msgstr "GPTサービスの基本のURL。例えばhttps://api.openai.com/v1" msgstr "GPTサービスの基本のURL。例えばhttps://api.openai.com/v1"
#: settings/serializers/feature.py:89 templates/_header_bar.html:96 #: settings/serializers/feature.py:112 templates/_header_bar.html:96
msgid "API Key" msgid "API Key"
msgstr "API Key" msgstr "API Key"
#: settings/serializers/feature.py:93 #: settings/serializers/feature.py:116
msgid "" msgid ""
"The proxy server address of the GPT service. For example: http://ip:port" "The proxy server address of the GPT service. For example: http://ip:port"
msgstr "GPTサービスのプロキシサーバーのアドレス。例えばhttp://ip:port" msgstr "GPTサービスのプロキシサーバーのアドレス。例えばhttp://ip:port"
#: settings/serializers/feature.py:96 #: settings/serializers/feature.py:119
msgid "GPT Model" msgid "GPT Model"
msgstr "GPTモデル" msgstr "GPTモデル"
#: settings/serializers/feature.py:105 #: settings/serializers/feature.py:128
msgid "Approval without login" msgid "Approval without login"
msgstr "ログイン承認なし" msgstr "ログイン承認なし"
#: settings/serializers/feature.py:106 #: settings/serializers/feature.py:129
msgid "Allow direct approval ticket without login" msgid "Allow direct approval ticket without login"
msgstr "ログインせずに直接承認チケットを許可します" msgstr "ログインせずに直接承認チケットを許可します"
#: settings/serializers/feature.py:110 #: settings/serializers/feature.py:133
msgid "Period" msgid "Period"
msgstr "期間" msgstr "期間"
#: settings/serializers/feature.py:111 #: settings/serializers/feature.py:134
msgid "" msgid ""
"The default authorization time period when applying for assets via a ticket" "The default authorization time period when applying for assets via a ticket"
msgstr "ワークオーダーの資産申請に対するデフォルトの承認時間帯" msgstr "ワークオーダーの資産申請に対するデフォルトの承認時間帯"
#: settings/serializers/feature.py:114 #: settings/serializers/feature.py:137
msgid "hour" msgid "hour"
msgstr "時" msgstr "時"
#: settings/serializers/feature.py:115 #: settings/serializers/feature.py:138
msgid "Unit" msgid "Unit"
msgstr "単位" msgstr "単位"
#: settings/serializers/feature.py:115 #: settings/serializers/feature.py:138
msgid "The unit of period" msgid "The unit of period"
msgstr "ユーザーの実行" msgstr "ユーザーの実行"
#: settings/serializers/feature.py:124 #: settings/serializers/feature.py:147
msgid "" msgid ""
"Allow users to execute batch commands in the Workbench - Job Center - Adhoc" "Allow users to execute batch commands in the Workbench - Job Center - Adhoc"
msgstr "" msgstr ""
"ユーザーがワークベンチ - ジョブセンター - Adhocでバッチコマンドを実行すること" "ユーザーがワークベンチ - ジョブセンター - Adhocでバッチコマンドを実行すること"
"を許可します" "を許可します"
#: settings/serializers/feature.py:128 #: settings/serializers/feature.py:151
msgid "Command blacklist" msgid "Command blacklist"
msgstr "コマンドフィルタリング" msgstr "コマンドフィルタリング"
#: settings/serializers/feature.py:129 #: settings/serializers/feature.py:152
msgid "Command blacklist in Adhoc" msgid "Command blacklist in Adhoc"
msgstr "コマンドフィルタリング" msgstr "コマンドフィルタリング"
#: settings/serializers/feature.py:134 #: settings/serializers/feature.py:157
#: terminal/models/virtualapp/provider.py:17 #: terminal/models/virtualapp/provider.py:17
#: terminal/models/virtualapp/virtualapp.py:36 #: terminal/models/virtualapp/virtualapp.py:36
#: terminal/models/virtualapp/virtualapp.py:97 #: terminal/models/virtualapp/virtualapp.py:97
@ -6764,11 +6780,11 @@ msgstr "コマンドフィルタリング"
msgid "Virtual app" msgid "Virtual app"
msgstr "仮想アプリケーション" msgstr "仮想アプリケーション"
#: settings/serializers/feature.py:137 #: settings/serializers/feature.py:160
msgid "Virtual App" msgid "Virtual App"
msgstr "仮想アプリケーション" msgstr "仮想アプリケーション"
#: settings/serializers/feature.py:139 #: settings/serializers/feature.py:162
msgid "" msgid ""
"Virtual applications, you can use the Linux operating system as an " "Virtual applications, you can use the Linux operating system as an "
"application server in remote applications." "application server in remote applications."
@ -7733,6 +7749,18 @@ msgstr "リモートデスクトップ"
msgid "RDP Guide" msgid "RDP Guide"
msgstr "RDP 接続ウィザード" msgstr "RDP 接続ウィザード"
#: terminal/connect_methods.py:39
#, fuzzy
#| msgid "Client"
msgid "VNC Client"
msgstr "クライアント"
#: terminal/connect_methods.py:40
#, fuzzy
#| msgid "DB Guide"
msgid "VNC Guide"
msgstr "DB 接続ウィザード"
#: terminal/const.py:10 #: terminal/const.py:10
msgid "Warning" msgid "Warning"
msgstr "警告" msgstr "警告"
@ -7757,7 +7785,7 @@ msgstr "クリティカル"
msgid "High" msgid "High"
msgstr "高い" msgstr "高い"
#: terminal/const.py:47 terminal/const.py:84 #: terminal/const.py:47 terminal/const.py:86
#: users/templates/users/reset_password.html:54 #: users/templates/users/reset_password.html:54
msgid "Normal" msgid "Normal"
msgstr "正常" msgstr "正常"
@ -7766,47 +7794,47 @@ msgstr "正常"
msgid "Offline" msgid "Offline"
msgstr "オフライン" msgstr "オフライン"
#: terminal/const.py:80 #: terminal/const.py:82
msgid "Mismatch" msgid "Mismatch"
msgstr "一致しない" msgstr "一致しない"
#: terminal/const.py:85 #: terminal/const.py:87
msgid "Tunnel" msgid "Tunnel"
msgstr "ちかチャネル" msgstr "ちかチャネル"
#: terminal/const.py:91 #: terminal/const.py:93
msgid "Read only" msgid "Read only"
msgstr "読み取り専用" msgstr "読み取り専用"
#: terminal/const.py:92 #: terminal/const.py:94
msgid "Writable" msgid "Writable"
msgstr "書き込み可能" msgstr "書き込み可能"
#: terminal/const.py:96 #: terminal/const.py:98
msgid "Kill session" msgid "Kill session"
msgstr "セッションを終了する" msgstr "セッションを終了する"
#: terminal/const.py:97 #: terminal/const.py:99
msgid "Lock session" msgid "Lock session"
msgstr "セッションをロックする" msgstr "セッションをロックする"
#: terminal/const.py:98 #: terminal/const.py:100
msgid "Unlock session" msgid "Unlock session"
msgstr "セッションのロックを解除する" msgstr "セッションのロックを解除する"
#: terminal/const.py:103 #: terminal/const.py:105
msgid "Replay create failed" msgid "Replay create failed"
msgstr "ビデオの作成に失敗しました" msgstr "ビデオの作成に失敗しました"
#: terminal/const.py:104 #: terminal/const.py:106
msgid "Replay upload failed" msgid "Replay upload failed"
msgstr "動画のアップロードに失敗しました" msgstr "動画のアップロードに失敗しました"
#: terminal/const.py:105 #: terminal/const.py:107
msgid "Replay convert failed" msgid "Replay convert failed"
msgstr "ビデオのトランスコーディングに失敗しました" msgstr "ビデオのトランスコーディングに失敗しました"
#: terminal/const.py:106 #: terminal/const.py:108
msgid "Replay unsupported" msgid "Replay unsupported"
msgstr "録画はサポートされていません" msgstr "録画はサポートされていません"
@ -7947,15 +7975,19 @@ msgstr "Redis ポート"
msgid "SQLServer port" msgid "SQLServer port"
msgstr "SQLServer ポート" msgstr "SQLServer ポート"
#: terminal/models/component/endpoint.py:32 #: terminal/models/component/endpoint.py:25
#: terminal/models/component/endpoint.py:119 msgid "VNC port"
msgstr "VNC ポート"
#: terminal/models/component/endpoint.py:33
#: terminal/models/component/endpoint.py:120
#: terminal/serializers/endpoint.py:80 terminal/serializers/storage.py:41 #: terminal/serializers/endpoint.py:80 terminal/serializers/storage.py:41
#: terminal/serializers/storage.py:53 terminal/serializers/storage.py:83 #: terminal/serializers/storage.py:53 terminal/serializers/storage.py:83
#: terminal/serializers/storage.py:93 terminal/serializers/storage.py:101 #: terminal/serializers/storage.py:93 terminal/serializers/storage.py:101
msgid "Endpoint" msgid "Endpoint"
msgstr "エンドポイント" msgstr "エンドポイント"
#: terminal/models/component/endpoint.py:125 #: terminal/models/component/endpoint.py:126
msgid "Endpoint rule" msgid "Endpoint rule"
msgstr "エンドポイントルール" msgstr "エンドポイントルール"
@ -9858,6 +9890,14 @@ msgstr ""
msgid "Open MFA Authenticator and enter the 6-bit dynamic code" msgid "Open MFA Authenticator and enter the 6-bit dynamic code"
msgstr "MFA Authenticatorを開き、6ビットの動的コードを入力します" msgstr "MFA Authenticatorを開き、6ビットの動的コードを入力します"
#: users/utils.py:60
msgid "Auth success"
msgstr "認証データベース"
#: users/utils.py:61
msgid "Redirecting to JumpServer Client"
msgstr ""
#: users/views/profile/otp.py:106 #: users/views/profile/otp.py:106
msgid "Already bound" msgid "Already bound"
msgstr "すでにバインド済み" msgstr "すでにバインド済み"
@ -10562,10 +10602,6 @@ msgstr "プロバイダ表示"
msgid "Access key id" msgid "Access key id"
msgstr "アクセスキー" msgstr "アクセスキー"
#: xpack/plugins/cloud/serializers/account_attrs.py:41
msgid "Tenant ID"
msgstr "テナントID"
#: xpack/plugins/cloud/serializers/account_attrs.py:44 #: xpack/plugins/cloud/serializers/account_attrs.py:44
msgid "Subscription ID" msgid "Subscription ID"
msgstr "サブスクリプションID" msgstr "サブスクリプションID"

View File

@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: JumpServer 0.3.3\n" "Project-Id-Version: JumpServer 0.3.3\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-11-06 16:37+0800\n" "POT-Creation-Date: 2024-11-11 19:17+0800\n"
"PO-Revision-Date: 2021-05-20 10:54+0800\n" "PO-Revision-Date: 2021-05-20 10:54+0800\n"
"Last-Translator: ibuler <ibuler@qq.com>\n" "Last-Translator: ibuler <ibuler@qq.com>\n"
"Language-Team: JumpServer team<ibuler@qq.com>\n" "Language-Team: JumpServer team<ibuler@qq.com>\n"
@ -67,7 +67,7 @@ msgstr "完成"
#: assets/serializers/automations/base.py:52 audits/const.py:64 #: assets/serializers/automations/base.py:52 audits/const.py:64
#: audits/models.py:64 audits/signal_handlers/activity_log.py:33 #: audits/models.py:64 audits/signal_handlers/activity_log.py:33
#: common/const/choices.py:65 ops/const.py:74 ops/serializers/celery.py:48 #: common/const/choices.py:65 ops/const.py:74 ops/serializers/celery.py:48
#: terminal/const.py:78 terminal/models/session/sharing.py:121 #: terminal/const.py:80 terminal/models/session/sharing.py:121
#: tickets/views/approve.py:128 #: tickets/views/approve.py:128
msgid "Success" msgid "Success"
msgstr "成功" msgstr "成功"
@ -76,7 +76,7 @@ msgstr "成功"
#: accounts/const/account.py:34 accounts/const/automation.py:109 #: accounts/const/account.py:34 accounts/const/automation.py:109
#: accounts/serializers/automations/change_secret.py:174 audits/const.py:65 #: accounts/serializers/automations/change_secret.py:174 audits/const.py:65
#: audits/signal_handlers/activity_log.py:33 common/const/choices.py:66 #: audits/signal_handlers/activity_log.py:33 common/const/choices.py:66
#: ops/const.py:76 terminal/const.py:79 xpack/plugins/cloud/const.py:47 #: ops/const.py:76 terminal/const.py:81 xpack/plugins/cloud/const.py:47
msgid "Failed" msgid "Failed"
msgstr "失败" msgstr "失败"
@ -149,7 +149,7 @@ msgid "Access key"
msgstr "Access key" msgstr "Access key"
#: accounts/const/account.py:9 authentication/backends/passkey/models.py:16 #: accounts/const/account.py:9 authentication/backends/passkey/models.py:16
#: authentication/models/sso_token.py:14 settings/serializers/feature.py:55 #: authentication/models/sso_token.py:14 settings/serializers/feature.py:75
msgid "Token" msgid "Token"
msgstr "令牌" msgstr "令牌"
@ -304,12 +304,12 @@ msgstr "仅创建"
msgid "Email" msgid "Email"
msgstr "邮箱" msgstr "邮箱"
#: accounts/const/automation.py:105 terminal/const.py:87 #: accounts/const/automation.py:105 terminal/const.py:89
msgid "SFTP" msgid "SFTP"
msgstr "SFTP" msgstr "SFTP"
#: accounts/const/automation.py:111 assets/serializers/automations/base.py:54 #: accounts/const/automation.py:111 assets/serializers/automations/base.py:54
#: common/const/choices.py:63 terminal/const.py:77 tickets/const.py:29 #: common/const/choices.py:63 terminal/const.py:79 tickets/const.py:29
#: tickets/const.py:38 #: tickets/const.py:38
msgid "Pending" msgid "Pending"
msgstr "待定的" msgstr "待定的"
@ -319,10 +319,14 @@ msgstr "待定的"
msgid "Database" msgid "Database"
msgstr "数据库" msgstr "数据库"
#: accounts/const/vault.py:9 settings/serializers/feature.py:46 #: accounts/const/vault.py:9 settings/serializers/feature.py:70
msgid "HCP Vault" msgid "HCP Vault"
msgstr "HashiCorp Vault" msgstr "HashiCorp Vault"
#: accounts/const/vault.py:10 settings/serializers/feature.py:83
msgid "Azure Key Vault"
msgstr ""
#: accounts/mixins.py:35 #: accounts/mixins.py:35
msgid "Export all" msgid "Export all"
msgstr "导出所有" msgstr "导出所有"
@ -469,7 +473,7 @@ msgstr "账号备份计划"
#: assets/models/automations/base.py:115 audits/models.py:65 #: assets/models/automations/base.py:115 audits/models.py:65
#: ops/models/base.py:55 ops/models/celery.py:89 ops/models/job.py:247 #: ops/models/base.py:55 ops/models/celery.py:89 ops/models/job.py:247
#: ops/templates/ops/celery_task_log.html:101 #: ops/templates/ops/celery_task_log.html:101
#: perms/models/asset_permission.py:78 settings/serializers/feature.py:25 #: perms/models/asset_permission.py:78 settings/serializers/feature.py:26
#: settings/templates/ldap/_msg_import_ldap_user.html:5 #: settings/templates/ldap/_msg_import_ldap_user.html:5
#: terminal/models/applet/host.py:141 terminal/models/session/session.py:45 #: terminal/models/applet/host.py:141 terminal/models/session/session.py:45
#: tickets/models/ticket/apply_application.py:30 #: tickets/models/ticket/apply_application.py:30
@ -669,7 +673,7 @@ msgstr "触发方式"
msgid "Action" msgid "Action"
msgstr "动作" msgstr "动作"
#: accounts/models/automations/push_account.py:57 #: accounts/models/automations/push_account.py:58
msgid "Push asset account" msgid "Push asset account"
msgstr "账号推送" msgstr "账号推送"
@ -724,7 +728,7 @@ msgstr "密码规则"
#: rbac/serializers/role.py:28 settings/models.py:35 settings/models.py:184 #: rbac/serializers/role.py:28 settings/models.py:35 settings/models.py:184
#: settings/serializers/msg.py:89 settings/serializers/terminal.py:9 #: settings/serializers/msg.py:89 settings/serializers/terminal.py:9
#: terminal/models/applet/applet.py:34 terminal/models/component/endpoint.py:13 #: terminal/models/applet/applet.py:34 terminal/models/component/endpoint.py:13
#: terminal/models/component/endpoint.py:111 #: terminal/models/component/endpoint.py:112
#: terminal/models/component/storage.py:26 terminal/models/component/task.py:13 #: terminal/models/component/storage.py:26 terminal/models/component/task.py:13
#: terminal/models/component/terminal.py:85 #: terminal/models/component/terminal.py:85
#: terminal/models/virtualapp/provider.py:10 #: terminal/models/virtualapp/provider.py:10
@ -1072,8 +1076,8 @@ msgstr "关联平台,可配置推送参数,如果不关联,将使用默认
#: ops/models/job.py:163 ops/models/playbook.py:31 rbac/models/role.py:37 #: ops/models/job.py:163 ops/models/playbook.py:31 rbac/models/role.py:37
#: settings/models.py:40 terminal/models/applet/applet.py:46 #: settings/models.py:40 terminal/models/applet/applet.py:46
#: terminal/models/applet/applet.py:332 terminal/models/applet/host.py:143 #: terminal/models/applet/applet.py:332 terminal/models/applet/host.py:143
#: terminal/models/component/endpoint.py:26 #: terminal/models/component/endpoint.py:27
#: terminal/models/component/endpoint.py:121 #: terminal/models/component/endpoint.py:122
#: terminal/models/session/session.py:47 #: terminal/models/session/session.py:47
#: terminal/models/virtualapp/virtualapp.py:28 tickets/models/comment.py:32 #: terminal/models/virtualapp/virtualapp.py:28 tickets/models/comment.py:32
#: tickets/models/ticket/general.py:298 users/models/user/__init__.py:91 #: tickets/models/ticket/general.py:298 users/models/user/__init__.py:91
@ -1355,12 +1359,12 @@ msgid "Notify and warn"
msgstr "提示并告警" msgstr "提示并告警"
#: acls/models/base.py:37 assets/models/cmd_filter.py:76 #: acls/models/base.py:37 assets/models/cmd_filter.py:76
#: terminal/models/component/endpoint.py:114 xpack/plugins/cloud/models.py:316 #: terminal/models/component/endpoint.py:115 xpack/plugins/cloud/models.py:316
msgid "Priority" msgid "Priority"
msgstr "优先级" msgstr "优先级"
#: acls/models/base.py:38 assets/models/cmd_filter.py:76 #: acls/models/base.py:38 assets/models/cmd_filter.py:76
#: terminal/models/component/endpoint.py:115 xpack/plugins/cloud/models.py:317 #: terminal/models/component/endpoint.py:116 xpack/plugins/cloud/models.py:317
msgid "1-100, the lower the value will be match first" msgid "1-100, the lower the value will be match first"
msgstr "优先级可选范围为 1-100 (数值越小越优先)" msgstr "优先级可选范围为 1-100 (数值越小越优先)"
@ -1374,8 +1378,8 @@ msgstr "审批人"
#: authentication/models/connection_token.py:53 #: authentication/models/connection_token.py:53
#: authentication/models/ssh_key.py:13 #: authentication/models/ssh_key.py:13
#: authentication/templates/authentication/_access_key_modal.html:32 #: authentication/templates/authentication/_access_key_modal.html:32
#: perms/models/asset_permission.py:82 terminal/models/component/endpoint.py:27 #: perms/models/asset_permission.py:82 terminal/models/component/endpoint.py:28
#: terminal/models/component/endpoint.py:122 #: terminal/models/component/endpoint.py:123
#: terminal/models/session/sharing.py:29 terminal/serializers/terminal.py:44 #: terminal/models/session/sharing.py:29 terminal/serializers/terminal.py:44
#: tickets/const.py:36 #: tickets/const.py:36
msgid "Active" msgid "Active"
@ -1395,7 +1399,7 @@ msgid "Accounts"
msgstr "账号" msgstr "账号"
#: acls/models/command_acl.py:16 assets/models/cmd_filter.py:60 #: acls/models/command_acl.py:16 assets/models/cmd_filter.py:60
#: ops/serializers/job.py:79 terminal/const.py:86 #: ops/serializers/job.py:79 terminal/const.py:88
#: terminal/models/session/session.py:43 terminal/serializers/command.py:18 #: terminal/models/session/session.py:43 terminal/serializers/command.py:18
#: terminal/templates/terminal/_msg_command_alert.html:12 #: terminal/templates/terminal/_msg_command_alert.html:12
#: terminal/templates/terminal/_msg_command_execute_alert.html:10 #: terminal/templates/terminal/_msg_command_execute_alert.html:10
@ -1409,7 +1413,7 @@ msgid "Regex"
msgstr "正则表达式" msgstr "正则表达式"
#: acls/models/command_acl.py:26 assets/models/cmd_filter.py:79 #: acls/models/command_acl.py:26 assets/models/cmd_filter.py:79
#: settings/models.py:185 settings/serializers/feature.py:20 #: settings/models.py:185 settings/serializers/feature.py:21
#: settings/serializers/msg.py:78 xpack/plugins/license/models.py:30 #: settings/serializers/msg.py:78 xpack/plugins/license/models.py:30
msgid "Content" msgid "Content"
msgstr "内容" msgstr "内容"
@ -1669,7 +1673,7 @@ msgid "Authentication failed"
msgstr "认证失败" msgstr "认证失败"
#: assets/automations/ping_gateway/manager.py:60 #: assets/automations/ping_gateway/manager.py:60
#: assets/automations/ping_gateway/manager.py:86 terminal/const.py:102 #: assets/automations/ping_gateway/manager.py:86 terminal/const.py:104
msgid "Connect failed" msgid "Connect failed"
msgstr "连接失败" msgstr "连接失败"
@ -1717,9 +1721,9 @@ msgstr "脚本"
#: assets/const/category.py:10 assets/models/asset/host.py:8 #: assets/const/category.py:10 assets/models/asset/host.py:8
#: settings/serializers/auth/radius.py:17 settings/serializers/auth/sms.py:76 #: settings/serializers/auth/radius.py:17 settings/serializers/auth/sms.py:76
#: settings/serializers/feature.py:52 settings/serializers/msg.py:30 #: settings/serializers/feature.py:72 settings/serializers/feature.py:85
#: terminal/models/component/endpoint.py:14 terminal/serializers/applet.py:17 #: settings/serializers/msg.py:30 terminal/models/component/endpoint.py:14
#: xpack/plugins/cloud/manager.py:89 #: terminal/serializers/applet.py:17 xpack/plugins/cloud/manager.py:89
#: xpack/plugins/cloud/serializers/account_attrs.py:72 #: xpack/plugins/cloud/serializers/account_attrs.py:72
msgid "Host" msgid "Host"
msgstr "主机" msgstr "主机"
@ -2026,7 +2030,7 @@ msgstr "忽略证书校验"
msgid "Postgresql SSL mode" msgid "Postgresql SSL mode"
msgstr "PostgreSQL SSL 模式" msgstr "PostgreSQL SSL 模式"
#: assets/models/asset/gpt.py:8 settings/serializers/feature.py:92 #: assets/models/asset/gpt.py:8 settings/serializers/feature.py:115
msgid "Proxy" msgid "Proxy"
msgstr "代理" msgstr "代理"
@ -3519,7 +3523,7 @@ msgid "Please change your password"
msgstr "请修改密码" msgstr "请修改密码"
#: authentication/models/access_key.py:22 #: authentication/models/access_key.py:22
#: terminal/models/component/endpoint.py:112 #: terminal/models/component/endpoint.py:113
msgid "IP group" msgid "IP group"
msgstr "IPグループ" msgstr "IPグループ"
@ -3810,7 +3814,7 @@ msgstr "代码错误"
#: authentication/templates/authentication/_msg_oauth_bind.html:3 #: authentication/templates/authentication/_msg_oauth_bind.html:3
#: authentication/templates/authentication/_msg_reset_password.html:3 #: authentication/templates/authentication/_msg_reset_password.html:3
#: authentication/templates/authentication/_msg_reset_password_code.html:9 #: authentication/templates/authentication/_msg_reset_password_code.html:9
#: jumpserver/conf.py:522 #: jumpserver/conf.py:529
#: perms/templates/perms/_msg_item_permissions_expire.html:3 #: perms/templates/perms/_msg_item_permissions_expire.html:3
#: tickets/templates/tickets/approve_check_password.html:32 #: tickets/templates/tickets/approve_check_password.html:32
#: users/templates/users/_msg_account_expire_reminder.html:4 #: users/templates/users/_msg_account_expire_reminder.html:4
@ -4553,16 +4557,16 @@ msgstr "不能包含特殊字符"
msgid "The mobile phone number format is incorrect" msgid "The mobile phone number format is incorrect"
msgstr "手机号格式不正确" msgstr "手机号格式不正确"
#: jumpserver/conf.py:516 #: jumpserver/conf.py:523
#, python-brace-format #, python-brace-format
msgid "The verification code is: {code}" msgid "The verification code is: {code}"
msgstr "验证码为: {code}" msgstr "验证码为: {code}"
#: jumpserver/conf.py:521 #: jumpserver/conf.py:528
msgid "Create account successfully" msgid "Create account successfully"
msgstr "创建账号成功" msgstr "创建账号成功"
#: jumpserver/conf.py:523 #: jumpserver/conf.py:530
msgid "Your account has been created successfully" msgid "Your account has been created successfully"
msgstr "你的账号已创建成功" msgstr "你的账号已创建成功"
@ -4785,7 +4789,7 @@ msgid "VCS"
msgstr "VCS" msgstr "VCS"
#: ops/const.py:38 ops/models/adhoc.py:44 ops/models/variable.py:26 #: ops/const.py:38 ops/models/adhoc.py:44 ops/models/variable.py:26
#: settings/serializers/feature.py:123 #: settings/serializers/feature.py:146
msgid "Adhoc" msgid "Adhoc"
msgstr "命令" msgstr "命令"
@ -4988,16 +4992,18 @@ msgid "Parameters define"
msgstr "参数定义" msgstr "参数定义"
#: ops/models/job.py:159 #: ops/models/job.py:159
#, fuzzy
#| msgid "Periodic run"
msgid "Periodic variable" msgid "Periodic variable"
msgstr "定时任务参数" msgstr "周期执行"
#: ops/models/job.py:160 #: ops/models/job.py:160
msgid "Run as" msgid "Run as"
msgstr "运行账号" msgstr "运行用户"
#: ops/models/job.py:162 #: ops/models/job.py:162
msgid "Run as policy" msgid "Run as policy"
msgstr "户策略" msgstr "户策略"
#: ops/models/job.py:227 ops/models/variable.py:28 ops/serializers/job.py:98 #: ops/models/job.py:227 ops/models/variable.py:28 ops/serializers/job.py:98
#: terminal/notifications.py:182 #: terminal/notifications.py:182
@ -5025,32 +5031,40 @@ msgid "VCS URL"
msgstr "VCS URL" msgstr "VCS URL"
#: ops/models/variable.py:11 #: ops/models/variable.py:11
#, fuzzy
#| msgid "Variable Type"
msgid "Variable name" msgid "Variable name"
msgstr "参数名" msgstr "参数类型"
#: ops/models/variable.py:12 #: ops/models/variable.py:12
msgid "" msgid ""
"The variable name used in the script has a fixed prefix 'jms_' followed by " "The variable name used in the script has a fixed prefix 'jms_' followed by "
"the input variable name. For example, if the variable name is 'name,' the " "the input variable name. For example, if the variable name is 'name,' the "
"final generated environment variable will be 'jms_name'." "final generated environment variable will be 'jms_name'."
msgstr "在脚本使用的变量名称,固定前缀 jms_ + 输入的变量名例如变量名name则最终生成环境变量为 jms_name" msgstr ""
#: ops/models/variable.py:16 #: ops/models/variable.py:16
#, fuzzy
#| msgid "Default"
msgid "Default Value" msgid "Default Value"
msgstr "默认值" msgstr "默认"
#: ops/models/variable.py:18 #: ops/models/variable.py:18
#, fuzzy
#| msgid "Variable Type"
msgid "Variable type" msgid "Variable type"
msgstr "变量名" msgstr "参数类型"
#: ops/models/variable.py:21 ops/serializers/variable.py:23 #: ops/models/variable.py:21 ops/serializers/variable.py:23
msgid "ExtraVars" msgid "ExtraVars"
msgstr "额外参数" msgstr ""
#: ops/models/variable.py:49 ops/serializers/adhoc.py:16 #: ops/models/variable.py:49 ops/serializers/adhoc.py:16
#: ops/serializers/job.py:22 ops/serializers/playbook.py:21 #: ops/serializers/job.py:22 ops/serializers/playbook.py:21
#, fuzzy
#| msgid "Variable Type"
msgid "Variable" msgid "Variable"
msgstr "变量" msgstr "参数类型"
#: ops/notifications.py:20 #: ops/notifications.py:20
msgid "Server performance" msgid "Server performance"
@ -5123,37 +5137,37 @@ msgid ""
"is the value." "is the value."
msgstr "每项单独一行,每行可以用英文冒号分割前边是显示的内容后边是值" msgstr "每项单独一行,每行可以用英文冒号分割前边是显示的内容后边是值"
#: ops/tasks.py:52 #: ops/tasks.py:53
msgid "Run ansible task" msgid "Run ansible task"
msgstr "运行 Ansible 任务" msgstr "运行 Ansible 任务"
#: ops/tasks.py:55 #: ops/tasks.py:56
msgid "" msgid ""
"Execute scheduled adhoc and playbooks, periodically invoking the task for " "Execute scheduled adhoc and playbooks, periodically invoking the task for "
"execution" "execution"
msgstr "当执行定时的快捷命令playbook定时调用该任务执行" msgstr "当执行定时的快捷命令playbook定时调用该任务执行"
#: ops/tasks.py:85 #: ops/tasks.py:88
msgid "Run ansible task execution" msgid "Run ansible task execution"
msgstr "开始执行 Ansible 任务" msgstr "开始执行 Ansible 任务"
#: ops/tasks.py:88 #: ops/tasks.py:91
msgid "Execute the task when manually adhoc or playbooks" msgid "Execute the task when manually adhoc or playbooks"
msgstr "手动执行快捷命令playbook时执行该任务" msgstr "手动执行快捷命令playbook时执行该任务"
#: ops/tasks.py:102 #: ops/tasks.py:107
msgid "Clear celery periodic tasks" msgid "Clear celery periodic tasks"
msgstr "清理周期任务" msgstr "清理周期任务"
#: ops/tasks.py:104 #: ops/tasks.py:109
msgid "At system startup, clean up celery tasks that no longer exist" msgid "At system startup, clean up celery tasks that no longer exist"
msgstr "系统启动时清理已经不存在的celery任务" msgstr "系统启动时清理已经不存在的celery任务"
#: ops/tasks.py:128 #: ops/tasks.py:133
msgid "Create or update periodic tasks" msgid "Create or update periodic tasks"
msgstr "创建或更新周期任务" msgstr "创建或更新周期任务"
#: ops/tasks.py:130 #: ops/tasks.py:135
msgid "" msgid ""
"With version iterations, new tasks may be added, or task names and execution " "With version iterations, new tasks may be added, or task names and execution "
"times may \n" "times may \n"
@ -5164,11 +5178,11 @@ msgstr ""
"随着版本迭代,可能会新增任务或者修改任务的名称,执行时间,所以在系统启动时," "随着版本迭代,可能会新增任务或者修改任务的名称,执行时间,所以在系统启动时,"
"将会注册任务或者更新定时任务参数" "将会注册任务或者更新定时任务参数"
#: ops/tasks.py:143 #: ops/tasks.py:148
msgid "Periodic check service performance" msgid "Periodic check service performance"
msgstr "周期检测服务性能" msgstr "周期检测服务性能"
#: ops/tasks.py:145 #: ops/tasks.py:150
msgid "" msgid ""
"Check every hour whether each component is offline and whether the CPU, " "Check every hour whether each component is offline and whether the CPU, "
"memory, \n" "memory, \n"
@ -5178,11 +5192,11 @@ msgstr ""
"每小时检测各组件是否离线cpu内存硬盘使用率是否超过阈值向管理员发送消息" "每小时检测各组件是否离线cpu内存硬盘使用率是否超过阈值向管理员发送消息"
"预警" "预警"
#: ops/tasks.py:155 #: ops/tasks.py:160
msgid "Clean up unexpected jobs" msgid "Clean up unexpected jobs"
msgstr "清理异常作业" msgstr "清理异常作业"
#: ops/tasks.py:157 #: ops/tasks.py:162
msgid "" msgid ""
"Due to exceptions caused by executing adhoc and playbooks in the Job " "Due to exceptions caused by executing adhoc and playbooks in the Job "
"Center, \n" "Center, \n"
@ -5195,11 +5209,11 @@ msgstr ""
"由于作业中心执行快捷命令playbook会产生异常任务状态未更新完成系统将每小" "由于作业中心执行快捷命令playbook会产生异常任务状态未更新完成系统将每小"
"时执行清理超3小时未完成的异常作业并将任务标记失败" "时执行清理超3小时未完成的异常作业并将任务标记失败"
#: ops/tasks.py:170 #: ops/tasks.py:175
msgid "Clean job_execution db record" msgid "Clean job_execution db record"
msgstr "清理作业中心执行历史" msgstr "清理作业中心执行历史"
#: ops/tasks.py:172 #: ops/tasks.py:177
msgid "" msgid ""
"Due to the execution of adhoc and playbooks in the Job Center, execution " "Due to the execution of adhoc and playbooks in the Job Center, execution "
"records will \n" "records will \n"
@ -5418,7 +5432,7 @@ msgid "today"
msgstr "今天" msgstr "今天"
#: perms/notifications.py:12 perms/notifications.py:44 #: perms/notifications.py:12 perms/notifications.py:44
#: settings/serializers/feature.py:114 #: settings/serializers/feature.py:137
msgid "day" msgid "day"
msgstr "天" msgstr "天"
@ -5673,7 +5687,7 @@ msgstr "账号改密"
msgid "App ops" msgid "App ops"
msgstr "作业中心" msgstr "作业中心"
#: rbac/tree.py:57 settings/serializers/feature.py:120 #: rbac/tree.py:57 settings/serializers/feature.py:143
msgid "Feature" msgid "Feature"
msgstr "功能" msgstr "功能"
@ -5708,8 +5722,8 @@ msgstr "组织管理"
msgid "Ticket comment" msgid "Ticket comment"
msgstr "工单评论" msgstr "工单评论"
#: rbac/tree.py:159 settings/serializers/feature.py:101 #: rbac/tree.py:159 settings/serializers/feature.py:124
#: settings/serializers/feature.py:103 tickets/models/ticket/general.py:308 #: settings/serializers/feature.py:126 tickets/models/ticket/general.py:308
msgid "Ticket" msgid "Ticket"
msgstr "工单" msgstr "工单"
@ -5727,7 +5741,7 @@ msgstr "聊天 AI 没有开启"
#: settings/api/chat.py:79 settings/api/dingtalk.py:31 #: settings/api/chat.py:79 settings/api/dingtalk.py:31
#: settings/api/feishu.py:39 settings/api/slack.py:34 settings/api/sms.py:160 #: settings/api/feishu.py:39 settings/api/slack.py:34 settings/api/sms.py:160
#: settings/api/vault.py:40 settings/api/wecom.py:37 #: settings/api/vault.py:48 settings/api/wecom.py:37
msgid "Test success" msgid "Test success"
msgstr "测试成功" msgstr "测试成功"
@ -6120,12 +6134,13 @@ msgstr "图标"
msgid "Service provider" msgid "Service provider"
msgstr "服务提供商" msgstr "服务提供商"
#: settings/serializers/auth/oauth2.py:31 #: settings/serializers/auth/oauth2.py:31 settings/serializers/feature.py:88
#: xpack/plugins/cloud/serializers/account_attrs.py:35 #: xpack/plugins/cloud/serializers/account_attrs.py:35
msgid "Client ID" msgid "Client ID"
msgstr "客户端 ID" msgstr "客户端 ID"
#: settings/serializers/auth/oauth2.py:34 settings/serializers/auth/oidc.py:24 #: settings/serializers/auth/oauth2.py:34 settings/serializers/auth/oidc.py:24
#: settings/serializers/feature.py:91
#: xpack/plugins/cloud/serializers/account_attrs.py:38 #: xpack/plugins/cloud/serializers/account_attrs.py:38
msgid "Client Secret" msgid "Client Secret"
msgstr "客户端密钥" msgstr "客户端密钥"
@ -6547,38 +6562,40 @@ msgstr ""
msgid "Change secret and push record retention days (day)" msgid "Change secret and push record retention days (day)"
msgstr "改密推送记录保留天数 (天)" msgstr "改密推送记录保留天数 (天)"
#: settings/serializers/feature.py:19 settings/serializers/msg.py:68 #: settings/serializers/feature.py:20 settings/serializers/msg.py:68
msgid "Subject" msgid "Subject"
msgstr "主题" msgstr "主题"
#: settings/serializers/feature.py:23 #: settings/serializers/feature.py:24
msgid "More Link" msgid "More Link"
msgstr "更多信息 URL" msgstr "更多信息 URL"
#: settings/serializers/feature.py:26 #: settings/serializers/feature.py:27
#: settings/templates/ldap/_msg_import_ldap_user.html:6 #: settings/templates/ldap/_msg_import_ldap_user.html:6
#: terminal/models/session/session.py:46 #: terminal/models/session/session.py:46
msgid "Date end" msgid "Date end"
msgstr "结束日期" msgstr "结束日期"
#: settings/serializers/feature.py:39 settings/serializers/feature.py:41 #: settings/serializers/feature.py:40 settings/serializers/feature.py:42
#: settings/serializers/feature.py:42 #: settings/serializers/feature.py:43
msgid "Announcement" msgid "Announcement"
msgstr "公告" msgstr "公告"
#: settings/serializers/feature.py:49 #: settings/serializers/feature.py:47 settings/serializers/feature.py:50
msgid "Vault" msgid "Vault"
msgstr "启用 Vault" msgstr "启用 Vault"
#: settings/serializers/feature.py:58 #: settings/serializers/feature.py:53
msgid "Mount Point" #, fuzzy
msgstr "挂载点" #| msgid "Provider"
msgid "Vault provider"
msgstr "云服务商"
#: settings/serializers/feature.py:64 #: settings/serializers/feature.py:58
msgid "Record limit" msgid "Record limit"
msgstr "记录限制" msgstr "记录限制"
#: settings/serializers/feature.py:66 #: settings/serializers/feature.py:60
msgid "" msgid ""
"If the specific value is less than 999 (default), the system will " "If the specific value is less than 999 (default), the system will "
"automatically perform a task every night: check and delete historical " "automatically perform a task every night: check and delete historical "
@ -6588,74 +6605,85 @@ msgstr ""
"若特定数值小于999系统将在每日晚间自动执行任务检查并删除超出预定数量的历史" "若特定数值小于999系统将在每日晚间自动执行任务检查并删除超出预定数量的历史"
"账号。如果该数值达到或超过999则不进行任何历史账号的删除操作。" "账号。如果该数值达到或超过999则不进行任何历史账号的删除操作。"
#: settings/serializers/feature.py:76 settings/serializers/feature.py:82 #: settings/serializers/feature.py:78
msgid "Mount Point"
msgstr "挂载点"
#: settings/serializers/feature.py:94
#: xpack/plugins/cloud/serializers/account_attrs.py:41
#, fuzzy
#| msgid "Client ID"
msgid "Tenant ID"
msgstr "客户端 ID"
#: settings/serializers/feature.py:99 settings/serializers/feature.py:105
msgid "Chat AI" msgid "Chat AI"
msgstr "聊天 AI" msgstr "聊天 AI"
#: settings/serializers/feature.py:85 #: settings/serializers/feature.py:108
msgid "GPT Base URL" msgid "GPT Base URL"
msgstr "GPT 地址" msgstr "GPT 地址"
#: settings/serializers/feature.py:86 #: settings/serializers/feature.py:109
msgid "The base URL of the GPT service. For example: https://api.openai.com/v1" msgid "The base URL of the GPT service. For example: https://api.openai.com/v1"
msgstr "GPT 服务的基本 URL。例如https://api.openai.com/v1" msgstr "GPT 服务的基本 URL。例如https://api.openai.com/v1"
#: settings/serializers/feature.py:89 templates/_header_bar.html:96 #: settings/serializers/feature.py:112 templates/_header_bar.html:96
msgid "API Key" msgid "API Key"
msgstr "API Key" msgstr "API Key"
#: settings/serializers/feature.py:93 #: settings/serializers/feature.py:116
msgid "" msgid ""
"The proxy server address of the GPT service. For example: http://ip:port" "The proxy server address of the GPT service. For example: http://ip:port"
msgstr "GPT 服务的代理服务器地址。例如http://ip:port" msgstr "GPT 服务的代理服务器地址。例如http://ip:port"
#: settings/serializers/feature.py:96 #: settings/serializers/feature.py:119
msgid "GPT Model" msgid "GPT Model"
msgstr "GPT 模型" msgstr "GPT 模型"
#: settings/serializers/feature.py:105 #: settings/serializers/feature.py:128
msgid "Approval without login" msgid "Approval without login"
msgstr "免登录审批" msgstr "免登录审批"
#: settings/serializers/feature.py:106 #: settings/serializers/feature.py:129
msgid "Allow direct approval ticket without login" msgid "Allow direct approval ticket without login"
msgstr "允许无需登录直接批准工单" msgstr "允许无需登录直接批准工单"
#: settings/serializers/feature.py:110 #: settings/serializers/feature.py:133
msgid "Period" msgid "Period"
msgstr "时段" msgstr "时段"
#: settings/serializers/feature.py:111 #: settings/serializers/feature.py:134
msgid "" msgid ""
"The default authorization time period when applying for assets via a ticket" "The default authorization time period when applying for assets via a ticket"
msgstr "工单申请资产的默认授权时间段" msgstr "工单申请资产的默认授权时间段"
#: settings/serializers/feature.py:114 #: settings/serializers/feature.py:137
msgid "hour" msgid "hour"
msgstr "时" msgstr "时"
#: settings/serializers/feature.py:115 #: settings/serializers/feature.py:138
msgid "Unit" msgid "Unit"
msgstr "单位" msgstr "单位"
#: settings/serializers/feature.py:115 #: settings/serializers/feature.py:138
msgid "The unit of period" msgid "The unit of period"
msgstr "执行周期" msgstr "执行周期"
#: settings/serializers/feature.py:124 #: settings/serializers/feature.py:147
msgid "" msgid ""
"Allow users to execute batch commands in the Workbench - Job Center - Adhoc" "Allow users to execute batch commands in the Workbench - Job Center - Adhoc"
msgstr "允许用户在工作台 - 作业中心 - Adhoc 中执行批量命令" msgstr "允许用户在工作台 - 作业中心 - Adhoc 中执行批量命令"
#: settings/serializers/feature.py:128 #: settings/serializers/feature.py:151
msgid "Command blacklist" msgid "Command blacklist"
msgstr "作业中心命令黑名单" msgstr "作业中心命令黑名单"
#: settings/serializers/feature.py:129 #: settings/serializers/feature.py:152
msgid "Command blacklist in Adhoc" msgid "Command blacklist in Adhoc"
msgstr "作业中心命令黑名单" msgstr "作业中心命令黑名单"
#: settings/serializers/feature.py:134 #: settings/serializers/feature.py:157
#: terminal/models/virtualapp/provider.py:17 #: terminal/models/virtualapp/provider.py:17
#: terminal/models/virtualapp/virtualapp.py:36 #: terminal/models/virtualapp/virtualapp.py:36
#: terminal/models/virtualapp/virtualapp.py:97 #: terminal/models/virtualapp/virtualapp.py:97
@ -6663,11 +6691,11 @@ msgstr "作业中心命令黑名单"
msgid "Virtual app" msgid "Virtual app"
msgstr "虚拟应用" msgstr "虚拟应用"
#: settings/serializers/feature.py:137 #: settings/serializers/feature.py:160
msgid "Virtual App" msgid "Virtual App"
msgstr "虚拟应用" msgstr "虚拟应用"
#: settings/serializers/feature.py:139 #: settings/serializers/feature.py:162
msgid "" msgid ""
"Virtual applications, you can use the Linux operating system as an " "Virtual applications, you can use the Linux operating system as an "
"application server in remote applications." "application server in remote applications."
@ -7583,6 +7611,14 @@ msgstr "远程桌面客户端"
msgid "RDP Guide" msgid "RDP Guide"
msgstr "RDP 连接向导" msgstr "RDP 连接向导"
#: terminal/connect_methods.py:39
msgid "VNC Client"
msgstr "VNC 客户端"
#: terminal/connect_methods.py:40
msgid "VNC Guide"
msgstr "VNC 连接向导"
#: terminal/const.py:10 #: terminal/const.py:10
msgid "Warning" msgid "Warning"
msgstr "告警" msgstr "告警"
@ -7607,7 +7643,7 @@ msgstr "严重"
msgid "High" msgid "High"
msgstr "较高" msgstr "较高"
#: terminal/const.py:47 terminal/const.py:84 #: terminal/const.py:47 terminal/const.py:86
#: users/templates/users/reset_password.html:54 #: users/templates/users/reset_password.html:54
msgid "Normal" msgid "Normal"
msgstr "正常" msgstr "正常"
@ -7616,47 +7652,47 @@ msgstr "正常"
msgid "Offline" msgid "Offline"
msgstr "离线" msgstr "离线"
#: terminal/const.py:80 #: terminal/const.py:82
msgid "Mismatch" msgid "Mismatch"
msgstr "未匹配" msgstr "未匹配"
#: terminal/const.py:85 #: terminal/const.py:87
msgid "Tunnel" msgid "Tunnel"
msgstr "隧道" msgstr "隧道"
#: terminal/const.py:91 #: terminal/const.py:93
msgid "Read only" msgid "Read only"
msgstr "只读" msgstr "只读"
#: terminal/const.py:92 #: terminal/const.py:94
msgid "Writable" msgid "Writable"
msgstr "读写" msgstr "读写"
#: terminal/const.py:96 #: terminal/const.py:98
msgid "Kill session" msgid "Kill session"
msgstr "终断会话" msgstr "终断会话"
#: terminal/const.py:97 #: terminal/const.py:99
msgid "Lock session" msgid "Lock session"
msgstr "锁定会话" msgstr "锁定会话"
#: terminal/const.py:98 #: terminal/const.py:100
msgid "Unlock session" msgid "Unlock session"
msgstr "解锁会话" msgstr "解锁会话"
#: terminal/const.py:103 #: terminal/const.py:105
msgid "Replay create failed" msgid "Replay create failed"
msgstr "录像创建失败" msgstr "录像创建失败"
#: terminal/const.py:104 #: terminal/const.py:106
msgid "Replay upload failed" msgid "Replay upload failed"
msgstr "录像上传失败" msgstr "录像上传失败"
#: terminal/const.py:105 #: terminal/const.py:107
msgid "Replay convert failed" msgid "Replay convert failed"
msgstr "录像转码失败" msgstr "录像转码失败"
#: terminal/const.py:106 #: terminal/const.py:108
msgid "Replay unsupported" msgid "Replay unsupported"
msgstr "不支持录像" msgstr "不支持录像"
@ -7797,15 +7833,19 @@ msgstr "Redis 端口"
msgid "SQLServer port" msgid "SQLServer port"
msgstr "SQLServer 端口" msgstr "SQLServer 端口"
#: terminal/models/component/endpoint.py:32 #: terminal/models/component/endpoint.py:25
#: terminal/models/component/endpoint.py:119 msgid "VNC port"
msgstr "VNC 端口"
#: terminal/models/component/endpoint.py:33
#: terminal/models/component/endpoint.py:120
#: terminal/serializers/endpoint.py:80 terminal/serializers/storage.py:41 #: terminal/serializers/endpoint.py:80 terminal/serializers/storage.py:41
#: terminal/serializers/storage.py:53 terminal/serializers/storage.py:83 #: terminal/serializers/storage.py:53 terminal/serializers/storage.py:83
#: terminal/serializers/storage.py:93 terminal/serializers/storage.py:101 #: terminal/serializers/storage.py:93 terminal/serializers/storage.py:101
msgid "Endpoint" msgid "Endpoint"
msgstr "端点" msgstr "端点"
#: terminal/models/component/endpoint.py:125 #: terminal/models/component/endpoint.py:126
msgid "Endpoint rule" msgid "Endpoint rule"
msgstr "端点规则" msgstr "端点规则"
@ -10360,10 +10400,6 @@ msgstr "服务商显示"
msgid "Access key id" msgid "Access key id"
msgstr "Access key id" msgstr "Access key id"
#: xpack/plugins/cloud/serializers/account_attrs.py:41
msgid "Tenant ID"
msgstr "租户 ID"
#: xpack/plugins/cloud/serializers/account_attrs.py:44 #: xpack/plugins/cloud/serializers/account_attrs.py:44
msgid "Subscription ID" msgid "Subscription ID"
msgstr "订阅 ID" msgstr "订阅 ID"

View File

@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: JumpServer 0.3.3\n" "Project-Id-Version: JumpServer 0.3.3\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-11-06 11:28+0800\n" "POT-Creation-Date: 2024-11-11 19:17+0800\n"
"PO-Revision-Date: 2021-05-20 10:54+0800\n" "PO-Revision-Date: 2021-05-20 10:54+0800\n"
"Last-Translator: ibuler <ibuler@qq.com>\n" "Last-Translator: ibuler <ibuler@qq.com>\n"
"Language-Team: JumpServer team<ibuler@qq.com>\n" "Language-Team: JumpServer team<ibuler@qq.com>\n"
@ -37,7 +37,7 @@ msgstr "生成與資產或應用程序相關的備份信息文件"
#: accounts/automations/backup_account/handlers.py:156 #: accounts/automations/backup_account/handlers.py:156
#: accounts/automations/backup_account/handlers.py:295 #: accounts/automations/backup_account/handlers.py:295
#: accounts/automations/backup_account/manager.py:40 ops/serializers/job.py:76 #: accounts/automations/backup_account/manager.py:40 ops/serializers/job.py:82
#: settings/templates/ldap/_msg_import_ldap_user.html:7 #: settings/templates/ldap/_msg_import_ldap_user.html:7
msgid "Time cost" msgid "Time cost"
msgstr "花費時間" msgstr "花費時間"
@ -69,7 +69,7 @@ msgstr "完成"
#: assets/serializers/automations/base.py:52 audits/const.py:64 #: assets/serializers/automations/base.py:52 audits/const.py:64
#: audits/models.py:64 audits/signal_handlers/activity_log.py:33 #: audits/models.py:64 audits/signal_handlers/activity_log.py:33
#: common/const/choices.py:65 ops/const.py:74 ops/serializers/celery.py:48 #: common/const/choices.py:65 ops/const.py:74 ops/serializers/celery.py:48
#: terminal/const.py:78 terminal/models/session/sharing.py:121 #: terminal/const.py:80 terminal/models/session/sharing.py:121
#: tickets/views/approve.py:128 #: tickets/views/approve.py:128
msgid "Success" msgid "Success"
msgstr "成功" msgstr "成功"
@ -78,7 +78,7 @@ msgstr "成功"
#: accounts/const/account.py:34 accounts/const/automation.py:109 #: accounts/const/account.py:34 accounts/const/automation.py:109
#: accounts/serializers/automations/change_secret.py:174 audits/const.py:65 #: accounts/serializers/automations/change_secret.py:174 audits/const.py:65
#: audits/signal_handlers/activity_log.py:33 common/const/choices.py:66 #: audits/signal_handlers/activity_log.py:33 common/const/choices.py:66
#: ops/const.py:76 terminal/const.py:79 xpack/plugins/cloud/const.py:47 #: ops/const.py:76 terminal/const.py:81 xpack/plugins/cloud/const.py:47
msgid "Failed" msgid "Failed"
msgstr "失敗" msgstr "失敗"
@ -151,7 +151,7 @@ msgid "Access key"
msgstr "Access key" msgstr "Access key"
#: accounts/const/account.py:9 authentication/backends/passkey/models.py:16 #: accounts/const/account.py:9 authentication/backends/passkey/models.py:16
#: authentication/models/sso_token.py:14 settings/serializers/feature.py:55 #: authentication/models/sso_token.py:14 settings/serializers/feature.py:75
msgid "Token" msgid "Token"
msgstr "Token" msgstr "Token"
@ -306,12 +306,12 @@ msgstr "僅創建"
msgid "Email" msgid "Email"
msgstr "信箱" msgstr "信箱"
#: accounts/const/automation.py:105 terminal/const.py:87 #: accounts/const/automation.py:105 terminal/const.py:89
msgid "SFTP" msgid "SFTP"
msgstr "SFTP" msgstr "SFTP"
#: accounts/const/automation.py:111 assets/serializers/automations/base.py:54 #: accounts/const/automation.py:111 assets/serializers/automations/base.py:54
#: common/const/choices.py:63 terminal/const.py:77 tickets/const.py:29 #: common/const/choices.py:63 terminal/const.py:79 tickets/const.py:29
#: tickets/const.py:38 #: tickets/const.py:38
msgid "Pending" msgid "Pending"
msgstr "待定的" msgstr "待定的"
@ -321,10 +321,14 @@ msgstr "待定的"
msgid "Database" msgid "Database"
msgstr "資料庫" msgstr "資料庫"
#: accounts/const/vault.py:9 settings/serializers/feature.py:46 #: accounts/const/vault.py:9 settings/serializers/feature.py:70
msgid "HCP Vault" msgid "HCP Vault"
msgstr "HashiCorp Vault" msgstr "HashiCorp Vault"
#: accounts/const/vault.py:10 settings/serializers/feature.py:83
msgid "Azure Key Vault"
msgstr ""
#: accounts/mixins.py:35 #: accounts/mixins.py:35
msgid "Export all" msgid "Export all"
msgstr "匯出所有" msgstr "匯出所有"
@ -469,9 +473,9 @@ msgstr "帳號備份計劃"
#: accounts/models/automations/backup_account.py:120 #: accounts/models/automations/backup_account.py:120
#: assets/models/automations/base.py:115 audits/models.py:65 #: assets/models/automations/base.py:115 audits/models.py:65
#: ops/models/base.py:55 ops/models/celery.py:89 ops/models/job.py:242 #: ops/models/base.py:55 ops/models/celery.py:89 ops/models/job.py:247
#: ops/templates/ops/celery_task_log.html:101 #: ops/templates/ops/celery_task_log.html:101
#: perms/models/asset_permission.py:78 settings/serializers/feature.py:25 #: perms/models/asset_permission.py:78 settings/serializers/feature.py:26
#: settings/templates/ldap/_msg_import_ldap_user.html:5 #: settings/templates/ldap/_msg_import_ldap_user.html:5
#: terminal/models/applet/host.py:141 terminal/models/session/session.py:45 #: terminal/models/applet/host.py:141 terminal/models/session/session.py:45
#: tickets/models/ticket/apply_application.py:30 #: tickets/models/ticket/apply_application.py:30
@ -508,7 +512,7 @@ msgstr "原因"
#: accounts/models/automations/backup_account.py:136 #: accounts/models/automations/backup_account.py:136
#: accounts/serializers/automations/change_secret.py:117 #: accounts/serializers/automations/change_secret.py:117
#: accounts/serializers/automations/change_secret.py:152 #: accounts/serializers/automations/change_secret.py:152
#: ops/serializers/job.py:74 terminal/serializers/session.py:54 #: ops/serializers/job.py:80 terminal/serializers/session.py:54
msgid "Is success" msgid "Is success"
msgstr "是否成功" msgstr "是否成功"
@ -583,7 +587,7 @@ msgstr "開始日期"
#: accounts/models/automations/change_secret.py:42 #: accounts/models/automations/change_secret.py:42
#: assets/models/automations/base.py:116 ops/models/base.py:56 #: assets/models/automations/base.py:116 ops/models/base.py:56
#: ops/models/celery.py:90 ops/models/job.py:243 #: ops/models/celery.py:90 ops/models/job.py:248
#: terminal/models/applet/host.py:142 #: terminal/models/applet/host.py:142
msgid "Date finished" msgid "Date finished"
msgstr "結束日期" msgstr "結束日期"
@ -591,7 +595,7 @@ msgstr "結束日期"
#: accounts/models/automations/change_secret.py:44 #: accounts/models/automations/change_secret.py:44
#: assets/models/automations/base.py:113 #: assets/models/automations/base.py:113
#: assets/serializers/automations/base.py:39 audits/models.py:208 #: assets/serializers/automations/base.py:39 audits/models.py:208
#: audits/serializers.py:54 ops/models/base.py:49 ops/models/job.py:234 #: audits/serializers.py:54 ops/models/base.py:49 ops/models/job.py:239
#: terminal/models/applet/applet.py:331 terminal/models/applet/host.py:140 #: terminal/models/applet/applet.py:331 terminal/models/applet/host.py:140
#: terminal/models/component/status.py:30 #: terminal/models/component/status.py:30
#: terminal/models/virtualapp/virtualapp.py:99 #: terminal/models/virtualapp/virtualapp.py:99
@ -666,12 +670,12 @@ msgstr "觸發方式"
#: audits/models.py:92 audits/serializers.py:84 #: audits/models.py:92 audits/serializers.py:84
#: authentication/serializers/connect_token_secret.py:119 #: authentication/serializers/connect_token_secret.py:119
#: authentication/templates/authentication/_access_key_modal.html:34 #: authentication/templates/authentication/_access_key_modal.html:34
#: behemoth/serializers/environment.py:13 perms/serializers/permission.py:52 #: perms/serializers/permission.py:52 perms/serializers/permission.py:74
#: perms/serializers/permission.py:74 tickets/serializers/ticket/ticket.py:21 #: tickets/serializers/ticket/ticket.py:21
msgid "Action" msgid "Action"
msgstr "動作" msgstr "動作"
#: accounts/models/automations/push_account.py:57 #: accounts/models/automations/push_account.py:58
msgid "Push asset account" msgid "Push asset account"
msgstr "帳號推送" msgstr "帳號推送"
@ -720,13 +724,13 @@ msgstr "密碼規則"
#: authentication/serializers/connect_token_secret.py:113 #: authentication/serializers/connect_token_secret.py:113
#: authentication/serializers/connect_token_secret.py:169 labels/models.py:11 #: authentication/serializers/connect_token_secret.py:169 labels/models.py:11
#: ops/mixin.py:28 ops/models/adhoc.py:19 ops/models/celery.py:15 #: ops/mixin.py:28 ops/models/adhoc.py:19 ops/models/celery.py:15
#: ops/models/celery.py:81 ops/models/job.py:142 ops/models/playbook.py:30 #: ops/models/celery.py:81 ops/models/job.py:145 ops/models/playbook.py:28
#: ops/serializers/job.py:18 orgs/models.py:82 #: ops/models/variable.py:9 ops/serializers/job.py:19 orgs/models.py:82
#: perms/models/asset_permission.py:61 rbac/models/role.py:29 #: perms/models/asset_permission.py:61 rbac/models/role.py:29
#: rbac/serializers/role.py:28 settings/models.py:35 settings/models.py:184 #: rbac/serializers/role.py:28 settings/models.py:35 settings/models.py:184
#: settings/serializers/msg.py:89 settings/serializers/terminal.py:9 #: settings/serializers/msg.py:89 settings/serializers/terminal.py:9
#: terminal/models/applet/applet.py:34 terminal/models/component/endpoint.py:13 #: terminal/models/applet/applet.py:34 terminal/models/component/endpoint.py:13
#: terminal/models/component/endpoint.py:111 #: terminal/models/component/endpoint.py:112
#: terminal/models/component/storage.py:26 terminal/models/component/task.py:13 #: terminal/models/component/storage.py:26 terminal/models/component/task.py:13
#: terminal/models/component/terminal.py:85 #: terminal/models/component/terminal.py:85
#: terminal/models/virtualapp/provider.py:10 #: terminal/models/virtualapp/provider.py:10
@ -884,7 +888,7 @@ msgstr "類別"
#: assets/serializers/asset/common.py:146 assets/serializers/platform.py:159 #: assets/serializers/asset/common.py:146 assets/serializers/platform.py:159
#: assets/serializers/platform.py:171 audits/serializers.py:53 #: assets/serializers/platform.py:171 audits/serializers.py:53
#: audits/serializers.py:170 #: audits/serializers.py:170
#: authentication/serializers/connect_token_secret.py:126 ops/models/job.py:150 #: authentication/serializers/connect_token_secret.py:126 ops/models/job.py:153
#: perms/serializers/user_permission.py:27 terminal/models/applet/applet.py:40 #: perms/serializers/user_permission.py:27 terminal/models/applet/applet.py:40
#: terminal/models/component/storage.py:58 #: terminal/models/component/storage.py:58
#: terminal/models/component/storage.py:152 terminal/serializers/applet.py:29 #: terminal/models/component/storage.py:152 terminal/serializers/applet.py:29
@ -920,10 +924,8 @@ msgstr "已修改"
#: assets/models/automations/base.py:19 #: assets/models/automations/base.py:19
#: assets/serializers/automations/base.py:20 assets/serializers/domain.py:34 #: assets/serializers/automations/base.py:20 assets/serializers/domain.py:34
#: assets/serializers/platform.py:180 assets/serializers/platform.py:212 #: assets/serializers/platform.py:180 assets/serializers/platform.py:212
#: authentication/api/connection_token.py:410 #: authentication/api/connection_token.py:410 ops/models/base.py:17
#: behemoth/serializers/environment.py:11 #: ops/models/job.py:155 ops/serializers/job.py:20
#: behemoth/serializers/environment.py:22 ops/models/base.py:17
#: ops/models/job.py:152 ops/serializers/job.py:19
#: perms/serializers/permission.py:46 #: perms/serializers/permission.py:46
#: terminal/templates/terminal/_msg_command_execute_alert.html:16 #: terminal/templates/terminal/_msg_command_execute_alert.html:16
#: xpack/plugins/cloud/manager.py:89 #: xpack/plugins/cloud/manager.py:89
@ -1073,11 +1075,11 @@ msgstr "關聯平台,可配置推送參數,如果不關聯,將使用默認
#: accounts/serializers/account/virtual.py:19 assets/models/cmd_filter.py:40 #: accounts/serializers/account/virtual.py:19 assets/models/cmd_filter.py:40
#: assets/models/cmd_filter.py:88 common/db/models.py:36 ops/models/adhoc.py:25 #: assets/models/cmd_filter.py:88 common/db/models.py:36 ops/models/adhoc.py:25
#: ops/models/job.py:158 ops/models/playbook.py:33 rbac/models/role.py:37 #: ops/models/job.py:163 ops/models/playbook.py:31 rbac/models/role.py:37
#: settings/models.py:40 terminal/models/applet/applet.py:46 #: settings/models.py:40 terminal/models/applet/applet.py:46
#: terminal/models/applet/applet.py:332 terminal/models/applet/host.py:143 #: terminal/models/applet/applet.py:332 terminal/models/applet/host.py:143
#: terminal/models/component/endpoint.py:26 #: terminal/models/component/endpoint.py:27
#: terminal/models/component/endpoint.py:121 #: terminal/models/component/endpoint.py:122
#: terminal/models/session/session.py:47 #: terminal/models/session/session.py:47
#: terminal/models/virtualapp/virtualapp.py:28 tickets/models/comment.py:32 #: terminal/models/virtualapp/virtualapp.py:28 tickets/models/comment.py:32
#: tickets/models/ticket/general.py:298 users/models/user/__init__.py:91 #: tickets/models/ticket/general.py:298 users/models/user/__init__.py:91
@ -1097,7 +1099,8 @@ msgstr ""
#: accounts/serializers/automations/base.py:23 #: accounts/serializers/automations/base.py:23
#: assets/models/asset/common.py:176 assets/serializers/asset/common.py:172 #: assets/models/asset/common.py:176 assets/serializers/asset/common.py:172
#: assets/serializers/automations/base.py:21 perms/serializers/permission.py:47 #: assets/serializers/automations/base.py:21 ops/serializers/job.py:21
#: perms/serializers/permission.py:47
msgid "Nodes" msgid "Nodes"
msgstr "節點" msgstr "節點"
@ -1358,12 +1361,12 @@ msgid "Notify and warn"
msgstr "提示並警告" msgstr "提示並警告"
#: acls/models/base.py:37 assets/models/cmd_filter.py:76 #: acls/models/base.py:37 assets/models/cmd_filter.py:76
#: terminal/models/component/endpoint.py:114 xpack/plugins/cloud/models.py:316 #: terminal/models/component/endpoint.py:115 xpack/plugins/cloud/models.py:316
msgid "Priority" msgid "Priority"
msgstr "優先度" msgstr "優先度"
#: acls/models/base.py:38 assets/models/cmd_filter.py:76 #: acls/models/base.py:38 assets/models/cmd_filter.py:76
#: terminal/models/component/endpoint.py:115 xpack/plugins/cloud/models.py:317 #: terminal/models/component/endpoint.py:116 xpack/plugins/cloud/models.py:317
msgid "1-100, the lower the value will be match first" msgid "1-100, the lower the value will be match first"
msgstr "優先度可選範圍為 1-100 (數值越小越優先)" msgstr "優先度可選範圍為 1-100 (數值越小越優先)"
@ -1377,8 +1380,8 @@ msgstr "審批人"
#: authentication/models/connection_token.py:53 #: authentication/models/connection_token.py:53
#: authentication/models/ssh_key.py:13 #: authentication/models/ssh_key.py:13
#: authentication/templates/authentication/_access_key_modal.html:32 #: authentication/templates/authentication/_access_key_modal.html:32
#: perms/models/asset_permission.py:82 terminal/models/component/endpoint.py:27 #: perms/models/asset_permission.py:82 terminal/models/component/endpoint.py:28
#: terminal/models/component/endpoint.py:122 #: terminal/models/component/endpoint.py:123
#: terminal/models/session/sharing.py:29 terminal/serializers/terminal.py:44 #: terminal/models/session/sharing.py:29 terminal/serializers/terminal.py:44
#: tickets/const.py:36 #: tickets/const.py:36
msgid "Active" msgid "Active"
@ -1398,7 +1401,7 @@ msgid "Accounts"
msgstr "帳號管理" msgstr "帳號管理"
#: acls/models/command_acl.py:16 assets/models/cmd_filter.py:60 #: acls/models/command_acl.py:16 assets/models/cmd_filter.py:60
#: ops/serializers/job.py:73 terminal/const.py:86 #: ops/serializers/job.py:79 terminal/const.py:88
#: terminal/models/session/session.py:43 terminal/serializers/command.py:18 #: terminal/models/session/session.py:43 terminal/serializers/command.py:18
#: terminal/templates/terminal/_msg_command_alert.html:12 #: terminal/templates/terminal/_msg_command_alert.html:12
#: terminal/templates/terminal/_msg_command_execute_alert.html:10 #: terminal/templates/terminal/_msg_command_execute_alert.html:10
@ -1412,7 +1415,7 @@ msgid "Regex"
msgstr "正則表達式" msgstr "正則表達式"
#: acls/models/command_acl.py:26 assets/models/cmd_filter.py:79 #: acls/models/command_acl.py:26 assets/models/cmd_filter.py:79
#: settings/models.py:185 settings/serializers/feature.py:20 #: settings/models.py:185 settings/serializers/feature.py:21
#: settings/serializers/msg.py:78 xpack/plugins/license/models.py:30 #: settings/serializers/msg.py:78 xpack/plugins/license/models.py:30
msgid "Content" msgid "Content"
msgstr "內容" msgstr "內容"
@ -1672,7 +1675,7 @@ msgid "Authentication failed"
msgstr "認證失敗" msgstr "認證失敗"
#: assets/automations/ping_gateway/manager.py:60 #: assets/automations/ping_gateway/manager.py:60
#: assets/automations/ping_gateway/manager.py:86 terminal/const.py:102 #: assets/automations/ping_gateway/manager.py:86 terminal/const.py:104
msgid "Connect failed" msgid "Connect failed"
msgstr "連接失敗" msgstr "連接失敗"
@ -1720,9 +1723,9 @@ msgstr "腳本"
#: assets/const/category.py:10 assets/models/asset/host.py:8 #: assets/const/category.py:10 assets/models/asset/host.py:8
#: settings/serializers/auth/radius.py:17 settings/serializers/auth/sms.py:76 #: settings/serializers/auth/radius.py:17 settings/serializers/auth/sms.py:76
#: settings/serializers/feature.py:52 settings/serializers/msg.py:30 #: settings/serializers/feature.py:72 settings/serializers/feature.py:85
#: terminal/models/component/endpoint.py:14 terminal/serializers/applet.py:17 #: settings/serializers/msg.py:30 terminal/models/component/endpoint.py:14
#: xpack/plugins/cloud/manager.py:89 #: terminal/serializers/applet.py:17 xpack/plugins/cloud/manager.py:89
#: xpack/plugins/cloud/serializers/account_attrs.py:72 #: xpack/plugins/cloud/serializers/account_attrs.py:72
msgid "Host" msgid "Host"
msgstr "主機" msgstr "主機"
@ -2029,18 +2032,19 @@ msgstr "忽略證書校驗"
msgid "Postgresql SSL mode" msgid "Postgresql SSL mode"
msgstr "PostgreSQL SSL 模式" msgstr "PostgreSQL SSL 模式"
#: assets/models/asset/gpt.py:8 settings/serializers/feature.py:92 #: assets/models/asset/gpt.py:8 settings/serializers/feature.py:115
msgid "Proxy" msgid "Proxy"
msgstr "代理" msgstr "代理"
#: assets/models/automations/base.py:18 assets/models/cmd_filter.py:32 #: assets/models/automations/base.py:18 assets/models/cmd_filter.py:32
#: assets/models/node.py:553 perms/models/asset_permission.py:72 #: assets/models/node.py:553 ops/models/job.py:156
#: tickets/models/ticket/apply_asset.py:14 xpack/plugins/cloud/models.py:388 #: perms/models/asset_permission.py:72 tickets/models/ticket/apply_asset.py:14
#: xpack/plugins/cloud/models.py:388
msgid "Node" msgid "Node"
msgstr "節點" msgstr "節點"
#: assets/models/automations/base.py:22 ops/models/job.py:237 #: assets/models/automations/base.py:22 ops/models/job.py:242
#: settings/serializers/auth/sms.py:108 #: ops/serializers/job.py:23 settings/serializers/auth/sms.py:108
msgid "Parameters" msgid "Parameters"
msgstr "參數" msgstr "參數"
@ -2055,7 +2059,7 @@ msgstr "資產自動化任務"
# msgid "Comment" # msgid "Comment"
# msgstr "備註" # msgstr "備註"
#: assets/models/automations/base.py:114 assets/models/cmd_filter.py:41 #: assets/models/automations/base.py:114 assets/models/cmd_filter.py:41
#: common/db/models.py:34 ops/models/base.py:54 ops/models/job.py:241 #: common/db/models.py:34 ops/models/base.py:54 ops/models/job.py:246
#: users/models/user/__init__.py:311 #: users/models/user/__init__.py:311
msgid "Date created" msgid "Date created"
msgstr "創建日期" msgstr "創建日期"
@ -2187,7 +2191,7 @@ msgstr "可以匹配節點"
msgid "Primary" msgid "Primary"
msgstr "主要的" msgstr "主要的"
#: assets/models/platform.py:18 #: assets/models/platform.py:18 ops/models/variable.py:20
msgid "Required" msgid "Required"
msgstr "必須的" msgstr "必須的"
@ -2730,7 +2734,7 @@ msgstr "標籤"
msgid "operate_log_id" msgid "operate_log_id"
msgstr "Action日誌ID" msgstr "Action日誌ID"
#: audits/backends/db.py:111 #: audits/backends/db.py:111 ops/models/variable.py:19
msgid "Tips" msgid "Tips"
msgstr "提示" msgstr "提示"
@ -2974,8 +2978,8 @@ msgid "Offline user session"
msgstr "下線用戶會話" msgstr "下線用戶會話"
#: audits/serializers.py:33 ops/models/adhoc.py:24 ops/models/base.py:16 #: audits/serializers.py:33 ops/models/adhoc.py:24 ops/models/base.py:16
#: ops/models/base.py:53 ops/models/celery.py:87 ops/models/job.py:151 #: ops/models/base.py:53 ops/models/celery.py:87 ops/models/job.py:154
#: ops/models/job.py:240 ops/models/playbook.py:32 #: ops/models/job.py:245 ops/models/playbook.py:30 ops/models/variable.py:17
#: terminal/models/session/sharing.py:25 #: terminal/models/session/sharing.py:25
msgid "Creator" msgid "Creator"
msgstr "創建者" msgstr "創建者"
@ -3521,7 +3525,7 @@ msgid "Please change your password"
msgstr "請修改密碼" msgstr "請修改密碼"
#: authentication/models/access_key.py:22 #: authentication/models/access_key.py:22
#: terminal/models/component/endpoint.py:112 #: terminal/models/component/endpoint.py:113
msgid "IP group" msgid "IP group"
msgstr "IPグループ" msgstr "IPグループ"
@ -3812,7 +3816,7 @@ msgstr "代碼錯誤"
#: authentication/templates/authentication/_msg_oauth_bind.html:3 #: authentication/templates/authentication/_msg_oauth_bind.html:3
#: authentication/templates/authentication/_msg_reset_password.html:3 #: authentication/templates/authentication/_msg_reset_password.html:3
#: authentication/templates/authentication/_msg_reset_password_code.html:9 #: authentication/templates/authentication/_msg_reset_password_code.html:9
#: jumpserver/conf.py:522 #: jumpserver/conf.py:529
#: perms/templates/perms/_msg_item_permissions_expire.html:3 #: perms/templates/perms/_msg_item_permissions_expire.html:3
#: tickets/templates/tickets/approve_check_password.html:32 #: tickets/templates/tickets/approve_check_password.html:32
#: users/templates/users/_msg_account_expire_reminder.html:4 #: users/templates/users/_msg_account_expire_reminder.html:4
@ -4555,16 +4559,16 @@ msgstr "不能包含特殊字元"
msgid "The mobile phone number format is incorrect" msgid "The mobile phone number format is incorrect"
msgstr "手機號碼格式不正確" msgstr "手機號碼格式不正確"
#: jumpserver/conf.py:516 #: jumpserver/conf.py:523
#, python-brace-format #, python-brace-format
msgid "The verification code is: {code}" msgid "The verification code is: {code}"
msgstr "驗證碼為: {code}" msgstr "驗證碼為: {code}"
#: jumpserver/conf.py:521 #: jumpserver/conf.py:528
msgid "Create account successfully" msgid "Create account successfully"
msgstr "創建帳號成功" msgstr "創建帳號成功"
#: jumpserver/conf.py:523 #: jumpserver/conf.py:530
msgid "Your account has been created successfully" msgid "Your account has been created successfully"
msgstr "你的帳號已創建成功" msgstr "你的帳號已創建成功"
@ -4665,7 +4669,7 @@ msgid ""
" work orders, and other notifications" " work orders, and other notifications"
msgstr "系統一些告警,工單等需要發送站內信時執行該任務" msgstr "系統一些告警,工單等需要發送站內信時執行該任務"
#: ops/ansible/inventory.py:116 ops/models/job.py:65 #: ops/ansible/inventory.py:116 ops/models/job.py:68
msgid "No account available" msgid "No account available"
msgstr "無可用帳號" msgstr "無可用帳號"
@ -4689,34 +4693,34 @@ msgstr "任務 {} 不存在"
msgid "Task {} args or kwargs error" msgid "Task {} args or kwargs error"
msgstr "任務 {} 執行參數錯誤" msgstr "任務 {} 執行參數錯誤"
#: ops/api/job.py:83 #: ops/api/job.py:68
#, python-brace-format #, python-brace-format
msgid "" msgid ""
"Asset ({asset}) must have at least one of the following protocols added: " "Asset ({asset}) must have at least one of the following protocols added: "
"SSH, SFTP, or WinRM" "SSH, SFTP, or WinRM"
msgstr "资产({asset})至少要添加ssh,sftp,winrm其中一种协议" msgstr "资产({asset})至少要添加ssh,sftp,winrm其中一种协议"
#: ops/api/job.py:84 #: ops/api/job.py:69
#, python-brace-format #, python-brace-format
msgid "Asset ({asset}) authorization is missing SSH, SFTP, or WinRM protocol" msgid "Asset ({asset}) authorization is missing SSH, SFTP, or WinRM protocol"
msgstr "资产({asset})授权缺少ssh,sftp或winrm协议" msgstr "资产({asset})授权缺少ssh,sftp或winrm协议"
#: ops/api/job.py:85 #: ops/api/job.py:70
#, python-brace-format #, python-brace-format
msgid "Asset ({asset}) authorization lacks upload permissions" msgid "Asset ({asset}) authorization lacks upload permissions"
msgstr "资产({asset})授权缺少上传权限" msgstr "资产({asset})授权缺少上传权限"
#: ops/api/job.py:170 #: ops/api/job.py:157
msgid "Duplicate file exists" msgid "Duplicate file exists"
msgstr "存在同名文件" msgstr "存在同名文件"
#: ops/api/job.py:175 #: ops/api/job.py:162
#, python-brace-format #, python-brace-format
msgid "" msgid ""
"File size exceeds maximum limit. Please select a file smaller than {limit}MB" "File size exceeds maximum limit. Please select a file smaller than {limit}MB"
msgstr "檔案大小超過最大限制。請選擇小於 {limit}MB 的文件。" msgstr "檔案大小超過最大限制。請選擇小於 {limit}MB 的文件。"
#: ops/api/job.py:244 #: ops/api/job.py:231
msgid "" msgid ""
"The task is being created and cannot be interrupted. Please try again later." "The task is being created and cannot be interrupted. Please try again later."
msgstr "正在創建任務,無法中斷,請稍後重試。" msgstr "正在創建任務,無法中斷,請稍後重試。"
@ -4785,11 +4789,13 @@ msgstr "空白"
msgid "VCS" msgid "VCS"
msgstr "VCS" msgstr "VCS"
#: ops/const.py:38 ops/models/adhoc.py:44 settings/serializers/feature.py:123 #: ops/const.py:38 ops/models/adhoc.py:44 ops/models/variable.py:26
#: settings/serializers/feature.py:146
msgid "Adhoc" msgid "Adhoc"
msgstr "命令" msgstr "命令"
#: ops/const.py:39 ops/models/job.py:149 ops/models/playbook.py:91 #: ops/const.py:39 ops/models/job.py:152 ops/models/playbook.py:89
#: ops/models/variable.py:23
msgid "Playbook" msgid "Playbook"
msgstr "Playbook" msgstr "Playbook"
@ -4901,16 +4907,16 @@ msgstr "需要週期或定期設定"
msgid "Pattern" msgid "Pattern"
msgstr "模式" msgstr "模式"
#: ops/models/adhoc.py:22 ops/models/job.py:146 #: ops/models/adhoc.py:22 ops/models/job.py:149
msgid "Module" msgid "Module"
msgstr "模組" msgstr "模組"
#: ops/models/adhoc.py:23 ops/models/celery.py:82 ops/models/job.py:144 #: ops/models/adhoc.py:23 ops/models/celery.py:82 ops/models/job.py:147
#: terminal/models/component/task.py:14 #: terminal/models/component/task.py:14
msgid "Args" msgid "Args"
msgstr "參數" msgstr "參數"
#: ops/models/adhoc.py:26 ops/models/playbook.py:36 ops/serializers/mixin.py:10 #: ops/models/adhoc.py:26 ops/models/playbook.py:34 ops/serializers/mixin.py:10
#: rbac/models/role.py:31 rbac/models/rolebinding.py:46 #: rbac/models/role.py:31 rbac/models/rolebinding.py:46
#: rbac/serializers/role.py:12 settings/serializers/auth/oauth2.py:37 #: rbac/serializers/role.py:12 settings/serializers/auth/oauth2.py:37
msgid "Scope" msgid "Scope"
@ -4926,16 +4932,16 @@ msgstr "帳號策略"
msgid "Last execution" msgid "Last execution"
msgstr "最後執行" msgstr "最後執行"
#: ops/models/base.py:22 ops/serializers/job.py:17 #: ops/models/base.py:22 ops/serializers/job.py:18
msgid "Date last run" msgid "Date last run"
msgstr "最後運行日期" msgstr "最後運行日期"
#: ops/models/base.py:51 ops/models/job.py:238 #: ops/models/base.py:51 ops/models/job.py:243
#: xpack/plugins/cloud/models.py:225 #: xpack/plugins/cloud/models.py:225
msgid "Result" msgid "Result"
msgstr "結果" msgstr "結果"
#: ops/models/base.py:52 ops/models/job.py:239 #: ops/models/base.py:52 ops/models/job.py:244
#: xpack/plugins/cloud/manager.py:99 #: xpack/plugins/cloud/manager.py:99
msgid "Summary" msgid "Summary"
msgstr "匯總" msgstr "匯總"
@ -4964,52 +4970,52 @@ msgstr "發布日期"
msgid "Celery Task Execution" msgid "Celery Task Execution"
msgstr "Celery 任務執行" msgstr "Celery 任務執行"
#: ops/models/job.py:147 #: ops/models/job.py:150
msgid "Run dir" msgid "Run dir"
msgstr "執行目錄" msgstr "執行目錄"
#: ops/models/job.py:148 #: ops/models/job.py:151
msgid "Timeout (Seconds)" msgid "Timeout (Seconds)"
msgstr "超時時間 (秒)" msgstr "超時時間 (秒)"
#: ops/models/job.py:153 #: ops/models/job.py:157
msgid "Use Parameter Define" msgid "Use Parameter Define"
msgstr "使用參數定義" msgstr "使用參數定義"
#: ops/models/job.py:154 #: ops/models/job.py:158
msgid "Parameters define" msgid "Parameters define"
msgstr "參數定義" msgstr "參數定義"
#: ops/models/job.py:155 #: ops/models/job.py:155
msgid "Run as" msgid "Run as"
msgstr "運行賬號" msgstr "執行使用者"
#: ops/models/job.py:157 #: ops/models/job.py:162
msgid "Run as policy" msgid "Run as policy"
msgstr "賬號策略" msgstr "使用者策略"
#: ops/models/job.py:222 ops/serializers/job.py:92 #: ops/models/job.py:227 ops/models/variable.py:28 ops/serializers/job.py:98
#: terminal/notifications.py:182 #: terminal/notifications.py:182
msgid "Job" msgid "Job"
msgstr "作業" msgstr "作業"
#: ops/models/job.py:245 #: ops/models/job.py:250
msgid "Material" msgid "Material"
msgstr "Material" msgstr "Material"
#: ops/models/job.py:247 #: ops/models/job.py:252
msgid "Material Type" msgid "Material Type"
msgstr "Material 類型" msgstr "Material 類型"
#: ops/models/job.py:558 #: ops/models/job.py:564
msgid "Job Execution" msgid "Job Execution"
msgstr "作業執行" msgstr "作業執行"
#: ops/models/playbook.py:35 #: ops/models/playbook.py:33
msgid "CreateMethod" msgid "CreateMethod"
msgstr "創建方式" msgstr "創建方式"
#: ops/models/playbook.py:37 #: ops/models/playbook.py:35
msgid "VCS URL" msgid "VCS URL"
msgstr "VCS URL" msgstr "VCS URL"
@ -5049,27 +5055,27 @@ msgstr "週期性Action"
msgid "Next execution time" msgid "Next execution time"
msgstr "下次Action時間" msgstr "下次Action時間"
#: ops/serializers/job.py:15 #: ops/serializers/job.py:17
msgid "Execute after saving" msgid "Execute after saving"
msgstr "儲存後Action" msgstr "儲存後Action"
#: ops/serializers/job.py:52 terminal/serializers/session.py:49 #: ops/serializers/job.py:58 terminal/serializers/session.py:49
msgid "Duration" msgid "Duration"
msgstr "時長" msgstr "時長"
#: ops/serializers/job.py:72 #: ops/serializers/job.py:78
msgid "Job type" msgid "Job type"
msgstr "任務類型" msgstr "任務類型"
#: ops/serializers/job.py:75 terminal/serializers/session.py:58 #: ops/serializers/job.py:81 terminal/serializers/session.py:58
msgid "Is finished" msgid "Is finished"
msgstr "是否完成" msgstr "是否完成"
#: ops/serializers/job.py:89 #: ops/serializers/job.py:95
msgid "Task id" msgid "Task id"
msgstr "任務 ID" msgstr "任務 ID"
#: ops/serializers/job.py:98 #: ops/serializers/job.py:104
msgid "You do not have permission for the current job." msgid "You do not have permission for the current job."
msgstr "你沒有當前作業的權限。" msgstr "你沒有當前作業的權限。"
@ -5077,33 +5083,33 @@ msgstr "你沒有當前作業的權限。"
msgid "Run ansible task" msgid "Run ansible task"
msgstr "運行 Ansible 任務" msgstr "運行 Ansible 任務"
#: ops/tasks.py:54 #: ops/tasks.py:56
msgid "" msgid ""
"Execute scheduled adhoc and playbooks, periodically invoking the task for " "Execute scheduled adhoc and playbooks, periodically invoking the task for "
"execution" "execution"
msgstr "當執行定時的快捷命令playbook定時呼叫該任務執行" msgstr "當執行定時的快捷命令playbook定時呼叫該任務執行"
#: ops/tasks.py:82 #: ops/tasks.py:88
msgid "Run ansible task execution" msgid "Run ansible task execution"
msgstr "開始執行 Ansible 任務" msgstr "開始執行 Ansible 任務"
#: ops/tasks.py:85 #: ops/tasks.py:91
msgid "Execute the task when manually adhoc or playbooks" msgid "Execute the task when manually adhoc or playbooks"
msgstr "手動執行快捷命令playbook時執行該任務" msgstr "手動執行快捷命令playbook時執行該任務"
#: ops/tasks.py:99 #: ops/tasks.py:107
msgid "Clear celery periodic tasks" msgid "Clear celery periodic tasks"
msgstr "清理週期任務" msgstr "清理週期任務"
#: ops/tasks.py:101 #: ops/tasks.py:109
msgid "At system startup, clean up celery tasks that no longer exist" msgid "At system startup, clean up celery tasks that no longer exist"
msgstr "系統啟動時清理已經不存在的celery任務" msgstr "系統啟動時清理已經不存在的celery任務"
#: ops/tasks.py:125 #: ops/tasks.py:133
msgid "Create or update periodic tasks" msgid "Create or update periodic tasks"
msgstr "創建或更新週期任務" msgstr "創建或更新週期任務"
#: ops/tasks.py:127 #: ops/tasks.py:135
msgid "" msgid ""
"With version iterations, new tasks may be added, or task names and execution " "With version iterations, new tasks may be added, or task names and execution "
"times may \n" "times may \n"
@ -5114,11 +5120,11 @@ msgstr ""
"隨著版本迭代,可能會新增任務或者修改任務的名稱,執行時間,所以在系統啟動" "隨著版本迭代,可能會新增任務或者修改任務的名稱,執行時間,所以在系統啟動"
"時,,將會註冊任務或者更新定時任務參數" "時,,將會註冊任務或者更新定時任務參數"
#: ops/tasks.py:140 #: ops/tasks.py:148
msgid "Periodic check service performance" msgid "Periodic check service performance"
msgstr "週期檢測服務性能" msgstr "週期檢測服務性能"
#: ops/tasks.py:142 #: ops/tasks.py:150
msgid "" msgid ""
"Check every hour whether each component is offline and whether the CPU, " "Check every hour whether each component is offline and whether the CPU, "
"memory, \n" "memory, \n"
@ -5128,11 +5134,11 @@ msgstr ""
"每小時檢測各組件是否離線cpu內存硬盤使用率是否超過閾值向管理員發送訊息" "每小時檢測各組件是否離線cpu內存硬盤使用率是否超過閾值向管理員發送訊息"
"預警" "預警"
#: ops/tasks.py:152 #: ops/tasks.py:160
msgid "Clean up unexpected jobs" msgid "Clean up unexpected jobs"
msgstr "清理異常作業" msgstr "清理異常作業"
#: ops/tasks.py:154 #: ops/tasks.py:162
msgid "" msgid ""
"Due to exceptions caused by executing adhoc and playbooks in the Job " "Due to exceptions caused by executing adhoc and playbooks in the Job "
"Center, \n" "Center, \n"
@ -5145,11 +5151,11 @@ msgstr ""
"由於作業中心執行快捷命令playbook會產生異常任務狀態未更新完成系統將每小" "由於作業中心執行快捷命令playbook會產生異常任務狀態未更新完成系統將每小"
"時執行清理超3小時未完成的異常作業並將任務標記失敗" "時執行清理超3小時未完成的異常作業並將任務標記失敗"
#: ops/tasks.py:167 #: ops/tasks.py:175
msgid "Clean job_execution db record" msgid "Clean job_execution db record"
msgstr "清理作業中心執行歷史" msgstr "清理作業中心執行歷史"
#: ops/tasks.py:169 #: ops/tasks.py:177
msgid "" msgid ""
"Due to the execution of adhoc and playbooks in the Job Center, execution " "Due to the execution of adhoc and playbooks in the Job Center, execution "
"records will \n" "records will \n"
@ -5368,7 +5374,7 @@ msgid "today"
msgstr "今天" msgstr "今天"
#: perms/notifications.py:12 perms/notifications.py:44 #: perms/notifications.py:12 perms/notifications.py:44
#: settings/serializers/feature.py:114 #: settings/serializers/feature.py:137
msgid "day" msgid "day"
msgstr "天" msgstr "天"
@ -5623,7 +5629,7 @@ msgstr "帳號改密"
msgid "App ops" msgid "App ops"
msgstr "作業中心" msgstr "作業中心"
#: rbac/tree.py:57 settings/serializers/feature.py:120 #: rbac/tree.py:57 settings/serializers/feature.py:143
msgid "Feature" msgid "Feature"
msgstr "功能" msgstr "功能"
@ -5658,8 +5664,8 @@ msgstr "組織管理"
msgid "Ticket comment" msgid "Ticket comment"
msgstr "工單評論" msgstr "工單評論"
#: rbac/tree.py:159 settings/serializers/feature.py:101 #: rbac/tree.py:159 settings/serializers/feature.py:124
#: settings/serializers/feature.py:103 tickets/models/ticket/general.py:308 #: settings/serializers/feature.py:126 tickets/models/ticket/general.py:308
msgid "Ticket" msgid "Ticket"
msgstr "工單管理" msgstr "工單管理"
@ -5677,7 +5683,7 @@ msgstr "聊天 AI 沒有開啟"
#: settings/api/chat.py:79 settings/api/dingtalk.py:31 #: settings/api/chat.py:79 settings/api/dingtalk.py:31
#: settings/api/feishu.py:39 settings/api/slack.py:34 settings/api/sms.py:160 #: settings/api/feishu.py:39 settings/api/slack.py:34 settings/api/sms.py:160
#: settings/api/vault.py:40 settings/api/wecom.py:37 #: settings/api/vault.py:48 settings/api/wecom.py:37
msgid "Test success" msgid "Test success"
msgstr "測試成功" msgstr "測試成功"
@ -6070,12 +6076,13 @@ msgstr "圖示"
msgid "Service provider" msgid "Service provider"
msgstr "服務提供商" msgstr "服務提供商"
#: settings/serializers/auth/oauth2.py:31 #: settings/serializers/auth/oauth2.py:31 settings/serializers/feature.py:88
#: xpack/plugins/cloud/serializers/account_attrs.py:35 #: xpack/plugins/cloud/serializers/account_attrs.py:35
msgid "Client ID" msgid "Client ID"
msgstr "用戶端 ID" msgstr "用戶端 ID"
#: settings/serializers/auth/oauth2.py:34 settings/serializers/auth/oidc.py:24 #: settings/serializers/auth/oauth2.py:34 settings/serializers/auth/oidc.py:24
#: settings/serializers/feature.py:91
#: xpack/plugins/cloud/serializers/account_attrs.py:38 #: xpack/plugins/cloud/serializers/account_attrs.py:38
msgid "Client Secret" msgid "Client Secret"
msgstr "用戶端金鑰" msgstr "用戶端金鑰"
@ -6497,38 +6504,40 @@ msgstr ""
msgid "Change secret and push record retention days (day)" msgid "Change secret and push record retention days (day)"
msgstr "改密推送記錄保留天數 (天)" msgstr "改密推送記錄保留天數 (天)"
#: settings/serializers/feature.py:19 settings/serializers/msg.py:68 #: settings/serializers/feature.py:20 settings/serializers/msg.py:68
msgid "Subject" msgid "Subject"
msgstr "主題" msgstr "主題"
#: settings/serializers/feature.py:23 #: settings/serializers/feature.py:24
msgid "More Link" msgid "More Link"
msgstr "更多資訊 URL" msgstr "更多資訊 URL"
#: settings/serializers/feature.py:26 #: settings/serializers/feature.py:27
#: settings/templates/ldap/_msg_import_ldap_user.html:6 #: settings/templates/ldap/_msg_import_ldap_user.html:6
#: terminal/models/session/session.py:46 #: terminal/models/session/session.py:46
msgid "Date end" msgid "Date end"
msgstr "結束日期" msgstr "結束日期"
#: settings/serializers/feature.py:39 settings/serializers/feature.py:41 #: settings/serializers/feature.py:40 settings/serializers/feature.py:42
#: settings/serializers/feature.py:42 #: settings/serializers/feature.py:43
msgid "Announcement" msgid "Announcement"
msgstr "公告" msgstr "公告"
#: settings/serializers/feature.py:49 #: settings/serializers/feature.py:47 settings/serializers/feature.py:50
msgid "Vault" msgid "Vault"
msgstr "啟用 Vault" msgstr "啟用 Vault"
#: settings/serializers/feature.py:58 #: settings/serializers/feature.py:53
msgid "Mount Point" #, fuzzy
msgstr "掛載點" #| msgid "Provider"
msgid "Vault provider"
msgstr "雲服務商"
#: settings/serializers/feature.py:64 #: settings/serializers/feature.py:58
msgid "Record limit" msgid "Record limit"
msgstr "紀錄限制" msgstr "紀錄限制"
#: settings/serializers/feature.py:66 #: settings/serializers/feature.py:60
msgid "" msgid ""
"If the specific value is less than 999 (default), the system will " "If the specific value is less than 999 (default), the system will "
"automatically perform a task every night: check and delete historical " "automatically perform a task every night: check and delete historical "
@ -6538,74 +6547,83 @@ msgstr ""
"如果特定數值小於999系統將在每日晚間自動執行任務檢查並刪除超出預定數量的歷" "如果特定數值小於999系統將在每日晚間自動執行任務檢查並刪除超出預定數量的歷"
"史帳號。如果該數值達到或超過999則不進行任何歷史帳號的刪除操作。" "史帳號。如果該數值達到或超過999則不進行任何歷史帳號的刪除操作。"
#: settings/serializers/feature.py:76 settings/serializers/feature.py:82 #: settings/serializers/feature.py:78
msgid "Mount Point"
msgstr "掛載點"
#: settings/serializers/feature.py:94
#: xpack/plugins/cloud/serializers/account_attrs.py:41
msgid "Tenant ID"
msgstr "租戶 ID"
#: settings/serializers/feature.py:99 settings/serializers/feature.py:105
msgid "Chat AI" msgid "Chat AI"
msgstr "聊天 AI" msgstr "聊天 AI"
#: settings/serializers/feature.py:85 #: settings/serializers/feature.py:108
msgid "GPT Base URL" msgid "GPT Base URL"
msgstr "GPT 地址" msgstr "GPT 地址"
#: settings/serializers/feature.py:86 #: settings/serializers/feature.py:109
msgid "The base URL of the GPT service. For example: https://api.openai.com/v1" msgid "The base URL of the GPT service. For example: https://api.openai.com/v1"
msgstr "GPT 服務的基礎 URL。例如https://api.openai.com/v1" msgstr "GPT 服務的基礎 URL。例如https://api.openai.com/v1"
#: settings/serializers/feature.py:89 templates/_header_bar.html:96 #: settings/serializers/feature.py:112 templates/_header_bar.html:96
msgid "API Key" msgid "API Key"
msgstr "API Key" msgstr "API Key"
#: settings/serializers/feature.py:93 #: settings/serializers/feature.py:116
msgid "" msgid ""
"The proxy server address of the GPT service. For example: http://ip:port" "The proxy server address of the GPT service. For example: http://ip:port"
msgstr "GPT 服務的代理伺服器地址。例如http://ip:port" msgstr "GPT 服務的代理伺服器地址。例如http://ip:port"
#: settings/serializers/feature.py:96 #: settings/serializers/feature.py:119
msgid "GPT Model" msgid "GPT Model"
msgstr "GPT 模型" msgstr "GPT 模型"
#: settings/serializers/feature.py:105 #: settings/serializers/feature.py:128
msgid "Approval without login" msgid "Approval without login"
msgstr "免登入審核" msgstr "免登入審核"
#: settings/serializers/feature.py:106 #: settings/serializers/feature.py:129
msgid "Allow direct approval ticket without login" msgid "Allow direct approval ticket without login"
msgstr "允許無需登入直接批准工單" msgstr "允許無需登入直接批准工單"
#: settings/serializers/feature.py:110 #: settings/serializers/feature.py:133
msgid "Period" msgid "Period"
msgstr "時段" msgstr "時段"
#: settings/serializers/feature.py:111 #: settings/serializers/feature.py:134
msgid "" msgid ""
"The default authorization time period when applying for assets via a ticket" "The default authorization time period when applying for assets via a ticket"
msgstr "工單申請資產的預設授權時間段" msgstr "工單申請資產的預設授權時間段"
#: settings/serializers/feature.py:114 #: settings/serializers/feature.py:137
msgid "hour" msgid "hour"
msgstr "時" msgstr "時"
#: settings/serializers/feature.py:115 #: settings/serializers/feature.py:138
msgid "Unit" msgid "Unit"
msgstr "單位" msgstr "單位"
#: settings/serializers/feature.py:115 #: settings/serializers/feature.py:138
msgid "The unit of period" msgid "The unit of period"
msgstr "執行週期" msgstr "執行週期"
#: settings/serializers/feature.py:124 #: settings/serializers/feature.py:147
msgid "" msgid ""
"Allow users to execute batch commands in the Workbench - Job Center - Adhoc" "Allow users to execute batch commands in the Workbench - Job Center - Adhoc"
msgstr "允許使用者在工作台 - 作業中心 - Adhoc 中執行批量指令" msgstr "允許使用者在工作台 - 作業中心 - Adhoc 中執行批量指令"
#: settings/serializers/feature.py:128 #: settings/serializers/feature.py:151
msgid "Command blacklist" msgid "Command blacklist"
msgstr "作業中心命令黑名單" msgstr "作業中心命令黑名單"
#: settings/serializers/feature.py:129 #: settings/serializers/feature.py:152
msgid "Command blacklist in Adhoc" msgid "Command blacklist in Adhoc"
msgstr "作業中心指令黑名單" msgstr "作業中心指令黑名單"
#: settings/serializers/feature.py:134 #: settings/serializers/feature.py:157
#: terminal/models/virtualapp/provider.py:17 #: terminal/models/virtualapp/provider.py:17
#: terminal/models/virtualapp/virtualapp.py:36 #: terminal/models/virtualapp/virtualapp.py:36
#: terminal/models/virtualapp/virtualapp.py:97 #: terminal/models/virtualapp/virtualapp.py:97
@ -6613,11 +6631,11 @@ msgstr "作業中心指令黑名單"
msgid "Virtual app" msgid "Virtual app"
msgstr "虛擬應用" msgstr "虛擬應用"
#: settings/serializers/feature.py:137 #: settings/serializers/feature.py:160
msgid "Virtual App" msgid "Virtual App"
msgstr "虛擬應用" msgstr "虛擬應用"
#: settings/serializers/feature.py:139 #: settings/serializers/feature.py:162
msgid "" msgid ""
"Virtual applications, you can use the Linux operating system as an " "Virtual applications, you can use the Linux operating system as an "
"application server in remote applications." "application server in remote applications."
@ -7533,6 +7551,18 @@ msgstr "遠程桌面用戶端"
msgid "RDP Guide" msgid "RDP Guide"
msgstr "RDP 連接嚮導" msgstr "RDP 連接嚮導"
#: terminal/connect_methods.py:39
#, fuzzy
#| msgid "Client"
msgid "VNC Client"
msgstr "用戶端"
#: terminal/connect_methods.py:40
#, fuzzy
#| msgid "DB Guide"
msgid "VNC Guide"
msgstr "DB 連接嚮導"
#: terminal/const.py:10 #: terminal/const.py:10
msgid "Warning" msgid "Warning"
msgstr "告警" msgstr "告警"
@ -7557,7 +7587,7 @@ msgstr "嚴重"
msgid "High" msgid "High"
msgstr "較高" msgstr "較高"
#: terminal/const.py:47 terminal/const.py:84 #: terminal/const.py:47 terminal/const.py:86
#: users/templates/users/reset_password.html:54 #: users/templates/users/reset_password.html:54
msgid "Normal" msgid "Normal"
msgstr "正常" msgstr "正常"
@ -7566,47 +7596,47 @@ msgstr "正常"
msgid "Offline" msgid "Offline"
msgstr "離線" msgstr "離線"
#: terminal/const.py:80 #: terminal/const.py:82
msgid "Mismatch" msgid "Mismatch"
msgstr "未匹配" msgstr "未匹配"
#: terminal/const.py:85 #: terminal/const.py:87
msgid "Tunnel" msgid "Tunnel"
msgstr "隧道" msgstr "隧道"
#: terminal/const.py:91 #: terminal/const.py:93
msgid "Read only" msgid "Read only"
msgstr "只讀" msgstr "只讀"
#: terminal/const.py:92 #: terminal/const.py:94
msgid "Writable" msgid "Writable"
msgstr "讀寫" msgstr "讀寫"
#: terminal/const.py:96 #: terminal/const.py:98
msgid "Kill session" msgid "Kill session"
msgstr "終斷會話" msgstr "終斷會話"
#: terminal/const.py:97 #: terminal/const.py:99
msgid "Lock session" msgid "Lock session"
msgstr "鎖定會話" msgstr "鎖定會話"
#: terminal/const.py:98 #: terminal/const.py:100
msgid "Unlock session" msgid "Unlock session"
msgstr "解鎖會話" msgstr "解鎖會話"
#: terminal/const.py:103 #: terminal/const.py:105
msgid "Replay create failed" msgid "Replay create failed"
msgstr "錄影創建失敗" msgstr "錄影創建失敗"
#: terminal/const.py:104 #: terminal/const.py:106
msgid "Replay upload failed" msgid "Replay upload failed"
msgstr "錄影上傳失敗" msgstr "錄影上傳失敗"
#: terminal/const.py:105 #: terminal/const.py:107
msgid "Replay convert failed" msgid "Replay convert failed"
msgstr "錄影轉檔失敗" msgstr "錄影轉檔失敗"
#: terminal/const.py:106 #: terminal/const.py:108
msgid "Replay unsupported" msgid "Replay unsupported"
msgstr "不支持錄影" msgstr "不支持錄影"
@ -7747,15 +7777,21 @@ msgstr "Redis 埠"
msgid "SQLServer port" msgid "SQLServer port"
msgstr "SQLServer 埠" msgstr "SQLServer 埠"
#: terminal/models/component/endpoint.py:32 #: terminal/models/component/endpoint.py:25
#: terminal/models/component/endpoint.py:119 #, fuzzy
#| msgid "SSH port"
msgid "VNC port"
msgstr "SSH 埠"
#: terminal/models/component/endpoint.py:33
#: terminal/models/component/endpoint.py:120
#: terminal/serializers/endpoint.py:80 terminal/serializers/storage.py:41 #: terminal/serializers/endpoint.py:80 terminal/serializers/storage.py:41
#: terminal/serializers/storage.py:53 terminal/serializers/storage.py:83 #: terminal/serializers/storage.py:53 terminal/serializers/storage.py:83
#: terminal/serializers/storage.py:93 terminal/serializers/storage.py:101 #: terminal/serializers/storage.py:93 terminal/serializers/storage.py:101
msgid "Endpoint" msgid "Endpoint"
msgstr "端點" msgstr "端點"
#: terminal/models/component/endpoint.py:125 #: terminal/models/component/endpoint.py:126
msgid "Endpoint rule" msgid "Endpoint rule"
msgstr "端點規則" msgstr "端點規則"
@ -9609,6 +9645,16 @@ msgstr "帳號保護已開啟,請根據提示完成以下操作"
msgid "Open MFA Authenticator and enter the 6-bit dynamic code" msgid "Open MFA Authenticator and enter the 6-bit dynamic code"
msgstr "請打開 MFA 驗證器,輸入 6 位動態碼" msgstr "請打開 MFA 驗證器,輸入 6 位動態碼"
#: users/utils.py:60
#, fuzzy
#| msgid "Auth source"
msgid "Auth success"
msgstr "認證資料庫"
#: users/utils.py:61
msgid "Redirecting to JumpServer Client"
msgstr ""
#: users/views/profile/otp.py:106 #: users/views/profile/otp.py:106
msgid "Already bound" msgid "Already bound"
msgstr "已經綁定" msgstr "已經綁定"
@ -10314,10 +10360,6 @@ msgstr "服務商顯示"
msgid "Access key id" msgid "Access key id"
msgstr "Access key ID(AK)" msgstr "Access key ID(AK)"
#: xpack/plugins/cloud/serializers/account_attrs.py:41
msgid "Tenant ID"
msgstr "租戶 ID"
#: xpack/plugins/cloud/serializers/account_attrs.py:44 #: xpack/plugins/cloud/serializers/account_attrs.py:44
msgid "Subscription ID" msgid "Subscription ID"
msgstr "訂閱 ID" msgstr "訂閱 ID"

View File

@ -258,10 +258,17 @@ class Config(dict):
# Vault # Vault
'VAULT_ENABLED': False, 'VAULT_ENABLED': False,
'VAULT_BACKEND': 'local',
'VAULT_HCP_HOST': '', 'VAULT_HCP_HOST': '',
'VAULT_HCP_TOKEN': '', 'VAULT_HCP_TOKEN': '',
'VAULT_HCP_MOUNT_POINT': 'jumpserver', 'VAULT_HCP_MOUNT_POINT': 'jumpserver',
'VAULT_AZURE_HOST': '',
'VAULT_AZURE_CLIENT_ID': '',
'VAULT_AZURE_CLIENT_SECRET': '',
'VAULT_AZURE_TENANT_ID': '',
'HISTORY_ACCOUNT_CLEAN_LIMIT': 999, 'HISTORY_ACCOUNT_CLEAN_LIMIT': 999,
# Cache login password # Cache login password

View File

@ -235,10 +235,17 @@ AUTH_TEMP_TOKEN = CONFIG.AUTH_TEMP_TOKEN
# Vault # Vault
VAULT_ENABLED = CONFIG.VAULT_ENABLED VAULT_ENABLED = CONFIG.VAULT_ENABLED
VAULT_BACKEND = CONFIG.VAULT_BACKEND
VAULT_HCP_HOST = CONFIG.VAULT_HCP_HOST VAULT_HCP_HOST = CONFIG.VAULT_HCP_HOST
VAULT_HCP_TOKEN = CONFIG.VAULT_HCP_TOKEN VAULT_HCP_TOKEN = CONFIG.VAULT_HCP_TOKEN
VAULT_HCP_MOUNT_POINT = CONFIG.VAULT_HCP_MOUNT_POINT VAULT_HCP_MOUNT_POINT = CONFIG.VAULT_HCP_MOUNT_POINT
VAULT_AZURE_HOST = CONFIG.VAULT_AZURE_HOST
VAULT_AZURE_CLIENT_ID = CONFIG.VAULT_AZURE_CLIENT_ID
VAULT_AZURE_CLIENT_SECRET = CONFIG.VAULT_AZURE_CLIENT_SECRET
VAULT_AZURE_TENANT_ID = CONFIG.VAULT_AZURE_TENANT_ID
HISTORY_ACCOUNT_CLEAN_LIMIT = CONFIG.HISTORY_ACCOUNT_CLEAN_LIMIT HISTORY_ACCOUNT_CLEAN_LIMIT = CONFIG.HISTORY_ACCOUNT_CLEAN_LIMIT
# Other setting # Other setting

View File

@ -61,6 +61,8 @@ class SettingsApi(generics.RetrieveUpdateAPIView):
'cmpp2': serializers.CMPP2SMSSettingSerializer, 'cmpp2': serializers.CMPP2SMSSettingSerializer,
'custom': serializers.CustomSMSSettingSerializer, 'custom': serializers.CustomSMSSettingSerializer,
'vault': serializers.VaultSettingSerializer, 'vault': serializers.VaultSettingSerializer,
'azure_kv': serializers.AzureKVSerializer,
'hcp': serializers.HashicorpKVSerializer,
'chat': serializers.ChatAISettingSerializer, 'chat': serializers.ChatAISettingSerializer,
'announcement': serializers.AnnouncementSettingSerializer, 'announcement': serializers.AnnouncementSettingSerializer,
'ticket': serializers.TicketSettingSerializer, 'ticket': serializers.TicketSettingSerializer,

View File

@ -6,18 +6,25 @@ from rest_framework.views import Response, APIView
from accounts.backends import get_vault_client from accounts.backends import get_vault_client
from accounts.tasks.vault import sync_secret_to_vault from accounts.tasks.vault import sync_secret_to_vault
from common.exceptions import JMSException
from settings.models import Setting from settings.models import Setting
from .. import serializers from .. import serializers
class VaultTestingAPI(GenericAPIView): class VaultTestingAPI(GenericAPIView):
serializer_class = serializers.VaultSettingSerializer backends_serializer = {
'azure': serializers.AzureKVSerializer,
'hcp': serializers.HashicorpKVSerializer
}
rbac_perms = { rbac_perms = {
'POST': 'settings.change_vault' 'POST': 'settings.change_vault'
} }
def get_config(self, request): def get_config(self, request, backend):
serializer = self.serializer_class(data=request.data) serializer_class = self.backends_serializer.get(backend)
if serializer_class is None:
raise JMSException()
serializer = serializer_class(data=request.data)
serializer.is_valid(raise_exception=True) serializer.is_valid(raise_exception=True)
data = serializer.validated_data data = serializer.validated_data
for k, v in data.items(): for k, v in data.items():
@ -27,9 +34,10 @@ class VaultTestingAPI(GenericAPIView):
data[k] = getattr(settings, k, None) data[k] = getattr(settings, k, None)
return data return data
def post(self, request): def post(self, request, backend):
config = self.get_config(request) config = self.get_config(request, backend)
config['VAULT_ENABLED'] = settings.VAULT_ENABLED config['VAULT_ENABLED'] = settings.VAULT_ENABLED
config['VAULT_BACKEND'] = backend
try: try:
client = get_vault_client(raise_exception=True, **config) client = get_vault_client(raise_exception=True, **config)
ok, error = client.is_active() ok, error = client.is_active()
@ -58,4 +66,3 @@ class VaultSyncDataAPI(APIView):
def _run_task(): def _run_task():
task = sync_secret_to_vault.delay() task = sync_secret_to_vault.delay()
return task return task

View File

@ -3,13 +3,14 @@ from django.utils import timezone
from django.utils.translation import gettext_lazy as _ from django.utils.translation import gettext_lazy as _
from rest_framework import serializers from rest_framework import serializers
from accounts.const import VaultTypeChoices
from assets.const import Protocol from assets.const import Protocol
from common.serializers.fields import EncryptedField from common.serializers.fields import EncryptedField
from common.utils import date_expired_default from common.utils import date_expired_default
__all__ = [ __all__ = [
'AnnouncementSettingSerializer', 'OpsSettingSerializer', 'AnnouncementSettingSerializer', 'OpsSettingSerializer', 'VaultSettingSerializer',
'VaultSettingSerializer', 'TicketSettingSerializer', 'HashicorpKVSerializer', 'AzureKVSerializer', 'TicketSettingSerializer',
'ChatAISettingSerializer', 'VirtualAppSerializer', 'ChatAISettingSerializer', 'VirtualAppSerializer',
] ]
@ -43,20 +44,13 @@ class AnnouncementSettingSerializer(serializers.Serializer):
class VaultSettingSerializer(serializers.Serializer): class VaultSettingSerializer(serializers.Serializer):
PREFIX_TITLE = _('HCP Vault') PREFIX_TITLE = _('Vault')
VAULT_ENABLED = serializers.BooleanField( VAULT_ENABLED = serializers.BooleanField(
required=False, label=_('Vault'), read_only=True required=False, label=_('Vault'), read_only=True
) )
VAULT_HCP_HOST = serializers.CharField( VAULT_BACKEND = serializers.ChoiceField(
max_length=256, allow_blank=True, required=False, label=_('Host') choices=VaultTypeChoices.choices, default=VaultTypeChoices.local, label=_('Vault provider')
)
VAULT_HCP_TOKEN = EncryptedField(
max_length=256, allow_blank=True, required=False, label=_('Token'), default=''
)
VAULT_HCP_MOUNT_POINT = serializers.CharField(
max_length=256, allow_blank=True, required=False, label=_('Mount Point'),
default='jumpserver'
) )
HISTORY_ACCOUNT_CLEAN_LIMIT = serializers.IntegerField( HISTORY_ACCOUNT_CLEAN_LIMIT = serializers.IntegerField(
@ -72,6 +66,35 @@ class VaultSettingSerializer(serializers.Serializer):
) )
class HashicorpKVSerializer(serializers.Serializer):
PREFIX_TITLE = _('HCP Vault')
VAULT_HCP_HOST = serializers.CharField(
max_length=256, allow_blank=True, required=False, label=_('Host')
)
VAULT_HCP_TOKEN = EncryptedField(
max_length=256, allow_blank=True, required=False, label=_('Token'), default=''
)
VAULT_HCP_MOUNT_POINT = serializers.CharField(
max_length=256, allow_blank=True, required=False, label=_('Mount Point')
)
class AzureKVSerializer(serializers.Serializer):
PREFIX_TITLE = _('Azure Key Vault')
VAULT_AZURE_HOST = serializers.CharField(
max_length=256, allow_blank=True, required=False, label=_('Host')
)
VAULT_AZURE_CLIENT_ID = serializers.CharField(
max_length=128, allow_blank=True, required=False, label=_('Client ID')
)
VAULT_AZURE_CLIENT_SECRET = EncryptedField(
max_length=4096, allow_blank=True, required=False, label=_('Client Secret'), default=''
)
VAULT_AZURE_TENANT_ID = serializers.CharField(
max_length=128, allow_blank=True, required=False, label=_('Tenant ID')
)
class ChatAISettingSerializer(serializers.Serializer): class ChatAISettingSerializer(serializers.Serializer):
PREFIX_TITLE = _('Chat AI') PREFIX_TITLE = _('Chat AI')
API_MODEL = Protocol.gpt_protocols()[Protocol.chatgpt]['setting']['api_mode'] API_MODEL = Protocol.gpt_protocols()[Protocol.chatgpt]['setting']['api_mode']

View File

@ -19,7 +19,7 @@ urlpatterns = [
path('slack/testing/', api.SlackTestingAPI.as_view(), name='slack-testing'), path('slack/testing/', api.SlackTestingAPI.as_view(), name='slack-testing'),
path('sms/<str:backend>/testing/', api.SMSTestingAPI.as_view(), name='sms-testing'), path('sms/<str:backend>/testing/', api.SMSTestingAPI.as_view(), name='sms-testing'),
path('sms/backend/', api.SMSBackendAPI.as_view(), name='sms-backend'), path('sms/backend/', api.SMSBackendAPI.as_view(), name='sms-backend'),
path('vault/testing/', api.VaultTestingAPI.as_view(), name='vault-testing'), path('vault/<str:backend>/testing/', api.VaultTestingAPI.as_view(), name='vault-testing'),
path('chatai/testing/', api.ChatAITestingAPI.as_view(), name='chatai-testing'), path('chatai/testing/', api.ChatAITestingAPI.as_view(), name='chatai-testing'),
path('vault/sync/', api.VaultSyncDataAPI.as_view(), name='vault-sync'), path('vault/sync/', api.VaultSyncDataAPI.as_view(), name='vault-sync'),
path('security/block-ip/', api.BlockIPSecurityAPI.as_view(), name='block-ip'), path('security/block-ip/', api.BlockIPSecurityAPI.as_view(), name='block-ip'),

498
poetry.lock generated
View File

@ -1,4 +1,4 @@
# This file is automatically @generated by Poetry 1.8.3 and should not be changed by hand. # This file is automatically @generated by Poetry 1.8.4 and should not be changed by hand.
[[package]] [[package]]
name = "adal" name = "adal"
@ -475,13 +475,13 @@ files = [
[[package]] [[package]]
name = "async-timeout" name = "async-timeout"
version = "4.0.3" version = "5.0.0"
description = "Timeout context manager for asyncio programs" description = "Timeout context manager for asyncio programs"
optional = false optional = false
python-versions = ">=3.7" python-versions = ">=3.8"
files = [ files = [
{file = "async-timeout-4.0.3.tar.gz", hash = "sha256:4640d96be84d82d02ed59ea2b7105a0f7b33abe8703703cd0ab0bf87c427522f"}, {file = "async_timeout-5.0.0-py3-none-any.whl", hash = "sha256:904719a4bd6e0520047d0ddae220aabee67b877f7ca17bf8cea20f67f6247ae0"},
{file = "async_timeout-4.0.3-py3-none-any.whl", hash = "sha256:7405140ff1230c310e51dc27b3145b9092d659ce68ff733fb0cefe3ee42be028"}, {file = "async_timeout-5.0.0.tar.gz", hash = "sha256:49675ec889daacfe65ff66d2dde7dd1447a6f4b2f23721022e4ba121f8772a85"},
] ]
[[package]] [[package]]
@ -559,13 +559,13 @@ files = [
[[package]] [[package]]
name = "azure-core" name = "azure-core"
version = "1.31.0" version = "1.32.0"
description = "Microsoft Azure Core Library for Python" description = "Microsoft Azure Core Library for Python"
optional = false optional = false
python-versions = ">=3.8" python-versions = ">=3.8"
files = [ files = [
{file = "azure_core-1.31.0-py3-none-any.whl", hash = "sha256:22954de3777e0250029360ef31d80448ef1be13b80a459bff80ba7073379e2cd"}, {file = "azure_core-1.32.0-py3-none-any.whl", hash = "sha256:eac191a0efb23bfa83fddf321b27b122b4ec847befa3091fa736a5c32c50d7b4"},
{file = "azure_core-1.31.0.tar.gz", hash = "sha256:656a0dd61e1869b1506b7c6a3b31d62f15984b1a573d6326f6aa2f3e4123284b"}, {file = "azure_core-1.32.0.tar.gz", hash = "sha256:22b3c35d6b2dae14990f6c1be2912bf23ffe50b220e708a28ab1bb92b1c730e5"},
] ]
[package.dependencies] [package.dependencies]
@ -594,6 +594,22 @@ msal = ">=1.20.0,<2.0.0"
msal-extensions = ">=0.3.0,<2.0.0" msal-extensions = ">=0.3.0,<2.0.0"
six = ">=1.12.0" six = ">=1.12.0"
[[package]]
name = "azure-keyvault-secrets"
version = "4.9.0"
description = "Microsoft Azure Key Vault Secrets Client Library for Python"
optional = false
python-versions = ">=3.8"
files = [
{file = "azure_keyvault_secrets-4.9.0-py3-none-any.whl", hash = "sha256:33c7e2aca2cc2092cebc8c6e96eca36a5cc30c767e16ea429c5fa21270e9fba6"},
{file = "azure_keyvault_secrets-4.9.0.tar.gz", hash = "sha256:2a03bb2ffd9a0d6c8ad1c330d9d0310113985a9de06607ece378fd72a5889fe1"},
]
[package.dependencies]
azure-core = ">=1.31.0"
isodate = ">=0.6.1"
typing-extensions = ">=4.0.1"
[[package]] [[package]]
name = "azure-mgmt-compute" name = "azure-mgmt-compute"
version = "30.0.0" version = "30.0.0"
@ -612,17 +628,17 @@ isodate = ">=0.6.1,<1.0.0"
[[package]] [[package]]
name = "azure-mgmt-core" name = "azure-mgmt-core"
version = "1.4.0" version = "1.5.0"
description = "Microsoft Azure Management Core Library for Python" description = "Microsoft Azure Management Core Library for Python"
optional = false optional = false
python-versions = ">=3.7" python-versions = ">=3.8"
files = [ files = [
{file = "azure-mgmt-core-1.4.0.zip", hash = "sha256:d195208340094f98e5a6661b781cde6f6a051e79ce317caabd8ff97030a9b3ae"}, {file = "azure_mgmt_core-1.5.0-py3-none-any.whl", hash = "sha256:18aaa5a723ee8ae05bf1bfc9f6d0ffb996631c7ea3c922cc86f522973ce07b5f"},
{file = "azure_mgmt_core-1.4.0-py3-none-any.whl", hash = "sha256:81071675f186a585555ef01816f2774d49c1c9024cb76e5720c3c0f6b337bb7d"}, {file = "azure_mgmt_core-1.5.0.tar.gz", hash = "sha256:380ae3dfa3639f4a5c246a7db7ed2d08374e88230fd0da3eb899f7c11e5c441a"},
] ]
[package.dependencies] [package.dependencies]
azure-core = ">=1.26.2,<2.0.0" azure-core = ">=1.31.0"
[[package]] [[package]]
name = "azure-mgmt-network" name = "azure-mgmt-network"
@ -2377,70 +2393,70 @@ test = ["objgraph", "psutil"]
[[package]] [[package]]
name = "grpcio" name = "grpcio"
version = "1.67.0" version = "1.67.1"
description = "HTTP/2-based RPC framework" description = "HTTP/2-based RPC framework"
optional = false optional = false
python-versions = ">=3.8" python-versions = ">=3.8"
files = [ files = [
{file = "grpcio-1.67.0-cp310-cp310-linux_armv7l.whl", hash = "sha256:bd79929b3bb96b54df1296cd3bf4d2b770bd1df6c2bdf549b49bab286b925cdc"}, {file = "grpcio-1.67.1-cp310-cp310-linux_armv7l.whl", hash = "sha256:8b0341d66a57f8a3119b77ab32207072be60c9bf79760fa609c5609f2deb1f3f"},
{file = "grpcio-1.67.0-cp310-cp310-macosx_12_0_universal2.whl", hash = "sha256:16724ffc956ea42967f5758c2f043faef43cb7e48a51948ab593570570d1e68b"}, {file = "grpcio-1.67.1-cp310-cp310-macosx_12_0_universal2.whl", hash = "sha256:f5a27dddefe0e2357d3e617b9079b4bfdc91341a91565111a21ed6ebbc51b22d"},
{file = "grpcio-1.67.0-cp310-cp310-manylinux_2_17_aarch64.whl", hash = "sha256:2b7183c80b602b0ad816315d66f2fb7887614ead950416d60913a9a71c12560d"}, {file = "grpcio-1.67.1-cp310-cp310-manylinux_2_17_aarch64.whl", hash = "sha256:43112046864317498a33bdc4797ae6a268c36345a910de9b9c17159d8346602f"},
{file = "grpcio-1.67.0-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:efe32b45dd6d118f5ea2e5deaed417d8a14976325c93812dd831908522b402c9"}, {file = "grpcio-1.67.1-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c9b929f13677b10f63124c1a410994a401cdd85214ad83ab67cc077fc7e480f0"},
{file = "grpcio-1.67.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fe89295219b9c9e47780a0f1c75ca44211e706d1c598242249fe717af3385ec8"}, {file = "grpcio-1.67.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e7d1797a8a3845437d327145959a2c0c47c05947c9eef5ff1a4c80e499dcc6fa"},
{file = "grpcio-1.67.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:aa8d025fae1595a207b4e47c2e087cb88d47008494db258ac561c00877d4c8f8"}, {file = "grpcio-1.67.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:0489063974d1452436139501bf6b180f63d4977223ee87488fe36858c5725292"},
{file = "grpcio-1.67.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:f95e15db43e75a534420e04822df91f645664bf4ad21dfaad7d51773c80e6bb4"}, {file = "grpcio-1.67.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:9fd042de4a82e3e7aca44008ee2fb5da01b3e5adb316348c21980f7f58adc311"},
{file = "grpcio-1.67.0-cp310-cp310-win32.whl", hash = "sha256:a6b9a5c18863fd4b6624a42e2712103fb0f57799a3b29651c0e5b8119a519d65"}, {file = "grpcio-1.67.1-cp310-cp310-win32.whl", hash = "sha256:638354e698fd0c6c76b04540a850bf1db27b4d2515a19fcd5cf645c48d3eb1ed"},
{file = "grpcio-1.67.0-cp310-cp310-win_amd64.whl", hash = "sha256:b6eb68493a05d38b426604e1dc93bfc0137c4157f7ab4fac5771fd9a104bbaa6"}, {file = "grpcio-1.67.1-cp310-cp310-win_amd64.whl", hash = "sha256:608d87d1bdabf9e2868b12338cd38a79969eaf920c89d698ead08f48de9c0f9e"},
{file = "grpcio-1.67.0-cp311-cp311-linux_armv7l.whl", hash = "sha256:e91d154689639932305b6ea6f45c6e46bb51ecc8ea77c10ef25aa77f75443ad4"}, {file = "grpcio-1.67.1-cp311-cp311-linux_armv7l.whl", hash = "sha256:7818c0454027ae3384235a65210bbf5464bd715450e30a3d40385453a85a70cb"},
{file = "grpcio-1.67.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:cb204a742997277da678611a809a8409657b1398aaeebf73b3d9563b7d154c13"}, {file = "grpcio-1.67.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:ea33986b70f83844cd00814cee4451055cd8cab36f00ac64a31f5bb09b31919e"},
{file = "grpcio-1.67.0-cp311-cp311-manylinux_2_17_aarch64.whl", hash = "sha256:ae6de510f670137e755eb2a74b04d1041e7210af2444103c8c95f193340d17ee"}, {file = "grpcio-1.67.1-cp311-cp311-manylinux_2_17_aarch64.whl", hash = "sha256:c7a01337407dd89005527623a4a72c5c8e2894d22bead0895306b23c6695698f"},
{file = "grpcio-1.67.0-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:74b900566bdf68241118f2918d312d3bf554b2ce0b12b90178091ea7d0a17b3d"}, {file = "grpcio-1.67.1-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:80b866f73224b0634f4312a4674c1be21b2b4afa73cb20953cbbb73a6b36c3cc"},
{file = "grpcio-1.67.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a4e95e43447a02aa603abcc6b5e727d093d161a869c83b073f50b9390ecf0fa8"}, {file = "grpcio-1.67.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f9fff78ba10d4250bfc07a01bd6254a6d87dc67f9627adece85c0b2ed754fa96"},
{file = "grpcio-1.67.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:0bb94e66cd8f0baf29bd3184b6aa09aeb1a660f9ec3d85da615c5003154bc2bf"}, {file = "grpcio-1.67.1-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:8a23cbcc5bb11ea7dc6163078be36c065db68d915c24f5faa4f872c573bb400f"},
{file = "grpcio-1.67.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:82e5bd4b67b17c8c597273663794a6a46a45e44165b960517fe6d8a2f7f16d23"}, {file = "grpcio-1.67.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:1a65b503d008f066e994f34f456e0647e5ceb34cfcec5ad180b1b44020ad4970"},
{file = "grpcio-1.67.0-cp311-cp311-win32.whl", hash = "sha256:7fc1d2b9fd549264ae585026b266ac2db53735510a207381be509c315b4af4e8"}, {file = "grpcio-1.67.1-cp311-cp311-win32.whl", hash = "sha256:e29ca27bec8e163dca0c98084040edec3bc49afd10f18b412f483cc68c712744"},
{file = "grpcio-1.67.0-cp311-cp311-win_amd64.whl", hash = "sha256:ac11ecb34a86b831239cc38245403a8de25037b448464f95c3315819e7519772"}, {file = "grpcio-1.67.1-cp311-cp311-win_amd64.whl", hash = "sha256:786a5b18544622bfb1e25cc08402bd44ea83edfb04b93798d85dca4d1a0b5be5"},
{file = "grpcio-1.67.0-cp312-cp312-linux_armv7l.whl", hash = "sha256:227316b5631260e0bef8a3ce04fa7db4cc81756fea1258b007950b6efc90c05d"}, {file = "grpcio-1.67.1-cp312-cp312-linux_armv7l.whl", hash = "sha256:267d1745894200e4c604958da5f856da6293f063327cb049a51fe67348e4f953"},
{file = "grpcio-1.67.0-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:d90cfdafcf4b45a7a076e3e2a58e7bc3d59c698c4f6470b0bb13a4d869cf2273"}, {file = "grpcio-1.67.1-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:85f69fdc1d28ce7cff8de3f9c67db2b0ca9ba4449644488c1e0303c146135ddb"},
{file = "grpcio-1.67.0-cp312-cp312-manylinux_2_17_aarch64.whl", hash = "sha256:77196216d5dd6f99af1c51e235af2dd339159f657280e65ce7e12c1a8feffd1d"}, {file = "grpcio-1.67.1-cp312-cp312-manylinux_2_17_aarch64.whl", hash = "sha256:f26b0b547eb8d00e195274cdfc63ce64c8fc2d3e2d00b12bf468ece41a0423a0"},
{file = "grpcio-1.67.0-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:15c05a26a0f7047f720da41dc49406b395c1470eef44ff7e2c506a47ac2c0591"}, {file = "grpcio-1.67.1-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4422581cdc628f77302270ff839a44f4c24fdc57887dc2a45b7e53d8fc2376af"},
{file = "grpcio-1.67.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3840994689cc8cbb73d60485c594424ad8adb56c71a30d8948d6453083624b52"}, {file = "grpcio-1.67.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1d7616d2ded471231c701489190379e0c311ee0a6c756f3c03e6a62b95a7146e"},
{file = "grpcio-1.67.0-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:5a1e03c3102b6451028d5dc9f8591131d6ab3c8a0e023d94c28cb930ed4b5f81"}, {file = "grpcio-1.67.1-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:8a00efecde9d6fcc3ab00c13f816313c040a28450e5e25739c24f432fc6d3c75"},
{file = "grpcio-1.67.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:682968427a63d898759474e3b3178d42546e878fdce034fd7474ef75143b64e3"}, {file = "grpcio-1.67.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:699e964923b70f3101393710793289e42845791ea07565654ada0969522d0a38"},
{file = "grpcio-1.67.0-cp312-cp312-win32.whl", hash = "sha256:d01793653248f49cf47e5695e0a79805b1d9d4eacef85b310118ba1dfcd1b955"}, {file = "grpcio-1.67.1-cp312-cp312-win32.whl", hash = "sha256:4e7b904484a634a0fff132958dabdb10d63e0927398273917da3ee103e8d1f78"},
{file = "grpcio-1.67.0-cp312-cp312-win_amd64.whl", hash = "sha256:985b2686f786f3e20326c4367eebdaed3e7aa65848260ff0c6644f817042cb15"}, {file = "grpcio-1.67.1-cp312-cp312-win_amd64.whl", hash = "sha256:5721e66a594a6c4204458004852719b38f3d5522082be9061d6510b455c90afc"},
{file = "grpcio-1.67.0-cp313-cp313-linux_armv7l.whl", hash = "sha256:8c9a35b8bc50db35ab8e3e02a4f2a35cfba46c8705c3911c34ce343bd777813a"}, {file = "grpcio-1.67.1-cp313-cp313-linux_armv7l.whl", hash = "sha256:aa0162e56fd10a5547fac8774c4899fc3e18c1aa4a4759d0ce2cd00d3696ea6b"},
{file = "grpcio-1.67.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:42199e704095b62688998c2d84c89e59a26a7d5d32eed86d43dc90e7a3bd04aa"}, {file = "grpcio-1.67.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:beee96c8c0b1a75d556fe57b92b58b4347c77a65781ee2ac749d550f2a365dc1"},
{file = "grpcio-1.67.0-cp313-cp313-manylinux_2_17_aarch64.whl", hash = "sha256:c4c425f440fb81f8d0237c07b9322fc0fb6ee2b29fbef5f62a322ff8fcce240d"}, {file = "grpcio-1.67.1-cp313-cp313-manylinux_2_17_aarch64.whl", hash = "sha256:a93deda571a1bf94ec1f6fcda2872dad3ae538700d94dc283c672a3b508ba3af"},
{file = "grpcio-1.67.0-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:323741b6699cd2b04a71cb38f502db98f90532e8a40cb675393d248126a268af"}, {file = "grpcio-1.67.1-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0e6f255980afef598a9e64a24efce87b625e3e3c80a45162d111a461a9f92955"},
{file = "grpcio-1.67.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:662c8e105c5e5cee0317d500eb186ed7a93229586e431c1bf0c9236c2407352c"}, {file = "grpcio-1.67.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9e838cad2176ebd5d4a8bb03955138d6589ce9e2ce5d51c3ada34396dbd2dba8"},
{file = "grpcio-1.67.0-cp313-cp313-musllinux_1_1_i686.whl", hash = "sha256:f6bd2ab135c64a4d1e9e44679a616c9bc944547357c830fafea5c3caa3de5153"}, {file = "grpcio-1.67.1-cp313-cp313-musllinux_1_1_i686.whl", hash = "sha256:a6703916c43b1d468d0756c8077b12017a9fcb6a1ef13faf49e67d20d7ebda62"},
{file = "grpcio-1.67.0-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:2f55c1e0e2ae9bdd23b3c63459ee4c06d223b68aeb1961d83c48fb63dc29bc03"}, {file = "grpcio-1.67.1-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:917e8d8994eed1d86b907ba2a61b9f0aef27a2155bca6cbb322430fc7135b7bb"},
{file = "grpcio-1.67.0-cp313-cp313-win32.whl", hash = "sha256:fd6bc27861e460fe28e94226e3673d46e294ca4673d46b224428d197c5935e69"}, {file = "grpcio-1.67.1-cp313-cp313-win32.whl", hash = "sha256:e279330bef1744040db8fc432becc8a727b84f456ab62b744d3fdb83f327e121"},
{file = "grpcio-1.67.0-cp313-cp313-win_amd64.whl", hash = "sha256:cf51d28063338608cd8d3cd64677e922134837902b70ce00dad7f116e3998210"}, {file = "grpcio-1.67.1-cp313-cp313-win_amd64.whl", hash = "sha256:fa0c739ad8b1996bd24823950e3cb5152ae91fca1c09cc791190bf1627ffefba"},
{file = "grpcio-1.67.0-cp38-cp38-linux_armv7l.whl", hash = "sha256:7f200aca719c1c5dc72ab68be3479b9dafccdf03df530d137632c534bb6f1ee3"}, {file = "grpcio-1.67.1-cp38-cp38-linux_armv7l.whl", hash = "sha256:178f5db771c4f9a9facb2ab37a434c46cb9be1a75e820f187ee3d1e7805c4f65"},
{file = "grpcio-1.67.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:0892dd200ece4822d72dd0952f7112c542a487fc48fe77568deaaa399c1e717d"}, {file = "grpcio-1.67.1-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:0f3e49c738396e93b7ba9016e153eb09e0778e776df6090c1b8c91877cc1c426"},
{file = "grpcio-1.67.0-cp38-cp38-manylinux_2_17_aarch64.whl", hash = "sha256:f4d613fbf868b2e2444f490d18af472ccb47660ea3df52f068c9c8801e1f3e85"}, {file = "grpcio-1.67.1-cp38-cp38-manylinux_2_17_aarch64.whl", hash = "sha256:24e8a26dbfc5274d7474c27759b54486b8de23c709d76695237515bc8b5baeab"},
{file = "grpcio-1.67.0-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0c69bf11894cad9da00047f46584d5758d6ebc9b5950c0dc96fec7e0bce5cde9"}, {file = "grpcio-1.67.1-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3b6c16489326d79ead41689c4b84bc40d522c9a7617219f4ad94bc7f448c5085"},
{file = "grpcio-1.67.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b9bca3ca0c5e74dea44bf57d27e15a3a3996ce7e5780d61b7c72386356d231db"}, {file = "grpcio-1.67.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:60e6a4dcf5af7bbc36fd9f81c9f372e8ae580870a9e4b6eafe948cd334b81cf3"},
{file = "grpcio-1.67.0-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:014dfc020e28a0d9be7e93a91f85ff9f4a87158b7df9952fe23cc42d29d31e1e"}, {file = "grpcio-1.67.1-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:95b5f2b857856ed78d72da93cd7d09b6db8ef30102e5e7fe0961fe4d9f7d48e8"},
{file = "grpcio-1.67.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:d4ea4509d42c6797539e9ec7496c15473177ce9abc89bc5c71e7abe50fc25737"}, {file = "grpcio-1.67.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:b49359977c6ec9f5d0573ea4e0071ad278ef905aa74e420acc73fd28ce39e9ce"},
{file = "grpcio-1.67.0-cp38-cp38-win32.whl", hash = "sha256:9d75641a2fca9ae1ae86454fd25d4c298ea8cc195dbc962852234d54a07060ad"}, {file = "grpcio-1.67.1-cp38-cp38-win32.whl", hash = "sha256:f5b76ff64aaac53fede0cc93abf57894ab2a7362986ba22243d06218b93efe46"},
{file = "grpcio-1.67.0-cp38-cp38-win_amd64.whl", hash = "sha256:cff8e54d6a463883cda2fab94d2062aad2f5edd7f06ae3ed030f2a74756db365"}, {file = "grpcio-1.67.1-cp38-cp38-win_amd64.whl", hash = "sha256:804c6457c3cd3ec04fe6006c739579b8d35c86ae3298ffca8de57b493524b771"},
{file = "grpcio-1.67.0-cp39-cp39-linux_armv7l.whl", hash = "sha256:62492bd534979e6d7127b8a6b29093161a742dee3875873e01964049d5250a74"}, {file = "grpcio-1.67.1-cp39-cp39-linux_armv7l.whl", hash = "sha256:a25bdea92b13ff4d7790962190bf6bf5c4639876e01c0f3dda70fc2769616335"},
{file = "grpcio-1.67.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:eef1dce9d1a46119fd09f9a992cf6ab9d9178b696382439446ca5f399d7b96fe"}, {file = "grpcio-1.67.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:cdc491ae35a13535fd9196acb5afe1af37c8237df2e54427be3eecda3653127e"},
{file = "grpcio-1.67.0-cp39-cp39-manylinux_2_17_aarch64.whl", hash = "sha256:f623c57a5321461c84498a99dddf9d13dac0e40ee056d884d6ec4ebcab647a78"}, {file = "grpcio-1.67.1-cp39-cp39-manylinux_2_17_aarch64.whl", hash = "sha256:85f862069b86a305497e74d0dc43c02de3d1d184fc2c180993aa8aa86fbd19b8"},
{file = "grpcio-1.67.0-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:54d16383044e681f8beb50f905249e4e7261dd169d4aaf6e52eab67b01cbbbe2"}, {file = "grpcio-1.67.1-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ec74ef02010186185de82cc594058a3ccd8d86821842bbac9873fd4a2cf8be8d"},
{file = "grpcio-1.67.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b2a44e572fb762c668e4812156b81835f7aba8a721b027e2d4bb29fb50ff4d33"}, {file = "grpcio-1.67.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:01f616a964e540638af5130469451cf580ba8c7329f45ca998ab66e0c7dcdb04"},
{file = "grpcio-1.67.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:391df8b0faac84d42f5b8dfc65f5152c48ed914e13c522fd05f2aca211f8bfad"}, {file = "grpcio-1.67.1-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:299b3d8c4f790c6bcca485f9963b4846dd92cf6f1b65d3697145d005c80f9fe8"},
{file = "grpcio-1.67.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:cfd9306511fdfc623a1ba1dc3bc07fbd24e6cfbe3c28b4d1e05177baa2f99617"}, {file = "grpcio-1.67.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:60336bff760fbb47d7e86165408126f1dded184448e9a4c892189eb7c9d3f90f"},
{file = "grpcio-1.67.0-cp39-cp39-win32.whl", hash = "sha256:30d47dbacfd20cbd0c8be9bfa52fdb833b395d4ec32fe5cff7220afc05d08571"}, {file = "grpcio-1.67.1-cp39-cp39-win32.whl", hash = "sha256:5ed601c4c6008429e3d247ddb367fe8c7259c355757448d7c1ef7bd4a6739e8e"},
{file = "grpcio-1.67.0-cp39-cp39-win_amd64.whl", hash = "sha256:f55f077685f61f0fbd06ea355142b71e47e4a26d2d678b3ba27248abfe67163a"}, {file = "grpcio-1.67.1-cp39-cp39-win_amd64.whl", hash = "sha256:5db70d32d6703b89912af16d6d45d78406374a8b8ef0d28140351dd0ec610e98"},
{file = "grpcio-1.67.0.tar.gz", hash = "sha256:e090b2553e0da1c875449c8e75073dd4415dd71c9bde6a406240fdf4c0ee467c"}, {file = "grpcio-1.67.1.tar.gz", hash = "sha256:3dc2ed4cabea4dc14d5e708c2b426205956077cc5de419b4d4079315017e9732"},
] ]
[package.extras] [package.extras]
protobuf = ["grpcio-tools (>=1.67.0)"] protobuf = ["grpcio-tools (>=1.67.1)"]
[[package]] [[package]]
name = "grpcio-status" name = "grpcio-status"
@ -2763,84 +2779,84 @@ i18n = ["Babel (>=2.7)"]
[[package]] [[package]]
name = "jiter" name = "jiter"
version = "0.6.1" version = "0.7.0"
description = "Fast iterable JSON parser." description = "Fast iterable JSON parser."
optional = false optional = false
python-versions = ">=3.8" python-versions = ">=3.8"
files = [ files = [
{file = "jiter-0.6.1-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:d08510593cb57296851080018006dfc394070178d238b767b1879dc1013b106c"}, {file = "jiter-0.7.0-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:e14027f61101b3f5e173095d9ecf95c1cac03ffe45a849279bde1d97e559e314"},
{file = "jiter-0.6.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:adef59d5e2394ebbad13b7ed5e0306cceb1df92e2de688824232a91588e77aa7"}, {file = "jiter-0.7.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:979ec4711c2e37ac949561858bd42028884c9799516a923e1ff0b501ef341a4a"},
{file = "jiter-0.6.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b3e02f7a27f2bcc15b7d455c9df05df8ffffcc596a2a541eeda9a3110326e7a3"}, {file = "jiter-0.7.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:662d5d3cca58ad6af7a3c6226b641c8655de5beebcb686bfde0df0f21421aafa"},
{file = "jiter-0.6.1-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:ed69a7971d67b08f152c17c638f0e8c2aa207e9dd3a5fcd3cba294d39b5a8d2d"}, {file = "jiter-0.7.0-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:1d89008fb47043a469f97ad90840b97ba54e7c3d62dc7cbb6cbf938bd0caf71d"},
{file = "jiter-0.6.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b2019d966e98f7c6df24b3b8363998575f47d26471bfb14aade37630fae836a1"}, {file = "jiter-0.7.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a8b16c35c846a323ce9067170d5ab8c31ea3dbcab59c4f7608bbbf20c2c3b43f"},
{file = "jiter-0.6.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:36c0b51a285b68311e207a76c385650322734c8717d16c2eb8af75c9d69506e7"}, {file = "jiter-0.7.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c9e82daaa1b0a68704f9029b81e664a5a9de3e466c2cbaabcda5875f961702e7"},
{file = "jiter-0.6.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:220e0963b4fb507c525c8f58cde3da6b1be0bfddb7ffd6798fb8f2531226cdb1"}, {file = "jiter-0.7.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:43a87a9f586636e1f0dd3651a91f79b491ea0d9fd7cbbf4f5c463eebdc48bda7"},
{file = "jiter-0.6.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:aa25c7a9bf7875a141182b9c95aed487add635da01942ef7ca726e42a0c09058"}, {file = "jiter-0.7.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:2ec05b1615f96cc3e4901678bc863958611584072967d9962f9e571d60711d52"},
{file = "jiter-0.6.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:e90552109ca8ccd07f47ca99c8a1509ced93920d271bb81780a973279974c5ab"}, {file = "jiter-0.7.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:a5cb97e35370bde7aa0d232a7f910f5a0fbbc96bc0a7dbaa044fd5cd6bcd7ec3"},
{file = "jiter-0.6.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:67723a011964971864e0b484b0ecfee6a14de1533cff7ffd71189e92103b38a8"}, {file = "jiter-0.7.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:cb316dacaf48c8c187cea75d0d7f835f299137e6fdd13f691dff8f92914015c7"},
{file = "jiter-0.6.1-cp310-none-win32.whl", hash = "sha256:33af2b7d2bf310fdfec2da0177eab2fedab8679d1538d5b86a633ebfbbac4edd"}, {file = "jiter-0.7.0-cp310-none-win32.whl", hash = "sha256:243f38eb4072763c54de95b14ad283610e0cd3bf26393870db04e520f60eebb3"},
{file = "jiter-0.6.1-cp310-none-win_amd64.whl", hash = "sha256:7cea41c4c673353799906d940eee8f2d8fd1d9561d734aa921ae0f75cb9732f4"}, {file = "jiter-0.7.0-cp310-none-win_amd64.whl", hash = "sha256:2221d5603c139f6764c54e37e7c6960c469cbcd76928fb10d15023ba5903f94b"},
{file = "jiter-0.6.1-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:b03c24e7da7e75b170c7b2b172d9c5e463aa4b5c95696a368d52c295b3f6847f"}, {file = "jiter-0.7.0-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:91cec0ad755bd786c9f769ce8d843af955df6a8e56b17658771b2d5cb34a3ff8"},
{file = "jiter-0.6.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:47fee1be677b25d0ef79d687e238dc6ac91a8e553e1a68d0839f38c69e0ee491"}, {file = "jiter-0.7.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:feba70a28a27d962e353e978dbb6afd798e711c04cb0b4c5e77e9d3779033a1a"},
{file = "jiter-0.6.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:25f0d2f6e01a8a0fb0eab6d0e469058dab2be46ff3139ed2d1543475b5a1d8e7"}, {file = "jiter-0.7.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a9d866ec066c3616cacb8535dbda38bb1d470b17b25f0317c4540182bc886ce2"},
{file = "jiter-0.6.1-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:0b809e39e342c346df454b29bfcc7bca3d957f5d7b60e33dae42b0e5ec13e027"}, {file = "jiter-0.7.0-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:8e7a7a00b6f9f18289dd563596f97ecaba6c777501a8ba04bf98e03087bcbc60"},
{file = "jiter-0.6.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e9ac7c2f092f231f5620bef23ce2e530bd218fc046098747cc390b21b8738a7a"}, {file = "jiter-0.7.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9aaf564094c7db8687f2660605e099f3d3e6ea5e7135498486674fcb78e29165"},
{file = "jiter-0.6.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e51a2d80d5fe0ffb10ed2c82b6004458be4a3f2b9c7d09ed85baa2fbf033f54b"}, {file = "jiter-0.7.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a4d27e09825c1b3c7a667adb500ce8b840e8fc9f630da8454b44cdd4fb0081bb"},
{file = "jiter-0.6.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3343d4706a2b7140e8bd49b6c8b0a82abf9194b3f0f5925a78fc69359f8fc33c"}, {file = "jiter-0.7.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3ca7c287da9c1d56dda88da1d08855a787dbb09a7e2bd13c66a2e288700bd7c7"},
{file = "jiter-0.6.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:82521000d18c71e41c96960cb36e915a357bc83d63a8bed63154b89d95d05ad1"}, {file = "jiter-0.7.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:db19a6d160f093cbc8cd5ea2abad420b686f6c0e5fb4f7b41941ebc6a4f83cda"},
{file = "jiter-0.6.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:3c843e7c1633470708a3987e8ce617ee2979ee18542d6eb25ae92861af3f1d62"}, {file = "jiter-0.7.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:6e46a63c7f877cf7441ffc821c28287cfb9f533ae6ed707bde15e7d4dfafa7ae"},
{file = "jiter-0.6.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:a2e861658c3fe849efc39b06ebb98d042e4a4c51a8d7d1c3ddc3b1ea091d0784"}, {file = "jiter-0.7.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:7ba426fa7ff21cb119fa544b75dd3fbee6a70e55a5829709c0338d07ccd30e6d"},
{file = "jiter-0.6.1-cp311-none-win32.whl", hash = "sha256:7d72fc86474862c9c6d1f87b921b70c362f2b7e8b2e3c798bb7d58e419a6bc0f"}, {file = "jiter-0.7.0-cp311-none-win32.whl", hash = "sha256:c07f55a64912b0c7982377831210836d2ea92b7bd343fca67a32212dd72e38e0"},
{file = "jiter-0.6.1-cp311-none-win_amd64.whl", hash = "sha256:3e36a320634f33a07794bb15b8da995dccb94f944d298c8cfe2bd99b1b8a574a"}, {file = "jiter-0.7.0-cp311-none-win_amd64.whl", hash = "sha256:ed27b2c43e1b5f6c7fedc5c11d4d8bfa627de42d1143d87e39e2e83ddefd861a"},
{file = "jiter-0.6.1-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:1fad93654d5a7dcce0809aff66e883c98e2618b86656aeb2129db2cd6f26f867"}, {file = "jiter-0.7.0-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:ac7930bcaaeb1e229e35c91c04ed2e9f39025b86ee9fc3141706bbf6fff4aeeb"},
{file = "jiter-0.6.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:4e6e340e8cd92edab7f6a3a904dbbc8137e7f4b347c49a27da9814015cc0420c"}, {file = "jiter-0.7.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:571feae3e7c901a8eedde9fd2865b0dfc1432fb15cab8c675a8444f7d11b7c5d"},
{file = "jiter-0.6.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:691352e5653af84ed71763c3c427cff05e4d658c508172e01e9c956dfe004aba"}, {file = "jiter-0.7.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a8af4df8a262fa2778b68c2a03b6e9d1cb4d43d02bea6976d46be77a3a331af1"},
{file = "jiter-0.6.1-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:defee3949313c1f5b55e18be45089970cdb936eb2a0063f5020c4185db1b63c9"}, {file = "jiter-0.7.0-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:bd028d4165097a611eb0c7494d8c1f2aebd46f73ca3200f02a175a9c9a6f22f5"},
{file = "jiter-0.6.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:26d2bdd5da097e624081c6b5d416d3ee73e5b13f1703bcdadbb1881f0caa1933"}, {file = "jiter-0.7.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c6b487247c7836810091e9455efe56a52ec51bfa3a222237e1587d04d3e04527"},
{file = "jiter-0.6.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:18aa9d1626b61c0734b973ed7088f8a3d690d0b7f5384a5270cd04f4d9f26c86"}, {file = "jiter-0.7.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e6d28a92f28814e1a9f2824dc11f4e17e1df1f44dc4fdeb94c5450d34bcb2602"},
{file = "jiter-0.6.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7a3567c8228afa5ddcce950631c6b17397ed178003dc9ee7e567c4c4dcae9fa0"}, {file = "jiter-0.7.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:90443994bbafe134f0b34201dad3ebe1c769f0599004084e046fb249ad912425"},
{file = "jiter-0.6.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:e5c0507131c922defe3f04c527d6838932fcdfd69facebafd7d3574fa3395314"}, {file = "jiter-0.7.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:f9abf464f9faac652542ce8360cea8e68fba2b78350e8a170248f9bcc228702a"},
{file = "jiter-0.6.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:540fcb224d7dc1bcf82f90f2ffb652df96f2851c031adca3c8741cb91877143b"}, {file = "jiter-0.7.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:db7a8d99fc5f842f7d2852f06ccaed066532292c41723e5dff670c339b649f88"},
{file = "jiter-0.6.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:e7b75436d4fa2032b2530ad989e4cb0ca74c655975e3ff49f91a1a3d7f4e1df2"}, {file = "jiter-0.7.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:15cf691ebd8693b70c94627d6b748f01e6d697d9a6e9f2bc310934fcfb7cf25e"},
{file = "jiter-0.6.1-cp312-none-win32.whl", hash = "sha256:883d2ced7c21bf06874fdeecab15014c1c6d82216765ca6deef08e335fa719e0"}, {file = "jiter-0.7.0-cp312-none-win32.whl", hash = "sha256:9dcd54fa422fb66ca398bec296fed5f58e756aa0589496011cfea2abb5be38a5"},
{file = "jiter-0.6.1-cp312-none-win_amd64.whl", hash = "sha256:91e63273563401aadc6c52cca64a7921c50b29372441adc104127b910e98a5b6"}, {file = "jiter-0.7.0-cp312-none-win_amd64.whl", hash = "sha256:cc989951f73f9375b8eacd571baaa057f3d7d11b7ce6f67b9d54642e7475bfad"},
{file = "jiter-0.6.1-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:852508a54fe3228432e56019da8b69208ea622a3069458252f725d634e955b31"}, {file = "jiter-0.7.0-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:24cecd18df540963cd27c08ca5ce1d0179f229ff78066d9eecbe5add29361340"},
{file = "jiter-0.6.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:f491cc69ff44e5a1e8bc6bf2b94c1f98d179e1aaf4a554493c171a5b2316b701"}, {file = "jiter-0.7.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:d41b46236b90b043cca73785674c23d2a67d16f226394079d0953f94e765ed76"},
{file = "jiter-0.6.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cc56c8f0b2a28ad4d8047f3ae62d25d0e9ae01b99940ec0283263a04724de1f3"}, {file = "jiter-0.7.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b160db0987171365c153e406a45dcab0ee613ae3508a77bfff42515cb4ce4d6e"},
{file = "jiter-0.6.1-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:51b58f7a0d9e084a43b28b23da2b09fc5e8df6aa2b6a27de43f991293cab85fd"}, {file = "jiter-0.7.0-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:d1c8d91e0f0bd78602eaa081332e8ee4f512c000716f5bc54e9a037306d693a7"},
{file = "jiter-0.6.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5f79ce15099154c90ef900d69c6b4c686b64dfe23b0114e0971f2fecd306ec6c"}, {file = "jiter-0.7.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:997706c683195eeff192d2e5285ce64d2a610414f37da3a3f2625dcf8517cf90"},
{file = "jiter-0.6.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:03a025b52009f47e53ea619175d17e4ded7c035c6fbd44935cb3ada11e1fd592"}, {file = "jiter-0.7.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7ea52a8a0ff0229ab2920284079becd2bae0688d432fca94857ece83bb49c541"},
{file = "jiter-0.6.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c74a8d93718137c021d9295248a87c2f9fdc0dcafead12d2930bc459ad40f885"}, {file = "jiter-0.7.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6d77449d2738cf74752bb35d75ee431af457e741124d1db5e112890023572c7c"},
{file = "jiter-0.6.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:40b03b75f903975f68199fc4ec73d546150919cb7e534f3b51e727c4d6ccca5a"}, {file = "jiter-0.7.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:a8203519907a1d81d6cb00902c98e27c2d0bf25ce0323c50ca594d30f5f1fbcf"},
{file = "jiter-0.6.1-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:825651a3f04cf92a661d22cad61fc913400e33aa89b3e3ad9a6aa9dc8a1f5a71"}, {file = "jiter-0.7.0-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:41d15ccc53931c822dd7f1aebf09faa3cda2d7b48a76ef304c7dbc19d1302e51"},
{file = "jiter-0.6.1-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:928bf25eb69ddb292ab8177fe69d3fbf76c7feab5fce1c09265a7dccf25d3991"}, {file = "jiter-0.7.0-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:febf3179b2fabf71fbd2fd52acb8594163bb173348b388649567a548f356dbf6"},
{file = "jiter-0.6.1-cp313-none-win32.whl", hash = "sha256:352cd24121e80d3d053fab1cc9806258cad27c53cad99b7a3cac57cf934b12e4"}, {file = "jiter-0.7.0-cp313-none-win32.whl", hash = "sha256:4a8e2d866e7eda19f012444e01b55079d8e1c4c30346aaac4b97e80c54e2d6d3"},
{file = "jiter-0.6.1-cp313-none-win_amd64.whl", hash = "sha256:be7503dd6f4bf02c2a9bacb5cc9335bc59132e7eee9d3e931b13d76fd80d7fda"}, {file = "jiter-0.7.0-cp313-none-win_amd64.whl", hash = "sha256:7417c2b928062c496f381fb0cb50412eee5ad1d8b53dbc0e011ce45bb2de522c"},
{file = "jiter-0.6.1-cp38-cp38-macosx_10_12_x86_64.whl", hash = "sha256:31d8e00e1fb4c277df8ab6f31a671f509ebc791a80e5c61fdc6bc8696aaa297c"}, {file = "jiter-0.7.0-cp38-cp38-macosx_10_12_x86_64.whl", hash = "sha256:9c62c737b5368e51e74960a08fe1adc807bd270227291daede78db24d5fbf556"},
{file = "jiter-0.6.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:77c296d65003cd7ee5d7b0965f6acbe6cffaf9d1fa420ea751f60ef24e85fed5"}, {file = "jiter-0.7.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:e4640722b1bef0f6e342fe4606aafaae0eb4f4be5c84355bb6867f34400f6688"},
{file = "jiter-0.6.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:aeeb0c0325ef96c12a48ea7e23e2e86fe4838e6e0a995f464cf4c79fa791ceeb"}, {file = "jiter-0.7.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f367488c3b9453eab285424c61098faa1cab37bb49425e69c8dca34f2dfe7d69"},
{file = "jiter-0.6.1-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:a31c6fcbe7d6c25d6f1cc6bb1cba576251d32795d09c09961174fe461a1fb5bd"}, {file = "jiter-0.7.0-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:0cf5d42beb3514236459454e3287db53d9c4d56c4ebaa3e9d0efe81b19495129"},
{file = "jiter-0.6.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:59e2b37f3b9401fc9e619f4d4badcab2e8643a721838bcf695c2318a0475ae42"}, {file = "jiter-0.7.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:cc5190ea1113ee6f7252fa8a5fe5a6515422e378356c950a03bbde5cafbdbaab"},
{file = "jiter-0.6.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:bae5ae4853cb9644144e9d0755854ce5108d470d31541d83f70ca7ecdc2d1637"}, {file = "jiter-0.7.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:63ee47a149d698796a87abe445fc8dee21ed880f09469700c76c8d84e0d11efd"},
{file = "jiter-0.6.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9df588e9c830b72d8db1dd7d0175af6706b0904f682ea9b1ca8b46028e54d6e9"}, {file = "jiter-0.7.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:48592c26ea72d3e71aa4bea0a93454df907d80638c3046bb0705507b6704c0d7"},
{file = "jiter-0.6.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:15f8395e835cf561c85c1adee72d899abf2733d9df72e9798e6d667c9b5c1f30"}, {file = "jiter-0.7.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:79fef541199bd91cfe8a74529ecccb8eaf1aca38ad899ea582ebbd4854af1e51"},
{file = "jiter-0.6.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:5a99d4e0b5fc3b05ea732d67eb2092fe894e95a90e6e413f2ea91387e228a307"}, {file = "jiter-0.7.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:d1ef6bb66041f2514739240568136c81b9dcc64fd14a43691c17ea793b6535c0"},
{file = "jiter-0.6.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:a311df1fa6be0ccd64c12abcd85458383d96e542531bafbfc0a16ff6feda588f"}, {file = "jiter-0.7.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:aca4d950863b1c238e315bf159466e064c98743eef3bd0ff9617e48ff63a4715"},
{file = "jiter-0.6.1-cp38-none-win32.whl", hash = "sha256:81116a6c272a11347b199f0e16b6bd63f4c9d9b52bc108991397dd80d3c78aba"}, {file = "jiter-0.7.0-cp38-none-win32.whl", hash = "sha256:897745f230350dcedb8d1ebe53e33568d48ea122c25e6784402b6e4e88169be7"},
{file = "jiter-0.6.1-cp38-none-win_amd64.whl", hash = "sha256:13f9084e3e871a7c0b6e710db54444088b1dd9fbefa54d449b630d5e73bb95d0"}, {file = "jiter-0.7.0-cp38-none-win_amd64.whl", hash = "sha256:b928c76a422ef3d0c85c5e98c498ce3421b313c5246199541e125b52953e1bc0"},
{file = "jiter-0.6.1-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:f1c53615fcfec3b11527c08d19cff6bc870da567ce4e57676c059a3102d3a082"}, {file = "jiter-0.7.0-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:c9b669ff6f8ba08270dee9ccf858d3b0203b42314a428a1676762f2d390fbb64"},
{file = "jiter-0.6.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:f791b6a4da23238c17a81f44f5b55d08a420c5692c1fda84e301a4b036744eb1"}, {file = "jiter-0.7.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:b5be919bacd73ca93801c3042bce6e95cb9c555a45ca83617b9b6c89df03b9c2"},
{file = "jiter-0.6.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8c97e90fec2da1d5f68ef121444c2c4fa72eabf3240829ad95cf6bbeca42a301"}, {file = "jiter-0.7.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a282e1e8a396dabcea82d64f9d05acf7efcf81ecdd925b967020dcb0e671c103"},
{file = "jiter-0.6.1-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:3cbc1a66b4e41511209e97a2866898733c0110b7245791ac604117b7fb3fedb7"}, {file = "jiter-0.7.0-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:17ecb1a578a56e97a043c72b463776b5ea30343125308f667fb8fce4b3796735"},
{file = "jiter-0.6.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e4e85f9e12cd8418ab10e1fcf0e335ae5bb3da26c4d13a0fd9e6a17a674783b6"}, {file = "jiter-0.7.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:7b6045fa0527129218cdcd8a8b839f678219686055f31ebab35f87d354d9c36e"},
{file = "jiter-0.6.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:08be33db6dcc374c9cc19d3633af5e47961a7b10d4c61710bd39e48d52a35824"}, {file = "jiter-0.7.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:189cc4262a92e33c19d4fd24018f5890e4e6da5b2581f0059938877943f8298c"},
{file = "jiter-0.6.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:677be9550004f5e010d673d3b2a2b815a8ea07a71484a57d3f85dde7f14cf132"}, {file = "jiter-0.7.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c138414839effbf30d185e30475c6dc8a16411a1e3681e5fd4605ab1233ac67a"},
{file = "jiter-0.6.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:e8bd065be46c2eecc328e419d6557bbc37844c88bb07b7a8d2d6c91c7c4dedc9"}, {file = "jiter-0.7.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:2791604acef33da6b72d5ecf885a32384bcaf9aa1e4be32737f3b8b9588eef6a"},
{file = "jiter-0.6.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:bd95375ce3609ec079a97c5d165afdd25693302c071ca60c7ae1cf826eb32022"}, {file = "jiter-0.7.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:ae60ec89037a78d60bbf3d8b127f1567769c8fa24886e0abed3f622791dea478"},
{file = "jiter-0.6.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:db459ed22d0208940d87f614e1f0ea5a946d29a3cfef71f7e1aab59b6c6b2afb"}, {file = "jiter-0.7.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:836f03dea312967635233d826f783309b98cfd9ccc76ac776e224cfcef577862"},
{file = "jiter-0.6.1-cp39-none-win32.whl", hash = "sha256:d71c962f0971347bd552940ab96aa42ceefcd51b88c4ced8a27398182efa8d80"}, {file = "jiter-0.7.0-cp39-none-win32.whl", hash = "sha256:ebc30ae2ce4bc4986e1764c404b4ea1924f926abf02ce92516485098f8545374"},
{file = "jiter-0.6.1-cp39-none-win_amd64.whl", hash = "sha256:d465db62d2d10b489b7e7a33027c4ae3a64374425d757e963f86df5b5f2e7fc5"}, {file = "jiter-0.7.0-cp39-none-win_amd64.whl", hash = "sha256:abf596f951370c648f37aa9899deab296c42a3829736e598b0dd10b08f77a44d"},
{file = "jiter-0.6.1.tar.gz", hash = "sha256:e19cd21221fc139fb032e4112986656cb2739e9fe6d84c13956ab30ccc7d4449"}, {file = "jiter-0.7.0.tar.gz", hash = "sha256:c061d9738535497b5509f8970584f20de1e900806b239a39a9994fc191dad630"},
] ]
[[package]] [[package]]
@ -3633,13 +3649,13 @@ files = [
[[package]] [[package]]
name = "openai" name = "openai"
version = "1.52.2" version = "1.53.0"
description = "The official Python library for the openai API" description = "The official Python library for the openai API"
optional = false optional = false
python-versions = ">=3.7.1" python-versions = ">=3.7.1"
files = [ files = [
{file = "openai-1.52.2-py3-none-any.whl", hash = "sha256:57e9e37bc407f39bb6ec3a27d7e8fb9728b2779936daa1fcf95df17d3edfaccc"}, {file = "openai-1.53.0-py3-none-any.whl", hash = "sha256:20f408c32fc5cb66e60c6882c994cdca580a5648e10045cd840734194f033418"},
{file = "openai-1.52.2.tar.gz", hash = "sha256:87b7d0f69d85f5641678d414b7ee3082363647a5c66a462ed7f3ccb59582da0d"}, {file = "openai-1.53.0.tar.gz", hash = "sha256:be2c4e77721b166cce8130e544178b7d579f751b4b074ffbaade3854b6f85ec5"},
] ]
[package.dependencies] [package.dependencies]
@ -4015,13 +4031,13 @@ tests = ["pytest (>=5.4.1)", "pytest-cov (>=2.8.1)", "pytest-mypy (>=0.8.0)", "p
[[package]] [[package]]
name = "prettytable" name = "prettytable"
version = "3.11.0" version = "3.12.0"
description = "A simple Python library for easily displaying tabular data in a visually appealing ASCII table format" description = "A simple Python library for easily displaying tabular data in a visually appealing ASCII table format"
optional = false optional = false
python-versions = ">=3.8" python-versions = ">=3.9"
files = [ files = [
{file = "prettytable-3.11.0-py3-none-any.whl", hash = "sha256:aa17083feb6c71da11a68b2c213b04675c4af4ce9c541762632ca3f2cb3546dd"}, {file = "prettytable-3.12.0-py3-none-any.whl", hash = "sha256:77ca0ad1c435b6e363d7e8623d7cc4fcf2cf15513bf77a1c1b2e814930ac57cc"},
{file = "prettytable-3.11.0.tar.gz", hash = "sha256:7e23ca1e68bbfd06ba8de98bf553bf3493264c96d5e8a615c0471025deeba722"}, {file = "prettytable-3.12.0.tar.gz", hash = "sha256:f04b3e1ba35747ac86e96ec33e3bb9748ce08e254dc2a1c6253945901beec804"},
] ]
[package.dependencies] [package.dependencies]
@ -5502,23 +5518,23 @@ tests = ["coverage[toml] (>=5.0.2)", "pytest"]
[[package]] [[package]]
name = "setuptools" name = "setuptools"
version = "75.2.0" version = "75.3.0"
description = "Easily download, build, install, upgrade, and uninstall Python packages" description = "Easily download, build, install, upgrade, and uninstall Python packages"
optional = false optional = false
python-versions = ">=3.8" python-versions = ">=3.8"
files = [ files = [
{file = "setuptools-75.2.0-py3-none-any.whl", hash = "sha256:a7fcb66f68b4d9e8e66b42f9876150a3371558f98fa32222ffaa5bced76406f8"}, {file = "setuptools-75.3.0-py3-none-any.whl", hash = "sha256:f2504966861356aa38616760c0f66568e535562374995367b4e69c7143cf6bcd"},
{file = "setuptools-75.2.0.tar.gz", hash = "sha256:753bb6ebf1f465a1912e19ed1d41f403a79173a9acf66a42e7e6aec45c3c16ec"}, {file = "setuptools-75.3.0.tar.gz", hash = "sha256:fba5dd4d766e97be1b1681d98712680ae8f2f26d7881245f2ce9e40714f1a686"},
] ]
[package.extras] [package.extras]
check = ["pytest-checkdocs (>=2.4)", "pytest-ruff (>=0.2.1)", "ruff (>=0.5.2)"] check = ["pytest-checkdocs (>=2.4)", "pytest-ruff (>=0.2.1)", "ruff (>=0.5.2)"]
core = ["importlib-metadata (>=6)", "importlib-resources (>=5.10.2)", "jaraco.collections", "jaraco.functools", "jaraco.text (>=3.7)", "more-itertools", "more-itertools (>=8.8)", "packaging", "packaging (>=24)", "platformdirs (>=2.6.2)", "tomli (>=2.0.1)", "wheel (>=0.43.0)"] core = ["importlib-metadata (>=6)", "importlib-resources (>=5.10.2)", "jaraco.collections", "jaraco.functools", "jaraco.text (>=3.7)", "more-itertools", "more-itertools (>=8.8)", "packaging", "packaging (>=24)", "platformdirs (>=4.2.2)", "tomli (>=2.0.1)", "wheel (>=0.43.0)"]
cover = ["pytest-cov"] cover = ["pytest-cov"]
doc = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "pygments-github-lexers (==0.0.5)", "pyproject-hooks (!=1.1)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-favicon", "sphinx-inline-tabs", "sphinx-lint", "sphinx-notfound-page (>=1,<2)", "sphinx-reredirects", "sphinxcontrib-towncrier", "towncrier (<24.7)"] doc = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "pygments-github-lexers (==0.0.5)", "pyproject-hooks (!=1.1)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-favicon", "sphinx-inline-tabs", "sphinx-lint", "sphinx-notfound-page (>=1,<2)", "sphinx-reredirects", "sphinxcontrib-towncrier", "towncrier (<24.7)"]
enabler = ["pytest-enabler (>=2.2)"] enabler = ["pytest-enabler (>=2.2)"]
test = ["build[virtualenv] (>=1.0.3)", "filelock (>=3.4.0)", "ini2toml[lite] (>=0.14)", "jaraco.develop (>=7.21)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "jaraco.test", "packaging (>=23.2)", "pip (>=19.1)", "pyproject-hooks (!=1.1)", "pytest (>=6,!=8.1.*)", "pytest-home (>=0.5)", "pytest-perf", "pytest-subprocess", "pytest-timeout", "pytest-xdist (>=3)", "tomli-w (>=1.0.0)", "virtualenv (>=13.0.0)", "wheel (>=0.44.0)"] test = ["build[virtualenv] (>=1.0.3)", "filelock (>=3.4.0)", "ini2toml[lite] (>=0.14)", "jaraco.develop (>=7.21)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "jaraco.test (>=5.5)", "packaging (>=23.2)", "pip (>=19.1)", "pyproject-hooks (!=1.1)", "pytest (>=6,!=8.1.*)", "pytest-home (>=0.5)", "pytest-perf", "pytest-subprocess", "pytest-timeout", "pytest-xdist (>=3)", "tomli-w (>=1.0.0)", "virtualenv (>=13.0.0)", "wheel (>=0.44.0)"]
type = ["importlib-metadata (>=7.0.2)", "jaraco.develop (>=7.21)", "mypy (==1.11.*)", "pytest-mypy"] type = ["importlib-metadata (>=7.0.2)", "jaraco.develop (>=7.21)", "mypy (==1.12.*)", "pytest-mypy"]
[[package]] [[package]]
name = "simplejson" name = "simplejson"
@ -6367,93 +6383,93 @@ files = [
[[package]] [[package]]
name = "yarl" name = "yarl"
version = "1.17.0" version = "1.17.1"
description = "Yet another URL library" description = "Yet another URL library"
optional = false optional = false
python-versions = ">=3.9" python-versions = ">=3.9"
files = [ files = [
{file = "yarl-1.17.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:2d8715edfe12eee6f27f32a3655f38d6c7410deb482158c0b7d4b7fad5d07628"}, {file = "yarl-1.17.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:0b1794853124e2f663f0ea54efb0340b457f08d40a1cef78edfa086576179c91"},
{file = "yarl-1.17.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:1803bf2a7a782e02db746d8bd18f2384801bc1d108723840b25e065b116ad726"}, {file = "yarl-1.17.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:fbea1751729afe607d84acfd01efd95e3b31db148a181a441984ce9b3d3469da"},
{file = "yarl-1.17.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:2e66589110e20c2951221a938fa200c7aa134a8bdf4e4dc97e6b21539ff026d4"}, {file = "yarl-1.17.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:8ee427208c675f1b6e344a1f89376a9613fc30b52646a04ac0c1f6587c7e46ec"},
{file = "yarl-1.17.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7069d411cfccf868e812497e0ec4acb7c7bf8d684e93caa6c872f1e6f5d1664d"}, {file = "yarl-1.17.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3b74ff4767d3ef47ffe0cd1d89379dc4d828d4873e5528976ced3b44fe5b0a21"},
{file = "yarl-1.17.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:cbf70ba16118db3e4b0da69dcde9d4d4095d383c32a15530564c283fa38a7c52"}, {file = "yarl-1.17.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:62a91aefff3d11bf60e5956d340eb507a983a7ec802b19072bb989ce120cd948"},
{file = "yarl-1.17.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:0bc53cc349675b32ead83339a8de79eaf13b88f2669c09d4962322bb0f064cbc"}, {file = "yarl-1.17.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:846dd2e1243407133d3195d2d7e4ceefcaa5f5bf7278f0a9bda00967e6326b04"},
{file = "yarl-1.17.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d6aa18a402d1c80193ce97c8729871f17fd3e822037fbd7d9b719864018df746"}, {file = "yarl-1.17.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3e844be8d536afa129366d9af76ed7cb8dfefec99f5f1c9e4f8ae542279a6dc3"},
{file = "yarl-1.17.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d89c5bc701861cfab357aa0cd039bc905fe919997b8c312b4b0c358619c38d4d"}, {file = "yarl-1.17.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:cc7c92c1baa629cb03ecb0c3d12564f172218fb1739f54bf5f3881844daadc6d"},
{file = "yarl-1.17.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:b728bdf38ca58f2da1d583e4af4ba7d4cd1a58b31a363a3137a8159395e7ecc7"}, {file = "yarl-1.17.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:ae3476e934b9d714aa8000d2e4c01eb2590eee10b9d8cd03e7983ad65dfbfcba"},
{file = "yarl-1.17.0-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:5542e57dc15d5473da5a39fbde14684b0cc4301412ee53cbab677925e8497c11"}, {file = "yarl-1.17.1-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:c7e177c619342e407415d4f35dec63d2d134d951e24b5166afcdfd1362828e17"},
{file = "yarl-1.17.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:e564b57e5009fb150cb513804d7e9e9912fee2e48835638f4f47977f88b4a39c"}, {file = "yarl-1.17.1-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:64cc6e97f14cf8a275d79c5002281f3040c12e2e4220623b5759ea7f9868d6a5"},
{file = "yarl-1.17.0-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:eb3c4cff524b4c1c1dba3a6da905edb1dfd2baf6f55f18a58914bbb2d26b59e1"}, {file = "yarl-1.17.1-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:84c063af19ef5130084db70ada40ce63a84f6c1ef4d3dbc34e5e8c4febb20822"},
{file = "yarl-1.17.0-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:05e13f389038842da930d439fbed63bdce3f7644902714cb68cf527c971af804"}, {file = "yarl-1.17.1-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:482c122b72e3c5ec98f11457aeb436ae4aecca75de19b3d1de7cf88bc40db82f"},
{file = "yarl-1.17.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:153c38ee2b4abba136385af4467459c62d50f2a3f4bde38c7b99d43a20c143ef"}, {file = "yarl-1.17.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:380e6c38ef692b8fd5a0f6d1fa8774d81ebc08cfbd624b1bca62a4d4af2f9931"},
{file = "yarl-1.17.0-cp310-cp310-win32.whl", hash = "sha256:4065b4259d1ae6f70fd9708ffd61e1c9c27516f5b4fae273c41028afcbe3a094"}, {file = "yarl-1.17.1-cp310-cp310-win32.whl", hash = "sha256:16bca6678a83657dd48df84b51bd56a6c6bd401853aef6d09dc2506a78484c7b"},
{file = "yarl-1.17.0-cp310-cp310-win_amd64.whl", hash = "sha256:abf366391a02a8335c5c26163b5fe6f514cc1d79e74d8bf3ffab13572282368e"}, {file = "yarl-1.17.1-cp310-cp310-win_amd64.whl", hash = "sha256:561c87fea99545ef7d692403c110b2f99dced6dff93056d6e04384ad3bc46243"},
{file = "yarl-1.17.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:19a4fe0279626c6295c5b0c8c2bb7228319d2e985883621a6e87b344062d8135"}, {file = "yarl-1.17.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:cbad927ea8ed814622305d842c93412cb47bd39a496ed0f96bfd42b922b4a217"},
{file = "yarl-1.17.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:cadd0113f4db3c6b56868d6a19ca6286f5ccfa7bc08c27982cf92e5ed31b489a"}, {file = "yarl-1.17.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:fca4b4307ebe9c3ec77a084da3a9d1999d164693d16492ca2b64594340999988"},
{file = "yarl-1.17.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:60d6693eef43215b1ccfb1df3f6eae8db30a9ff1e7989fb6b2a6f0b468930ee8"}, {file = "yarl-1.17.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:ff5c6771c7e3511a06555afa317879b7db8d640137ba55d6ab0d0c50425cab75"},
{file = "yarl-1.17.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5bb8bf3843e1fa8cf3fe77813c512818e57368afab7ebe9ef02446fe1a10b492"}, {file = "yarl-1.17.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5b29beab10211a746f9846baa39275e80034e065460d99eb51e45c9a9495bcca"},
{file = "yarl-1.17.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d2a5b35fd1d8d90443e061d0c8669ac7600eec5c14c4a51f619e9e105b136715"}, {file = "yarl-1.17.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1a52a1ffdd824fb1835272e125385c32fd8b17fbdefeedcb4d543cc23b332d74"},
{file = "yarl-1.17.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c5bf17b32f392df20ab5c3a69d37b26d10efaa018b4f4e5643c7520d8eee7ac7"}, {file = "yarl-1.17.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:58c8e9620eb82a189c6c40cb6b59b4e35b2ee68b1f2afa6597732a2b467d7e8f"},
{file = "yarl-1.17.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:48f51b529b958cd06e78158ff297a8bf57b4021243c179ee03695b5dbf9cb6e1"}, {file = "yarl-1.17.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d216e5d9b8749563c7f2c6f7a0831057ec844c68b4c11cb10fc62d4fd373c26d"},
{file = "yarl-1.17.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5fcaa06bf788e19f913d315d9c99a69e196a40277dc2c23741a1d08c93f4d430"}, {file = "yarl-1.17.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:881764d610e3269964fc4bb3c19bb6fce55422828e152b885609ec176b41cf11"},
{file = "yarl-1.17.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:32f3ee19ff0f18a7a522d44e869e1ebc8218ad3ae4ebb7020445f59b4bbe5897"}, {file = "yarl-1.17.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:8c79e9d7e3d8a32d4824250a9c6401194fb4c2ad9a0cec8f6a96e09a582c2cc0"},
{file = "yarl-1.17.0-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:a4fb69a81ae2ec2b609574ae35420cf5647d227e4d0475c16aa861dd24e840b0"}, {file = "yarl-1.17.1-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:299f11b44d8d3a588234adbe01112126010bd96d9139c3ba7b3badd9829261c3"},
{file = "yarl-1.17.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:7bacc8b77670322132a1b2522c50a1f62991e2f95591977455fd9a398b4e678d"}, {file = "yarl-1.17.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:cc7d768260f4ba4ea01741c1b5fe3d3a6c70eb91c87f4c8761bbcce5181beafe"},
{file = "yarl-1.17.0-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:437bf6eb47a2d20baaf7f6739895cb049e56896a5ffdea61a4b25da781966e8b"}, {file = "yarl-1.17.1-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:de599af166970d6a61accde358ec9ded821234cbbc8c6413acfec06056b8e860"},
{file = "yarl-1.17.0-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:30534a03c87484092080e3b6e789140bd277e40f453358900ad1f0f2e61fc8ec"}, {file = "yarl-1.17.1-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:2b24ec55fad43e476905eceaf14f41f6478780b870eda5d08b4d6de9a60b65b4"},
{file = "yarl-1.17.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:b30df4ff98703649915144be6f0df3b16fd4870ac38a09c56d5d9e54ff2d5f96"}, {file = "yarl-1.17.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:9fb815155aac6bfa8d86184079652c9715c812d506b22cfa369196ef4e99d1b4"},
{file = "yarl-1.17.0-cp311-cp311-win32.whl", hash = "sha256:263b487246858e874ab53e148e2a9a0de8465341b607678106829a81d81418c6"}, {file = "yarl-1.17.1-cp311-cp311-win32.whl", hash = "sha256:7615058aabad54416ddac99ade09a5510cf77039a3b903e94e8922f25ed203d7"},
{file = "yarl-1.17.0-cp311-cp311-win_amd64.whl", hash = "sha256:07055a9e8b647a362e7d4810fe99d8f98421575e7d2eede32e008c89a65a17bd"}, {file = "yarl-1.17.1-cp311-cp311-win_amd64.whl", hash = "sha256:14bc88baa44e1f84164a392827b5defb4fa8e56b93fecac3d15315e7c8e5d8b3"},
{file = "yarl-1.17.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:84095ab25ba69a8fa3fb4936e14df631b8a71193fe18bd38be7ecbe34d0f5512"}, {file = "yarl-1.17.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:327828786da2006085a4d1feb2594de6f6d26f8af48b81eb1ae950c788d97f61"},
{file = "yarl-1.17.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:02608fb3f6df87039212fc746017455ccc2a5fc96555ee247c45d1e9f21f1d7b"}, {file = "yarl-1.17.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:cc353841428d56b683a123a813e6a686e07026d6b1c5757970a877195f880c2d"},
{file = "yarl-1.17.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:13468d291fe8c12162b7cf2cdb406fe85881c53c9e03053ecb8c5d3523822cd9"}, {file = "yarl-1.17.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:c73df5b6e8fabe2ddb74876fb82d9dd44cbace0ca12e8861ce9155ad3c886139"},
{file = "yarl-1.17.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8da3f8f368fb7e2f052fded06d5672260c50b5472c956a5f1bd7bf474ae504ab"}, {file = "yarl-1.17.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0bdff5e0995522706c53078f531fb586f56de9c4c81c243865dd5c66c132c3b5"},
{file = "yarl-1.17.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ec0507ab6523980bed050137007c76883d941b519aca0e26d4c1ec1f297dd646"}, {file = "yarl-1.17.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:06157fb3c58f2736a5e47c8fcbe1afc8b5de6fb28b14d25574af9e62150fcaac"},
{file = "yarl-1.17.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:08fc76df7fd8360e9ff30e6ccc3ee85b8dbd6ed5d3a295e6ec62bcae7601b932"}, {file = "yarl-1.17.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1654ec814b18be1af2c857aa9000de7a601400bd4c9ca24629b18486c2e35463"},
{file = "yarl-1.17.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8d522f390686acb6bab2b917dd9ca06740c5080cd2eaa5aef8827b97e967319d"}, {file = "yarl-1.17.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7f6595c852ca544aaeeb32d357e62c9c780eac69dcd34e40cae7b55bc4fb1147"},
{file = "yarl-1.17.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:147c527a80bb45b3dcd6e63401af8ac574125d8d120e6afe9901049286ff64ef"}, {file = "yarl-1.17.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:459e81c2fb920b5f5df744262d1498ec2c8081acdcfe18181da44c50f51312f7"},
{file = "yarl-1.17.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:24cf43bcd17a0a1f72284e47774f9c60e0bf0d2484d5851f4ddf24ded49f33c6"}, {file = "yarl-1.17.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:7e48cdb8226644e2fbd0bdb0a0f87906a3db07087f4de77a1b1b1ccfd9e93685"},
{file = "yarl-1.17.0-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:c28a44b9e0fba49c3857360e7ad1473fc18bc7f6659ca08ed4f4f2b9a52c75fa"}, {file = "yarl-1.17.1-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:d9b6b28a57feb51605d6ae5e61a9044a31742db557a3b851a74c13bc61de5172"},
{file = "yarl-1.17.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:350cacb2d589bc07d230eb995d88fcc646caad50a71ed2d86df533a465a4e6e1"}, {file = "yarl-1.17.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:e594b22688d5747b06e957f1ef822060cb5cb35b493066e33ceac0cf882188b7"},
{file = "yarl-1.17.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:fd1ab1373274dea1c6448aee420d7b38af163b5c4732057cd7ee9f5454efc8b1"}, {file = "yarl-1.17.1-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:5f236cb5999ccd23a0ab1bd219cfe0ee3e1c1b65aaf6dd3320e972f7ec3a39da"},
{file = "yarl-1.17.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:4934e0f96dadc567edc76d9c08181633c89c908ab5a3b8f698560124167d9488"}, {file = "yarl-1.17.1-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:a2a64e62c7a0edd07c1c917b0586655f3362d2c2d37d474db1a509efb96fea1c"},
{file = "yarl-1.17.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:8d0a278170d75c88e435a1ce76557af6758bfebc338435b2eba959df2552163e"}, {file = "yarl-1.17.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:d0eea830b591dbc68e030c86a9569826145df485b2b4554874b07fea1275a199"},
{file = "yarl-1.17.0-cp312-cp312-win32.whl", hash = "sha256:61584f33196575a08785bb56db6b453682c88f009cd9c6f338a10f6737ce419f"}, {file = "yarl-1.17.1-cp312-cp312-win32.whl", hash = "sha256:46ddf6e0b975cd680eb83318aa1d321cb2bf8d288d50f1754526230fcf59ba96"},
{file = "yarl-1.17.0-cp312-cp312-win_amd64.whl", hash = "sha256:9987a439ad33a7712bd5bbd073f09ad10d38640425fa498ecc99d8aa064f8fc4"}, {file = "yarl-1.17.1-cp312-cp312-win_amd64.whl", hash = "sha256:117ed8b3732528a1e41af3aa6d4e08483c2f0f2e3d3d7dca7cf538b3516d93df"},
{file = "yarl-1.17.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:8deda7b8eb15a52db94c2014acdc7bdd14cb59ec4b82ac65d2ad16dc234a109e"}, {file = "yarl-1.17.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:5d1d42556b063d579cae59e37a38c61f4402b47d70c29f0ef15cee1acaa64488"},
{file = "yarl-1.17.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:56294218b348dcbd3d7fce0ffd79dd0b6c356cb2a813a1181af730b7c40de9e7"}, {file = "yarl-1.17.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:c0167540094838ee9093ef6cc2c69d0074bbf84a432b4995835e8e5a0d984374"},
{file = "yarl-1.17.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:1fab91292f51c884b290ebec0b309a64a5318860ccda0c4940e740425a67b6b7"}, {file = "yarl-1.17.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:2f0a6423295a0d282d00e8701fe763eeefba8037e984ad5de44aa349002562ac"},
{file = "yarl-1.17.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5cf93fa61ff4d9c7d40482ce1a2c9916ca435e34a1b8451e17f295781ccc034f"}, {file = "yarl-1.17.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e5b078134f48552c4d9527db2f7da0b5359abd49393cdf9794017baec7506170"},
{file = "yarl-1.17.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:261be774a0d71908c8830c33bacc89eef15c198433a8cc73767c10eeeb35a7d0"}, {file = "yarl-1.17.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d401f07261dc5aa36c2e4efc308548f6ae943bfff20fcadb0a07517a26b196d8"},
{file = "yarl-1.17.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:deec9693b67f6af856a733b8a3e465553ef09e5e8ead792f52c25b699b8f9e6e"}, {file = "yarl-1.17.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b5f1ac7359e17efe0b6e5fec21de34145caef22b260e978336f325d5c84e6938"},
{file = "yarl-1.17.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c804b07622ba50a765ca7fb8145512836ab65956de01307541def869e4a456c9"}, {file = "yarl-1.17.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7f63d176a81555984e91f2c84c2a574a61cab7111cc907e176f0f01538e9ff6e"},
{file = "yarl-1.17.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1d013a7c9574e98c14831a8f22d27277688ec3b2741d0188ac01a910b009987a"}, {file = "yarl-1.17.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9e275792097c9f7e80741c36de3b61917aebecc08a67ae62899b074566ff8556"},
{file = "yarl-1.17.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:e2cfcba719bd494c7413dcf0caafb51772dec168c7c946e094f710d6aa70494e"}, {file = "yarl-1.17.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:81713b70bea5c1386dc2f32a8f0dab4148a2928c7495c808c541ee0aae614d67"},
{file = "yarl-1.17.0-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:c068aba9fc5b94dfae8ea1cedcbf3041cd4c64644021362ffb750f79837e881f"}, {file = "yarl-1.17.1-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:aa46dce75078fceaf7cecac5817422febb4355fbdda440db55206e3bd288cfb8"},
{file = "yarl-1.17.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:3616df510ffac0df3c9fa851a40b76087c6c89cbcea2de33a835fc80f9faac24"}, {file = "yarl-1.17.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:1ce36ded585f45b1e9bb36d0ae94765c6608b43bd2e7f5f88079f7a85c61a4d3"},
{file = "yarl-1.17.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:755d6176b442fba9928a4df787591a6a3d62d4969f05c406cad83d296c5d4e05"}, {file = "yarl-1.17.1-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:2d374d70fdc36f5863b84e54775452f68639bc862918602d028f89310a034ab0"},
{file = "yarl-1.17.0-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:c18f6e708d1cf9ff5b1af026e697ac73bea9cb70ee26a2b045b112548579bed2"}, {file = "yarl-1.17.1-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:2d9f0606baaec5dd54cb99667fcf85183a7477f3766fbddbe3f385e7fc253299"},
{file = "yarl-1.17.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:5b937c216b6dee8b858c6afea958de03c5ff28406257d22b55c24962a2baf6fd"}, {file = "yarl-1.17.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:b0341e6d9a0c0e3cdc65857ef518bb05b410dbd70d749a0d33ac0f39e81a4258"},
{file = "yarl-1.17.0-cp313-cp313-win32.whl", hash = "sha256:d0131b14cb545c1a7bd98f4565a3e9bdf25a1bd65c83fc156ee5d8a8499ec4a3"}, {file = "yarl-1.17.1-cp313-cp313-win32.whl", hash = "sha256:2e7ba4c9377e48fb7b20dedbd473cbcbc13e72e1826917c185157a137dac9df2"},
{file = "yarl-1.17.0-cp313-cp313-win_amd64.whl", hash = "sha256:01c96efa4313c01329e88b7e9e9e1b2fc671580270ddefdd41129fa8d0db7696"}, {file = "yarl-1.17.1-cp313-cp313-win_amd64.whl", hash = "sha256:949681f68e0e3c25377462be4b658500e85ca24323d9619fdc41f68d46a1ffda"},
{file = "yarl-1.17.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:0d44f67e193f0a7acdf552ecb4d1956a3a276c68e7952471add9f93093d1c30d"}, {file = "yarl-1.17.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:8994b29c462de9a8fce2d591028b986dbbe1b32f3ad600b2d3e1c482c93abad6"},
{file = "yarl-1.17.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:16ea0aa5f890cdcb7ae700dffa0397ed6c280840f637cd07bffcbe4b8d68b985"}, {file = "yarl-1.17.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:f9cbfbc5faca235fbdf531b93aa0f9f005ec7d267d9d738761a4d42b744ea159"},
{file = "yarl-1.17.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:cf5469dc7dcfa65edf5cc3a6add9f84c5529c6b556729b098e81a09a92e60e51"}, {file = "yarl-1.17.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:b40d1bf6e6f74f7c0a567a9e5e778bbd4699d1d3d2c0fe46f4b717eef9e96b95"},
{file = "yarl-1.17.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e662bf2f6e90b73cf2095f844e2bc1fda39826472a2aa1959258c3f2a8500a2f"}, {file = "yarl-1.17.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f5efe0661b9fcd6246f27957f6ae1c0eb29bc60552820f01e970b4996e016004"},
{file = "yarl-1.17.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8260e88f1446904ba20b558fa8ce5d0ab9102747238e82343e46d056d7304d7e"}, {file = "yarl-1.17.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b5c4804e4039f487e942c13381e6c27b4b4e66066d94ef1fae3f6ba8b953f383"},
{file = "yarl-1.17.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5dc16477a4a2c71e64c5d3d15d7ae3d3a6bb1e8b955288a9f73c60d2a391282f"}, {file = "yarl-1.17.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b5d6a6c9602fd4598fa07e0389e19fe199ae96449008d8304bf5d47cb745462e"},
{file = "yarl-1.17.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:46027e326cecd55e5950184ec9d86c803f4f6fe4ba6af9944a0e537d643cdbe0"}, {file = "yarl-1.17.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6f4c9156c4d1eb490fe374fb294deeb7bc7eaccda50e23775b2354b6a6739934"},
{file = "yarl-1.17.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:fc95e46c92a2b6f22e70afe07e34dbc03a4acd07d820204a6938798b16f4014f"}, {file = "yarl-1.17.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d6324274b4e0e2fa1b3eccb25997b1c9ed134ff61d296448ab8269f5ac068c4c"},
{file = "yarl-1.17.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:16ca76c7ac9515320cd09d6cc083d8d13d1803f6ebe212b06ea2505fd66ecff8"}, {file = "yarl-1.17.1-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:d8a8b74d843c2638f3864a17d97a4acda58e40d3e44b6303b8cc3d3c44ae2d29"},
{file = "yarl-1.17.0-cp39-cp39-musllinux_1_2_armv7l.whl", hash = "sha256:eb1a5b97388f2613f9305d78a3473cdf8d80c7034e554d8199d96dcf80c62ac4"}, {file = "yarl-1.17.1-cp39-cp39-musllinux_1_2_armv7l.whl", hash = "sha256:7fac95714b09da9278a0b52e492466f773cfe37651cf467a83a1b659be24bf71"},
{file = "yarl-1.17.0-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:41fd5498975418cdc34944060b8fbeec0d48b2741068077222564bea68daf5a6"}, {file = "yarl-1.17.1-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:c180ac742a083e109c1a18151f4dd8675f32679985a1c750d2ff806796165b55"},
{file = "yarl-1.17.0-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:146ca582ed04a5664ad04b0e0603934281eaab5c0115a5a46cce0b3c061a56a1"}, {file = "yarl-1.17.1-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:578d00c9b7fccfa1745a44f4eddfdc99d723d157dad26764538fbdda37209857"},
{file = "yarl-1.17.0-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:6abb8c06107dbec97481b2392dafc41aac091a5d162edf6ed7d624fe7da0587a"}, {file = "yarl-1.17.1-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:1a3b91c44efa29e6c8ef8a9a2b583347998e2ba52c5d8280dbd5919c02dfc3b5"},
{file = "yarl-1.17.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:4d14be4613dd4f96c25feb4bd8c0d8ce0f529ab0ae555a17df5789e69d8ec0c5"}, {file = "yarl-1.17.1-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:a7ac5b4984c468ce4f4a553df281450df0a34aefae02e58d77a0847be8d1e11f"},
{file = "yarl-1.17.0-cp39-cp39-win32.whl", hash = "sha256:174d6a6cad1068f7850702aad0c7b1bca03bcac199ca6026f84531335dfc2646"}, {file = "yarl-1.17.1-cp39-cp39-win32.whl", hash = "sha256:7294e38f9aa2e9f05f765b28ffdc5d81378508ce6dadbe93f6d464a8c9594473"},
{file = "yarl-1.17.0-cp39-cp39-win_amd64.whl", hash = "sha256:6af417ca2c7349b101d3fd557ad96b4cd439fdb6ab0d288e3f64a068eea394d0"}, {file = "yarl-1.17.1-cp39-cp39-win_amd64.whl", hash = "sha256:eb6dce402734575e1a8cc0bb1509afca508a400a57ce13d306ea2c663bad1138"},
{file = "yarl-1.17.0-py3-none-any.whl", hash = "sha256:62dd42bb0e49423f4dd58836a04fcf09c80237836796025211bbe913f1524993"}, {file = "yarl-1.17.1-py3-none-any.whl", hash = "sha256:f1790a4b1e8e8e028c391175433b9c8122c39b46e1663228158e61e6f915bf06"},
{file = "yarl-1.17.0.tar.gz", hash = "sha256:d3f13583f378930377e02002b4085a3d025b00402d5a80911726d43a67911cd9"}, {file = "yarl-1.17.1.tar.gz", hash = "sha256:067a63fcfda82da6b198fa73079b1ca40b7c9b7994995b6ee38acda728b64d47"},
] ]
[package.dependencies] [package.dependencies]
@ -6518,4 +6534,4 @@ testing = ["coverage[toml]", "zope.event", "zope.testing"]
[metadata] [metadata]
lock-version = "2.0" lock-version = "2.0"
python-versions = "^3.11" python-versions = "^3.11"
content-hash = "640112e60d1b7d8922042a0f07f28f7bb57f667defe3ede55e9e3dbf3aff7512" content-hash = "2f1bfef17282836499515a115a405e410a4cda257c8525a5fd272f1f5e591230"

View File

@ -158,6 +158,8 @@ tqdm = "4.66.4"
elasticsearch7 = "7.17.9" elasticsearch7 = "7.17.9"
elasticsearch8 = "8.13.2" elasticsearch8 = "8.13.2"
polib = "^1.2.0" polib = "^1.2.0"
azure-identity = "1.13.0"
azure-keyvault-secrets = "4.9.0"
# psycopg2 = "2.9.6" # psycopg2 = "2.9.6"
psycopg2-binary = "2.9.6" psycopg2-binary = "2.9.6"
pycountry = "^24.6.1" pycountry = "^24.6.1"
@ -176,7 +178,6 @@ optional = true
[tool.poetry.group.xpack.dependencies] [tool.poetry.group.xpack.dependencies]
qingcloud-sdk = "1.2.15" qingcloud-sdk = "1.2.15"
azure-mgmt-subscription = "3.1.1" azure-mgmt-subscription = "3.1.1"
azure-identity = "1.13.0"
azure-mgmt-compute = "30.0.0" azure-mgmt-compute = "30.0.0"
azure-mgmt-network = "23.1.0" azure-mgmt-network = "23.1.0"
google-cloud-compute = "1.15.0" google-cloud-compute = "1.15.0"