diff --git a/Dockerfile b/Dockerfile index 6a607ace8..da9ff59d2 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM jumpserver/core-base:20241029_080218 AS stage-build +FROM jumpserver/core-base:20241105_025649 AS stage-build ARG VERSION diff --git a/apps/accounts/backends/__init__.py b/apps/accounts/backends/__init__.py index 0143d75c8..832033b73 100644 --- a/apps/accounts/backends/__init__.py +++ b/apps/accounts/backends/__init__.py @@ -12,8 +12,7 @@ logger = get_logger(__file__) def get_vault_client(raise_exception=False, **kwargs): - enabled = kwargs.get('VAULT_ENABLED') - tp = 'hcp' if enabled else 'local' + tp = kwargs.get('VAULT_BACKEND') if kwargs.get('VAULT_ENABLED') else VaultTypeChoices.local try: module_path = f'apps.accounts.backends.{tp}.main' client = import_module(module_path).Vault(**kwargs) diff --git a/apps/accounts/backends/azure/__init__.py b/apps/accounts/backends/azure/__init__.py new file mode 100644 index 000000000..15b6a64ba --- /dev/null +++ b/apps/accounts/backends/azure/__init__.py @@ -0,0 +1 @@ +from .main import * diff --git a/apps/accounts/backends/azure/entries.py b/apps/accounts/backends/azure/entries.py new file mode 100644 index 000000000..8c607a54a --- /dev/null +++ b/apps/accounts/backends/azure/entries.py @@ -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) diff --git a/apps/accounts/backends/azure/main.py b/apps/accounts/backends/azure/main.py new file mode 100644 index 000000000..118fc6673 --- /dev/null +++ b/apps/accounts/backends/azure/main.py @@ -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}') diff --git a/apps/accounts/backends/azure/service.py b/apps/accounts/backends/azure/service.py new file mode 100644 index 000000000..3765b5b3e --- /dev/null +++ b/apps/accounts/backends/azure/service.py @@ -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)}') diff --git a/apps/accounts/backends/base.py b/apps/accounts/backends/base.py index f7648caed..a99893629 100644 --- a/apps/accounts/backends/base.py +++ b/apps/accounts/backends/base.py @@ -20,9 +20,6 @@ class BaseVault(ABC): self._clean_db_secret(instance) self.save_metadata(instance) - if instance.is_sync_metadata: - self.save_metadata(instance) - def update(self, instance): if not instance.secret_has_save_to_vault: self._update(instance) diff --git a/apps/accounts/const/vault.py b/apps/accounts/const/vault.py index 1e41b6d86..f832b028e 100644 --- a/apps/accounts/const/vault.py +++ b/apps/accounts/const/vault.py @@ -7,3 +7,4 @@ __all__ = ['VaultTypeChoices'] class VaultTypeChoices(models.TextChoices): local = 'local', _('Database') hcp = 'hcp', _('HCP Vault') + azure = 'azure', _('Azure Key Vault') diff --git a/apps/i18n/core/en/LC_MESSAGES/django.po b/apps/i18n/core/en/LC_MESSAGES/django.po index 2ee4c3718..29e315365 100644 --- a/apps/i18n/core/en/LC_MESSAGES/django.po +++ b/apps/i18n/core/en/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-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" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -36,7 +36,7 @@ msgstr "" #: accounts/automations/backup_account/handlers.py:156 #: 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 msgid "Time cost" msgstr "" @@ -68,7 +68,7 @@ msgstr "" #: assets/serializers/automations/base.py:52 audits/const.py:64 #: 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 -#: 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 msgid "Success" msgstr "Success" @@ -77,7 +77,7 @@ msgstr "Success" #: accounts/const/account.py:34 accounts/const/automation.py:109 #: accounts/serializers/automations/change_secret.py:174 audits/const.py:65 #: 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" msgstr "" @@ -150,7 +150,7 @@ msgid "Access key" msgstr "" #: 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" msgstr "" @@ -305,12 +305,12 @@ msgstr "" msgid "Email" msgstr "" -#: accounts/const/automation.py:105 terminal/const.py:87 +#: accounts/const/automation.py:105 terminal/const.py:89 msgid "SFTP" msgstr "" #: 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 msgid "Pending" msgstr "" @@ -320,10 +320,14 @@ msgstr "" msgid "Database" msgstr "" -#: accounts/const/vault.py:9 settings/serializers/feature.py:46 +#: accounts/const/vault.py:9 settings/serializers/feature.py:70 msgid "HCP Vault" msgstr "" +#: accounts/const/vault.py:10 settings/serializers/feature.py:83 +msgid "Azure Key Vault" +msgstr "" + #: accounts/mixins.py:35 msgid "Export all" msgstr "" @@ -468,9 +472,9 @@ msgstr "" #: accounts/models/automations/backup_account.py:120 #: 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 -#: 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 #: terminal/models/applet/host.py:141 terminal/models/session/session.py:45 #: tickets/models/ticket/apply_application.py:30 @@ -507,7 +511,7 @@ msgstr "" #: accounts/models/automations/backup_account.py:136 #: accounts/serializers/automations/change_secret.py:117 #: 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" msgstr "Is success" @@ -582,7 +586,7 @@ msgstr "" #: accounts/models/automations/change_secret.py:42 #: 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 msgid "Date finished" msgstr "" @@ -590,7 +594,7 @@ msgstr "" #: accounts/models/automations/change_secret.py:44 #: assets/models/automations/base.py:113 #: 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/component/status.py:30 #: terminal/models/virtualapp/virtualapp.py:99 @@ -665,12 +669,12 @@ msgstr "" #: audits/models.py:92 audits/serializers.py:84 #: authentication/serializers/connect_token_secret.py:119 #: authentication/templates/authentication/_access_key_modal.html:34 -#: behemoth/serializers/environment.py:13 perms/serializers/permission.py:52 -#: perms/serializers/permission.py:74 tickets/serializers/ticket/ticket.py:21 +#: perms/serializers/permission.py:52 perms/serializers/permission.py:74 +#: tickets/serializers/ticket/ticket.py:21 msgid "Action" msgstr "" -#: accounts/models/automations/push_account.py:57 +#: accounts/models/automations/push_account.py:58 msgid "Push asset account" msgstr "" @@ -719,13 +723,13 @@ msgstr "" #: authentication/serializers/connect_token_secret.py:113 #: 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/models/celery.py:81 ops/models/job.py:142 ops/models/playbook.py:30 -#: ops/serializers/job.py:18 orgs/models.py:82 +#: ops/models/celery.py:81 ops/models/job.py:145 ops/models/playbook.py:28 +#: 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 #: rbac/serializers/role.py:28 settings/models.py:35 settings/models.py:184 #: settings/serializers/msg.py:89 settings/serializers/terminal.py:9 #: 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/terminal.py:85 #: terminal/models/virtualapp/provider.py:10 @@ -874,7 +878,7 @@ msgstr "" #: assets/serializers/asset/common.py:146 assets/serializers/platform.py:159 #: assets/serializers/platform.py:171 audits/serializers.py:53 #: 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 #: terminal/models/component/storage.py:58 #: terminal/models/component/storage.py:152 terminal/serializers/applet.py:29 @@ -910,10 +914,8 @@ msgstr "" #: assets/models/automations/base.py:19 #: assets/serializers/automations/base.py:20 assets/serializers/domain.py:34 #: assets/serializers/platform.py:180 assets/serializers/platform.py:212 -#: authentication/api/connection_token.py:410 -#: behemoth/serializers/environment.py:11 -#: behemoth/serializers/environment.py:22 ops/models/base.py:17 -#: ops/models/job.py:152 ops/serializers/job.py:19 +#: authentication/api/connection_token.py:410 ops/models/base.py:17 +#: ops/models/job.py:155 ops/serializers/job.py:20 #: perms/serializers/permission.py:46 #: terminal/templates/terminal/_msg_command_execute_alert.html:16 #: xpack/plugins/cloud/manager.py:89 @@ -1055,11 +1057,11 @@ msgstr "" #: 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 -#: 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 #: terminal/models/applet/applet.py:332 terminal/models/applet/host.py:143 -#: terminal/models/component/endpoint.py:26 -#: terminal/models/component/endpoint.py:121 +#: terminal/models/component/endpoint.py:27 +#: terminal/models/component/endpoint.py:122 #: terminal/models/session/session.py:47 #: terminal/models/virtualapp/virtualapp.py:28 tickets/models/comment.py:32 #: tickets/models/ticket/general.py:298 users/models/user/__init__.py:91 @@ -1076,7 +1078,8 @@ msgstr "" #: accounts/serializers/automations/base.py:23 #: 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" msgstr "" @@ -1330,12 +1333,12 @@ msgid "Notify and warn" msgstr "" #: 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" msgstr "" #: 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" msgstr "" @@ -1349,8 +1352,8 @@ msgstr "" #: authentication/models/connection_token.py:53 #: authentication/models/ssh_key.py:13 #: authentication/templates/authentication/_access_key_modal.html:32 -#: perms/models/asset_permission.py:82 terminal/models/component/endpoint.py:27 -#: terminal/models/component/endpoint.py:122 +#: perms/models/asset_permission.py:82 terminal/models/component/endpoint.py:28 +#: terminal/models/component/endpoint.py:123 #: terminal/models/session/sharing.py:29 terminal/serializers/terminal.py:44 #: tickets/const.py:36 msgid "Active" @@ -1370,7 +1373,7 @@ msgid "Accounts" msgstr "" #: 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/templates/terminal/_msg_command_alert.html:12 #: terminal/templates/terminal/_msg_command_execute_alert.html:10 @@ -1384,7 +1387,7 @@ msgid "Regex" msgstr "" #: 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 msgid "Content" msgstr "" @@ -1638,7 +1641,7 @@ msgid "Authentication failed" msgstr "" #: 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" msgstr "" @@ -1686,9 +1689,9 @@ msgstr "" #: 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/feature.py:52 settings/serializers/msg.py:30 -#: terminal/models/component/endpoint.py:14 terminal/serializers/applet.py:17 -#: xpack/plugins/cloud/manager.py:89 +#: settings/serializers/feature.py:72 settings/serializers/feature.py:85 +#: settings/serializers/msg.py:30 terminal/models/component/endpoint.py:14 +#: terminal/serializers/applet.py:17 xpack/plugins/cloud/manager.py:89 #: xpack/plugins/cloud/serializers/account_attrs.py:72 msgid "Host" msgstr "" @@ -1990,18 +1993,19 @@ msgstr "" msgid "Postgresql SSL mode" 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" msgstr "" #: assets/models/automations/base.py:18 assets/models/cmd_filter.py:32 -#: assets/models/node.py:553 perms/models/asset_permission.py:72 -#: tickets/models/ticket/apply_asset.py:14 xpack/plugins/cloud/models.py:388 +#: assets/models/node.py:553 ops/models/job.py:156 +#: perms/models/asset_permission.py:72 tickets/models/ticket/apply_asset.py:14 +#: xpack/plugins/cloud/models.py:388 msgid "Node" msgstr "" -#: assets/models/automations/base.py:22 ops/models/job.py:237 -#: settings/serializers/auth/sms.py:108 +#: assets/models/automations/base.py:22 ops/models/job.py:242 +#: ops/serializers/job.py:23 settings/serializers/auth/sms.py:108 msgid "Parameters" msgstr "" @@ -2014,7 +2018,7 @@ msgid "Asset automation task" msgstr "" #: 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 msgid "Date created" msgstr "" @@ -2146,7 +2150,7 @@ msgstr "" msgid "Primary" msgstr "" -#: assets/models/platform.py:18 +#: assets/models/platform.py:18 ops/models/variable.py:20 msgid "Required" msgstr "" @@ -2682,7 +2686,7 @@ msgstr "Labels" msgid "operate_log_id" msgstr "" -#: audits/backends/db.py:111 +#: audits/backends/db.py:111 ops/models/variable.py:19 msgid "Tips" msgstr "" @@ -2926,8 +2930,8 @@ msgid "Offline user session" msgstr "" #: 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/job.py:240 ops/models/playbook.py:32 +#: ops/models/base.py:53 ops/models/celery.py:87 ops/models/job.py:154 +#: ops/models/job.py:245 ops/models/playbook.py:30 ops/models/variable.py:17 #: terminal/models/session/sharing.py:25 msgid "Creator" msgstr "" @@ -3466,7 +3470,7 @@ msgid "Please change your password" msgstr "" #: authentication/models/access_key.py:22 -#: terminal/models/component/endpoint.py:112 +#: terminal/models/component/endpoint.py:113 msgid "IP group" msgstr "" @@ -3757,7 +3761,7 @@ msgstr "" #: authentication/templates/authentication/_msg_oauth_bind.html:3 #: authentication/templates/authentication/_msg_reset_password.html:3 #: 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 #: tickets/templates/tickets/approve_check_password.html:32 #: users/templates/users/_msg_account_expire_reminder.html:4 @@ -4491,16 +4495,16 @@ msgstr "" msgid "The mobile phone number format is incorrect" msgstr "" -#: jumpserver/conf.py:516 +#: jumpserver/conf.py:523 #, python-brace-format msgid "The verification code is: {code}" msgstr "" -#: jumpserver/conf.py:521 +#: jumpserver/conf.py:528 msgid "Create account successfully" msgstr "" -#: jumpserver/conf.py:523 +#: jumpserver/conf.py:530 msgid "Your account has been created successfully" msgstr "" @@ -4597,7 +4601,7 @@ msgid "" " work orders, and other notifications" 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" msgstr "" @@ -4621,34 +4625,34 @@ msgstr "" msgid "Task {} args or kwargs error" msgstr "" -#: ops/api/job.py:83 +#: ops/api/job.py:68 #, python-brace-format msgid "" "Asset ({asset}) must have at least one of the following protocols added: " "SSH, SFTP, or WinRM" msgstr "" -#: ops/api/job.py:84 +#: ops/api/job.py:69 #, python-brace-format msgid "Asset ({asset}) authorization is missing SSH, SFTP, or WinRM protocol" msgstr "" -#: ops/api/job.py:85 +#: ops/api/job.py:70 #, python-brace-format msgid "Asset ({asset}) authorization lacks upload permissions" msgstr "" -#: ops/api/job.py:170 +#: ops/api/job.py:157 msgid "Duplicate file exists" msgstr "" -#: ops/api/job.py:175 +#: ops/api/job.py:162 #, python-brace-format msgid "" "File size exceeds maximum limit. Please select a file smaller than {limit}MB" msgstr "" -#: ops/api/job.py:244 +#: ops/api/job.py:231 msgid "" "The task is being created and cannot be interrupted. Please try again later." msgstr "" @@ -4717,11 +4721,13 @@ msgstr "" msgid "VCS" 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" 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" msgstr "" @@ -4794,6 +4800,14 @@ msgstr "" msgid "Private" msgstr "" +#: ops/const.py:91 +msgid "Text" +msgstr "" + +#: ops/const.py:92 +msgid "Select" +msgstr "" + #: ops/exception.py:6 msgid "no valid program entry found." msgstr "" @@ -4833,16 +4847,16 @@ msgstr "" msgid "Pattern" msgstr "" -#: ops/models/adhoc.py:22 ops/models/job.py:146 +#: ops/models/adhoc.py:22 ops/models/job.py:149 msgid "Module" 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 msgid "Args" 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/serializers/role.py:12 settings/serializers/auth/oauth2.py:37 msgid "Scope" @@ -4856,16 +4870,16 @@ msgstr "" msgid "Last execution" 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" 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 msgid "Result" 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 msgid "Summary" msgstr "" @@ -4894,55 +4908,89 @@ msgstr "" msgid "Celery Task Execution" msgstr "" -#: ops/models/job.py:147 +#: ops/models/job.py:150 msgid "Run dir" msgstr "" -#: ops/models/job.py:148 +#: ops/models/job.py:151 msgid "Timeout (Seconds)" msgstr "" -#: ops/models/job.py:153 +#: ops/models/job.py:157 msgid "Use Parameter Define" msgstr "" -#: ops/models/job.py:154 +#: ops/models/job.py:158 msgid "Parameters define" 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" msgstr "" -#: ops/models/job.py:157 +#: ops/models/job.py:162 msgid "Run as policy" 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 msgid "Job" msgstr "" -#: ops/models/job.py:245 +#: ops/models/job.py:250 msgid "Material" msgstr "" -#: ops/models/job.py:247 +#: ops/models/job.py:252 msgid "Material Type" msgstr "" -#: ops/models/job.py:558 +#: ops/models/job.py:564 msgid "Job Execution" msgstr "" -#: ops/models/playbook.py:35 +#: ops/models/playbook.py:33 msgid "CreateMethod" msgstr "" -#: ops/models/playbook.py:37 +#: ops/models/playbook.py:35 msgid "VCS URL" 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 msgid "Server performance" msgstr "" @@ -4979,61 +5027,72 @@ msgstr "" msgid "Next execution time" msgstr "" -#: ops/serializers/job.py:15 +#: ops/serializers/job.py:17 msgid "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" msgstr "" -#: ops/serializers/job.py:72 +#: ops/serializers/job.py:78 msgid "Job type" msgstr "" -#: ops/serializers/job.py:75 terminal/serializers/session.py:58 +#: ops/serializers/job.py:81 terminal/serializers/session.py:58 msgid "Is finished" msgstr "Finished" -#: ops/serializers/job.py:89 +#: ops/serializers/job.py:95 msgid "Task id" msgstr "" -#: ops/serializers/job.py:98 +#: ops/serializers/job.py:104 msgid "You do not have permission for the current job." 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" msgstr "" -#: ops/tasks.py:54 +#: ops/tasks.py:56 msgid "" "Execute scheduled adhoc and playbooks, periodically invoking the task for " "execution" msgstr "" -#: ops/tasks.py:82 +#: ops/tasks.py:88 msgid "Run ansible task execution" msgstr "" -#: ops/tasks.py:85 +#: ops/tasks.py:91 msgid "Execute the task when manually adhoc or playbooks" msgstr "" -#: ops/tasks.py:99 +#: ops/tasks.py:107 msgid "Clear celery periodic tasks" msgstr "" -#: ops/tasks.py:101 +#: ops/tasks.py:109 msgid "At system startup, clean up celery tasks that no longer exist" msgstr "" -#: ops/tasks.py:125 +#: ops/tasks.py:133 msgid "Create or update periodic tasks" msgstr "" -#: ops/tasks.py:127 +#: ops/tasks.py:135 msgid "" "With version iterations, new tasks may be added, or task names and execution " "times may \n" @@ -5042,11 +5101,11 @@ msgid "" " of scheduled tasks will be updated" msgstr "" -#: ops/tasks.py:140 +#: ops/tasks.py:148 msgid "Periodic check service performance" msgstr "" -#: ops/tasks.py:142 +#: ops/tasks.py:150 msgid "" "Check every hour whether each component is offline and whether the CPU, " "memory, \n" @@ -5054,11 +5113,11 @@ msgid "" "the administrator" msgstr "" -#: ops/tasks.py:152 +#: ops/tasks.py:160 msgid "Clean up unexpected jobs" msgstr "" -#: ops/tasks.py:154 +#: ops/tasks.py:162 msgid "" "Due to exceptions caused by executing adhoc and playbooks in the Job " "Center, \n" @@ -5069,11 +5128,11 @@ msgid "" " failed" msgstr "" -#: ops/tasks.py:167 +#: ops/tasks.py:175 msgid "Clean job_execution db record" msgstr "" -#: ops/tasks.py:169 +#: ops/tasks.py:177 msgid "" "Due to the execution of adhoc and playbooks in the Job Center, execution " "records will \n" @@ -5290,7 +5349,7 @@ msgid "today" msgstr "" #: perms/notifications.py:12 perms/notifications.py:44 -#: settings/serializers/feature.py:114 +#: settings/serializers/feature.py:137 msgid "day" msgstr "" @@ -5535,7 +5594,7 @@ msgstr "" msgid "App ops" msgstr "Ops" -#: rbac/tree.py:57 settings/serializers/feature.py:120 +#: rbac/tree.py:57 settings/serializers/feature.py:143 msgid "Feature" msgstr "" @@ -5570,8 +5629,8 @@ msgstr "Organizations" msgid "Ticket comment" msgstr "" -#: rbac/tree.py:159 settings/serializers/feature.py:101 -#: settings/serializers/feature.py:103 tickets/models/ticket/general.py:308 +#: rbac/tree.py:159 settings/serializers/feature.py:124 +#: settings/serializers/feature.py:126 tickets/models/ticket/general.py:308 msgid "Ticket" msgstr "" @@ -5589,7 +5648,7 @@ msgstr "" #: 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/vault.py:40 settings/api/wecom.py:37 +#: settings/api/vault.py:48 settings/api/wecom.py:37 msgid "Test success" msgstr "" @@ -5963,12 +6022,13 @@ msgstr "" msgid "Service provider" 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 msgid "Client ID" msgstr "" #: 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 msgid "Client Secret" msgstr "" @@ -6374,38 +6434,38 @@ msgstr "" msgid "Change secret and push record retention days (day)" msgstr "" -#: settings/serializers/feature.py:19 settings/serializers/msg.py:68 +#: settings/serializers/feature.py:20 settings/serializers/msg.py:68 msgid "Subject" msgstr "" -#: settings/serializers/feature.py:23 +#: settings/serializers/feature.py:24 msgid "More Link" msgstr "" -#: settings/serializers/feature.py:26 +#: settings/serializers/feature.py:27 #: settings/templates/ldap/_msg_import_ldap_user.html:6 #: terminal/models/session/session.py:46 msgid "Date end" msgstr "" -#: settings/serializers/feature.py:39 settings/serializers/feature.py:41 -#: settings/serializers/feature.py:42 +#: settings/serializers/feature.py:40 settings/serializers/feature.py:42 +#: settings/serializers/feature.py:43 msgid "Announcement" msgstr "" -#: settings/serializers/feature.py:49 +#: settings/serializers/feature.py:47 settings/serializers/feature.py:50 msgid "Vault" msgstr "" -#: settings/serializers/feature.py:58 -msgid "Mount Point" +#: settings/serializers/feature.py:53 +msgid "Vault provider" msgstr "" -#: settings/serializers/feature.py:64 +#: settings/serializers/feature.py:58 msgid "Record limit" msgstr "" -#: settings/serializers/feature.py:66 +#: settings/serializers/feature.py:60 msgid "" "If the specific value is less than 999 (default), the system will " "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" 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" msgstr "" -#: settings/serializers/feature.py:85 +#: settings/serializers/feature.py:108 msgid "GPT Base URL" 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" msgstr "" -#: settings/serializers/feature.py:89 templates/_header_bar.html:96 +#: settings/serializers/feature.py:112 templates/_header_bar.html:96 msgid "API Key" msgstr "" -#: settings/serializers/feature.py:93 +#: settings/serializers/feature.py:116 msgid "" "The proxy server address of the GPT service. For example: http://ip:port" msgstr "" -#: settings/serializers/feature.py:96 +#: settings/serializers/feature.py:119 msgid "GPT Model" msgstr "" -#: settings/serializers/feature.py:105 +#: settings/serializers/feature.py:128 msgid "Approval without login" msgstr "" -#: settings/serializers/feature.py:106 +#: settings/serializers/feature.py:129 msgid "Allow direct approval ticket without login" msgstr "" -#: settings/serializers/feature.py:110 +#: settings/serializers/feature.py:133 msgid "Period" msgstr "" -#: settings/serializers/feature.py:111 +#: settings/serializers/feature.py:134 msgid "" "The default authorization time period when applying for assets via a ticket" msgstr "" -#: settings/serializers/feature.py:114 +#: settings/serializers/feature.py:137 msgid "hour" msgstr "" -#: settings/serializers/feature.py:115 +#: settings/serializers/feature.py:138 msgid "Unit" msgstr "" -#: settings/serializers/feature.py:115 +#: settings/serializers/feature.py:138 msgid "The unit of period" msgstr "" -#: settings/serializers/feature.py:124 +#: settings/serializers/feature.py:147 msgid "" "Allow users to execute batch commands in the Workbench - Job Center - Adhoc" msgstr "" -#: settings/serializers/feature.py:128 +#: settings/serializers/feature.py:151 msgid "Command blacklist" msgstr "" -#: settings/serializers/feature.py:129 +#: settings/serializers/feature.py:152 msgid "Command blacklist in Adhoc" msgstr "" -#: settings/serializers/feature.py:134 +#: settings/serializers/feature.py:157 #: terminal/models/virtualapp/provider.py:17 #: terminal/models/virtualapp/virtualapp.py:36 #: terminal/models/virtualapp/virtualapp.py:97 @@ -6488,11 +6557,11 @@ msgstr "" msgid "Virtual app" msgstr "" -#: settings/serializers/feature.py:137 +#: settings/serializers/feature.py:160 msgid "Virtual App" msgstr "" -#: settings/serializers/feature.py:139 +#: settings/serializers/feature.py:162 msgid "" "Virtual applications, you can use the Linux operating system as an " "application server in remote applications." @@ -7359,6 +7428,14 @@ msgstr "" msgid "RDP Guide" msgstr "" +#: terminal/connect_methods.py:39 +msgid "VNC Client" +msgstr "" + +#: terminal/connect_methods.py:40 +msgid "VNC Guide" +msgstr "" + #: terminal/const.py:10 msgid "Warning" msgstr "" @@ -7383,7 +7460,7 @@ msgstr "" msgid "High" msgstr "" -#: terminal/const.py:47 terminal/const.py:84 +#: terminal/const.py:47 terminal/const.py:86 #: users/templates/users/reset_password.html:54 msgid "Normal" msgstr "" @@ -7392,47 +7469,47 @@ msgstr "" msgid "Offline" msgstr "" -#: terminal/const.py:80 +#: terminal/const.py:82 msgid "Mismatch" msgstr "" -#: terminal/const.py:85 +#: terminal/const.py:87 msgid "Tunnel" msgstr "" -#: terminal/const.py:91 +#: terminal/const.py:93 msgid "Read only" msgstr "" -#: terminal/const.py:92 +#: terminal/const.py:94 msgid "Writable" msgstr "" -#: terminal/const.py:96 +#: terminal/const.py:98 msgid "Kill session" msgstr "" -#: terminal/const.py:97 +#: terminal/const.py:99 msgid "Lock session" msgstr "" -#: terminal/const.py:98 +#: terminal/const.py:100 msgid "Unlock session" msgstr "" -#: terminal/const.py:103 +#: terminal/const.py:105 msgid "Replay create failed" msgstr "" -#: terminal/const.py:104 +#: terminal/const.py:106 msgid "Replay upload failed" msgstr "" -#: terminal/const.py:105 +#: terminal/const.py:107 msgid "Replay convert failed" msgstr "" -#: terminal/const.py:106 +#: terminal/const.py:108 msgid "Replay unsupported" msgstr "" @@ -7573,15 +7650,19 @@ msgstr "" msgid "SQLServer port" msgstr "" -#: terminal/models/component/endpoint.py:32 -#: terminal/models/component/endpoint.py:119 +#: terminal/models/component/endpoint.py:25 +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/storage.py:53 terminal/serializers/storage.py:83 #: terminal/serializers/storage.py:93 terminal/serializers/storage.py:101 msgid "Endpoint" msgstr "" -#: terminal/models/component/endpoint.py:125 +#: terminal/models/component/endpoint.py:126 msgid "Endpoint rule" msgstr "" @@ -10081,10 +10162,6 @@ msgstr "" msgid "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 msgid "Subscription ID" msgstr "" diff --git a/apps/i18n/core/ja/LC_MESSAGES/django.po b/apps/i18n/core/ja/LC_MESSAGES/django.po index 627df1a2a..394a0039c 100644 --- a/apps/i18n/core/ja/LC_MESSAGES/django.po +++ b/apps/i18n/core/ja/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-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" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -36,7 +36,7 @@ msgstr "アセットまたはアプリケーション関連のバックアップ #: accounts/automations/backup_account/handlers.py:156 #: 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 msgid "Time cost" msgstr "時を過ごす" @@ -68,7 +68,7 @@ msgstr "仕上げ" #: assets/serializers/automations/base.py:52 audits/const.py:64 #: 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 -#: 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 msgid "Success" msgstr "成功" @@ -77,7 +77,7 @@ msgstr "成功" #: accounts/const/account.py:34 accounts/const/automation.py:109 #: accounts/serializers/automations/change_secret.py:174 audits/const.py:65 #: 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" msgstr "失敗しました" @@ -150,7 +150,7 @@ msgid "Access key" msgstr "アクセスキー" #: 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" msgstr "トークン" @@ -305,12 +305,12 @@ msgstr "作成のみ" msgid "Email" msgstr "メール" -#: accounts/const/automation.py:105 terminal/const.py:87 +#: accounts/const/automation.py:105 terminal/const.py:89 msgid "SFTP" msgstr "SFTP" #: 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 msgid "Pending" msgstr "未定" @@ -320,10 +320,14 @@ msgstr "未定" msgid "Database" msgstr "データベース" -#: accounts/const/vault.py:9 settings/serializers/feature.py:46 +#: accounts/const/vault.py:9 settings/serializers/feature.py:70 msgid "HCP 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 msgid "Export all" msgstr "すべてエクスポート" @@ -468,9 +472,9 @@ msgstr "アカウントバックアップ計画" #: accounts/models/automations/backup_account.py:120 #: 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 -#: 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 #: terminal/models/applet/host.py:141 terminal/models/session/session.py:45 #: tickets/models/ticket/apply_application.py:30 @@ -507,7 +511,7 @@ msgstr "理由" #: accounts/models/automations/backup_account.py:136 #: accounts/serializers/automations/change_secret.py:117 #: 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" msgstr "成功は" @@ -582,7 +586,7 @@ msgstr "開始日" #: accounts/models/automations/change_secret.py:42 #: 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 msgid "Date finished" msgstr "終了日" @@ -590,7 +594,7 @@ msgstr "終了日" #: accounts/models/automations/change_secret.py:44 #: assets/models/automations/base.py:113 #: 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/component/status.py:30 #: terminal/models/virtualapp/virtualapp.py:99 @@ -665,12 +669,12 @@ msgstr "トリガー方式" #: audits/models.py:92 audits/serializers.py:84 #: authentication/serializers/connect_token_secret.py:119 #: authentication/templates/authentication/_access_key_modal.html:34 -#: behemoth/serializers/environment.py:13 perms/serializers/permission.py:52 -#: perms/serializers/permission.py:74 tickets/serializers/ticket/ticket.py:21 +#: perms/serializers/permission.py:52 perms/serializers/permission.py:74 +#: tickets/serializers/ticket/ticket.py:21 msgid "Action" msgstr "アクション" -#: accounts/models/automations/push_account.py:57 +#: accounts/models/automations/push_account.py:58 msgid "Push asset account" msgstr "アカウントプッシュ" @@ -719,13 +723,13 @@ msgstr "パスワードルール" #: authentication/serializers/connect_token_secret.py:113 #: 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/models/celery.py:81 ops/models/job.py:142 ops/models/playbook.py:30 -#: ops/serializers/job.py:18 orgs/models.py:82 +#: ops/models/celery.py:81 ops/models/job.py:145 ops/models/playbook.py:28 +#: 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 #: rbac/serializers/role.py:28 settings/models.py:35 settings/models.py:184 #: settings/serializers/msg.py:89 settings/serializers/terminal.py:9 #: 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/terminal.py:85 #: terminal/models/virtualapp/provider.py:10 @@ -884,7 +888,7 @@ msgstr "カテゴリ" #: assets/serializers/asset/common.py:146 assets/serializers/platform.py:159 #: assets/serializers/platform.py:171 audits/serializers.py:53 #: 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 #: terminal/models/component/storage.py:58 #: terminal/models/component/storage.py:152 terminal/serializers/applet.py:29 @@ -920,10 +924,8 @@ msgstr "編集済み" #: assets/models/automations/base.py:19 #: assets/serializers/automations/base.py:20 assets/serializers/domain.py:34 #: assets/serializers/platform.py:180 assets/serializers/platform.py:212 -#: authentication/api/connection_token.py:410 -#: behemoth/serializers/environment.py:11 -#: behemoth/serializers/environment.py:22 ops/models/base.py:17 -#: ops/models/job.py:152 ops/serializers/job.py:19 +#: authentication/api/connection_token.py:410 ops/models/base.py:17 +#: ops/models/job.py:155 ops/serializers/job.py:20 #: perms/serializers/permission.py:46 #: terminal/templates/terminal/_msg_command_execute_alert.html:16 #: xpack/plugins/cloud/manager.py:89 @@ -1074,11 +1076,11 @@ msgstr "关联平台,可以配置推送参数,如果不关联,则使用默 #: 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 -#: 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 #: terminal/models/applet/applet.py:332 terminal/models/applet/host.py:143 -#: terminal/models/component/endpoint.py:26 -#: terminal/models/component/endpoint.py:121 +#: terminal/models/component/endpoint.py:27 +#: terminal/models/component/endpoint.py:122 #: terminal/models/session/session.py:47 #: terminal/models/virtualapp/virtualapp.py:28 tickets/models/comment.py:32 #: tickets/models/ticket/general.py:298 users/models/user/__init__.py:91 @@ -1099,7 +1101,8 @@ msgstr "" #: accounts/serializers/automations/base.py:23 #: 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" msgstr "ノード" @@ -1382,12 +1385,12 @@ msgid "Notify and warn" msgstr "プロンプトと警告" #: 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" msgstr "優先順位" #: 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" msgstr "1-100、低い値は最初に一致します" @@ -1401,8 +1404,8 @@ msgstr "レビュー担当者" #: authentication/models/connection_token.py:53 #: authentication/models/ssh_key.py:13 #: authentication/templates/authentication/_access_key_modal.html:32 -#: perms/models/asset_permission.py:82 terminal/models/component/endpoint.py:27 -#: terminal/models/component/endpoint.py:122 +#: perms/models/asset_permission.py:82 terminal/models/component/endpoint.py:28 +#: terminal/models/component/endpoint.py:123 #: terminal/models/session/sharing.py:29 terminal/serializers/terminal.py:44 #: tickets/const.py:36 msgid "Active" @@ -1422,7 +1425,7 @@ msgid "Accounts" msgstr "アカウント" #: 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/templates/terminal/_msg_command_alert.html:12 #: terminal/templates/terminal/_msg_command_execute_alert.html:10 @@ -1436,7 +1439,7 @@ msgid "Regex" msgstr "正規情報" #: 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 msgid "Content" msgstr "コンテンツ" @@ -1700,7 +1703,7 @@ msgid "Authentication failed" msgstr "認証に失敗しました" #: 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" msgstr "接続に失敗しました" @@ -1748,9 +1751,9 @@ msgstr "脚本" #: 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/feature.py:52 settings/serializers/msg.py:30 -#: terminal/models/component/endpoint.py:14 terminal/serializers/applet.py:17 -#: xpack/plugins/cloud/manager.py:89 +#: settings/serializers/feature.py:72 settings/serializers/feature.py:85 +#: settings/serializers/msg.py:30 terminal/models/component/endpoint.py:14 +#: terminal/serializers/applet.py:17 xpack/plugins/cloud/manager.py:89 #: xpack/plugins/cloud/serializers/account_attrs.py:72 msgid "Host" msgstr "ホスト" @@ -2062,18 +2065,19 @@ msgstr "証明書チェックを無視" msgid "Postgresql SSL mode" 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" msgstr "プロキシー" #: assets/models/automations/base.py:18 assets/models/cmd_filter.py:32 -#: assets/models/node.py:553 perms/models/asset_permission.py:72 -#: tickets/models/ticket/apply_asset.py:14 xpack/plugins/cloud/models.py:388 +#: assets/models/node.py:553 ops/models/job.py:156 +#: perms/models/asset_permission.py:72 tickets/models/ticket/apply_asset.py:14 +#: xpack/plugins/cloud/models.py:388 msgid "Node" msgstr "ノード" -#: assets/models/automations/base.py:22 ops/models/job.py:237 -#: settings/serializers/auth/sms.py:108 +#: assets/models/automations/base.py:22 ops/models/job.py:242 +#: ops/serializers/job.py:23 settings/serializers/auth/sms.py:108 msgid "Parameters" msgstr "パラメータ" @@ -2086,7 +2090,7 @@ msgid "Asset automation task" msgstr "アセットの自動化タスク" #: 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 msgid "Date created" msgstr "作成された日付" @@ -2218,7 +2222,7 @@ msgstr "ノードを一致させることができます" msgid "Primary" msgstr "主要" -#: assets/models/platform.py:18 +#: assets/models/platform.py:18 ops/models/variable.py:20 msgid "Required" msgstr "必要" @@ -2786,7 +2790,7 @@ msgstr "タグ" msgid "operate_log_id" msgstr "操作ログID" -#: audits/backends/db.py:111 +#: audits/backends/db.py:111 ops/models/variable.py:19 msgid "Tips" msgstr "謎々" @@ -3030,8 +3034,8 @@ msgid "Offline user session" msgstr "オフラインユーザセッション" #: 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/job.py:240 ops/models/playbook.py:32 +#: ops/models/base.py:53 ops/models/celery.py:87 ops/models/job.py:154 +#: ops/models/job.py:245 ops/models/playbook.py:30 ops/models/variable.py:17 #: terminal/models/session/sharing.py:25 msgid "Creator" msgstr "作成者" @@ -3596,7 +3600,7 @@ msgid "Please change your password" msgstr "パスワードを変更してください" #: authentication/models/access_key.py:22 -#: terminal/models/component/endpoint.py:112 +#: terminal/models/component/endpoint.py:113 msgid "IP group" msgstr "IP グループ" @@ -3891,7 +3895,7 @@ msgstr "コードエラー" #: authentication/templates/authentication/_msg_oauth_bind.html:3 #: authentication/templates/authentication/_msg_reset_password.html:3 #: 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 #: tickets/templates/tickets/approve_check_password.html:32 #: users/templates/users/_msg_account_expire_reminder.html:4 @@ -4662,16 +4666,16 @@ msgstr "特殊文字を含むべきではない" msgid "The mobile phone number format is incorrect" msgstr "携帯電話番号の形式が正しくありません" -#: jumpserver/conf.py:516 +#: jumpserver/conf.py:523 #, python-brace-format msgid "The verification code is: {code}" msgstr "認証コードは: {code}" -#: jumpserver/conf.py:521 +#: jumpserver/conf.py:528 msgid "Create account successfully" msgstr "アカウントを正常に作成" -#: jumpserver/conf.py:523 +#: jumpserver/conf.py:530 msgid "Your account has been created successfully" msgstr "アカウントが正常に作成されました" @@ -4778,7 +4782,7 @@ msgid "" " work orders, and other notifications" 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" msgstr "利用可能なアカウントがありません" @@ -4802,7 +4806,7 @@ msgstr "タスクは存在しません" msgid "Task {} args or kwargs error" msgstr "タスク実行パラメータエラー" -#: ops/api/job.py:83 +#: ops/api/job.py:68 #, python-brace-format msgid "" "Asset ({asset}) must have at least one of the following protocols added: " @@ -4811,22 +4815,22 @@ msgstr "" "資産({asset})には、少なくともSSH、SFTP、WinRMのいずれか一つのプロトコルを追加" "する必要があります" -#: ops/api/job.py:84 +#: ops/api/job.py:69 #, python-brace-format msgid "Asset ({asset}) authorization is missing SSH, SFTP, or WinRM protocol" msgstr "" "資産({asset})の認証にはSSH、SFTP、またはWinRMプロトコルが不足しています" -#: ops/api/job.py:85 +#: ops/api/job.py:70 #, python-brace-format msgid "Asset ({asset}) authorization lacks upload permissions" msgstr "資産({asset})の認証にはアップロード権限が不足しています" -#: ops/api/job.py:170 +#: ops/api/job.py:157 msgid "Duplicate file exists" msgstr "重複したファイルが存在する" -#: ops/api/job.py:175 +#: ops/api/job.py:162 #, python-brace-format msgid "" "File size exceeds maximum limit. Please select a file smaller than {limit}MB" @@ -4834,7 +4838,7 @@ msgstr "" "ファイルサイズが最大制限を超えています。{limit}MB より小さいファイルを選択し" "てください。" -#: ops/api/job.py:244 +#: ops/api/job.py:231 msgid "" "The task is being created and cannot be interrupted. Please try again later." msgstr "タスクを作成中で、中断できません。後でもう一度お試しください。" @@ -4903,11 +4907,13 @@ msgstr "空欄" msgid "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" 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" msgstr "Playbook" @@ -5019,16 +5025,16 @@ msgstr "定期的または定期的に設定を行う必要があります" msgid "Pattern" msgstr "パターン" -#: ops/models/adhoc.py:22 ops/models/job.py:146 +#: ops/models/adhoc.py:22 ops/models/job.py:149 msgid "Module" 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 msgid "Args" 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/serializers/role.py:12 settings/serializers/auth/oauth2.py:37 msgid "Scope" @@ -5042,16 +5048,16 @@ msgstr "アカウント ポリシー" msgid "Last execution" 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" 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 msgid "Result" 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 msgid "Summary" msgstr "Summary" @@ -5080,52 +5086,52 @@ msgstr "発売日" msgid "Celery Task Execution" msgstr "Celery タスク実行" -#: ops/models/job.py:147 +#: ops/models/job.py:150 msgid "Run dir" msgstr "実行ディレクトリ" -#: ops/models/job.py:148 +#: ops/models/job.py:151 msgid "Timeout (Seconds)" msgstr "タイムアウト(秒)" -#: ops/models/job.py:153 +#: ops/models/job.py:157 msgid "Use Parameter Define" msgstr "パラメータ定義を使用する" -#: ops/models/job.py:154 +#: ops/models/job.py:158 msgid "Parameters define" msgstr "パラメータ定義" -#: ops/models/job.py:155 +#: ops/models/job.py:160 msgid "Run as" msgstr "実行アカウント (じっこうアカウント)" -#: ops/models/job.py:157 +#: ops/models/job.py:162 msgid "Run as policy" 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 msgid "Job" msgstr "ジョブ#ジョブ#" -#: ops/models/job.py:245 +#: ops/models/job.py:250 msgid "Material" msgstr "Material" -#: ops/models/job.py:247 +#: ops/models/job.py:252 msgid "Material Type" msgstr "Material を選択してオプションを設定します。" -#: ops/models/job.py:558 +#: ops/models/job.py:564 msgid "Job Execution" msgstr "ジョブ実行" -#: ops/models/playbook.py:35 +#: ops/models/playbook.py:33 msgid "CreateMethod" msgstr "创建方式" -#: ops/models/playbook.py:37 +#: ops/models/playbook.py:35 msgid "VCS URL" msgstr "VCS URL" @@ -5165,27 +5171,27 @@ msgstr "ジョブ実行" msgid "Next execution time" msgstr "最後の実行" -#: ops/serializers/job.py:15 +#: ops/serializers/job.py:17 msgid "Execute after saving" msgstr "保存後に実行" -#: ops/serializers/job.py:52 terminal/serializers/session.py:49 +#: ops/serializers/job.py:58 terminal/serializers/session.py:49 msgid "Duration" msgstr "きかん" -#: ops/serializers/job.py:72 +#: ops/serializers/job.py:78 msgid "Job type" msgstr "タスクの種類" -#: ops/serializers/job.py:75 terminal/serializers/session.py:58 +#: ops/serializers/job.py:81 terminal/serializers/session.py:58 msgid "Is finished" msgstr "終了しました" -#: ops/serializers/job.py:89 +#: ops/serializers/job.py:95 msgid "Task id" msgstr "タスク ID" -#: ops/serializers/job.py:98 +#: ops/serializers/job.py:104 msgid "You do not have permission for the current job." msgstr "あなたは現在のジョブの権限を持っていません。" @@ -5193,7 +5199,7 @@ msgstr "あなたは現在のジョブの権限を持っていません。" msgid "Run ansible task" msgstr "Ansible タスクを実行する" -#: ops/tasks.py:54 +#: ops/tasks.py:56 msgid "" "Execute scheduled adhoc and playbooks, periodically invoking the task for " "execution" @@ -5201,29 +5207,29 @@ msgstr "" "タイムスケジュールのショートカットコマンドやplaybookを実行するときは、このタ" "スクを呼び出します" -#: ops/tasks.py:82 +#: ops/tasks.py:88 msgid "Run ansible task execution" msgstr "Ansible タスクの実行を開始する" -#: ops/tasks.py:85 +#: ops/tasks.py:91 msgid "Execute the task when manually adhoc or playbooks" msgstr "" "手動でショートカットコマンドやplaybookを実行するときは、このタスクを実行しま" "す" -#: ops/tasks.py:99 +#: ops/tasks.py:107 msgid "Clear celery periodic tasks" msgstr "タスクログを定期的にクリアする" -#: ops/tasks.py:101 +#: ops/tasks.py:109 msgid "At system startup, clean up celery tasks that no longer exist" msgstr "システム起動時、既に存在しないceleryのタスクをクリーニングします" -#: ops/tasks.py:125 +#: ops/tasks.py:133 msgid "Create or update periodic tasks" msgstr "定期的なタスクの作成または更新" -#: ops/tasks.py:127 +#: ops/tasks.py:135 msgid "" "With version iterations, new tasks may be added, or task names and execution " "times may \n" @@ -5235,11 +5241,11 @@ msgstr "" "行時間が変更される可能性があるため、システムが起動すると、タスクを登録した" "り、タスクのパラメータを更新したりします" -#: ops/tasks.py:140 +#: ops/tasks.py:148 msgid "Periodic check service performance" msgstr "サービスのパフォーマンスを定期的に確認する" -#: ops/tasks.py:142 +#: ops/tasks.py:150 msgid "" "Check every hour whether each component is offline and whether the CPU, " "memory, \n" @@ -5249,11 +5255,11 @@ msgstr "" "毎時、各コンポーネントがオフラインになっていないか、CPU、メモリ、ディスク使用" "率が閾値を超えていないかをチェックし、管理者にメッセージで警告を送ります" -#: ops/tasks.py:152 +#: ops/tasks.py:160 msgid "Clean up unexpected jobs" msgstr "例外ジョブのクリーンアップ" -#: ops/tasks.py:154 +#: ops/tasks.py:162 msgid "" "Due to exceptions caused by executing adhoc and playbooks in the Job " "Center, \n" @@ -5267,11 +5273,11 @@ msgstr "" "スクの状態が更新されないことがあります。そのため、システムは毎時間、3時間以上" "終了していない異常なジョブをクリーニングし、タスクを失敗とマークします" -#: ops/tasks.py:167 +#: ops/tasks.py:175 msgid "Clean job_execution db record" msgstr "ジョブセンター実行履歴のクリーンアップ" -#: ops/tasks.py:169 +#: ops/tasks.py:177 msgid "" "Due to the execution of adhoc and playbooks in the Job Center, execution " "records will \n" @@ -5493,7 +5499,7 @@ msgid "today" msgstr "今日" #: perms/notifications.py:12 perms/notifications.py:44 -#: settings/serializers/feature.py:114 +#: settings/serializers/feature.py:137 msgid "day" msgstr "日" @@ -5750,7 +5756,7 @@ msgstr "アカウントの秘密の変更" msgid "App ops" msgstr "アプリ操作" -#: rbac/tree.py:57 settings/serializers/feature.py:120 +#: rbac/tree.py:57 settings/serializers/feature.py:143 msgid "Feature" msgstr "機能" @@ -5785,8 +5791,8 @@ msgstr "アプリ組織" msgid "Ticket comment" msgstr "チケットコメント" -#: rbac/tree.py:159 settings/serializers/feature.py:101 -#: settings/serializers/feature.py:103 tickets/models/ticket/general.py:308 +#: rbac/tree.py:159 settings/serializers/feature.py:124 +#: settings/serializers/feature.py:126 tickets/models/ticket/general.py:308 msgid "Ticket" msgstr "チケット" @@ -5804,7 +5810,7 @@ msgstr "チャットAIがオンになっていない" #: 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/vault.py:40 settings/api/wecom.py:37 +#: settings/api/vault.py:48 settings/api/wecom.py:37 msgid "Test success" msgstr "テストの成功" @@ -6206,12 +6212,13 @@ msgstr "アイコン" msgid "Service provider" 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 msgid "Client ID" msgstr "クライアントID" #: 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 msgid "Client Secret" msgstr "クライアント秘密" @@ -6645,38 +6652,38 @@ msgstr "" msgid "Change secret and push record retention days (day)" msgstr "パスワード変更プッシュ記録を保持する日数 (日)" -#: settings/serializers/feature.py:19 settings/serializers/msg.py:68 +#: settings/serializers/feature.py:20 settings/serializers/msg.py:68 msgid "Subject" msgstr "件名" -#: settings/serializers/feature.py:23 +#: settings/serializers/feature.py:24 msgid "More Link" msgstr "もっとURL" -#: settings/serializers/feature.py:26 +#: settings/serializers/feature.py:27 #: settings/templates/ldap/_msg_import_ldap_user.html:6 #: terminal/models/session/session.py:46 msgid "Date end" msgstr "終了日" -#: settings/serializers/feature.py:39 settings/serializers/feature.py:41 -#: settings/serializers/feature.py:42 +#: settings/serializers/feature.py:40 settings/serializers/feature.py:42 +#: settings/serializers/feature.py:43 msgid "Announcement" msgstr "発表" -#: settings/serializers/feature.py:49 +#: settings/serializers/feature.py:47 settings/serializers/feature.py:50 msgid "Vault" msgstr "有効化 Vault" -#: settings/serializers/feature.py:58 -msgid "Mount Point" -msgstr "マウントポイント" +#: settings/serializers/feature.py:53 +msgid "Vault provider" +msgstr "プロバイダー" -#: settings/serializers/feature.py:64 +#: settings/serializers/feature.py:58 msgid "Record limit" msgstr "記録制限" -#: settings/serializers/feature.py:66 +#: settings/serializers/feature.py:60 msgid "" "If the specific value is less than 999 (default), the system will " "automatically perform a task every night: check and delete historical " @@ -6687,76 +6694,85 @@ msgstr "" "所定の数を超える履歴アカウントを確認して削除します。 値が 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" msgstr "チャットAI" -#: settings/serializers/feature.py:85 +#: settings/serializers/feature.py:108 msgid "GPT Base URL" 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" 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" msgstr "API Key" -#: settings/serializers/feature.py:93 +#: settings/serializers/feature.py:116 msgid "" "The proxy server address of the GPT service. For example: http://ip:port" msgstr "GPTサービスのプロキシサーバーのアドレス。例えば:http://ip:port" -#: settings/serializers/feature.py:96 +#: settings/serializers/feature.py:119 msgid "GPT Model" msgstr "GPTモデル" -#: settings/serializers/feature.py:105 +#: settings/serializers/feature.py:128 msgid "Approval without login" msgstr "ログイン承認なし" -#: settings/serializers/feature.py:106 +#: settings/serializers/feature.py:129 msgid "Allow direct approval ticket without login" msgstr "ログインせずに直接承認チケットを許可します" -#: settings/serializers/feature.py:110 +#: settings/serializers/feature.py:133 msgid "Period" msgstr "期間" -#: settings/serializers/feature.py:111 +#: settings/serializers/feature.py:134 msgid "" "The default authorization time period when applying for assets via a ticket" msgstr "ワークオーダーの資産申請に対するデフォルトの承認時間帯" -#: settings/serializers/feature.py:114 +#: settings/serializers/feature.py:137 msgid "hour" msgstr "時" -#: settings/serializers/feature.py:115 +#: settings/serializers/feature.py:138 msgid "Unit" msgstr "単位" -#: settings/serializers/feature.py:115 +#: settings/serializers/feature.py:138 msgid "The unit of period" msgstr "ユーザーの実行" -#: settings/serializers/feature.py:124 +#: settings/serializers/feature.py:147 msgid "" "Allow users to execute batch commands in the Workbench - Job Center - Adhoc" msgstr "" "ユーザーがワークベンチ - ジョブセンター - Adhocでバッチコマンドを実行すること" "を許可します" -#: settings/serializers/feature.py:128 +#: settings/serializers/feature.py:151 msgid "Command blacklist" msgstr "コマンドフィルタリング" -#: settings/serializers/feature.py:129 +#: settings/serializers/feature.py:152 msgid "Command blacklist in Adhoc" msgstr "コマンドフィルタリング" -#: settings/serializers/feature.py:134 +#: settings/serializers/feature.py:157 #: terminal/models/virtualapp/provider.py:17 #: terminal/models/virtualapp/virtualapp.py:36 #: terminal/models/virtualapp/virtualapp.py:97 @@ -6764,11 +6780,11 @@ msgstr "コマンドフィルタリング" msgid "Virtual app" msgstr "仮想アプリケーション" -#: settings/serializers/feature.py:137 +#: settings/serializers/feature.py:160 msgid "Virtual App" msgstr "仮想アプリケーション" -#: settings/serializers/feature.py:139 +#: settings/serializers/feature.py:162 msgid "" "Virtual applications, you can use the Linux operating system as an " "application server in remote applications." @@ -7733,6 +7749,18 @@ msgstr "リモートデスクトップ" msgid "RDP Guide" 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 msgid "Warning" msgstr "警告" @@ -7757,7 +7785,7 @@ msgstr "クリティカル" msgid "High" msgstr "高い" -#: terminal/const.py:47 terminal/const.py:84 +#: terminal/const.py:47 terminal/const.py:86 #: users/templates/users/reset_password.html:54 msgid "Normal" msgstr "正常" @@ -7766,47 +7794,47 @@ msgstr "正常" msgid "Offline" msgstr "オフライン" -#: terminal/const.py:80 +#: terminal/const.py:82 msgid "Mismatch" msgstr "一致しない" -#: terminal/const.py:85 +#: terminal/const.py:87 msgid "Tunnel" msgstr "ちかチャネル" -#: terminal/const.py:91 +#: terminal/const.py:93 msgid "Read only" msgstr "読み取り専用" -#: terminal/const.py:92 +#: terminal/const.py:94 msgid "Writable" msgstr "書き込み可能" -#: terminal/const.py:96 +#: terminal/const.py:98 msgid "Kill session" msgstr "セッションを終了する" -#: terminal/const.py:97 +#: terminal/const.py:99 msgid "Lock session" msgstr "セッションをロックする" -#: terminal/const.py:98 +#: terminal/const.py:100 msgid "Unlock session" msgstr "セッションのロックを解除する" -#: terminal/const.py:103 +#: terminal/const.py:105 msgid "Replay create failed" msgstr "ビデオの作成に失敗しました" -#: terminal/const.py:104 +#: terminal/const.py:106 msgid "Replay upload failed" msgstr "動画のアップロードに失敗しました" -#: terminal/const.py:105 +#: terminal/const.py:107 msgid "Replay convert failed" msgstr "ビデオのトランスコーディングに失敗しました" -#: terminal/const.py:106 +#: terminal/const.py:108 msgid "Replay unsupported" msgstr "録画はサポートされていません" @@ -7947,15 +7975,19 @@ msgstr "Redis ポート" msgid "SQLServer port" msgstr "SQLServer ポート" -#: terminal/models/component/endpoint.py:32 -#: terminal/models/component/endpoint.py:119 +#: terminal/models/component/endpoint.py:25 +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/storage.py:53 terminal/serializers/storage.py:83 #: terminal/serializers/storage.py:93 terminal/serializers/storage.py:101 msgid "Endpoint" msgstr "エンドポイント" -#: terminal/models/component/endpoint.py:125 +#: terminal/models/component/endpoint.py:126 msgid "Endpoint rule" msgstr "エンドポイントルール" @@ -9858,6 +9890,14 @@ msgstr "" msgid "Open MFA Authenticator and enter the 6-bit dynamic code" 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 msgid "Already bound" msgstr "すでにバインド済み" @@ -10562,10 +10602,6 @@ msgstr "プロバイダ表示" msgid "Access key id" msgstr "アクセスキー" -#: xpack/plugins/cloud/serializers/account_attrs.py:41 -msgid "Tenant ID" -msgstr "テナントID" - #: xpack/plugins/cloud/serializers/account_attrs.py:44 msgid "Subscription ID" msgstr "サブスクリプションID" diff --git a/apps/i18n/core/zh/LC_MESSAGES/django.po b/apps/i18n/core/zh/LC_MESSAGES/django.po index b1e0716c6..c712ee6a1 100644 --- a/apps/i18n/core/zh/LC_MESSAGES/django.po +++ b/apps/i18n/core/zh/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: JumpServer 0.3.3\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" "Last-Translator: ibuler \n" "Language-Team: JumpServer team\n" @@ -67,7 +67,7 @@ msgstr "完成" #: assets/serializers/automations/base.py:52 audits/const.py:64 #: 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 -#: 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 msgid "Success" msgstr "成功" @@ -76,7 +76,7 @@ msgstr "成功" #: accounts/const/account.py:34 accounts/const/automation.py:109 #: accounts/serializers/automations/change_secret.py:174 audits/const.py:65 #: 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" msgstr "失败" @@ -149,7 +149,7 @@ msgid "Access key" msgstr "Access key" #: 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" msgstr "令牌" @@ -304,12 +304,12 @@ msgstr "仅创建" msgid "Email" msgstr "邮箱" -#: accounts/const/automation.py:105 terminal/const.py:87 +#: accounts/const/automation.py:105 terminal/const.py:89 msgid "SFTP" msgstr "SFTP" #: 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 msgid "Pending" msgstr "待定的" @@ -319,10 +319,14 @@ msgstr "待定的" msgid "Database" msgstr "数据库" -#: accounts/const/vault.py:9 settings/serializers/feature.py:46 +#: accounts/const/vault.py:9 settings/serializers/feature.py:70 msgid "HCP Vault" msgstr "HashiCorp Vault" +#: accounts/const/vault.py:10 settings/serializers/feature.py:83 +msgid "Azure Key Vault" +msgstr "" + #: accounts/mixins.py:35 msgid "Export all" msgstr "导出所有" @@ -469,7 +473,7 @@ msgstr "账号备份计划" #: 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/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 #: terminal/models/applet/host.py:141 terminal/models/session/session.py:45 #: tickets/models/ticket/apply_application.py:30 @@ -669,7 +673,7 @@ msgstr "触发方式" msgid "Action" msgstr "动作" -#: accounts/models/automations/push_account.py:57 +#: accounts/models/automations/push_account.py:58 msgid "Push asset account" msgstr "账号推送" @@ -724,7 +728,7 @@ msgstr "密码规则" #: rbac/serializers/role.py:28 settings/models.py:35 settings/models.py:184 #: settings/serializers/msg.py:89 settings/serializers/terminal.py:9 #: 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/terminal.py:85 #: 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 #: settings/models.py:40 terminal/models/applet/applet.py:46 #: terminal/models/applet/applet.py:332 terminal/models/applet/host.py:143 -#: terminal/models/component/endpoint.py:26 -#: terminal/models/component/endpoint.py:121 +#: terminal/models/component/endpoint.py:27 +#: terminal/models/component/endpoint.py:122 #: terminal/models/session/session.py:47 #: terminal/models/virtualapp/virtualapp.py:28 tickets/models/comment.py:32 #: tickets/models/ticket/general.py:298 users/models/user/__init__.py:91 @@ -1355,12 +1359,12 @@ msgid "Notify and warn" msgstr "提示并告警" #: 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" msgstr "优先级" #: 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" msgstr "优先级可选范围为 1-100 (数值越小越优先)" @@ -1374,8 +1378,8 @@ msgstr "审批人" #: authentication/models/connection_token.py:53 #: authentication/models/ssh_key.py:13 #: authentication/templates/authentication/_access_key_modal.html:32 -#: perms/models/asset_permission.py:82 terminal/models/component/endpoint.py:27 -#: terminal/models/component/endpoint.py:122 +#: perms/models/asset_permission.py:82 terminal/models/component/endpoint.py:28 +#: terminal/models/component/endpoint.py:123 #: terminal/models/session/sharing.py:29 terminal/serializers/terminal.py:44 #: tickets/const.py:36 msgid "Active" @@ -1395,7 +1399,7 @@ msgid "Accounts" msgstr "账号" #: 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/templates/terminal/_msg_command_alert.html:12 #: terminal/templates/terminal/_msg_command_execute_alert.html:10 @@ -1409,7 +1413,7 @@ msgid "Regex" msgstr "正则表达式" #: 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 msgid "Content" msgstr "内容" @@ -1669,7 +1673,7 @@ msgid "Authentication failed" msgstr "认证失败" #: 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" msgstr "连接失败" @@ -1717,9 +1721,9 @@ msgstr "脚本" #: 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/feature.py:52 settings/serializers/msg.py:30 -#: terminal/models/component/endpoint.py:14 terminal/serializers/applet.py:17 -#: xpack/plugins/cloud/manager.py:89 +#: settings/serializers/feature.py:72 settings/serializers/feature.py:85 +#: settings/serializers/msg.py:30 terminal/models/component/endpoint.py:14 +#: terminal/serializers/applet.py:17 xpack/plugins/cloud/manager.py:89 #: xpack/plugins/cloud/serializers/account_attrs.py:72 msgid "Host" msgstr "主机" @@ -2026,7 +2030,7 @@ msgstr "忽略证书校验" msgid "Postgresql SSL mode" 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" msgstr "代理" @@ -3519,7 +3523,7 @@ msgid "Please change your password" msgstr "请修改密码" #: authentication/models/access_key.py:22 -#: terminal/models/component/endpoint.py:112 +#: terminal/models/component/endpoint.py:113 msgid "IP group" msgstr "IPグループ" @@ -3810,7 +3814,7 @@ msgstr "代码错误" #: authentication/templates/authentication/_msg_oauth_bind.html:3 #: authentication/templates/authentication/_msg_reset_password.html:3 #: 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 #: tickets/templates/tickets/approve_check_password.html:32 #: users/templates/users/_msg_account_expire_reminder.html:4 @@ -4553,16 +4557,16 @@ msgstr "不能包含特殊字符" msgid "The mobile phone number format is incorrect" msgstr "手机号格式不正确" -#: jumpserver/conf.py:516 +#: jumpserver/conf.py:523 #, python-brace-format msgid "The verification code is: {code}" msgstr "验证码为: {code}" -#: jumpserver/conf.py:521 +#: jumpserver/conf.py:528 msgid "Create account successfully" msgstr "创建账号成功" -#: jumpserver/conf.py:523 +#: jumpserver/conf.py:530 msgid "Your account has been created successfully" msgstr "你的账号已创建成功" @@ -4785,7 +4789,7 @@ msgid "VCS" msgstr "VCS" #: 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" msgstr "命令" @@ -4988,16 +4992,18 @@ msgid "Parameters define" msgstr "参数定义" #: ops/models/job.py:159 +#, fuzzy +#| msgid "Periodic run" msgid "Periodic variable" -msgstr "定时任务参数" +msgstr "周期执行" #: ops/models/job.py:160 msgid "Run as" -msgstr "运行账号" +msgstr "运行用户" #: ops/models/job.py:162 msgid "Run as policy" -msgstr "账户策略" +msgstr "用户策略" #: ops/models/job.py:227 ops/models/variable.py:28 ops/serializers/job.py:98 #: terminal/notifications.py:182 @@ -5025,32 +5031,40 @@ msgid "VCS URL" msgstr "VCS URL" #: ops/models/variable.py:11 +#, fuzzy +#| msgid "Variable Type" msgid "Variable name" -msgstr "参数名" +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 "在脚本使用的变量名称,固定前缀 jms_ + 输入的变量名,例如变量名name,则最终生成环境变量为 jms_name" +msgstr "" #: ops/models/variable.py:16 +#, fuzzy +#| msgid "Default" msgid "Default Value" -msgstr "默认值" +msgstr "默认" #: ops/models/variable.py:18 +#, fuzzy +#| msgid "Variable Type" msgid "Variable type" -msgstr "变量名" +msgstr "参数类型" #: ops/models/variable.py:21 ops/serializers/variable.py:23 msgid "ExtraVars" -msgstr "额外参数" +msgstr "" #: ops/models/variable.py:49 ops/serializers/adhoc.py:16 #: ops/serializers/job.py:22 ops/serializers/playbook.py:21 +#, fuzzy +#| msgid "Variable Type" msgid "Variable" -msgstr "变量" +msgstr "参数类型" #: ops/notifications.py:20 msgid "Server performance" @@ -5123,37 +5137,37 @@ msgid "" "is the value." msgstr "每项单独一行,每行可以用英文冒号分割前边是显示的内容后边是值" -#: ops/tasks.py:52 +#: ops/tasks.py:53 msgid "Run ansible task" msgstr "运行 Ansible 任务" -#: ops/tasks.py:55 +#: ops/tasks.py:56 msgid "" "Execute scheduled adhoc and playbooks, periodically invoking the task for " "execution" msgstr "当执行定时的快捷命令,playbook,定时调用该任务执行" -#: ops/tasks.py:85 +#: ops/tasks.py:88 msgid "Run ansible task execution" msgstr "开始执行 Ansible 任务" -#: ops/tasks.py:88 +#: ops/tasks.py:91 msgid "Execute the task when manually adhoc or playbooks" msgstr "手动执行快捷命令,playbook时执行该任务" -#: ops/tasks.py:102 +#: ops/tasks.py:107 msgid "Clear celery periodic tasks" msgstr "清理周期任务" -#: ops/tasks.py:104 +#: ops/tasks.py:109 msgid "At system startup, clean up celery tasks that no longer exist" msgstr "系统启动时,清理已经不存在的celery任务" -#: ops/tasks.py:128 +#: ops/tasks.py:133 msgid "Create or update periodic tasks" msgstr "创建或更新周期任务" -#: ops/tasks.py:130 +#: ops/tasks.py:135 msgid "" "With version iterations, new tasks may be added, or task names and execution " "times may \n" @@ -5164,11 +5178,11 @@ msgstr "" "随着版本迭代,可能会新增任务或者修改任务的名称,执行时间,所以在系统启动时," "将会注册任务或者更新定时任务参数" -#: ops/tasks.py:143 +#: ops/tasks.py:148 msgid "Periodic check service performance" msgstr "周期检测服务性能" -#: ops/tasks.py:145 +#: ops/tasks.py:150 msgid "" "Check every hour whether each component is offline and whether the CPU, " "memory, \n" @@ -5178,11 +5192,11 @@ msgstr "" "每小时检测各组件是否离线,cpu,内存,硬盘使用率是否超过阈值,向管理员发送消息" "预警" -#: ops/tasks.py:155 +#: ops/tasks.py:160 msgid "Clean up unexpected jobs" msgstr "清理异常作业" -#: ops/tasks.py:157 +#: ops/tasks.py:162 msgid "" "Due to exceptions caused by executing adhoc and playbooks in the Job " "Center, \n" @@ -5195,11 +5209,11 @@ msgstr "" "由于作业中心执行快捷命令,playbook会产生异常,任务状态未更新完成,系统将每小" "时执行清理超3小时未完成的异常作业,并将任务标记失败" -#: ops/tasks.py:170 +#: ops/tasks.py:175 msgid "Clean job_execution db record" msgstr "清理作业中心执行历史" -#: ops/tasks.py:172 +#: ops/tasks.py:177 msgid "" "Due to the execution of adhoc and playbooks in the Job Center, execution " "records will \n" @@ -5418,7 +5432,7 @@ msgid "today" msgstr "今天" #: perms/notifications.py:12 perms/notifications.py:44 -#: settings/serializers/feature.py:114 +#: settings/serializers/feature.py:137 msgid "day" msgstr "天" @@ -5673,7 +5687,7 @@ msgstr "账号改密" msgid "App ops" msgstr "作业中心" -#: rbac/tree.py:57 settings/serializers/feature.py:120 +#: rbac/tree.py:57 settings/serializers/feature.py:143 msgid "Feature" msgstr "功能" @@ -5708,8 +5722,8 @@ msgstr "组织管理" msgid "Ticket comment" msgstr "工单评论" -#: rbac/tree.py:159 settings/serializers/feature.py:101 -#: settings/serializers/feature.py:103 tickets/models/ticket/general.py:308 +#: rbac/tree.py:159 settings/serializers/feature.py:124 +#: settings/serializers/feature.py:126 tickets/models/ticket/general.py:308 msgid "Ticket" msgstr "工单" @@ -5727,7 +5741,7 @@ msgstr "聊天 AI 没有开启" #: 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/vault.py:40 settings/api/wecom.py:37 +#: settings/api/vault.py:48 settings/api/wecom.py:37 msgid "Test success" msgstr "测试成功" @@ -6120,12 +6134,13 @@ msgstr "图标" msgid "Service provider" 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 msgid "Client ID" msgstr "客户端 ID" #: 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 msgid "Client Secret" msgstr "客户端密钥" @@ -6547,38 +6562,40 @@ msgstr "" msgid "Change secret and push record retention days (day)" msgstr "改密推送记录保留天数 (天)" -#: settings/serializers/feature.py:19 settings/serializers/msg.py:68 +#: settings/serializers/feature.py:20 settings/serializers/msg.py:68 msgid "Subject" msgstr "主题" -#: settings/serializers/feature.py:23 +#: settings/serializers/feature.py:24 msgid "More Link" msgstr "更多信息 URL" -#: settings/serializers/feature.py:26 +#: settings/serializers/feature.py:27 #: settings/templates/ldap/_msg_import_ldap_user.html:6 #: terminal/models/session/session.py:46 msgid "Date end" msgstr "结束日期" -#: settings/serializers/feature.py:39 settings/serializers/feature.py:41 -#: settings/serializers/feature.py:42 +#: settings/serializers/feature.py:40 settings/serializers/feature.py:42 +#: settings/serializers/feature.py:43 msgid "Announcement" msgstr "公告" -#: settings/serializers/feature.py:49 +#: settings/serializers/feature.py:47 settings/serializers/feature.py:50 msgid "Vault" msgstr "启用 Vault" -#: settings/serializers/feature.py:58 -msgid "Mount Point" -msgstr "挂载点" +#: settings/serializers/feature.py:53 +#, fuzzy +#| msgid "Provider" +msgid "Vault provider" +msgstr "云服务商" -#: settings/serializers/feature.py:64 +#: settings/serializers/feature.py:58 msgid "Record limit" msgstr "记录限制" -#: settings/serializers/feature.py:66 +#: settings/serializers/feature.py:60 msgid "" "If the specific value is less than 999 (default), the system will " "automatically perform a task every night: check and delete historical " @@ -6588,74 +6605,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 +#, fuzzy +#| msgid "Client ID" +msgid "Tenant ID" +msgstr "客户端 ID" + +#: settings/serializers/feature.py:99 settings/serializers/feature.py:105 msgid "Chat AI" msgstr "聊天 AI" -#: settings/serializers/feature.py:85 +#: settings/serializers/feature.py:108 msgid "GPT Base URL" 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" 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" msgstr "API Key" -#: settings/serializers/feature.py:93 +#: settings/serializers/feature.py:116 msgid "" "The proxy server address of the GPT service. For example: http://ip:port" msgstr "GPT 服务的代理服务器地址。例如:http://ip:port" -#: settings/serializers/feature.py:96 +#: settings/serializers/feature.py:119 msgid "GPT Model" msgstr "GPT 模型" -#: settings/serializers/feature.py:105 +#: settings/serializers/feature.py:128 msgid "Approval without login" msgstr "免登录审批" -#: settings/serializers/feature.py:106 +#: settings/serializers/feature.py:129 msgid "Allow direct approval ticket without login" msgstr "允许无需登录直接批准工单" -#: settings/serializers/feature.py:110 +#: settings/serializers/feature.py:133 msgid "Period" msgstr "时段" -#: settings/serializers/feature.py:111 +#: settings/serializers/feature.py:134 msgid "" "The default authorization time period when applying for assets via a ticket" msgstr "工单申请资产的默认授权时间段" -#: settings/serializers/feature.py:114 +#: settings/serializers/feature.py:137 msgid "hour" msgstr "时" -#: settings/serializers/feature.py:115 +#: settings/serializers/feature.py:138 msgid "Unit" msgstr "单位" -#: settings/serializers/feature.py:115 +#: settings/serializers/feature.py:138 msgid "The unit of period" msgstr "执行周期" -#: settings/serializers/feature.py:124 +#: settings/serializers/feature.py:147 msgid "" "Allow users to execute batch commands in the Workbench - Job Center - Adhoc" msgstr "允许用户在工作台 - 作业中心 - Adhoc 中执行批量命令" -#: settings/serializers/feature.py:128 +#: settings/serializers/feature.py:151 msgid "Command blacklist" msgstr "作业中心命令黑名单" -#: settings/serializers/feature.py:129 +#: settings/serializers/feature.py:152 msgid "Command blacklist in Adhoc" msgstr "作业中心命令黑名单" -#: settings/serializers/feature.py:134 +#: settings/serializers/feature.py:157 #: terminal/models/virtualapp/provider.py:17 #: terminal/models/virtualapp/virtualapp.py:36 #: terminal/models/virtualapp/virtualapp.py:97 @@ -6663,11 +6691,11 @@ msgstr "作业中心命令黑名单" msgid "Virtual app" msgstr "虚拟应用" -#: settings/serializers/feature.py:137 +#: settings/serializers/feature.py:160 msgid "Virtual App" msgstr "虚拟应用" -#: settings/serializers/feature.py:139 +#: settings/serializers/feature.py:162 msgid "" "Virtual applications, you can use the Linux operating system as an " "application server in remote applications." @@ -7583,6 +7611,14 @@ msgstr "远程桌面客户端" msgid "RDP Guide" 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 msgid "Warning" msgstr "告警" @@ -7607,7 +7643,7 @@ msgstr "严重" msgid "High" msgstr "较高" -#: terminal/const.py:47 terminal/const.py:84 +#: terminal/const.py:47 terminal/const.py:86 #: users/templates/users/reset_password.html:54 msgid "Normal" msgstr "正常" @@ -7616,47 +7652,47 @@ msgstr "正常" msgid "Offline" msgstr "离线" -#: terminal/const.py:80 +#: terminal/const.py:82 msgid "Mismatch" msgstr "未匹配" -#: terminal/const.py:85 +#: terminal/const.py:87 msgid "Tunnel" msgstr "隧道" -#: terminal/const.py:91 +#: terminal/const.py:93 msgid "Read only" msgstr "只读" -#: terminal/const.py:92 +#: terminal/const.py:94 msgid "Writable" msgstr "读写" -#: terminal/const.py:96 +#: terminal/const.py:98 msgid "Kill session" msgstr "终断会话" -#: terminal/const.py:97 +#: terminal/const.py:99 msgid "Lock session" msgstr "锁定会话" -#: terminal/const.py:98 +#: terminal/const.py:100 msgid "Unlock session" msgstr "解锁会话" -#: terminal/const.py:103 +#: terminal/const.py:105 msgid "Replay create failed" msgstr "录像创建失败" -#: terminal/const.py:104 +#: terminal/const.py:106 msgid "Replay upload failed" msgstr "录像上传失败" -#: terminal/const.py:105 +#: terminal/const.py:107 msgid "Replay convert failed" msgstr "录像转码失败" -#: terminal/const.py:106 +#: terminal/const.py:108 msgid "Replay unsupported" msgstr "不支持录像" @@ -7797,15 +7833,19 @@ msgstr "Redis 端口" msgid "SQLServer port" msgstr "SQLServer 端口" -#: terminal/models/component/endpoint.py:32 -#: terminal/models/component/endpoint.py:119 +#: terminal/models/component/endpoint.py:25 +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/storage.py:53 terminal/serializers/storage.py:83 #: terminal/serializers/storage.py:93 terminal/serializers/storage.py:101 msgid "Endpoint" msgstr "端点" -#: terminal/models/component/endpoint.py:125 +#: terminal/models/component/endpoint.py:126 msgid "Endpoint rule" msgstr "端点规则" @@ -10360,10 +10400,6 @@ msgstr "服务商显示" msgid "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 msgid "Subscription ID" msgstr "订阅 ID" diff --git a/apps/i18n/core/zh_Hant/LC_MESSAGES/django.po b/apps/i18n/core/zh_Hant/LC_MESSAGES/django.po index 1b4bd5cd3..bf9de6395 100644 --- a/apps/i18n/core/zh_Hant/LC_MESSAGES/django.po +++ b/apps/i18n/core/zh_Hant/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: JumpServer 0.3.3\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" "Last-Translator: ibuler \n" "Language-Team: JumpServer team\n" @@ -37,7 +37,7 @@ msgstr "生成與資產或應用程序相關的備份信息文件" #: accounts/automations/backup_account/handlers.py:156 #: 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 msgid "Time cost" msgstr "花費時間" @@ -69,7 +69,7 @@ msgstr "完成" #: assets/serializers/automations/base.py:52 audits/const.py:64 #: 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 -#: 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 msgid "Success" msgstr "成功" @@ -78,7 +78,7 @@ msgstr "成功" #: accounts/const/account.py:34 accounts/const/automation.py:109 #: accounts/serializers/automations/change_secret.py:174 audits/const.py:65 #: 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" msgstr "失敗" @@ -151,7 +151,7 @@ msgid "Access key" msgstr "Access key" #: 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" msgstr "Token" @@ -306,12 +306,12 @@ msgstr "僅創建" msgid "Email" msgstr "信箱" -#: accounts/const/automation.py:105 terminal/const.py:87 +#: accounts/const/automation.py:105 terminal/const.py:89 msgid "SFTP" msgstr "SFTP" #: 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 msgid "Pending" msgstr "待定的" @@ -321,10 +321,14 @@ msgstr "待定的" msgid "Database" msgstr "資料庫" -#: accounts/const/vault.py:9 settings/serializers/feature.py:46 +#: accounts/const/vault.py:9 settings/serializers/feature.py:70 msgid "HCP Vault" msgstr "HashiCorp Vault" +#: accounts/const/vault.py:10 settings/serializers/feature.py:83 +msgid "Azure Key Vault" +msgstr "" + #: accounts/mixins.py:35 msgid "Export all" msgstr "匯出所有" @@ -469,9 +473,9 @@ msgstr "帳號備份計劃" #: accounts/models/automations/backup_account.py:120 #: 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 -#: 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 #: terminal/models/applet/host.py:141 terminal/models/session/session.py:45 #: tickets/models/ticket/apply_application.py:30 @@ -508,7 +512,7 @@ msgstr "原因" #: accounts/models/automations/backup_account.py:136 #: accounts/serializers/automations/change_secret.py:117 #: 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" msgstr "是否成功" @@ -583,7 +587,7 @@ msgstr "開始日期" #: accounts/models/automations/change_secret.py:42 #: 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 msgid "Date finished" msgstr "結束日期" @@ -591,7 +595,7 @@ msgstr "結束日期" #: accounts/models/automations/change_secret.py:44 #: assets/models/automations/base.py:113 #: 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/component/status.py:30 #: terminal/models/virtualapp/virtualapp.py:99 @@ -666,12 +670,12 @@ msgstr "觸發方式" #: audits/models.py:92 audits/serializers.py:84 #: authentication/serializers/connect_token_secret.py:119 #: authentication/templates/authentication/_access_key_modal.html:34 -#: behemoth/serializers/environment.py:13 perms/serializers/permission.py:52 -#: perms/serializers/permission.py:74 tickets/serializers/ticket/ticket.py:21 +#: perms/serializers/permission.py:52 perms/serializers/permission.py:74 +#: tickets/serializers/ticket/ticket.py:21 msgid "Action" msgstr "動作" -#: accounts/models/automations/push_account.py:57 +#: accounts/models/automations/push_account.py:58 msgid "Push asset account" msgstr "帳號推送" @@ -720,13 +724,13 @@ msgstr "密碼規則" #: authentication/serializers/connect_token_secret.py:113 #: 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/models/celery.py:81 ops/models/job.py:142 ops/models/playbook.py:30 -#: ops/serializers/job.py:18 orgs/models.py:82 +#: ops/models/celery.py:81 ops/models/job.py:145 ops/models/playbook.py:28 +#: 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 #: rbac/serializers/role.py:28 settings/models.py:35 settings/models.py:184 #: settings/serializers/msg.py:89 settings/serializers/terminal.py:9 #: 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/terminal.py:85 #: terminal/models/virtualapp/provider.py:10 @@ -884,7 +888,7 @@ msgstr "類別" #: assets/serializers/asset/common.py:146 assets/serializers/platform.py:159 #: assets/serializers/platform.py:171 audits/serializers.py:53 #: 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 #: terminal/models/component/storage.py:58 #: terminal/models/component/storage.py:152 terminal/serializers/applet.py:29 @@ -920,10 +924,8 @@ msgstr "已修改" #: assets/models/automations/base.py:19 #: assets/serializers/automations/base.py:20 assets/serializers/domain.py:34 #: assets/serializers/platform.py:180 assets/serializers/platform.py:212 -#: authentication/api/connection_token.py:410 -#: behemoth/serializers/environment.py:11 -#: behemoth/serializers/environment.py:22 ops/models/base.py:17 -#: ops/models/job.py:152 ops/serializers/job.py:19 +#: authentication/api/connection_token.py:410 ops/models/base.py:17 +#: ops/models/job.py:155 ops/serializers/job.py:20 #: perms/serializers/permission.py:46 #: terminal/templates/terminal/_msg_command_execute_alert.html:16 #: xpack/plugins/cloud/manager.py:89 @@ -1073,11 +1075,11 @@ msgstr "關聯平台,可配置推送參數,如果不關聯,將使用默認 #: 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 -#: 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 #: terminal/models/applet/applet.py:332 terminal/models/applet/host.py:143 -#: terminal/models/component/endpoint.py:26 -#: terminal/models/component/endpoint.py:121 +#: terminal/models/component/endpoint.py:27 +#: terminal/models/component/endpoint.py:122 #: terminal/models/session/session.py:47 #: terminal/models/virtualapp/virtualapp.py:28 tickets/models/comment.py:32 #: tickets/models/ticket/general.py:298 users/models/user/__init__.py:91 @@ -1097,7 +1099,8 @@ msgstr "" #: accounts/serializers/automations/base.py:23 #: 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" msgstr "節點" @@ -1358,12 +1361,12 @@ msgid "Notify and warn" msgstr "提示並警告" #: 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" msgstr "優先度" #: 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" msgstr "優先度可選範圍為 1-100 (數值越小越優先)" @@ -1377,8 +1380,8 @@ msgstr "審批人" #: authentication/models/connection_token.py:53 #: authentication/models/ssh_key.py:13 #: authentication/templates/authentication/_access_key_modal.html:32 -#: perms/models/asset_permission.py:82 terminal/models/component/endpoint.py:27 -#: terminal/models/component/endpoint.py:122 +#: perms/models/asset_permission.py:82 terminal/models/component/endpoint.py:28 +#: terminal/models/component/endpoint.py:123 #: terminal/models/session/sharing.py:29 terminal/serializers/terminal.py:44 #: tickets/const.py:36 msgid "Active" @@ -1398,7 +1401,7 @@ msgid "Accounts" msgstr "帳號管理" #: 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/templates/terminal/_msg_command_alert.html:12 #: terminal/templates/terminal/_msg_command_execute_alert.html:10 @@ -1412,7 +1415,7 @@ msgid "Regex" msgstr "正則表達式" #: 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 msgid "Content" msgstr "內容" @@ -1672,7 +1675,7 @@ msgid "Authentication failed" msgstr "認證失敗" #: 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" msgstr "連接失敗" @@ -1720,9 +1723,9 @@ msgstr "腳本" #: 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/feature.py:52 settings/serializers/msg.py:30 -#: terminal/models/component/endpoint.py:14 terminal/serializers/applet.py:17 -#: xpack/plugins/cloud/manager.py:89 +#: settings/serializers/feature.py:72 settings/serializers/feature.py:85 +#: settings/serializers/msg.py:30 terminal/models/component/endpoint.py:14 +#: terminal/serializers/applet.py:17 xpack/plugins/cloud/manager.py:89 #: xpack/plugins/cloud/serializers/account_attrs.py:72 msgid "Host" msgstr "主機" @@ -2029,18 +2032,19 @@ msgstr "忽略證書校驗" msgid "Postgresql SSL mode" 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" msgstr "代理" #: assets/models/automations/base.py:18 assets/models/cmd_filter.py:32 -#: assets/models/node.py:553 perms/models/asset_permission.py:72 -#: tickets/models/ticket/apply_asset.py:14 xpack/plugins/cloud/models.py:388 +#: assets/models/node.py:553 ops/models/job.py:156 +#: perms/models/asset_permission.py:72 tickets/models/ticket/apply_asset.py:14 +#: xpack/plugins/cloud/models.py:388 msgid "Node" msgstr "節點" -#: assets/models/automations/base.py:22 ops/models/job.py:237 -#: settings/serializers/auth/sms.py:108 +#: assets/models/automations/base.py:22 ops/models/job.py:242 +#: ops/serializers/job.py:23 settings/serializers/auth/sms.py:108 msgid "Parameters" msgstr "參數" @@ -2055,7 +2059,7 @@ msgstr "資產自動化任務" # msgid "Comment" # msgstr "備註" #: 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 msgid "Date created" msgstr "創建日期" @@ -2187,7 +2191,7 @@ msgstr "可以匹配節點" msgid "Primary" msgstr "主要的" -#: assets/models/platform.py:18 +#: assets/models/platform.py:18 ops/models/variable.py:20 msgid "Required" msgstr "必須的" @@ -2730,7 +2734,7 @@ msgstr "標籤" msgid "operate_log_id" msgstr "Action日誌ID" -#: audits/backends/db.py:111 +#: audits/backends/db.py:111 ops/models/variable.py:19 msgid "Tips" msgstr "提示" @@ -2974,8 +2978,8 @@ msgid "Offline user session" msgstr "下線用戶會話" #: 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/job.py:240 ops/models/playbook.py:32 +#: ops/models/base.py:53 ops/models/celery.py:87 ops/models/job.py:154 +#: ops/models/job.py:245 ops/models/playbook.py:30 ops/models/variable.py:17 #: terminal/models/session/sharing.py:25 msgid "Creator" msgstr "創建者" @@ -3521,7 +3525,7 @@ msgid "Please change your password" msgstr "請修改密碼" #: authentication/models/access_key.py:22 -#: terminal/models/component/endpoint.py:112 +#: terminal/models/component/endpoint.py:113 msgid "IP group" msgstr "IPグループ" @@ -3812,7 +3816,7 @@ msgstr "代碼錯誤" #: authentication/templates/authentication/_msg_oauth_bind.html:3 #: authentication/templates/authentication/_msg_reset_password.html:3 #: 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 #: tickets/templates/tickets/approve_check_password.html:32 #: users/templates/users/_msg_account_expire_reminder.html:4 @@ -4555,16 +4559,16 @@ msgstr "不能包含特殊字元" msgid "The mobile phone number format is incorrect" msgstr "手機號碼格式不正確" -#: jumpserver/conf.py:516 +#: jumpserver/conf.py:523 #, python-brace-format msgid "The verification code is: {code}" msgstr "驗證碼為: {code}" -#: jumpserver/conf.py:521 +#: jumpserver/conf.py:528 msgid "Create account successfully" msgstr "創建帳號成功" -#: jumpserver/conf.py:523 +#: jumpserver/conf.py:530 msgid "Your account has been created successfully" msgstr "你的帳號已創建成功" @@ -4665,7 +4669,7 @@ msgid "" " work orders, and other notifications" 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" msgstr "無可用帳號" @@ -4689,34 +4693,34 @@ msgstr "任務 {} 不存在" msgid "Task {} args or kwargs error" msgstr "任務 {} 執行參數錯誤" -#: ops/api/job.py:83 +#: ops/api/job.py:68 #, python-brace-format msgid "" "Asset ({asset}) must have at least one of the following protocols added: " "SSH, SFTP, or WinRM" msgstr "资产({asset})至少要添加ssh,sftp,winrm其中一种协议" -#: ops/api/job.py:84 +#: ops/api/job.py:69 #, python-brace-format msgid "Asset ({asset}) authorization is missing SSH, SFTP, or WinRM protocol" msgstr "资产({asset})授权缺少ssh,sftp或winrm协议" -#: ops/api/job.py:85 +#: ops/api/job.py:70 #, python-brace-format msgid "Asset ({asset}) authorization lacks upload permissions" msgstr "资产({asset})授权缺少上传权限" -#: ops/api/job.py:170 +#: ops/api/job.py:157 msgid "Duplicate file exists" msgstr "存在同名文件" -#: ops/api/job.py:175 +#: ops/api/job.py:162 #, python-brace-format msgid "" "File size exceeds maximum limit. Please select a file smaller than {limit}MB" msgstr "檔案大小超過最大限制。請選擇小於 {limit}MB 的文件。" -#: ops/api/job.py:244 +#: ops/api/job.py:231 msgid "" "The task is being created and cannot be interrupted. Please try again later." msgstr "正在創建任務,無法中斷,請稍後重試。" @@ -4785,11 +4789,13 @@ msgstr "空白" msgid "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" 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" msgstr "Playbook" @@ -4901,16 +4907,16 @@ msgstr "需要週期或定期設定" msgid "Pattern" msgstr "模式" -#: ops/models/adhoc.py:22 ops/models/job.py:146 +#: ops/models/adhoc.py:22 ops/models/job.py:149 msgid "Module" 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 msgid "Args" 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/serializers/role.py:12 settings/serializers/auth/oauth2.py:37 msgid "Scope" @@ -4926,16 +4932,16 @@ msgstr "帳號策略" msgid "Last execution" 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" 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 msgid "Result" 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 msgid "Summary" msgstr "匯總" @@ -4964,52 +4970,52 @@ msgstr "發布日期" msgid "Celery Task Execution" msgstr "Celery 任務執行" -#: ops/models/job.py:147 +#: ops/models/job.py:150 msgid "Run dir" msgstr "執行目錄" -#: ops/models/job.py:148 +#: ops/models/job.py:151 msgid "Timeout (Seconds)" msgstr "超時時間 (秒)" -#: ops/models/job.py:153 +#: ops/models/job.py:157 msgid "Use Parameter Define" msgstr "使用參數定義" -#: ops/models/job.py:154 +#: ops/models/job.py:158 msgid "Parameters define" msgstr "參數定義" #: ops/models/job.py:155 msgid "Run as" -msgstr "運行賬號" +msgstr "執行使用者" -#: ops/models/job.py:157 +#: ops/models/job.py:162 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 msgid "Job" msgstr "作業" -#: ops/models/job.py:245 +#: ops/models/job.py:250 msgid "Material" msgstr "Material" -#: ops/models/job.py:247 +#: ops/models/job.py:252 msgid "Material Type" msgstr "Material 類型" -#: ops/models/job.py:558 +#: ops/models/job.py:564 msgid "Job Execution" msgstr "作業執行" -#: ops/models/playbook.py:35 +#: ops/models/playbook.py:33 msgid "CreateMethod" msgstr "創建方式" -#: ops/models/playbook.py:37 +#: ops/models/playbook.py:35 msgid "VCS URL" msgstr "VCS URL" @@ -5049,27 +5055,27 @@ msgstr "週期性Action" msgid "Next execution time" msgstr "下次Action時間" -#: ops/serializers/job.py:15 +#: ops/serializers/job.py:17 msgid "Execute after saving" msgstr "儲存後Action" -#: ops/serializers/job.py:52 terminal/serializers/session.py:49 +#: ops/serializers/job.py:58 terminal/serializers/session.py:49 msgid "Duration" msgstr "時長" -#: ops/serializers/job.py:72 +#: ops/serializers/job.py:78 msgid "Job type" msgstr "任務類型" -#: ops/serializers/job.py:75 terminal/serializers/session.py:58 +#: ops/serializers/job.py:81 terminal/serializers/session.py:58 msgid "Is finished" msgstr "是否完成" -#: ops/serializers/job.py:89 +#: ops/serializers/job.py:95 msgid "Task id" msgstr "任務 ID" -#: ops/serializers/job.py:98 +#: ops/serializers/job.py:104 msgid "You do not have permission for the current job." msgstr "你沒有當前作業的權限。" @@ -5077,33 +5083,33 @@ msgstr "你沒有當前作業的權限。" msgid "Run ansible task" msgstr "運行 Ansible 任務" -#: ops/tasks.py:54 +#: ops/tasks.py:56 msgid "" "Execute scheduled adhoc and playbooks, periodically invoking the task for " "execution" msgstr "當執行定時的快捷命令,playbook,定時呼叫該任務執行" -#: ops/tasks.py:82 +#: ops/tasks.py:88 msgid "Run ansible task execution" msgstr "開始執行 Ansible 任務" -#: ops/tasks.py:85 +#: ops/tasks.py:91 msgid "Execute the task when manually adhoc or playbooks" msgstr "手動執行快捷命令,playbook時執行該任務" -#: ops/tasks.py:99 +#: ops/tasks.py:107 msgid "Clear celery periodic tasks" msgstr "清理週期任務" -#: ops/tasks.py:101 +#: ops/tasks.py:109 msgid "At system startup, clean up celery tasks that no longer exist" msgstr "系統啟動時,清理已經不存在的celery任務" -#: ops/tasks.py:125 +#: ops/tasks.py:133 msgid "Create or update periodic tasks" msgstr "創建或更新週期任務" -#: ops/tasks.py:127 +#: ops/tasks.py:135 msgid "" "With version iterations, new tasks may be added, or task names and execution " "times may \n" @@ -5114,11 +5120,11 @@ msgstr "" "隨著版本迭代,可能會新增任務或者修改任務的名稱,執行時間,所以在系統啟動" "時,,將會註冊任務或者更新定時任務參數" -#: ops/tasks.py:140 +#: ops/tasks.py:148 msgid "Periodic check service performance" msgstr "週期檢測服務性能" -#: ops/tasks.py:142 +#: ops/tasks.py:150 msgid "" "Check every hour whether each component is offline and whether the CPU, " "memory, \n" @@ -5128,11 +5134,11 @@ msgstr "" "每小時檢測各組件是否離線,cpu,內存,硬盤使用率是否超過閾值,向管理員發送訊息" "預警" -#: ops/tasks.py:152 +#: ops/tasks.py:160 msgid "Clean up unexpected jobs" msgstr "清理異常作業" -#: ops/tasks.py:154 +#: ops/tasks.py:162 msgid "" "Due to exceptions caused by executing adhoc and playbooks in the Job " "Center, \n" @@ -5145,11 +5151,11 @@ msgstr "" "由於作業中心執行快捷命令,playbook會產生異常,任務狀態未更新完成,系統將每小" "時執行清理超3小時未完成的異常作業,並將任務標記失敗" -#: ops/tasks.py:167 +#: ops/tasks.py:175 msgid "Clean job_execution db record" msgstr "清理作業中心執行歷史" -#: ops/tasks.py:169 +#: ops/tasks.py:177 msgid "" "Due to the execution of adhoc and playbooks in the Job Center, execution " "records will \n" @@ -5368,7 +5374,7 @@ msgid "today" msgstr "今天" #: perms/notifications.py:12 perms/notifications.py:44 -#: settings/serializers/feature.py:114 +#: settings/serializers/feature.py:137 msgid "day" msgstr "天" @@ -5623,7 +5629,7 @@ msgstr "帳號改密" msgid "App ops" msgstr "作業中心" -#: rbac/tree.py:57 settings/serializers/feature.py:120 +#: rbac/tree.py:57 settings/serializers/feature.py:143 msgid "Feature" msgstr "功能" @@ -5658,8 +5664,8 @@ msgstr "組織管理" msgid "Ticket comment" msgstr "工單評論" -#: rbac/tree.py:159 settings/serializers/feature.py:101 -#: settings/serializers/feature.py:103 tickets/models/ticket/general.py:308 +#: rbac/tree.py:159 settings/serializers/feature.py:124 +#: settings/serializers/feature.py:126 tickets/models/ticket/general.py:308 msgid "Ticket" msgstr "工單管理" @@ -5677,7 +5683,7 @@ msgstr "聊天 AI 沒有開啟" #: 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/vault.py:40 settings/api/wecom.py:37 +#: settings/api/vault.py:48 settings/api/wecom.py:37 msgid "Test success" msgstr "測試成功" @@ -6070,12 +6076,13 @@ msgstr "圖示" msgid "Service provider" 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 msgid "Client ID" msgstr "用戶端 ID" #: 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 msgid "Client Secret" msgstr "用戶端金鑰" @@ -6497,38 +6504,40 @@ msgstr "" msgid "Change secret and push record retention days (day)" msgstr "改密推送記錄保留天數 (天)" -#: settings/serializers/feature.py:19 settings/serializers/msg.py:68 +#: settings/serializers/feature.py:20 settings/serializers/msg.py:68 msgid "Subject" msgstr "主題" -#: settings/serializers/feature.py:23 +#: settings/serializers/feature.py:24 msgid "More Link" msgstr "更多資訊 URL" -#: settings/serializers/feature.py:26 +#: settings/serializers/feature.py:27 #: settings/templates/ldap/_msg_import_ldap_user.html:6 #: terminal/models/session/session.py:46 msgid "Date end" msgstr "結束日期" -#: settings/serializers/feature.py:39 settings/serializers/feature.py:41 -#: settings/serializers/feature.py:42 +#: settings/serializers/feature.py:40 settings/serializers/feature.py:42 +#: settings/serializers/feature.py:43 msgid "Announcement" msgstr "公告" -#: settings/serializers/feature.py:49 +#: settings/serializers/feature.py:47 settings/serializers/feature.py:50 msgid "Vault" msgstr "啟用 Vault" -#: settings/serializers/feature.py:58 -msgid "Mount Point" -msgstr "掛載點" +#: settings/serializers/feature.py:53 +#, fuzzy +#| msgid "Provider" +msgid "Vault provider" +msgstr "雲服務商" -#: settings/serializers/feature.py:64 +#: settings/serializers/feature.py:58 msgid "Record limit" msgstr "紀錄限制" -#: settings/serializers/feature.py:66 +#: settings/serializers/feature.py:60 msgid "" "If the specific value is less than 999 (default), the system will " "automatically perform a task every night: check and delete historical " @@ -6538,74 +6547,83 @@ 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" msgstr "聊天 AI" -#: settings/serializers/feature.py:85 +#: settings/serializers/feature.py:108 msgid "GPT Base URL" 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" 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" msgstr "API Key" -#: settings/serializers/feature.py:93 +#: settings/serializers/feature.py:116 msgid "" "The proxy server address of the GPT service. For example: http://ip:port" msgstr "GPT 服務的代理伺服器地址。例如:http://ip:port" -#: settings/serializers/feature.py:96 +#: settings/serializers/feature.py:119 msgid "GPT Model" msgstr "GPT 模型" -#: settings/serializers/feature.py:105 +#: settings/serializers/feature.py:128 msgid "Approval without login" msgstr "免登入審核" -#: settings/serializers/feature.py:106 +#: settings/serializers/feature.py:129 msgid "Allow direct approval ticket without login" msgstr "允許無需登入直接批准工單" -#: settings/serializers/feature.py:110 +#: settings/serializers/feature.py:133 msgid "Period" msgstr "時段" -#: settings/serializers/feature.py:111 +#: settings/serializers/feature.py:134 msgid "" "The default authorization time period when applying for assets via a ticket" msgstr "工單申請資產的預設授權時間段" -#: settings/serializers/feature.py:114 +#: settings/serializers/feature.py:137 msgid "hour" msgstr "時" -#: settings/serializers/feature.py:115 +#: settings/serializers/feature.py:138 msgid "Unit" msgstr "單位" -#: settings/serializers/feature.py:115 +#: settings/serializers/feature.py:138 msgid "The unit of period" msgstr "執行週期" -#: settings/serializers/feature.py:124 +#: settings/serializers/feature.py:147 msgid "" "Allow users to execute batch commands in the Workbench - Job Center - Adhoc" msgstr "允許使用者在工作台 - 作業中心 - Adhoc 中執行批量指令" -#: settings/serializers/feature.py:128 +#: settings/serializers/feature.py:151 msgid "Command blacklist" msgstr "作業中心命令黑名單" -#: settings/serializers/feature.py:129 +#: settings/serializers/feature.py:152 msgid "Command blacklist in Adhoc" msgstr "作業中心指令黑名單" -#: settings/serializers/feature.py:134 +#: settings/serializers/feature.py:157 #: terminal/models/virtualapp/provider.py:17 #: terminal/models/virtualapp/virtualapp.py:36 #: terminal/models/virtualapp/virtualapp.py:97 @@ -6613,11 +6631,11 @@ msgstr "作業中心指令黑名單" msgid "Virtual app" msgstr "虛擬應用" -#: settings/serializers/feature.py:137 +#: settings/serializers/feature.py:160 msgid "Virtual App" msgstr "虛擬應用" -#: settings/serializers/feature.py:139 +#: settings/serializers/feature.py:162 msgid "" "Virtual applications, you can use the Linux operating system as an " "application server in remote applications." @@ -7533,6 +7551,18 @@ msgstr "遠程桌面用戶端" msgid "RDP Guide" 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 msgid "Warning" msgstr "告警" @@ -7557,7 +7587,7 @@ msgstr "嚴重" msgid "High" msgstr "較高" -#: terminal/const.py:47 terminal/const.py:84 +#: terminal/const.py:47 terminal/const.py:86 #: users/templates/users/reset_password.html:54 msgid "Normal" msgstr "正常" @@ -7566,47 +7596,47 @@ msgstr "正常" msgid "Offline" msgstr "離線" -#: terminal/const.py:80 +#: terminal/const.py:82 msgid "Mismatch" msgstr "未匹配" -#: terminal/const.py:85 +#: terminal/const.py:87 msgid "Tunnel" msgstr "隧道" -#: terminal/const.py:91 +#: terminal/const.py:93 msgid "Read only" msgstr "只讀" -#: terminal/const.py:92 +#: terminal/const.py:94 msgid "Writable" msgstr "讀寫" -#: terminal/const.py:96 +#: terminal/const.py:98 msgid "Kill session" msgstr "終斷會話" -#: terminal/const.py:97 +#: terminal/const.py:99 msgid "Lock session" msgstr "鎖定會話" -#: terminal/const.py:98 +#: terminal/const.py:100 msgid "Unlock session" msgstr "解鎖會話" -#: terminal/const.py:103 +#: terminal/const.py:105 msgid "Replay create failed" msgstr "錄影創建失敗" -#: terminal/const.py:104 +#: terminal/const.py:106 msgid "Replay upload failed" msgstr "錄影上傳失敗" -#: terminal/const.py:105 +#: terminal/const.py:107 msgid "Replay convert failed" msgstr "錄影轉檔失敗" -#: terminal/const.py:106 +#: terminal/const.py:108 msgid "Replay unsupported" msgstr "不支持錄影" @@ -7747,15 +7777,21 @@ msgstr "Redis 埠" msgid "SQLServer port" msgstr "SQLServer 埠" -#: terminal/models/component/endpoint.py:32 -#: terminal/models/component/endpoint.py:119 +#: terminal/models/component/endpoint.py:25 +#, 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/storage.py:53 terminal/serializers/storage.py:83 #: terminal/serializers/storage.py:93 terminal/serializers/storage.py:101 msgid "Endpoint" msgstr "端點" -#: terminal/models/component/endpoint.py:125 +#: terminal/models/component/endpoint.py:126 msgid "Endpoint rule" msgstr "端點規則" @@ -9609,6 +9645,16 @@ msgstr "帳號保護已開啟,請根據提示完成以下操作" msgid "Open MFA Authenticator and enter the 6-bit dynamic code" 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 msgid "Already bound" msgstr "已經綁定" @@ -10314,10 +10360,6 @@ msgstr "服務商顯示" msgid "Access key id" 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 msgid "Subscription ID" msgstr "訂閱 ID" diff --git a/apps/jumpserver/conf.py b/apps/jumpserver/conf.py index 2ad01de08..d711f4bba 100644 --- a/apps/jumpserver/conf.py +++ b/apps/jumpserver/conf.py @@ -258,10 +258,17 @@ class Config(dict): # Vault 'VAULT_ENABLED': False, + 'VAULT_BACKEND': 'local', + 'VAULT_HCP_HOST': '', 'VAULT_HCP_TOKEN': '', '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, # Cache login password diff --git a/apps/jumpserver/settings/auth.py b/apps/jumpserver/settings/auth.py index 2385962b1..7e0fe9094 100644 --- a/apps/jumpserver/settings/auth.py +++ b/apps/jumpserver/settings/auth.py @@ -235,10 +235,17 @@ AUTH_TEMP_TOKEN = CONFIG.AUTH_TEMP_TOKEN # Vault VAULT_ENABLED = CONFIG.VAULT_ENABLED +VAULT_BACKEND = CONFIG.VAULT_BACKEND + VAULT_HCP_HOST = CONFIG.VAULT_HCP_HOST VAULT_HCP_TOKEN = CONFIG.VAULT_HCP_TOKEN 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 # Other setting diff --git a/apps/settings/api/settings.py b/apps/settings/api/settings.py index dfd5653d7..3d35e3432 100644 --- a/apps/settings/api/settings.py +++ b/apps/settings/api/settings.py @@ -61,6 +61,8 @@ class SettingsApi(generics.RetrieveUpdateAPIView): 'cmpp2': serializers.CMPP2SMSSettingSerializer, 'custom': serializers.CustomSMSSettingSerializer, 'vault': serializers.VaultSettingSerializer, + 'azure_kv': serializers.AzureKVSerializer, + 'hcp': serializers.HashicorpKVSerializer, 'chat': serializers.ChatAISettingSerializer, 'announcement': serializers.AnnouncementSettingSerializer, 'ticket': serializers.TicketSettingSerializer, diff --git a/apps/settings/api/vault.py b/apps/settings/api/vault.py index a17eeca5c..82df54b18 100644 --- a/apps/settings/api/vault.py +++ b/apps/settings/api/vault.py @@ -6,18 +6,25 @@ from rest_framework.views import Response, APIView from accounts.backends import get_vault_client from accounts.tasks.vault import sync_secret_to_vault +from common.exceptions import JMSException from settings.models import Setting from .. import serializers class VaultTestingAPI(GenericAPIView): - serializer_class = serializers.VaultSettingSerializer + backends_serializer = { + 'azure': serializers.AzureKVSerializer, + 'hcp': serializers.HashicorpKVSerializer + } rbac_perms = { 'POST': 'settings.change_vault' } - def get_config(self, request): - serializer = self.serializer_class(data=request.data) + def get_config(self, request, backend): + 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) data = serializer.validated_data for k, v in data.items(): @@ -27,9 +34,10 @@ class VaultTestingAPI(GenericAPIView): data[k] = getattr(settings, k, None) return data - def post(self, request): - config = self.get_config(request) + def post(self, request, backend): + config = self.get_config(request, backend) config['VAULT_ENABLED'] = settings.VAULT_ENABLED + config['VAULT_BACKEND'] = backend try: client = get_vault_client(raise_exception=True, **config) ok, error = client.is_active() @@ -58,4 +66,3 @@ class VaultSyncDataAPI(APIView): def _run_task(): task = sync_secret_to_vault.delay() return task - diff --git a/apps/settings/serializers/feature.py b/apps/settings/serializers/feature.py index 3deb49942..47d515ad2 100644 --- a/apps/settings/serializers/feature.py +++ b/apps/settings/serializers/feature.py @@ -3,13 +3,14 @@ from django.utils import timezone from django.utils.translation import gettext_lazy as _ from rest_framework import serializers +from accounts.const import VaultTypeChoices from assets.const import Protocol from common.serializers.fields import EncryptedField from common.utils import date_expired_default __all__ = [ - 'AnnouncementSettingSerializer', 'OpsSettingSerializer', - 'VaultSettingSerializer', 'TicketSettingSerializer', + 'AnnouncementSettingSerializer', 'OpsSettingSerializer', 'VaultSettingSerializer', + 'HashicorpKVSerializer', 'AzureKVSerializer', 'TicketSettingSerializer', 'ChatAISettingSerializer', 'VirtualAppSerializer', ] @@ -43,20 +44,13 @@ class AnnouncementSettingSerializer(serializers.Serializer): class VaultSettingSerializer(serializers.Serializer): - PREFIX_TITLE = _('HCP Vault') + PREFIX_TITLE = _('Vault') VAULT_ENABLED = serializers.BooleanField( required=False, label=_('Vault'), read_only=True ) - 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'), - default='jumpserver' + VAULT_BACKEND = serializers.ChoiceField( + choices=VaultTypeChoices.choices, default=VaultTypeChoices.local, label=_('Vault provider') ) 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): PREFIX_TITLE = _('Chat AI') API_MODEL = Protocol.gpt_protocols()[Protocol.chatgpt]['setting']['api_mode'] diff --git a/apps/settings/urls/api_urls.py b/apps/settings/urls/api_urls.py index a28906397..29e3c73e4 100644 --- a/apps/settings/urls/api_urls.py +++ b/apps/settings/urls/api_urls.py @@ -19,7 +19,7 @@ urlpatterns = [ path('slack/testing/', api.SlackTestingAPI.as_view(), name='slack-testing'), path('sms//testing/', api.SMSTestingAPI.as_view(), name='sms-testing'), path('sms/backend/', api.SMSBackendAPI.as_view(), name='sms-backend'), - path('vault/testing/', api.VaultTestingAPI.as_view(), name='vault-testing'), + path('vault//testing/', api.VaultTestingAPI.as_view(), name='vault-testing'), path('chatai/testing/', api.ChatAITestingAPI.as_view(), name='chatai-testing'), path('vault/sync/', api.VaultSyncDataAPI.as_view(), name='vault-sync'), path('security/block-ip/', api.BlockIPSecurityAPI.as_view(), name='block-ip'), diff --git a/poetry.lock b/poetry.lock index 038b40933..a26c19da0 100644 --- a/poetry.lock +++ b/poetry.lock @@ -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]] name = "adal" @@ -475,13 +475,13 @@ files = [ [[package]] name = "async-timeout" -version = "4.0.3" +version = "5.0.0" description = "Timeout context manager for asyncio programs" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "async-timeout-4.0.3.tar.gz", hash = "sha256:4640d96be84d82d02ed59ea2b7105a0f7b33abe8703703cd0ab0bf87c427522f"}, - {file = "async_timeout-4.0.3-py3-none-any.whl", hash = "sha256:7405140ff1230c310e51dc27b3145b9092d659ce68ff733fb0cefe3ee42be028"}, + {file = "async_timeout-5.0.0-py3-none-any.whl", hash = "sha256:904719a4bd6e0520047d0ddae220aabee67b877f7ca17bf8cea20f67f6247ae0"}, + {file = "async_timeout-5.0.0.tar.gz", hash = "sha256:49675ec889daacfe65ff66d2dde7dd1447a6f4b2f23721022e4ba121f8772a85"}, ] [[package]] @@ -559,13 +559,13 @@ files = [ [[package]] name = "azure-core" -version = "1.31.0" +version = "1.32.0" description = "Microsoft Azure Core Library for Python" optional = false python-versions = ">=3.8" files = [ - {file = "azure_core-1.31.0-py3-none-any.whl", hash = "sha256:22954de3777e0250029360ef31d80448ef1be13b80a459bff80ba7073379e2cd"}, - {file = "azure_core-1.31.0.tar.gz", hash = "sha256:656a0dd61e1869b1506b7c6a3b31d62f15984b1a573d6326f6aa2f3e4123284b"}, + {file = "azure_core-1.32.0-py3-none-any.whl", hash = "sha256:eac191a0efb23bfa83fddf321b27b122b4ec847befa3091fa736a5c32c50d7b4"}, + {file = "azure_core-1.32.0.tar.gz", hash = "sha256:22b3c35d6b2dae14990f6c1be2912bf23ffe50b220e708a28ab1bb92b1c730e5"}, ] [package.dependencies] @@ -594,6 +594,22 @@ msal = ">=1.20.0,<2.0.0" msal-extensions = ">=0.3.0,<2.0.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]] name = "azure-mgmt-compute" version = "30.0.0" @@ -612,17 +628,17 @@ isodate = ">=0.6.1,<1.0.0" [[package]] name = "azure-mgmt-core" -version = "1.4.0" +version = "1.5.0" description = "Microsoft Azure Management Core Library for Python" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "azure-mgmt-core-1.4.0.zip", hash = "sha256:d195208340094f98e5a6661b781cde6f6a051e79ce317caabd8ff97030a9b3ae"}, - {file = "azure_mgmt_core-1.4.0-py3-none-any.whl", hash = "sha256:81071675f186a585555ef01816f2774d49c1c9024cb76e5720c3c0f6b337bb7d"}, + {file = "azure_mgmt_core-1.5.0-py3-none-any.whl", hash = "sha256:18aaa5a723ee8ae05bf1bfc9f6d0ffb996631c7ea3c922cc86f522973ce07b5f"}, + {file = "azure_mgmt_core-1.5.0.tar.gz", hash = "sha256:380ae3dfa3639f4a5c246a7db7ed2d08374e88230fd0da3eb899f7c11e5c441a"}, ] [package.dependencies] -azure-core = ">=1.26.2,<2.0.0" +azure-core = ">=1.31.0" [[package]] name = "azure-mgmt-network" @@ -2377,70 +2393,70 @@ test = ["objgraph", "psutil"] [[package]] name = "grpcio" -version = "1.67.0" +version = "1.67.1" description = "HTTP/2-based RPC framework" optional = false python-versions = ">=3.8" files = [ - {file = "grpcio-1.67.0-cp310-cp310-linux_armv7l.whl", hash = "sha256:bd79929b3bb96b54df1296cd3bf4d2b770bd1df6c2bdf549b49bab286b925cdc"}, - {file = "grpcio-1.67.0-cp310-cp310-macosx_12_0_universal2.whl", hash = "sha256:16724ffc956ea42967f5758c2f043faef43cb7e48a51948ab593570570d1e68b"}, - {file = "grpcio-1.67.0-cp310-cp310-manylinux_2_17_aarch64.whl", hash = "sha256:2b7183c80b602b0ad816315d66f2fb7887614ead950416d60913a9a71c12560d"}, - {file = "grpcio-1.67.0-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:efe32b45dd6d118f5ea2e5deaed417d8a14976325c93812dd831908522b402c9"}, - {file = "grpcio-1.67.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fe89295219b9c9e47780a0f1c75ca44211e706d1c598242249fe717af3385ec8"}, - {file = "grpcio-1.67.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:aa8d025fae1595a207b4e47c2e087cb88d47008494db258ac561c00877d4c8f8"}, - {file = "grpcio-1.67.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:f95e15db43e75a534420e04822df91f645664bf4ad21dfaad7d51773c80e6bb4"}, - {file = "grpcio-1.67.0-cp310-cp310-win32.whl", hash = "sha256:a6b9a5c18863fd4b6624a42e2712103fb0f57799a3b29651c0e5b8119a519d65"}, - {file = "grpcio-1.67.0-cp310-cp310-win_amd64.whl", hash = "sha256:b6eb68493a05d38b426604e1dc93bfc0137c4157f7ab4fac5771fd9a104bbaa6"}, - {file = "grpcio-1.67.0-cp311-cp311-linux_armv7l.whl", hash = "sha256:e91d154689639932305b6ea6f45c6e46bb51ecc8ea77c10ef25aa77f75443ad4"}, - {file = "grpcio-1.67.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:cb204a742997277da678611a809a8409657b1398aaeebf73b3d9563b7d154c13"}, - {file = "grpcio-1.67.0-cp311-cp311-manylinux_2_17_aarch64.whl", hash = "sha256:ae6de510f670137e755eb2a74b04d1041e7210af2444103c8c95f193340d17ee"}, - {file = "grpcio-1.67.0-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:74b900566bdf68241118f2918d312d3bf554b2ce0b12b90178091ea7d0a17b3d"}, - {file = "grpcio-1.67.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a4e95e43447a02aa603abcc6b5e727d093d161a869c83b073f50b9390ecf0fa8"}, - {file = "grpcio-1.67.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:0bb94e66cd8f0baf29bd3184b6aa09aeb1a660f9ec3d85da615c5003154bc2bf"}, - {file = "grpcio-1.67.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:82e5bd4b67b17c8c597273663794a6a46a45e44165b960517fe6d8a2f7f16d23"}, - {file = "grpcio-1.67.0-cp311-cp311-win32.whl", hash = "sha256:7fc1d2b9fd549264ae585026b266ac2db53735510a207381be509c315b4af4e8"}, - {file = "grpcio-1.67.0-cp311-cp311-win_amd64.whl", hash = "sha256:ac11ecb34a86b831239cc38245403a8de25037b448464f95c3315819e7519772"}, - {file = "grpcio-1.67.0-cp312-cp312-linux_armv7l.whl", hash = "sha256:227316b5631260e0bef8a3ce04fa7db4cc81756fea1258b007950b6efc90c05d"}, - {file = "grpcio-1.67.0-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:d90cfdafcf4b45a7a076e3e2a58e7bc3d59c698c4f6470b0bb13a4d869cf2273"}, - {file = "grpcio-1.67.0-cp312-cp312-manylinux_2_17_aarch64.whl", hash = "sha256:77196216d5dd6f99af1c51e235af2dd339159f657280e65ce7e12c1a8feffd1d"}, - {file = "grpcio-1.67.0-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:15c05a26a0f7047f720da41dc49406b395c1470eef44ff7e2c506a47ac2c0591"}, - {file = "grpcio-1.67.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3840994689cc8cbb73d60485c594424ad8adb56c71a30d8948d6453083624b52"}, - {file = "grpcio-1.67.0-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:5a1e03c3102b6451028d5dc9f8591131d6ab3c8a0e023d94c28cb930ed4b5f81"}, - {file = "grpcio-1.67.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:682968427a63d898759474e3b3178d42546e878fdce034fd7474ef75143b64e3"}, - {file = "grpcio-1.67.0-cp312-cp312-win32.whl", hash = "sha256:d01793653248f49cf47e5695e0a79805b1d9d4eacef85b310118ba1dfcd1b955"}, - {file = "grpcio-1.67.0-cp312-cp312-win_amd64.whl", hash = "sha256:985b2686f786f3e20326c4367eebdaed3e7aa65848260ff0c6644f817042cb15"}, - {file = "grpcio-1.67.0-cp313-cp313-linux_armv7l.whl", hash = "sha256:8c9a35b8bc50db35ab8e3e02a4f2a35cfba46c8705c3911c34ce343bd777813a"}, - {file = "grpcio-1.67.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:42199e704095b62688998c2d84c89e59a26a7d5d32eed86d43dc90e7a3bd04aa"}, - {file = "grpcio-1.67.0-cp313-cp313-manylinux_2_17_aarch64.whl", hash = "sha256:c4c425f440fb81f8d0237c07b9322fc0fb6ee2b29fbef5f62a322ff8fcce240d"}, - {file = "grpcio-1.67.0-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:323741b6699cd2b04a71cb38f502db98f90532e8a40cb675393d248126a268af"}, - {file = "grpcio-1.67.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:662c8e105c5e5cee0317d500eb186ed7a93229586e431c1bf0c9236c2407352c"}, - {file = "grpcio-1.67.0-cp313-cp313-musllinux_1_1_i686.whl", hash = "sha256:f6bd2ab135c64a4d1e9e44679a616c9bc944547357c830fafea5c3caa3de5153"}, - {file = "grpcio-1.67.0-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:2f55c1e0e2ae9bdd23b3c63459ee4c06d223b68aeb1961d83c48fb63dc29bc03"}, - {file = "grpcio-1.67.0-cp313-cp313-win32.whl", hash = "sha256:fd6bc27861e460fe28e94226e3673d46e294ca4673d46b224428d197c5935e69"}, - {file = "grpcio-1.67.0-cp313-cp313-win_amd64.whl", hash = "sha256:cf51d28063338608cd8d3cd64677e922134837902b70ce00dad7f116e3998210"}, - {file = "grpcio-1.67.0-cp38-cp38-linux_armv7l.whl", hash = "sha256:7f200aca719c1c5dc72ab68be3479b9dafccdf03df530d137632c534bb6f1ee3"}, - {file = "grpcio-1.67.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:0892dd200ece4822d72dd0952f7112c542a487fc48fe77568deaaa399c1e717d"}, - {file = "grpcio-1.67.0-cp38-cp38-manylinux_2_17_aarch64.whl", hash = "sha256:f4d613fbf868b2e2444f490d18af472ccb47660ea3df52f068c9c8801e1f3e85"}, - {file = "grpcio-1.67.0-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0c69bf11894cad9da00047f46584d5758d6ebc9b5950c0dc96fec7e0bce5cde9"}, - {file = "grpcio-1.67.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b9bca3ca0c5e74dea44bf57d27e15a3a3996ce7e5780d61b7c72386356d231db"}, - {file = "grpcio-1.67.0-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:014dfc020e28a0d9be7e93a91f85ff9f4a87158b7df9952fe23cc42d29d31e1e"}, - {file = "grpcio-1.67.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:d4ea4509d42c6797539e9ec7496c15473177ce9abc89bc5c71e7abe50fc25737"}, - {file = "grpcio-1.67.0-cp38-cp38-win32.whl", hash = "sha256:9d75641a2fca9ae1ae86454fd25d4c298ea8cc195dbc962852234d54a07060ad"}, - {file = "grpcio-1.67.0-cp38-cp38-win_amd64.whl", hash = "sha256:cff8e54d6a463883cda2fab94d2062aad2f5edd7f06ae3ed030f2a74756db365"}, - {file = "grpcio-1.67.0-cp39-cp39-linux_armv7l.whl", hash = "sha256:62492bd534979e6d7127b8a6b29093161a742dee3875873e01964049d5250a74"}, - {file = "grpcio-1.67.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:eef1dce9d1a46119fd09f9a992cf6ab9d9178b696382439446ca5f399d7b96fe"}, - {file = "grpcio-1.67.0-cp39-cp39-manylinux_2_17_aarch64.whl", hash = "sha256:f623c57a5321461c84498a99dddf9d13dac0e40ee056d884d6ec4ebcab647a78"}, - {file = "grpcio-1.67.0-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:54d16383044e681f8beb50f905249e4e7261dd169d4aaf6e52eab67b01cbbbe2"}, - {file = "grpcio-1.67.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b2a44e572fb762c668e4812156b81835f7aba8a721b027e2d4bb29fb50ff4d33"}, - {file = "grpcio-1.67.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:391df8b0faac84d42f5b8dfc65f5152c48ed914e13c522fd05f2aca211f8bfad"}, - {file = "grpcio-1.67.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:cfd9306511fdfc623a1ba1dc3bc07fbd24e6cfbe3c28b4d1e05177baa2f99617"}, - {file = "grpcio-1.67.0-cp39-cp39-win32.whl", hash = "sha256:30d47dbacfd20cbd0c8be9bfa52fdb833b395d4ec32fe5cff7220afc05d08571"}, - {file = "grpcio-1.67.0-cp39-cp39-win_amd64.whl", hash = "sha256:f55f077685f61f0fbd06ea355142b71e47e4a26d2d678b3ba27248abfe67163a"}, - {file = "grpcio-1.67.0.tar.gz", hash = "sha256:e090b2553e0da1c875449c8e75073dd4415dd71c9bde6a406240fdf4c0ee467c"}, + {file = "grpcio-1.67.1-cp310-cp310-linux_armv7l.whl", hash = "sha256:8b0341d66a57f8a3119b77ab32207072be60c9bf79760fa609c5609f2deb1f3f"}, + {file = "grpcio-1.67.1-cp310-cp310-macosx_12_0_universal2.whl", hash = "sha256:f5a27dddefe0e2357d3e617b9079b4bfdc91341a91565111a21ed6ebbc51b22d"}, + {file = "grpcio-1.67.1-cp310-cp310-manylinux_2_17_aarch64.whl", hash = "sha256:43112046864317498a33bdc4797ae6a268c36345a910de9b9c17159d8346602f"}, + {file = "grpcio-1.67.1-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c9b929f13677b10f63124c1a410994a401cdd85214ad83ab67cc077fc7e480f0"}, + {file = "grpcio-1.67.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e7d1797a8a3845437d327145959a2c0c47c05947c9eef5ff1a4c80e499dcc6fa"}, + {file = "grpcio-1.67.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:0489063974d1452436139501bf6b180f63d4977223ee87488fe36858c5725292"}, + {file = "grpcio-1.67.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:9fd042de4a82e3e7aca44008ee2fb5da01b3e5adb316348c21980f7f58adc311"}, + {file = "grpcio-1.67.1-cp310-cp310-win32.whl", hash = "sha256:638354e698fd0c6c76b04540a850bf1db27b4d2515a19fcd5cf645c48d3eb1ed"}, + {file = "grpcio-1.67.1-cp310-cp310-win_amd64.whl", hash = "sha256:608d87d1bdabf9e2868b12338cd38a79969eaf920c89d698ead08f48de9c0f9e"}, + {file = "grpcio-1.67.1-cp311-cp311-linux_armv7l.whl", hash = "sha256:7818c0454027ae3384235a65210bbf5464bd715450e30a3d40385453a85a70cb"}, + {file = "grpcio-1.67.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:ea33986b70f83844cd00814cee4451055cd8cab36f00ac64a31f5bb09b31919e"}, + {file = "grpcio-1.67.1-cp311-cp311-manylinux_2_17_aarch64.whl", hash = "sha256:c7a01337407dd89005527623a4a72c5c8e2894d22bead0895306b23c6695698f"}, + {file = "grpcio-1.67.1-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:80b866f73224b0634f4312a4674c1be21b2b4afa73cb20953cbbb73a6b36c3cc"}, + {file = "grpcio-1.67.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f9fff78ba10d4250bfc07a01bd6254a6d87dc67f9627adece85c0b2ed754fa96"}, + {file = "grpcio-1.67.1-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:8a23cbcc5bb11ea7dc6163078be36c065db68d915c24f5faa4f872c573bb400f"}, + {file = "grpcio-1.67.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:1a65b503d008f066e994f34f456e0647e5ceb34cfcec5ad180b1b44020ad4970"}, + {file = "grpcio-1.67.1-cp311-cp311-win32.whl", hash = "sha256:e29ca27bec8e163dca0c98084040edec3bc49afd10f18b412f483cc68c712744"}, + {file = "grpcio-1.67.1-cp311-cp311-win_amd64.whl", hash = "sha256:786a5b18544622bfb1e25cc08402bd44ea83edfb04b93798d85dca4d1a0b5be5"}, + {file = "grpcio-1.67.1-cp312-cp312-linux_armv7l.whl", hash = "sha256:267d1745894200e4c604958da5f856da6293f063327cb049a51fe67348e4f953"}, + {file = "grpcio-1.67.1-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:85f69fdc1d28ce7cff8de3f9c67db2b0ca9ba4449644488c1e0303c146135ddb"}, + {file = "grpcio-1.67.1-cp312-cp312-manylinux_2_17_aarch64.whl", hash = "sha256:f26b0b547eb8d00e195274cdfc63ce64c8fc2d3e2d00b12bf468ece41a0423a0"}, + {file = "grpcio-1.67.1-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4422581cdc628f77302270ff839a44f4c24fdc57887dc2a45b7e53d8fc2376af"}, + {file = "grpcio-1.67.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1d7616d2ded471231c701489190379e0c311ee0a6c756f3c03e6a62b95a7146e"}, + {file = "grpcio-1.67.1-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:8a00efecde9d6fcc3ab00c13f816313c040a28450e5e25739c24f432fc6d3c75"}, + {file = "grpcio-1.67.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:699e964923b70f3101393710793289e42845791ea07565654ada0969522d0a38"}, + {file = "grpcio-1.67.1-cp312-cp312-win32.whl", hash = "sha256:4e7b904484a634a0fff132958dabdb10d63e0927398273917da3ee103e8d1f78"}, + {file = "grpcio-1.67.1-cp312-cp312-win_amd64.whl", hash = "sha256:5721e66a594a6c4204458004852719b38f3d5522082be9061d6510b455c90afc"}, + {file = "grpcio-1.67.1-cp313-cp313-linux_armv7l.whl", hash = "sha256:aa0162e56fd10a5547fac8774c4899fc3e18c1aa4a4759d0ce2cd00d3696ea6b"}, + {file = "grpcio-1.67.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:beee96c8c0b1a75d556fe57b92b58b4347c77a65781ee2ac749d550f2a365dc1"}, + {file = "grpcio-1.67.1-cp313-cp313-manylinux_2_17_aarch64.whl", hash = "sha256:a93deda571a1bf94ec1f6fcda2872dad3ae538700d94dc283c672a3b508ba3af"}, + {file = "grpcio-1.67.1-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0e6f255980afef598a9e64a24efce87b625e3e3c80a45162d111a461a9f92955"}, + {file = "grpcio-1.67.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9e838cad2176ebd5d4a8bb03955138d6589ce9e2ce5d51c3ada34396dbd2dba8"}, + {file = "grpcio-1.67.1-cp313-cp313-musllinux_1_1_i686.whl", hash = "sha256:a6703916c43b1d468d0756c8077b12017a9fcb6a1ef13faf49e67d20d7ebda62"}, + {file = "grpcio-1.67.1-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:917e8d8994eed1d86b907ba2a61b9f0aef27a2155bca6cbb322430fc7135b7bb"}, + {file = "grpcio-1.67.1-cp313-cp313-win32.whl", hash = "sha256:e279330bef1744040db8fc432becc8a727b84f456ab62b744d3fdb83f327e121"}, + {file = "grpcio-1.67.1-cp313-cp313-win_amd64.whl", hash = "sha256:fa0c739ad8b1996bd24823950e3cb5152ae91fca1c09cc791190bf1627ffefba"}, + {file = "grpcio-1.67.1-cp38-cp38-linux_armv7l.whl", hash = "sha256:178f5db771c4f9a9facb2ab37a434c46cb9be1a75e820f187ee3d1e7805c4f65"}, + {file = "grpcio-1.67.1-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:0f3e49c738396e93b7ba9016e153eb09e0778e776df6090c1b8c91877cc1c426"}, + {file = "grpcio-1.67.1-cp38-cp38-manylinux_2_17_aarch64.whl", hash = "sha256:24e8a26dbfc5274d7474c27759b54486b8de23c709d76695237515bc8b5baeab"}, + {file = "grpcio-1.67.1-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3b6c16489326d79ead41689c4b84bc40d522c9a7617219f4ad94bc7f448c5085"}, + {file = "grpcio-1.67.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:60e6a4dcf5af7bbc36fd9f81c9f372e8ae580870a9e4b6eafe948cd334b81cf3"}, + {file = "grpcio-1.67.1-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:95b5f2b857856ed78d72da93cd7d09b6db8ef30102e5e7fe0961fe4d9f7d48e8"}, + {file = "grpcio-1.67.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:b49359977c6ec9f5d0573ea4e0071ad278ef905aa74e420acc73fd28ce39e9ce"}, + {file = "grpcio-1.67.1-cp38-cp38-win32.whl", hash = "sha256:f5b76ff64aaac53fede0cc93abf57894ab2a7362986ba22243d06218b93efe46"}, + {file = "grpcio-1.67.1-cp38-cp38-win_amd64.whl", hash = "sha256:804c6457c3cd3ec04fe6006c739579b8d35c86ae3298ffca8de57b493524b771"}, + {file = "grpcio-1.67.1-cp39-cp39-linux_armv7l.whl", hash = "sha256:a25bdea92b13ff4d7790962190bf6bf5c4639876e01c0f3dda70fc2769616335"}, + {file = "grpcio-1.67.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:cdc491ae35a13535fd9196acb5afe1af37c8237df2e54427be3eecda3653127e"}, + {file = "grpcio-1.67.1-cp39-cp39-manylinux_2_17_aarch64.whl", hash = "sha256:85f862069b86a305497e74d0dc43c02de3d1d184fc2c180993aa8aa86fbd19b8"}, + {file = "grpcio-1.67.1-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ec74ef02010186185de82cc594058a3ccd8d86821842bbac9873fd4a2cf8be8d"}, + {file = "grpcio-1.67.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:01f616a964e540638af5130469451cf580ba8c7329f45ca998ab66e0c7dcdb04"}, + {file = "grpcio-1.67.1-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:299b3d8c4f790c6bcca485f9963b4846dd92cf6f1b65d3697145d005c80f9fe8"}, + {file = "grpcio-1.67.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:60336bff760fbb47d7e86165408126f1dded184448e9a4c892189eb7c9d3f90f"}, + {file = "grpcio-1.67.1-cp39-cp39-win32.whl", hash = "sha256:5ed601c4c6008429e3d247ddb367fe8c7259c355757448d7c1ef7bd4a6739e8e"}, + {file = "grpcio-1.67.1-cp39-cp39-win_amd64.whl", hash = "sha256:5db70d32d6703b89912af16d6d45d78406374a8b8ef0d28140351dd0ec610e98"}, + {file = "grpcio-1.67.1.tar.gz", hash = "sha256:3dc2ed4cabea4dc14d5e708c2b426205956077cc5de419b4d4079315017e9732"}, ] [package.extras] -protobuf = ["grpcio-tools (>=1.67.0)"] +protobuf = ["grpcio-tools (>=1.67.1)"] [[package]] name = "grpcio-status" @@ -2763,84 +2779,84 @@ i18n = ["Babel (>=2.7)"] [[package]] name = "jiter" -version = "0.6.1" +version = "0.7.0" description = "Fast iterable JSON parser." optional = false python-versions = ">=3.8" files = [ - {file = "jiter-0.6.1-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:d08510593cb57296851080018006dfc394070178d238b767b1879dc1013b106c"}, - {file = "jiter-0.6.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:adef59d5e2394ebbad13b7ed5e0306cceb1df92e2de688824232a91588e77aa7"}, - {file = "jiter-0.6.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b3e02f7a27f2bcc15b7d455c9df05df8ffffcc596a2a541eeda9a3110326e7a3"}, - {file = "jiter-0.6.1-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:ed69a7971d67b08f152c17c638f0e8c2aa207e9dd3a5fcd3cba294d39b5a8d2d"}, - {file = "jiter-0.6.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b2019d966e98f7c6df24b3b8363998575f47d26471bfb14aade37630fae836a1"}, - {file = "jiter-0.6.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:36c0b51a285b68311e207a76c385650322734c8717d16c2eb8af75c9d69506e7"}, - {file = "jiter-0.6.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:220e0963b4fb507c525c8f58cde3da6b1be0bfddb7ffd6798fb8f2531226cdb1"}, - {file = "jiter-0.6.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:aa25c7a9bf7875a141182b9c95aed487add635da01942ef7ca726e42a0c09058"}, - {file = "jiter-0.6.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:e90552109ca8ccd07f47ca99c8a1509ced93920d271bb81780a973279974c5ab"}, - {file = "jiter-0.6.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:67723a011964971864e0b484b0ecfee6a14de1533cff7ffd71189e92103b38a8"}, - {file = "jiter-0.6.1-cp310-none-win32.whl", hash = "sha256:33af2b7d2bf310fdfec2da0177eab2fedab8679d1538d5b86a633ebfbbac4edd"}, - {file = "jiter-0.6.1-cp310-none-win_amd64.whl", hash = "sha256:7cea41c4c673353799906d940eee8f2d8fd1d9561d734aa921ae0f75cb9732f4"}, - {file = "jiter-0.6.1-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:b03c24e7da7e75b170c7b2b172d9c5e463aa4b5c95696a368d52c295b3f6847f"}, - {file = "jiter-0.6.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:47fee1be677b25d0ef79d687e238dc6ac91a8e553e1a68d0839f38c69e0ee491"}, - {file = "jiter-0.6.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:25f0d2f6e01a8a0fb0eab6d0e469058dab2be46ff3139ed2d1543475b5a1d8e7"}, - {file = "jiter-0.6.1-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:0b809e39e342c346df454b29bfcc7bca3d957f5d7b60e33dae42b0e5ec13e027"}, - {file = "jiter-0.6.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e9ac7c2f092f231f5620bef23ce2e530bd218fc046098747cc390b21b8738a7a"}, - {file = "jiter-0.6.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e51a2d80d5fe0ffb10ed2c82b6004458be4a3f2b9c7d09ed85baa2fbf033f54b"}, - {file = "jiter-0.6.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3343d4706a2b7140e8bd49b6c8b0a82abf9194b3f0f5925a78fc69359f8fc33c"}, - {file = "jiter-0.6.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:82521000d18c71e41c96960cb36e915a357bc83d63a8bed63154b89d95d05ad1"}, - {file = "jiter-0.6.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:3c843e7c1633470708a3987e8ce617ee2979ee18542d6eb25ae92861af3f1d62"}, - {file = "jiter-0.6.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:a2e861658c3fe849efc39b06ebb98d042e4a4c51a8d7d1c3ddc3b1ea091d0784"}, - {file = "jiter-0.6.1-cp311-none-win32.whl", hash = "sha256:7d72fc86474862c9c6d1f87b921b70c362f2b7e8b2e3c798bb7d58e419a6bc0f"}, - {file = "jiter-0.6.1-cp311-none-win_amd64.whl", hash = "sha256:3e36a320634f33a07794bb15b8da995dccb94f944d298c8cfe2bd99b1b8a574a"}, - {file = "jiter-0.6.1-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:1fad93654d5a7dcce0809aff66e883c98e2618b86656aeb2129db2cd6f26f867"}, - {file = "jiter-0.6.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:4e6e340e8cd92edab7f6a3a904dbbc8137e7f4b347c49a27da9814015cc0420c"}, - {file = "jiter-0.6.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:691352e5653af84ed71763c3c427cff05e4d658c508172e01e9c956dfe004aba"}, - {file = "jiter-0.6.1-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:defee3949313c1f5b55e18be45089970cdb936eb2a0063f5020c4185db1b63c9"}, - {file = "jiter-0.6.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:26d2bdd5da097e624081c6b5d416d3ee73e5b13f1703bcdadbb1881f0caa1933"}, - {file = "jiter-0.6.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:18aa9d1626b61c0734b973ed7088f8a3d690d0b7f5384a5270cd04f4d9f26c86"}, - {file = "jiter-0.6.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7a3567c8228afa5ddcce950631c6b17397ed178003dc9ee7e567c4c4dcae9fa0"}, - {file = "jiter-0.6.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:e5c0507131c922defe3f04c527d6838932fcdfd69facebafd7d3574fa3395314"}, - {file = "jiter-0.6.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:540fcb224d7dc1bcf82f90f2ffb652df96f2851c031adca3c8741cb91877143b"}, - {file = "jiter-0.6.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:e7b75436d4fa2032b2530ad989e4cb0ca74c655975e3ff49f91a1a3d7f4e1df2"}, - {file = "jiter-0.6.1-cp312-none-win32.whl", hash = "sha256:883d2ced7c21bf06874fdeecab15014c1c6d82216765ca6deef08e335fa719e0"}, - {file = "jiter-0.6.1-cp312-none-win_amd64.whl", hash = "sha256:91e63273563401aadc6c52cca64a7921c50b29372441adc104127b910e98a5b6"}, - {file = "jiter-0.6.1-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:852508a54fe3228432e56019da8b69208ea622a3069458252f725d634e955b31"}, - {file = "jiter-0.6.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:f491cc69ff44e5a1e8bc6bf2b94c1f98d179e1aaf4a554493c171a5b2316b701"}, - {file = "jiter-0.6.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cc56c8f0b2a28ad4d8047f3ae62d25d0e9ae01b99940ec0283263a04724de1f3"}, - {file = "jiter-0.6.1-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:51b58f7a0d9e084a43b28b23da2b09fc5e8df6aa2b6a27de43f991293cab85fd"}, - {file = "jiter-0.6.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5f79ce15099154c90ef900d69c6b4c686b64dfe23b0114e0971f2fecd306ec6c"}, - {file = "jiter-0.6.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:03a025b52009f47e53ea619175d17e4ded7c035c6fbd44935cb3ada11e1fd592"}, - {file = "jiter-0.6.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c74a8d93718137c021d9295248a87c2f9fdc0dcafead12d2930bc459ad40f885"}, - {file = "jiter-0.6.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:40b03b75f903975f68199fc4ec73d546150919cb7e534f3b51e727c4d6ccca5a"}, - {file = "jiter-0.6.1-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:825651a3f04cf92a661d22cad61fc913400e33aa89b3e3ad9a6aa9dc8a1f5a71"}, - {file = "jiter-0.6.1-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:928bf25eb69ddb292ab8177fe69d3fbf76c7feab5fce1c09265a7dccf25d3991"}, - {file = "jiter-0.6.1-cp313-none-win32.whl", hash = "sha256:352cd24121e80d3d053fab1cc9806258cad27c53cad99b7a3cac57cf934b12e4"}, - {file = "jiter-0.6.1-cp313-none-win_amd64.whl", hash = "sha256:be7503dd6f4bf02c2a9bacb5cc9335bc59132e7eee9d3e931b13d76fd80d7fda"}, - {file = "jiter-0.6.1-cp38-cp38-macosx_10_12_x86_64.whl", hash = "sha256:31d8e00e1fb4c277df8ab6f31a671f509ebc791a80e5c61fdc6bc8696aaa297c"}, - {file = "jiter-0.6.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:77c296d65003cd7ee5d7b0965f6acbe6cffaf9d1fa420ea751f60ef24e85fed5"}, - {file = "jiter-0.6.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:aeeb0c0325ef96c12a48ea7e23e2e86fe4838e6e0a995f464cf4c79fa791ceeb"}, - {file = "jiter-0.6.1-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:a31c6fcbe7d6c25d6f1cc6bb1cba576251d32795d09c09961174fe461a1fb5bd"}, - {file = "jiter-0.6.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:59e2b37f3b9401fc9e619f4d4badcab2e8643a721838bcf695c2318a0475ae42"}, - {file = "jiter-0.6.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:bae5ae4853cb9644144e9d0755854ce5108d470d31541d83f70ca7ecdc2d1637"}, - {file = "jiter-0.6.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9df588e9c830b72d8db1dd7d0175af6706b0904f682ea9b1ca8b46028e54d6e9"}, - {file = "jiter-0.6.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:15f8395e835cf561c85c1adee72d899abf2733d9df72e9798e6d667c9b5c1f30"}, - {file = "jiter-0.6.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:5a99d4e0b5fc3b05ea732d67eb2092fe894e95a90e6e413f2ea91387e228a307"}, - {file = "jiter-0.6.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:a311df1fa6be0ccd64c12abcd85458383d96e542531bafbfc0a16ff6feda588f"}, - {file = "jiter-0.6.1-cp38-none-win32.whl", hash = "sha256:81116a6c272a11347b199f0e16b6bd63f4c9d9b52bc108991397dd80d3c78aba"}, - {file = "jiter-0.6.1-cp38-none-win_amd64.whl", hash = "sha256:13f9084e3e871a7c0b6e710db54444088b1dd9fbefa54d449b630d5e73bb95d0"}, - {file = "jiter-0.6.1-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:f1c53615fcfec3b11527c08d19cff6bc870da567ce4e57676c059a3102d3a082"}, - {file = "jiter-0.6.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:f791b6a4da23238c17a81f44f5b55d08a420c5692c1fda84e301a4b036744eb1"}, - {file = "jiter-0.6.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8c97e90fec2da1d5f68ef121444c2c4fa72eabf3240829ad95cf6bbeca42a301"}, - {file = "jiter-0.6.1-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:3cbc1a66b4e41511209e97a2866898733c0110b7245791ac604117b7fb3fedb7"}, - {file = "jiter-0.6.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e4e85f9e12cd8418ab10e1fcf0e335ae5bb3da26c4d13a0fd9e6a17a674783b6"}, - {file = "jiter-0.6.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:08be33db6dcc374c9cc19d3633af5e47961a7b10d4c61710bd39e48d52a35824"}, - {file = "jiter-0.6.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:677be9550004f5e010d673d3b2a2b815a8ea07a71484a57d3f85dde7f14cf132"}, - {file = "jiter-0.6.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:e8bd065be46c2eecc328e419d6557bbc37844c88bb07b7a8d2d6c91c7c4dedc9"}, - {file = "jiter-0.6.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:bd95375ce3609ec079a97c5d165afdd25693302c071ca60c7ae1cf826eb32022"}, - {file = "jiter-0.6.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:db459ed22d0208940d87f614e1f0ea5a946d29a3cfef71f7e1aab59b6c6b2afb"}, - {file = "jiter-0.6.1-cp39-none-win32.whl", hash = "sha256:d71c962f0971347bd552940ab96aa42ceefcd51b88c4ced8a27398182efa8d80"}, - {file = "jiter-0.6.1-cp39-none-win_amd64.whl", hash = "sha256:d465db62d2d10b489b7e7a33027c4ae3a64374425d757e963f86df5b5f2e7fc5"}, - {file = "jiter-0.6.1.tar.gz", hash = "sha256:e19cd21221fc139fb032e4112986656cb2739e9fe6d84c13956ab30ccc7d4449"}, + {file = "jiter-0.7.0-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:e14027f61101b3f5e173095d9ecf95c1cac03ffe45a849279bde1d97e559e314"}, + {file = "jiter-0.7.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:979ec4711c2e37ac949561858bd42028884c9799516a923e1ff0b501ef341a4a"}, + {file = "jiter-0.7.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:662d5d3cca58ad6af7a3c6226b641c8655de5beebcb686bfde0df0f21421aafa"}, + {file = "jiter-0.7.0-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:1d89008fb47043a469f97ad90840b97ba54e7c3d62dc7cbb6cbf938bd0caf71d"}, + {file = "jiter-0.7.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a8b16c35c846a323ce9067170d5ab8c31ea3dbcab59c4f7608bbbf20c2c3b43f"}, + {file = "jiter-0.7.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c9e82daaa1b0a68704f9029b81e664a5a9de3e466c2cbaabcda5875f961702e7"}, + {file = "jiter-0.7.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:43a87a9f586636e1f0dd3651a91f79b491ea0d9fd7cbbf4f5c463eebdc48bda7"}, + {file = "jiter-0.7.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:2ec05b1615f96cc3e4901678bc863958611584072967d9962f9e571d60711d52"}, + {file = "jiter-0.7.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:a5cb97e35370bde7aa0d232a7f910f5a0fbbc96bc0a7dbaa044fd5cd6bcd7ec3"}, + {file = "jiter-0.7.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:cb316dacaf48c8c187cea75d0d7f835f299137e6fdd13f691dff8f92914015c7"}, + {file = "jiter-0.7.0-cp310-none-win32.whl", hash = "sha256:243f38eb4072763c54de95b14ad283610e0cd3bf26393870db04e520f60eebb3"}, + {file = "jiter-0.7.0-cp310-none-win_amd64.whl", hash = "sha256:2221d5603c139f6764c54e37e7c6960c469cbcd76928fb10d15023ba5903f94b"}, + {file = "jiter-0.7.0-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:91cec0ad755bd786c9f769ce8d843af955df6a8e56b17658771b2d5cb34a3ff8"}, + {file = "jiter-0.7.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:feba70a28a27d962e353e978dbb6afd798e711c04cb0b4c5e77e9d3779033a1a"}, + {file = "jiter-0.7.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a9d866ec066c3616cacb8535dbda38bb1d470b17b25f0317c4540182bc886ce2"}, + {file = "jiter-0.7.0-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:8e7a7a00b6f9f18289dd563596f97ecaba6c777501a8ba04bf98e03087bcbc60"}, + {file = "jiter-0.7.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9aaf564094c7db8687f2660605e099f3d3e6ea5e7135498486674fcb78e29165"}, + {file = "jiter-0.7.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a4d27e09825c1b3c7a667adb500ce8b840e8fc9f630da8454b44cdd4fb0081bb"}, + {file = "jiter-0.7.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3ca7c287da9c1d56dda88da1d08855a787dbb09a7e2bd13c66a2e288700bd7c7"}, + {file = "jiter-0.7.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:db19a6d160f093cbc8cd5ea2abad420b686f6c0e5fb4f7b41941ebc6a4f83cda"}, + {file = "jiter-0.7.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:6e46a63c7f877cf7441ffc821c28287cfb9f533ae6ed707bde15e7d4dfafa7ae"}, + {file = "jiter-0.7.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:7ba426fa7ff21cb119fa544b75dd3fbee6a70e55a5829709c0338d07ccd30e6d"}, + {file = "jiter-0.7.0-cp311-none-win32.whl", hash = "sha256:c07f55a64912b0c7982377831210836d2ea92b7bd343fca67a32212dd72e38e0"}, + {file = "jiter-0.7.0-cp311-none-win_amd64.whl", hash = "sha256:ed27b2c43e1b5f6c7fedc5c11d4d8bfa627de42d1143d87e39e2e83ddefd861a"}, + {file = "jiter-0.7.0-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:ac7930bcaaeb1e229e35c91c04ed2e9f39025b86ee9fc3141706bbf6fff4aeeb"}, + {file = "jiter-0.7.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:571feae3e7c901a8eedde9fd2865b0dfc1432fb15cab8c675a8444f7d11b7c5d"}, + {file = "jiter-0.7.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a8af4df8a262fa2778b68c2a03b6e9d1cb4d43d02bea6976d46be77a3a331af1"}, + {file = "jiter-0.7.0-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:bd028d4165097a611eb0c7494d8c1f2aebd46f73ca3200f02a175a9c9a6f22f5"}, + {file = "jiter-0.7.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c6b487247c7836810091e9455efe56a52ec51bfa3a222237e1587d04d3e04527"}, + {file = "jiter-0.7.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e6d28a92f28814e1a9f2824dc11f4e17e1df1f44dc4fdeb94c5450d34bcb2602"}, + {file = "jiter-0.7.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:90443994bbafe134f0b34201dad3ebe1c769f0599004084e046fb249ad912425"}, + {file = "jiter-0.7.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:f9abf464f9faac652542ce8360cea8e68fba2b78350e8a170248f9bcc228702a"}, + {file = "jiter-0.7.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:db7a8d99fc5f842f7d2852f06ccaed066532292c41723e5dff670c339b649f88"}, + {file = "jiter-0.7.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:15cf691ebd8693b70c94627d6b748f01e6d697d9a6e9f2bc310934fcfb7cf25e"}, + {file = "jiter-0.7.0-cp312-none-win32.whl", hash = "sha256:9dcd54fa422fb66ca398bec296fed5f58e756aa0589496011cfea2abb5be38a5"}, + {file = "jiter-0.7.0-cp312-none-win_amd64.whl", hash = "sha256:cc989951f73f9375b8eacd571baaa057f3d7d11b7ce6f67b9d54642e7475bfad"}, + {file = "jiter-0.7.0-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:24cecd18df540963cd27c08ca5ce1d0179f229ff78066d9eecbe5add29361340"}, + {file = "jiter-0.7.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:d41b46236b90b043cca73785674c23d2a67d16f226394079d0953f94e765ed76"}, + {file = "jiter-0.7.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b160db0987171365c153e406a45dcab0ee613ae3508a77bfff42515cb4ce4d6e"}, + {file = "jiter-0.7.0-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:d1c8d91e0f0bd78602eaa081332e8ee4f512c000716f5bc54e9a037306d693a7"}, + {file = "jiter-0.7.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:997706c683195eeff192d2e5285ce64d2a610414f37da3a3f2625dcf8517cf90"}, + {file = "jiter-0.7.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7ea52a8a0ff0229ab2920284079becd2bae0688d432fca94857ece83bb49c541"}, + {file = "jiter-0.7.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6d77449d2738cf74752bb35d75ee431af457e741124d1db5e112890023572c7c"}, + {file = "jiter-0.7.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:a8203519907a1d81d6cb00902c98e27c2d0bf25ce0323c50ca594d30f5f1fbcf"}, + {file = "jiter-0.7.0-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:41d15ccc53931c822dd7f1aebf09faa3cda2d7b48a76ef304c7dbc19d1302e51"}, + {file = "jiter-0.7.0-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:febf3179b2fabf71fbd2fd52acb8594163bb173348b388649567a548f356dbf6"}, + {file = "jiter-0.7.0-cp313-none-win32.whl", hash = "sha256:4a8e2d866e7eda19f012444e01b55079d8e1c4c30346aaac4b97e80c54e2d6d3"}, + {file = "jiter-0.7.0-cp313-none-win_amd64.whl", hash = "sha256:7417c2b928062c496f381fb0cb50412eee5ad1d8b53dbc0e011ce45bb2de522c"}, + {file = "jiter-0.7.0-cp38-cp38-macosx_10_12_x86_64.whl", hash = "sha256:9c62c737b5368e51e74960a08fe1adc807bd270227291daede78db24d5fbf556"}, + {file = "jiter-0.7.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:e4640722b1bef0f6e342fe4606aafaae0eb4f4be5c84355bb6867f34400f6688"}, + {file = "jiter-0.7.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f367488c3b9453eab285424c61098faa1cab37bb49425e69c8dca34f2dfe7d69"}, + {file = "jiter-0.7.0-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:0cf5d42beb3514236459454e3287db53d9c4d56c4ebaa3e9d0efe81b19495129"}, + {file = "jiter-0.7.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:cc5190ea1113ee6f7252fa8a5fe5a6515422e378356c950a03bbde5cafbdbaab"}, + {file = "jiter-0.7.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:63ee47a149d698796a87abe445fc8dee21ed880f09469700c76c8d84e0d11efd"}, + {file = "jiter-0.7.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:48592c26ea72d3e71aa4bea0a93454df907d80638c3046bb0705507b6704c0d7"}, + {file = "jiter-0.7.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:79fef541199bd91cfe8a74529ecccb8eaf1aca38ad899ea582ebbd4854af1e51"}, + {file = "jiter-0.7.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:d1ef6bb66041f2514739240568136c81b9dcc64fd14a43691c17ea793b6535c0"}, + {file = "jiter-0.7.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:aca4d950863b1c238e315bf159466e064c98743eef3bd0ff9617e48ff63a4715"}, + {file = "jiter-0.7.0-cp38-none-win32.whl", hash = "sha256:897745f230350dcedb8d1ebe53e33568d48ea122c25e6784402b6e4e88169be7"}, + {file = "jiter-0.7.0-cp38-none-win_amd64.whl", hash = "sha256:b928c76a422ef3d0c85c5e98c498ce3421b313c5246199541e125b52953e1bc0"}, + {file = "jiter-0.7.0-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:c9b669ff6f8ba08270dee9ccf858d3b0203b42314a428a1676762f2d390fbb64"}, + {file = "jiter-0.7.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:b5be919bacd73ca93801c3042bce6e95cb9c555a45ca83617b9b6c89df03b9c2"}, + {file = "jiter-0.7.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a282e1e8a396dabcea82d64f9d05acf7efcf81ecdd925b967020dcb0e671c103"}, + {file = "jiter-0.7.0-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:17ecb1a578a56e97a043c72b463776b5ea30343125308f667fb8fce4b3796735"}, + {file = "jiter-0.7.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:7b6045fa0527129218cdcd8a8b839f678219686055f31ebab35f87d354d9c36e"}, + {file = "jiter-0.7.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:189cc4262a92e33c19d4fd24018f5890e4e6da5b2581f0059938877943f8298c"}, + {file = "jiter-0.7.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c138414839effbf30d185e30475c6dc8a16411a1e3681e5fd4605ab1233ac67a"}, + {file = "jiter-0.7.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:2791604acef33da6b72d5ecf885a32384bcaf9aa1e4be32737f3b8b9588eef6a"}, + {file = "jiter-0.7.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:ae60ec89037a78d60bbf3d8b127f1567769c8fa24886e0abed3f622791dea478"}, + {file = "jiter-0.7.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:836f03dea312967635233d826f783309b98cfd9ccc76ac776e224cfcef577862"}, + {file = "jiter-0.7.0-cp39-none-win32.whl", hash = "sha256:ebc30ae2ce4bc4986e1764c404b4ea1924f926abf02ce92516485098f8545374"}, + {file = "jiter-0.7.0-cp39-none-win_amd64.whl", hash = "sha256:abf596f951370c648f37aa9899deab296c42a3829736e598b0dd10b08f77a44d"}, + {file = "jiter-0.7.0.tar.gz", hash = "sha256:c061d9738535497b5509f8970584f20de1e900806b239a39a9994fc191dad630"}, ] [[package]] @@ -3633,13 +3649,13 @@ files = [ [[package]] name = "openai" -version = "1.52.2" +version = "1.53.0" description = "The official Python library for the openai API" optional = false python-versions = ">=3.7.1" files = [ - {file = "openai-1.52.2-py3-none-any.whl", hash = "sha256:57e9e37bc407f39bb6ec3a27d7e8fb9728b2779936daa1fcf95df17d3edfaccc"}, - {file = "openai-1.52.2.tar.gz", hash = "sha256:87b7d0f69d85f5641678d414b7ee3082363647a5c66a462ed7f3ccb59582da0d"}, + {file = "openai-1.53.0-py3-none-any.whl", hash = "sha256:20f408c32fc5cb66e60c6882c994cdca580a5648e10045cd840734194f033418"}, + {file = "openai-1.53.0.tar.gz", hash = "sha256:be2c4e77721b166cce8130e544178b7d579f751b4b074ffbaade3854b6f85ec5"}, ] [package.dependencies] @@ -4015,13 +4031,13 @@ tests = ["pytest (>=5.4.1)", "pytest-cov (>=2.8.1)", "pytest-mypy (>=0.8.0)", "p [[package]] 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" optional = false -python-versions = ">=3.8" +python-versions = ">=3.9" files = [ - {file = "prettytable-3.11.0-py3-none-any.whl", hash = "sha256:aa17083feb6c71da11a68b2c213b04675c4af4ce9c541762632ca3f2cb3546dd"}, - {file = "prettytable-3.11.0.tar.gz", hash = "sha256:7e23ca1e68bbfd06ba8de98bf553bf3493264c96d5e8a615c0471025deeba722"}, + {file = "prettytable-3.12.0-py3-none-any.whl", hash = "sha256:77ca0ad1c435b6e363d7e8623d7cc4fcf2cf15513bf77a1c1b2e814930ac57cc"}, + {file = "prettytable-3.12.0.tar.gz", hash = "sha256:f04b3e1ba35747ac86e96ec33e3bb9748ce08e254dc2a1c6253945901beec804"}, ] [package.dependencies] @@ -5502,23 +5518,23 @@ tests = ["coverage[toml] (>=5.0.2)", "pytest"] [[package]] name = "setuptools" -version = "75.2.0" +version = "75.3.0" description = "Easily download, build, install, upgrade, and uninstall Python packages" optional = false python-versions = ">=3.8" files = [ - {file = "setuptools-75.2.0-py3-none-any.whl", hash = "sha256:a7fcb66f68b4d9e8e66b42f9876150a3371558f98fa32222ffaa5bced76406f8"}, - {file = "setuptools-75.2.0.tar.gz", hash = "sha256:753bb6ebf1f465a1912e19ed1d41f403a79173a9acf66a42e7e6aec45c3c16ec"}, + {file = "setuptools-75.3.0-py3-none-any.whl", hash = "sha256:f2504966861356aa38616760c0f66568e535562374995367b4e69c7143cf6bcd"}, + {file = "setuptools-75.3.0.tar.gz", hash = "sha256:fba5dd4d766e97be1b1681d98712680ae8f2f26d7881245f2ce9e40714f1a686"}, ] [package.extras] 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"] 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)"] -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)"] -type = ["importlib-metadata (>=7.0.2)", "jaraco.develop (>=7.21)", "mypy (==1.11.*)", "pytest-mypy"] +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.12.*)", "pytest-mypy"] [[package]] name = "simplejson" @@ -6367,93 +6383,93 @@ files = [ [[package]] name = "yarl" -version = "1.17.0" +version = "1.17.1" description = "Yet another URL library" optional = false python-versions = ">=3.9" files = [ - {file = "yarl-1.17.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:2d8715edfe12eee6f27f32a3655f38d6c7410deb482158c0b7d4b7fad5d07628"}, - {file = "yarl-1.17.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:1803bf2a7a782e02db746d8bd18f2384801bc1d108723840b25e065b116ad726"}, - {file = "yarl-1.17.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:2e66589110e20c2951221a938fa200c7aa134a8bdf4e4dc97e6b21539ff026d4"}, - {file = "yarl-1.17.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7069d411cfccf868e812497e0ec4acb7c7bf8d684e93caa6c872f1e6f5d1664d"}, - {file = "yarl-1.17.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:cbf70ba16118db3e4b0da69dcde9d4d4095d383c32a15530564c283fa38a7c52"}, - {file = "yarl-1.17.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:0bc53cc349675b32ead83339a8de79eaf13b88f2669c09d4962322bb0f064cbc"}, - {file = "yarl-1.17.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d6aa18a402d1c80193ce97c8729871f17fd3e822037fbd7d9b719864018df746"}, - {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.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:b728bdf38ca58f2da1d583e4af4ba7d4cd1a58b31a363a3137a8159395e7ecc7"}, - {file = "yarl-1.17.0-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:5542e57dc15d5473da5a39fbde14684b0cc4301412ee53cbab677925e8497c11"}, - {file = "yarl-1.17.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:e564b57e5009fb150cb513804d7e9e9912fee2e48835638f4f47977f88b4a39c"}, - {file = "yarl-1.17.0-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:eb3c4cff524b4c1c1dba3a6da905edb1dfd2baf6f55f18a58914bbb2d26b59e1"}, - {file = "yarl-1.17.0-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:05e13f389038842da930d439fbed63bdce3f7644902714cb68cf527c971af804"}, - {file = "yarl-1.17.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:153c38ee2b4abba136385af4467459c62d50f2a3f4bde38c7b99d43a20c143ef"}, - {file = "yarl-1.17.0-cp310-cp310-win32.whl", hash = "sha256:4065b4259d1ae6f70fd9708ffd61e1c9c27516f5b4fae273c41028afcbe3a094"}, - {file = "yarl-1.17.0-cp310-cp310-win_amd64.whl", hash = "sha256:abf366391a02a8335c5c26163b5fe6f514cc1d79e74d8bf3ffab13572282368e"}, - {file = "yarl-1.17.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:19a4fe0279626c6295c5b0c8c2bb7228319d2e985883621a6e87b344062d8135"}, - {file = "yarl-1.17.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:cadd0113f4db3c6b56868d6a19ca6286f5ccfa7bc08c27982cf92e5ed31b489a"}, - {file = "yarl-1.17.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:60d6693eef43215b1ccfb1df3f6eae8db30a9ff1e7989fb6b2a6f0b468930ee8"}, - {file = "yarl-1.17.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5bb8bf3843e1fa8cf3fe77813c512818e57368afab7ebe9ef02446fe1a10b492"}, - {file = "yarl-1.17.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d2a5b35fd1d8d90443e061d0c8669ac7600eec5c14c4a51f619e9e105b136715"}, - {file = "yarl-1.17.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c5bf17b32f392df20ab5c3a69d37b26d10efaa018b4f4e5643c7520d8eee7ac7"}, - {file = "yarl-1.17.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:48f51b529b958cd06e78158ff297a8bf57b4021243c179ee03695b5dbf9cb6e1"}, - {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.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:32f3ee19ff0f18a7a522d44e869e1ebc8218ad3ae4ebb7020445f59b4bbe5897"}, - {file = "yarl-1.17.0-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:a4fb69a81ae2ec2b609574ae35420cf5647d227e4d0475c16aa861dd24e840b0"}, - {file = "yarl-1.17.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:7bacc8b77670322132a1b2522c50a1f62991e2f95591977455fd9a398b4e678d"}, - {file = "yarl-1.17.0-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:437bf6eb47a2d20baaf7f6739895cb049e56896a5ffdea61a4b25da781966e8b"}, - {file = "yarl-1.17.0-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:30534a03c87484092080e3b6e789140bd277e40f453358900ad1f0f2e61fc8ec"}, - {file = "yarl-1.17.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:b30df4ff98703649915144be6f0df3b16fd4870ac38a09c56d5d9e54ff2d5f96"}, - {file = "yarl-1.17.0-cp311-cp311-win32.whl", hash = "sha256:263b487246858e874ab53e148e2a9a0de8465341b607678106829a81d81418c6"}, - {file = "yarl-1.17.0-cp311-cp311-win_amd64.whl", hash = "sha256:07055a9e8b647a362e7d4810fe99d8f98421575e7d2eede32e008c89a65a17bd"}, - {file = "yarl-1.17.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:84095ab25ba69a8fa3fb4936e14df631b8a71193fe18bd38be7ecbe34d0f5512"}, - {file = "yarl-1.17.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:02608fb3f6df87039212fc746017455ccc2a5fc96555ee247c45d1e9f21f1d7b"}, - {file = "yarl-1.17.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:13468d291fe8c12162b7cf2cdb406fe85881c53c9e03053ecb8c5d3523822cd9"}, - {file = "yarl-1.17.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8da3f8f368fb7e2f052fded06d5672260c50b5472c956a5f1bd7bf474ae504ab"}, - {file = "yarl-1.17.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ec0507ab6523980bed050137007c76883d941b519aca0e26d4c1ec1f297dd646"}, - {file = "yarl-1.17.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:08fc76df7fd8360e9ff30e6ccc3ee85b8dbd6ed5d3a295e6ec62bcae7601b932"}, - {file = "yarl-1.17.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8d522f390686acb6bab2b917dd9ca06740c5080cd2eaa5aef8827b97e967319d"}, - {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.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:24cf43bcd17a0a1f72284e47774f9c60e0bf0d2484d5851f4ddf24ded49f33c6"}, - {file = "yarl-1.17.0-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:c28a44b9e0fba49c3857360e7ad1473fc18bc7f6659ca08ed4f4f2b9a52c75fa"}, - {file = "yarl-1.17.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:350cacb2d589bc07d230eb995d88fcc646caad50a71ed2d86df533a465a4e6e1"}, - {file = "yarl-1.17.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:fd1ab1373274dea1c6448aee420d7b38af163b5c4732057cd7ee9f5454efc8b1"}, - {file = "yarl-1.17.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:4934e0f96dadc567edc76d9c08181633c89c908ab5a3b8f698560124167d9488"}, - {file = "yarl-1.17.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:8d0a278170d75c88e435a1ce76557af6758bfebc338435b2eba959df2552163e"}, - {file = "yarl-1.17.0-cp312-cp312-win32.whl", hash = "sha256:61584f33196575a08785bb56db6b453682c88f009cd9c6f338a10f6737ce419f"}, - {file = "yarl-1.17.0-cp312-cp312-win_amd64.whl", hash = "sha256:9987a439ad33a7712bd5bbd073f09ad10d38640425fa498ecc99d8aa064f8fc4"}, - {file = "yarl-1.17.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:8deda7b8eb15a52db94c2014acdc7bdd14cb59ec4b82ac65d2ad16dc234a109e"}, - {file = "yarl-1.17.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:56294218b348dcbd3d7fce0ffd79dd0b6c356cb2a813a1181af730b7c40de9e7"}, - {file = "yarl-1.17.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:1fab91292f51c884b290ebec0b309a64a5318860ccda0c4940e740425a67b6b7"}, - {file = "yarl-1.17.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5cf93fa61ff4d9c7d40482ce1a2c9916ca435e34a1b8451e17f295781ccc034f"}, - {file = "yarl-1.17.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:261be774a0d71908c8830c33bacc89eef15c198433a8cc73767c10eeeb35a7d0"}, - {file = "yarl-1.17.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:deec9693b67f6af856a733b8a3e465553ef09e5e8ead792f52c25b699b8f9e6e"}, - {file = "yarl-1.17.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c804b07622ba50a765ca7fb8145512836ab65956de01307541def869e4a456c9"}, - {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.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:e2cfcba719bd494c7413dcf0caafb51772dec168c7c946e094f710d6aa70494e"}, - {file = "yarl-1.17.0-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:c068aba9fc5b94dfae8ea1cedcbf3041cd4c64644021362ffb750f79837e881f"}, - {file = "yarl-1.17.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:3616df510ffac0df3c9fa851a40b76087c6c89cbcea2de33a835fc80f9faac24"}, - {file = "yarl-1.17.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:755d6176b442fba9928a4df787591a6a3d62d4969f05c406cad83d296c5d4e05"}, - {file = "yarl-1.17.0-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:c18f6e708d1cf9ff5b1af026e697ac73bea9cb70ee26a2b045b112548579bed2"}, - {file = "yarl-1.17.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:5b937c216b6dee8b858c6afea958de03c5ff28406257d22b55c24962a2baf6fd"}, - {file = "yarl-1.17.0-cp313-cp313-win32.whl", hash = "sha256:d0131b14cb545c1a7bd98f4565a3e9bdf25a1bd65c83fc156ee5d8a8499ec4a3"}, - {file = "yarl-1.17.0-cp313-cp313-win_amd64.whl", hash = "sha256:01c96efa4313c01329e88b7e9e9e1b2fc671580270ddefdd41129fa8d0db7696"}, - {file = "yarl-1.17.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:0d44f67e193f0a7acdf552ecb4d1956a3a276c68e7952471add9f93093d1c30d"}, - {file = "yarl-1.17.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:16ea0aa5f890cdcb7ae700dffa0397ed6c280840f637cd07bffcbe4b8d68b985"}, - {file = "yarl-1.17.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:cf5469dc7dcfa65edf5cc3a6add9f84c5529c6b556729b098e81a09a92e60e51"}, - {file = "yarl-1.17.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e662bf2f6e90b73cf2095f844e2bc1fda39826472a2aa1959258c3f2a8500a2f"}, - {file = "yarl-1.17.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8260e88f1446904ba20b558fa8ce5d0ab9102747238e82343e46d056d7304d7e"}, - {file = "yarl-1.17.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5dc16477a4a2c71e64c5d3d15d7ae3d3a6bb1e8b955288a9f73c60d2a391282f"}, - {file = "yarl-1.17.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:46027e326cecd55e5950184ec9d86c803f4f6fe4ba6af9944a0e537d643cdbe0"}, - {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.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:16ca76c7ac9515320cd09d6cc083d8d13d1803f6ebe212b06ea2505fd66ecff8"}, - {file = "yarl-1.17.0-cp39-cp39-musllinux_1_2_armv7l.whl", hash = "sha256:eb1a5b97388f2613f9305d78a3473cdf8d80c7034e554d8199d96dcf80c62ac4"}, - {file = "yarl-1.17.0-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:41fd5498975418cdc34944060b8fbeec0d48b2741068077222564bea68daf5a6"}, - {file = "yarl-1.17.0-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:146ca582ed04a5664ad04b0e0603934281eaab5c0115a5a46cce0b3c061a56a1"}, - {file = "yarl-1.17.0-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:6abb8c06107dbec97481b2392dafc41aac091a5d162edf6ed7d624fe7da0587a"}, - {file = "yarl-1.17.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:4d14be4613dd4f96c25feb4bd8c0d8ce0f529ab0ae555a17df5789e69d8ec0c5"}, - {file = "yarl-1.17.0-cp39-cp39-win32.whl", hash = "sha256:174d6a6cad1068f7850702aad0c7b1bca03bcac199ca6026f84531335dfc2646"}, - {file = "yarl-1.17.0-cp39-cp39-win_amd64.whl", hash = "sha256:6af417ca2c7349b101d3fd557ad96b4cd439fdb6ab0d288e3f64a068eea394d0"}, - {file = "yarl-1.17.0-py3-none-any.whl", hash = "sha256:62dd42bb0e49423f4dd58836a04fcf09c80237836796025211bbe913f1524993"}, - {file = "yarl-1.17.0.tar.gz", hash = "sha256:d3f13583f378930377e02002b4085a3d025b00402d5a80911726d43a67911cd9"}, + {file = "yarl-1.17.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:0b1794853124e2f663f0ea54efb0340b457f08d40a1cef78edfa086576179c91"}, + {file = "yarl-1.17.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:fbea1751729afe607d84acfd01efd95e3b31db148a181a441984ce9b3d3469da"}, + {file = "yarl-1.17.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:8ee427208c675f1b6e344a1f89376a9613fc30b52646a04ac0c1f6587c7e46ec"}, + {file = "yarl-1.17.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3b74ff4767d3ef47ffe0cd1d89379dc4d828d4873e5528976ced3b44fe5b0a21"}, + {file = "yarl-1.17.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:62a91aefff3d11bf60e5956d340eb507a983a7ec802b19072bb989ce120cd948"}, + {file = "yarl-1.17.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:846dd2e1243407133d3195d2d7e4ceefcaa5f5bf7278f0a9bda00967e6326b04"}, + {file = "yarl-1.17.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3e844be8d536afa129366d9af76ed7cb8dfefec99f5f1c9e4f8ae542279a6dc3"}, + {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.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:ae3476e934b9d714aa8000d2e4c01eb2590eee10b9d8cd03e7983ad65dfbfcba"}, + {file = "yarl-1.17.1-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:c7e177c619342e407415d4f35dec63d2d134d951e24b5166afcdfd1362828e17"}, + {file = "yarl-1.17.1-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:64cc6e97f14cf8a275d79c5002281f3040c12e2e4220623b5759ea7f9868d6a5"}, + {file = "yarl-1.17.1-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:84c063af19ef5130084db70ada40ce63a84f6c1ef4d3dbc34e5e8c4febb20822"}, + {file = "yarl-1.17.1-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:482c122b72e3c5ec98f11457aeb436ae4aecca75de19b3d1de7cf88bc40db82f"}, + {file = "yarl-1.17.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:380e6c38ef692b8fd5a0f6d1fa8774d81ebc08cfbd624b1bca62a4d4af2f9931"}, + {file = "yarl-1.17.1-cp310-cp310-win32.whl", hash = "sha256:16bca6678a83657dd48df84b51bd56a6c6bd401853aef6d09dc2506a78484c7b"}, + {file = "yarl-1.17.1-cp310-cp310-win_amd64.whl", hash = "sha256:561c87fea99545ef7d692403c110b2f99dced6dff93056d6e04384ad3bc46243"}, + {file = "yarl-1.17.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:cbad927ea8ed814622305d842c93412cb47bd39a496ed0f96bfd42b922b4a217"}, + {file = "yarl-1.17.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:fca4b4307ebe9c3ec77a084da3a9d1999d164693d16492ca2b64594340999988"}, + {file = "yarl-1.17.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:ff5c6771c7e3511a06555afa317879b7db8d640137ba55d6ab0d0c50425cab75"}, + {file = "yarl-1.17.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5b29beab10211a746f9846baa39275e80034e065460d99eb51e45c9a9495bcca"}, + {file = "yarl-1.17.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1a52a1ffdd824fb1835272e125385c32fd8b17fbdefeedcb4d543cc23b332d74"}, + {file = "yarl-1.17.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:58c8e9620eb82a189c6c40cb6b59b4e35b2ee68b1f2afa6597732a2b467d7e8f"}, + {file = "yarl-1.17.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d216e5d9b8749563c7f2c6f7a0831057ec844c68b4c11cb10fc62d4fd373c26d"}, + {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.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:8c79e9d7e3d8a32d4824250a9c6401194fb4c2ad9a0cec8f6a96e09a582c2cc0"}, + {file = "yarl-1.17.1-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:299f11b44d8d3a588234adbe01112126010bd96d9139c3ba7b3badd9829261c3"}, + {file = "yarl-1.17.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:cc7d768260f4ba4ea01741c1b5fe3d3a6c70eb91c87f4c8761bbcce5181beafe"}, + {file = "yarl-1.17.1-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:de599af166970d6a61accde358ec9ded821234cbbc8c6413acfec06056b8e860"}, + {file = "yarl-1.17.1-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:2b24ec55fad43e476905eceaf14f41f6478780b870eda5d08b4d6de9a60b65b4"}, + {file = "yarl-1.17.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:9fb815155aac6bfa8d86184079652c9715c812d506b22cfa369196ef4e99d1b4"}, + {file = "yarl-1.17.1-cp311-cp311-win32.whl", hash = "sha256:7615058aabad54416ddac99ade09a5510cf77039a3b903e94e8922f25ed203d7"}, + {file = "yarl-1.17.1-cp311-cp311-win_amd64.whl", hash = "sha256:14bc88baa44e1f84164a392827b5defb4fa8e56b93fecac3d15315e7c8e5d8b3"}, + {file = "yarl-1.17.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:327828786da2006085a4d1feb2594de6f6d26f8af48b81eb1ae950c788d97f61"}, + {file = "yarl-1.17.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:cc353841428d56b683a123a813e6a686e07026d6b1c5757970a877195f880c2d"}, + {file = "yarl-1.17.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:c73df5b6e8fabe2ddb74876fb82d9dd44cbace0ca12e8861ce9155ad3c886139"}, + {file = "yarl-1.17.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0bdff5e0995522706c53078f531fb586f56de9c4c81c243865dd5c66c132c3b5"}, + {file = "yarl-1.17.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:06157fb3c58f2736a5e47c8fcbe1afc8b5de6fb28b14d25574af9e62150fcaac"}, + {file = "yarl-1.17.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1654ec814b18be1af2c857aa9000de7a601400bd4c9ca24629b18486c2e35463"}, + {file = "yarl-1.17.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7f6595c852ca544aaeeb32d357e62c9c780eac69dcd34e40cae7b55bc4fb1147"}, + {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.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:7e48cdb8226644e2fbd0bdb0a0f87906a3db07087f4de77a1b1b1ccfd9e93685"}, + {file = "yarl-1.17.1-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:d9b6b28a57feb51605d6ae5e61a9044a31742db557a3b851a74c13bc61de5172"}, + {file = "yarl-1.17.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:e594b22688d5747b06e957f1ef822060cb5cb35b493066e33ceac0cf882188b7"}, + {file = "yarl-1.17.1-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:5f236cb5999ccd23a0ab1bd219cfe0ee3e1c1b65aaf6dd3320e972f7ec3a39da"}, + {file = "yarl-1.17.1-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:a2a64e62c7a0edd07c1c917b0586655f3362d2c2d37d474db1a509efb96fea1c"}, + {file = "yarl-1.17.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:d0eea830b591dbc68e030c86a9569826145df485b2b4554874b07fea1275a199"}, + {file = "yarl-1.17.1-cp312-cp312-win32.whl", hash = "sha256:46ddf6e0b975cd680eb83318aa1d321cb2bf8d288d50f1754526230fcf59ba96"}, + {file = "yarl-1.17.1-cp312-cp312-win_amd64.whl", hash = "sha256:117ed8b3732528a1e41af3aa6d4e08483c2f0f2e3d3d7dca7cf538b3516d93df"}, + {file = "yarl-1.17.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:5d1d42556b063d579cae59e37a38c61f4402b47d70c29f0ef15cee1acaa64488"}, + {file = "yarl-1.17.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:c0167540094838ee9093ef6cc2c69d0074bbf84a432b4995835e8e5a0d984374"}, + {file = "yarl-1.17.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:2f0a6423295a0d282d00e8701fe763eeefba8037e984ad5de44aa349002562ac"}, + {file = "yarl-1.17.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e5b078134f48552c4d9527db2f7da0b5359abd49393cdf9794017baec7506170"}, + {file = "yarl-1.17.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d401f07261dc5aa36c2e4efc308548f6ae943bfff20fcadb0a07517a26b196d8"}, + {file = "yarl-1.17.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b5f1ac7359e17efe0b6e5fec21de34145caef22b260e978336f325d5c84e6938"}, + {file = "yarl-1.17.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7f63d176a81555984e91f2c84c2a574a61cab7111cc907e176f0f01538e9ff6e"}, + {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.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:81713b70bea5c1386dc2f32a8f0dab4148a2928c7495c808c541ee0aae614d67"}, + {file = "yarl-1.17.1-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:aa46dce75078fceaf7cecac5817422febb4355fbdda440db55206e3bd288cfb8"}, + {file = "yarl-1.17.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:1ce36ded585f45b1e9bb36d0ae94765c6608b43bd2e7f5f88079f7a85c61a4d3"}, + {file = "yarl-1.17.1-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:2d374d70fdc36f5863b84e54775452f68639bc862918602d028f89310a034ab0"}, + {file = "yarl-1.17.1-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:2d9f0606baaec5dd54cb99667fcf85183a7477f3766fbddbe3f385e7fc253299"}, + {file = "yarl-1.17.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:b0341e6d9a0c0e3cdc65857ef518bb05b410dbd70d749a0d33ac0f39e81a4258"}, + {file = "yarl-1.17.1-cp313-cp313-win32.whl", hash = "sha256:2e7ba4c9377e48fb7b20dedbd473cbcbc13e72e1826917c185157a137dac9df2"}, + {file = "yarl-1.17.1-cp313-cp313-win_amd64.whl", hash = "sha256:949681f68e0e3c25377462be4b658500e85ca24323d9619fdc41f68d46a1ffda"}, + {file = "yarl-1.17.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:8994b29c462de9a8fce2d591028b986dbbe1b32f3ad600b2d3e1c482c93abad6"}, + {file = "yarl-1.17.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:f9cbfbc5faca235fbdf531b93aa0f9f005ec7d267d9d738761a4d42b744ea159"}, + {file = "yarl-1.17.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:b40d1bf6e6f74f7c0a567a9e5e778bbd4699d1d3d2c0fe46f4b717eef9e96b95"}, + {file = "yarl-1.17.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f5efe0661b9fcd6246f27957f6ae1c0eb29bc60552820f01e970b4996e016004"}, + {file = "yarl-1.17.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b5c4804e4039f487e942c13381e6c27b4b4e66066d94ef1fae3f6ba8b953f383"}, + {file = "yarl-1.17.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b5d6a6c9602fd4598fa07e0389e19fe199ae96449008d8304bf5d47cb745462e"}, + {file = "yarl-1.17.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6f4c9156c4d1eb490fe374fb294deeb7bc7eaccda50e23775b2354b6a6739934"}, + {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.1-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:d8a8b74d843c2638f3864a17d97a4acda58e40d3e44b6303b8cc3d3c44ae2d29"}, + {file = "yarl-1.17.1-cp39-cp39-musllinux_1_2_armv7l.whl", hash = "sha256:7fac95714b09da9278a0b52e492466f773cfe37651cf467a83a1b659be24bf71"}, + {file = "yarl-1.17.1-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:c180ac742a083e109c1a18151f4dd8675f32679985a1c750d2ff806796165b55"}, + {file = "yarl-1.17.1-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:578d00c9b7fccfa1745a44f4eddfdc99d723d157dad26764538fbdda37209857"}, + {file = "yarl-1.17.1-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:1a3b91c44efa29e6c8ef8a9a2b583347998e2ba52c5d8280dbd5919c02dfc3b5"}, + {file = "yarl-1.17.1-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:a7ac5b4984c468ce4f4a553df281450df0a34aefae02e58d77a0847be8d1e11f"}, + {file = "yarl-1.17.1-cp39-cp39-win32.whl", hash = "sha256:7294e38f9aa2e9f05f765b28ffdc5d81378508ce6dadbe93f6d464a8c9594473"}, + {file = "yarl-1.17.1-cp39-cp39-win_amd64.whl", hash = "sha256:eb6dce402734575e1a8cc0bb1509afca508a400a57ce13d306ea2c663bad1138"}, + {file = "yarl-1.17.1-py3-none-any.whl", hash = "sha256:f1790a4b1e8e8e028c391175433b9c8122c39b46e1663228158e61e6f915bf06"}, + {file = "yarl-1.17.1.tar.gz", hash = "sha256:067a63fcfda82da6b198fa73079b1ca40b7c9b7994995b6ee38acda728b64d47"}, ] [package.dependencies] @@ -6518,4 +6534,4 @@ testing = ["coverage[toml]", "zope.event", "zope.testing"] [metadata] lock-version = "2.0" python-versions = "^3.11" -content-hash = "640112e60d1b7d8922042a0f07f28f7bb57f667defe3ede55e9e3dbf3aff7512" +content-hash = "2f1bfef17282836499515a115a405e410a4cda257c8525a5fd272f1f5e591230" diff --git a/pyproject.toml b/pyproject.toml index c47f5c1c2..5a2d1e0e4 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -158,6 +158,8 @@ tqdm = "4.66.4" elasticsearch7 = "7.17.9" elasticsearch8 = "8.13.2" polib = "^1.2.0" +azure-identity = "1.13.0" +azure-keyvault-secrets = "4.9.0" # psycopg2 = "2.9.6" psycopg2-binary = "2.9.6" pycountry = "^24.6.1" @@ -176,7 +178,6 @@ optional = true [tool.poetry.group.xpack.dependencies] qingcloud-sdk = "1.2.15" azure-mgmt-subscription = "3.1.1" -azure-identity = "1.13.0" azure-mgmt-compute = "30.0.0" azure-mgmt-network = "23.1.0" google-cloud-compute = "1.15.0"