diff --git a/cypress/e2e/console/admin-panel/packet-broker/networks.spec.js b/cypress/e2e/console/admin-panel/packet-broker/networks.spec.js
index db702ac160..e3a83f2526 100644
--- a/cypress/e2e/console/admin-panel/packet-broker/networks.spec.js
+++ b/cypress/e2e/console/admin-panel/packet-broker/networks.spec.js
@@ -45,7 +45,12 @@ describe('Packet Broker networks', () => {
cy.intercept('/api/v3/pba/home-networks/policies*', {
fixture: 'console/packet-broker/policies-home-network.json',
})
- cy.visit(`${Cypress.config('consoleRootPath')}/admin-panel/packet-broker/networks`)
+ cy.visit(
+ `${Cypress.config(
+ 'consoleRootPath',
+ )}/admin-panel/packet-broker/routing-configuration/networks`,
+ )
+ cy.findByLabelText('Use custom routing policies').check()
const { networks } = this.networks
const networksFiltered = networks.filter(
@@ -73,7 +78,11 @@ describe('Packet Broker networks', () => {
n => n.forwarder_id.net_id === 19 && n.forwarder_id.tenant_id === 'johan',
)
- cy.visit(`${Cypress.config('consoleRootPath')}/admin-panel/packet-broker/networks/19/johan`)
+ cy.visit(
+ `${Cypress.config(
+ 'consoleRootPath',
+ )}/admin-panel/packet-broker/routing-configuration/networks/19/johan`,
+ )
cy.findAllByText(`${network.id.net_id.toString(16).padStart(6, '0')}/${network.id.tenant_id}`)
cy.findByText(
diff --git a/cypress/e2e/console/admin-panel/packet-broker/registration.spec.js b/cypress/e2e/console/admin-panel/packet-broker/registration.spec.js
index 5f4afc5366..4bfd68d939 100644
--- a/cypress/e2e/console/admin-panel/packet-broker/registration.spec.js
+++ b/cypress/e2e/console/admin-panel/packet-broker/registration.spec.js
@@ -61,15 +61,15 @@ describe('Packet Broker registration', () => {
cy.visit(`${Cypress.config('consoleRootPath')}/admin-panel/packet-broker`)
cy.findByText('Packet Broker', { selector: 'h1' }).should('be.visible')
- cy.findByText(/Packet Broker can be used to exchange traffic/).should('be.visible')
- cy.findByText('Packet Broker documentation', { selector: 'a' }).should('be.visible')
+ cy.findByText(/Packet Broker is a service by The Things Industries/).should('be.visible')
+ cy.findByText('Packet Broker', { selector: 'a' }).should('be.visible')
cy.findByText('Packet Broker website', { selector: 'a' }).should('be.visible')
- cy.findByText('Register network', { selector: 'span' }).should('be.visible')
+ cy.findByText('Enable Packet Broker', { selector: 'span' }).should('be.visible')
cy.findByTestId('switch')
.should('be.visible')
.and('not.be.checked')
.and('not.have.attr', 'disabled')
- cy.findByText(/To enable peering/).should('be.visible')
+ cy.findByText(/Enabling will allow/).should('be.visible')
cy.findByText('Default routing policy').should('not.exist')
cy.findByText('Networks').should('not.exist')
@@ -89,18 +89,20 @@ describe('Packet Broker registration', () => {
cy.loginConsole({ user_id: 'admin', password: 'admin' })
cy.visit(`${Cypress.config('consoleRootPath')}/admin-panel/packet-broker`)
- cy.findByText('Register network').click()
- cy.findByText('Register network').next().findByTestId('switch').should('be.checked')
- cy.findByText('List network publicly')
+ cy.findByText('Enable Packet Broker').click()
+ cy.findByText('Enable Packet Broker').next().findByTestId('switch').should('be.checked')
+ cy.findByText('List my network in Packet Broker publicly')
.should('be.visible')
.next()
.findByTestId('switch')
.should('be.checked')
- cy.findByTestId('feature-info-forwarder-enabled').should('be.visible')
- cy.findByTestId('feature-info-home-network-enabled').should('be.visible')
- cy.findByTestId('tabs').findByText('Default routing policy').should('be.visible')
- cy.findByTestId('tabs').findByText('Networks').should('be.visible')
- cy.findByLabelText('Do not use a default routing policy for this network').should('be.checked')
+ cy.findByLabelText('Forward traffic to all networks registered in Packet Broker').should(
+ 'exist',
+ )
+ cy.findByLabelText(
+ 'Forward traffic to The Things Stack Sandbox (community network) only',
+ ).should('exist')
+ cy.findByLabelText('Use custom routing policies').should('exist')
cy.findByTestId('error-notification').should('not.exist')
})
diff --git a/cypress/e2e/console/admin-panel/packet-broker/routing-policies.spec.js b/cypress/e2e/console/admin-panel/packet-broker/routing-policies.spec.js
index 9b9f519f12..be0fee18a5 100644
--- a/cypress/e2e/console/admin-panel/packet-broker/routing-policies.spec.js
+++ b/cypress/e2e/console/admin-panel/packet-broker/routing-policies.spec.js
@@ -32,12 +32,63 @@ describe('Packet Broker routing policies', () => {
cy.loginConsole({ user_id: 'admin', password: 'admin' })
})
- it('succeeds setting a default routing policy', () => {
+ it('succeeds setting a "traffic to all networks" routing configuration', () => {
cy.intercept('GET', '/api/v3/pba/home-networks/policies/default', { statusCode: 404 })
cy.intercept('PUT', '/api/v3/pba/home-networks/policies/default', {})
+ cy.intercept('DELETE', '/api/v3/pba/home-networks/policies/19', {})
+ cy.intercept('DELETE', '/api/v3/pba/home-networks/policies/19/johan', {})
+ cy.intercept('/api/v3/pba/networks*', { fixture: 'console/packet-broker/networks.json' })
+ cy.intercept('/api/v3/pba/home-networks/policies*', {
+ fixture: 'console/packet-broker/policies-home-network.json',
+ })
cy.visit(`${Cypress.config('consoleRootPath')}/admin-panel/packet-broker`)
- cy.findByLabelText('Use default routing policy for this network').check()
+ cy.findByLabelText('Forward traffic to all networks registered in Packet Broker').check()
+ cy.findByRole('button', { name: 'Save routing configuration' }).click()
+
+ cy.findByTestId('error-notification').should('not.exist')
+ cy.findByTestId('toast-notification')
+ .should('be.visible')
+ .findByText('Default routing configuration set')
+ .should('be.visible')
+ })
+
+ it('succeeds setting a "only ttn" routing configuration', () => {
+ cy.intercept('GET', '/api/v3/pba/home-networks/policies/default', { statusCode: 404 })
+ cy.intercept('/api/v3/pba/networks*', { fixture: 'console/packet-broker/networks.json' })
+ cy.intercept('/api/v3/pba/home-networks/policies*', {
+ fixture: 'console/packet-broker/policies-home-network.json',
+ })
+ cy.intercept('DELETE', '/api/v3/pba/home-networks/policies/default', {})
+ cy.intercept('DELETE', '/api/v3/pba/home-networks/policies/19', {})
+ cy.intercept('DELETE', '/api/v3/pba/home-networks/policies/19/johan', {})
+ cy.intercept('PUT', '/api/v3/pba/home-networks/policies/19/ttn', {})
+ cy.visit(`${Cypress.config('consoleRootPath')}/admin-panel/packet-broker`)
+
+ cy.findByLabelText(
+ 'Forward traffic to The Things Stack Sandbox (community network) only',
+ ).check()
+ cy.findByRole('button', { name: 'Save routing configuration' }).click()
+
+ cy.findByTestId('error-notification').should('not.exist')
+ cy.findByTestId('toast-notification')
+ .should('be.visible')
+ .findByText('Default routing configuration set')
+ .should('be.visible')
+ })
+
+ it('succeeds setting a custom routing configuration with a default routing policy', () => {
+ cy.intercept('GET', '/api/v3/pba/home-networks/policies/default', {
+ fixture: 'console/packet-broker/default-policy.json',
+ })
+ cy.intercept('PUT', '/api/v3/pba/home-networks/policies/default', {})
+ cy.intercept('/api/v3/pba/networks*', { fixture: 'console/packet-broker/networks.json' })
+ cy.intercept('/api/v3/pba/home-networks/policies*', {
+ fixture: 'console/packet-broker/policies-home-network.json',
+ })
+ cy.visit(`${Cypress.config('consoleRootPath')}/admin-panel/packet-broker`)
+
+ cy.findByLabelText('Use custom routing policies').check()
// Check routing policy form checkboxes.
cy.findByText('Uplink')
@@ -56,30 +107,35 @@ describe('Packet Broker routing policies', () => {
cy.findByLabelText('MAC data').check()
cy.findByLabelText('Application data').check()
})
- cy.findByRole('button', { name: 'Save default policy' }).click()
+ cy.findByRole('button', { name: 'Save routing configuration' }).click()
cy.findByTestId('error-notification').should('not.exist')
cy.findByTestId('toast-notification')
.should('be.visible')
- .findByText('Default routing policy set')
+ .findByText('Default routing configuration set')
.should('be.visible')
})
it('succeeds unsetting a default routing policy', () => {
+ cy.intercept('PUT', '/api/v3/pba/home-networks/policies/default', {})
+ cy.intercept('/api/v3/pba/networks*', { fixture: 'console/packet-broker/networks.json' })
+ cy.intercept('/api/v3/pba/home-networks/policies*', {
+ fixture: 'console/packet-broker/policies-home-network.json',
+ })
cy.intercept('GET', '/api/v3/pba/home-networks/policies/default', {
- fixture: 'console/packet-broker/default-policy.json',
+ fixture: 'console/packet-broker/default-custom-policy.json',
})
cy.intercept('DELETE', '/api/v3/pba/home-networks/policies/default', {})
cy.visit(`${Cypress.config('consoleRootPath')}/admin-panel/packet-broker`)
cy.findByLabelText('Do not use a default routing policy for this network').check()
- cy.findByRole('button', { name: 'Save default policy' }).click()
+ cy.findByRole('button', { name: 'Save routing configuration' }).click()
cy.findByTestId('error-notification').should('not.exist')
cy.findByTestId('toast-notification')
.should('be.visible')
- .findByText('Default routing policy set')
+ .findByText('Default routing configuration set')
.should('be.visible')
})
@@ -93,7 +149,11 @@ describe('Packet Broker routing policies', () => {
})
cy.intercept('PUT', '/api/v3/pba/home-networks/policies/19', {})
- cy.visit(`${Cypress.config('consoleRootPath')}/admin-panel/packet-broker/networks/19`)
+ cy.visit(
+ `${Cypress.config(
+ 'consoleRootPath',
+ )}/admin-panel/packet-broker/routing-configuration/networks/19`,
+ )
// Check routing policy form checkboxes.
cy.findByLabelText('Use network specific routing policy').check()
@@ -138,7 +198,11 @@ describe('Packet Broker routing policies', () => {
})
cy.intercept('DELETE', '/api/v3/pba/home-networks/policies/19', {})
- cy.visit(`${Cypress.config('consoleRootPath')}/admin-panel/packet-broker/networks/19`)
+ cy.visit(
+ `${Cypress.config(
+ 'consoleRootPath',
+ )}/admin-panel/packet-broker/routing-configuration/networks/19`,
+ )
cy.findByLabelText('Do not use a routing policy for this network').check()
cy.findByRole('button', { name: 'Save routing policy' }).click()
@@ -161,7 +225,11 @@ describe('Packet Broker routing policies', () => {
})
cy.intercept('DELETE', '/api/v3/pba/home-networks/policies/19', {})
- cy.visit(`${Cypress.config('consoleRootPath')}/admin-panel/packet-broker/networks/19`)
+ cy.visit(
+ `${Cypress.config(
+ 'consoleRootPath',
+ )}/admin-panel/packet-broker/routing-configuration/networks/19`,
+ )
cy.findByLabelText('Use default routing policy for this network').check()
cy.findByRole('button', { name: 'Save routing policy' }).click()
diff --git a/cypress/fixtures/console/packet-broker/default-custom-policy.json b/cypress/fixtures/console/packet-broker/default-custom-policy.json
new file mode 100644
index 0000000000..edd8728179
--- /dev/null
+++ b/cypress/fixtures/console/packet-broker/default-custom-policy.json
@@ -0,0 +1,11 @@
+{
+ "updated_at": "2021-06-21T12:09:26.810087Z",
+ "uplink": {
+ "join_request": true,
+ "mac_data": false,
+ "application_data": true,
+ "signal_quality": false,
+ "localization": false
+ },
+ "downlink": { "join_accept": true, "mac_data": false, "application_data": true }
+}
diff --git a/pkg/webui/console/components/default-routing-policy-form/index.js b/pkg/webui/console/components/default-routing-policy-form/index.js
new file mode 100644
index 0000000000..ce33d11b2a
--- /dev/null
+++ b/pkg/webui/console/components/default-routing-policy-form/index.js
@@ -0,0 +1,118 @@
+// Copyright © 2023 The Things Network Foundation, The Things Industries B.V.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+import React, { useCallback, useState } from 'react'
+import { Col, Row } from 'react-grid-system'
+import { defineMessages } from 'react-intl'
+
+import Form, { useFormContext } from '@ttn-lw/components/form'
+import Checkbox from '@ttn-lw/components/checkbox'
+import Radio from '@ttn-lw/components/radio-button'
+
+import Message from '@ttn-lw/lib/components/message'
+
+import sharedMessages from '@ttn-lw/lib/shared-messages'
+
+import policyMessages from '@console/lib/packet-broker/messages'
+
+const m = defineMessages({
+ doNotUseADefaultPolicy: 'Do not use a default routing policy for this network',
+})
+
+const useDefaultEncode = val => val === 'default'
+const useDefaultDecode = val => (val ? 'default' : 'no-default')
+
+const DefaultRoutingPolicyForm = () => {
+ const { values } = useFormContext()
+ const [useDefault, setUseDefault] = useState(values._use_default_policy || false)
+ const handlePolicySourceChange = useCallback(setUseDefault, [setUseDefault])
+
+ return (
+
{value}
for this property.",
"console.containers.device-onboarding-form.warning-tooltip.sessionDescription": "ABP 装置は、セッションと MAC 設定でパーソナライズされます。これらのMAC設定は現在のパラメータとみなされ、ここで入力された設定と正確に一致しなければなりません。ネットワークサーバーは、LoRaWAN MACコマンドでMAC状態を希望する状態に変更するために希望するパラメータを使用します。エンドデバイスを登録した後に、一般設定ページを使用して希望する設定を更新することができます",
"console.containers.device-payload-formatters.messages.defaultFormatter": "こちら をクリックすると、このアプリケーションのデフォルトのペイロードフォーマッターを変更できます",
"console.containers.device-payload-formatters.messages.mayNotViewLink": "このアプリケーションのリンク情報を表示することは許可されていません。これには、このアプリケーションのデフォルトのペイロードフォーマッタを見ることも含まれます",
- "console.containers.device-profile-section.device-card.device-card.productWebsite": "製品ウェブサイト",
- "console.containers.device-profile-section.device-card.device-card.dataSheet": "データシート",
- "console.containers.device-profile-section.device-card.device-card.classA": "クラスA",
- "console.containers.device-profile-section.device-card.device-card.classB": "クラスB",
- "console.containers.device-profile-section.device-card.device-card.classC": "クラスC",
+ "console.containers.device-profile-section.device-card.device-card.productWebsite": "",
+ "console.containers.device-profile-section.device-card.device-card.dataSheet": "",
+ "console.containers.device-profile-section.device-card.device-card.classA": "",
+ "console.containers.device-profile-section.device-card.device-card.classB": "",
+ "console.containers.device-profile-section.device-card.device-card.classC": "",
"console.containers.device-profile-section.device-selection.band-select.index.title": "プロフィール(リージョン)",
- "console.containers.device-profile-section.device-selection.brand-select.brand-select.title": "エンドデバイスのブランド",
- "console.containers.device-profile-section.device-selection.brand-select.brand-select.noOptionsMessage": "該当するブランドはありません",
- "console.containers.device-profile-section.device-selection.fw-version-select.fw-version-select.title": "ファームウェアのバージョン",
- "console.containers.device-profile-section.device-selection.hw-version-select.hw-version-select.title": "ハードウェアのバージョン",
- "console.containers.device-profile-section.device-selection.model-select.model-select.noOptionsMessage": "該当する機種がありません",
+ "console.containers.device-profile-section.device-selection.brand-select.brand-select.title": "",
+ "console.containers.device-profile-section.device-selection.brand-select.brand-select.noOptionsMessage": "",
+ "console.containers.device-profile-section.device-selection.fw-version-select.fw-version-select.title": "",
+ "console.containers.device-profile-section.device-selection.hw-version-select.hw-version-select.title": "",
+ "console.containers.device-profile-section.device-selection.model-select.model-select.noOptionsMessage": "",
"console.containers.device-profile-section.hints.other-hint.hintTitle": "お客様のエンドデバイスはすぐに追加されます!",
"console.containers.device-profile-section.hints.other-hint.hintMessage": "申し訳ありませんが、あなたのデバイスはまだLoRaWANデバイスリポジトリの一部ではありません。エンドデバイスの製造元が提供する情報(製品のデータシートなど)を使用して、上記のenter end device specifics manuallyオプションを使用することができます。また、デバイスの追加に関するドキュメントも参照してください",
- "console.containers.device-profile-section.hints.progress-hint.hintMessage": "あなたの正確なエンドデバイスを見つけることができませんか? ここで助けを得て、上のオプションでエンドデバイスの仕様を手動で入力してみてください。",
- "console.containers.device-profile-section.hints.progress-hint.hintNoSupportMessage": "あなたの正確なエンドデバイスを見つけることができませんか? 上のオプションでエンドデバイスの仕様を手動で入力してみてください",
+ "console.containers.device-profile-section.hints.progress-hint.hintMessage": "",
+ "console.containers.device-profile-section.hints.progress-hint.hintNoSupportMessage": "",
"console.containers.device-template-format-select.index.title": "ファイルフォーマット",
"console.containers.device-template-format-select.index.warning": "エンドデバイスのテンプレートフォーマットが利用できません",
"console.containers.device-title-section.device-title-section.uplinkDownlinkTooltip": "前回のフレームカウンタリセット以降、このエンドデバイスの送信アップリンクと受信ダウンリンクの数です",
@@ -521,17 +519,17 @@
"console.containers.gateway-connection.gateway-connection.connectedTooltip": "このゲートウェイはゲートウェイサーバーに接続されていますが、ネットワークはまだゲートウェイからのアクティビティ(アップリンクやステータスメッセージの送信)を登録していません",
"console.containers.gateway-connection.gateway-connection.otherClusterTooltip": "このゲートウェイは、このクラスタのメッセージを処理しない外部のゲートウェイサーバーに接続されています。そのため、このゲートウェイからのアクティビティを見ることはできません",
"console.containers.gateway-connection.gateway-connection.messageCountTooltip": "最後の(再)接続以降、このゲートウェイの受信アップリンクと送信ダウンリンクの量です。ゲートウェイの種類によっては、頻繁に再接続するため、カウンタがリセットされることに注意してください",
- "console.containers.gateway-location-form.gateway-location-form.updateLocationFromStatus": "ステータスメッセージから更新",
- "console.containers.gateway-location-form.gateway-location-form.updateLocationFromStatusDescription": "受信ステータスメッセージに基づいて、このゲートウェイの位置を更新します",
- "console.containers.gateway-location-form.gateway-location-form.setGatewayLocation": "ゲートウェイアンテナ位置の設定",
- "console.containers.gateway-location-form.gateway-location-form.locationSource": "位置情報ソース",
- "console.containers.gateway-location-form.gateway-location-form.locationPrivacy": "位置情報プライバシー",
- "console.containers.gateway-location-form.gateway-location-form.placement": "配置",
- "console.containers.gateway-location-form.gateway-location-form.indoor": "屋内",
- "console.containers.gateway-location-form.gateway-location-form.outdoor": "屋外",
- "console.containers.gateway-location-form.gateway-location-form.locationFromStatusMessage": "ステータスメッセージから自動的に位置情報を設定",
- "console.containers.gateway-location-form.gateway-location-form.setLocationManually": "位置情報を手動で設定",
- "console.containers.gateway-location-form.gateway-location-form.noLocationSetInfo": "このゲートウェイには位置情報が設定されていません",
+ "console.containers.gateway-location-form.gateway-location-form.updateLocationFromStatus": "",
+ "console.containers.gateway-location-form.gateway-location-form.updateLocationFromStatusDescription": "",
+ "console.containers.gateway-location-form.gateway-location-form.setGatewayLocation": "",
+ "console.containers.gateway-location-form.gateway-location-form.locationSource": "",
+ "console.containers.gateway-location-form.gateway-location-form.locationPrivacy": "",
+ "console.containers.gateway-location-form.gateway-location-form.placement": "",
+ "console.containers.gateway-location-form.gateway-location-form.indoor": "",
+ "console.containers.gateway-location-form.gateway-location-form.outdoor": "",
+ "console.containers.gateway-location-form.gateway-location-form.locationFromStatusMessage": "",
+ "console.containers.gateway-location-form.gateway-location-form.setLocationManually": "",
+ "console.containers.gateway-location-form.gateway-location-form.noLocationSetInfo": "",
"console.containers.gateway-onboarding-form.gateway-provisioning-form.gateway-registration-form-section.index.requireAuthenticatedConnectionDescription": "{packetBrokerURL}など、他のネットワーク参加者が見ることができる情報を選択します",
"console.containers.gateway-onboarding-form.gateway-provisioning-form.gateway-registration-form-section.index.shareGatewayInfoDescription": "ゲートウェイが{loraBasicStationURL}で駆動している場合など、このオプションを選択します",
"console.containers.gateway-onboarding-form.gateway-provisioning-form.gateway-registration-form-section.validation-schema.validateEntry": "",
@@ -564,36 +562,36 @@
"console.containers.move-away-modal.move-away-modal.modalMessage": "本当にこのままでよいのですか?あなたの現在の変更はまだ保存されていません",
"console.containers.network-information-container.index.openSourceInfo": "現在、The Things Stack Open Sourceを使用しています。The Things Stack Cloudを使用することで、さらなる機能を利用できます。",
"console.containers.network-information-container.index.plansButton": "The Things Stack Cloudを始めましょう",
- "console.containers.network-information-container.registry-totals.applicationsUsed": "使用アプリケーション",
- "console.containers.network-information-container.registry-totals.gatewaysUsed": "使用ゲートウェイ",
- "console.containers.network-information-container.registry-totals.registeredUsers": "登録ユーザー",
- "console.containers.network-information-container.registry-totals.endDevicesAdded": "エンドデバイスの追加",
- "console.containers.organization-form.form.orgDescPlaceholder": "新しい組織の説明",
- "console.containers.organization-form.form.orgDescDescription": "組織の説明(任意)。組織に関するメモを保存するためにも使用できます",
- "console.containers.organization-form.form.orgIdPlaceholder": "my-new-organization",
- "console.containers.organization-form.form.orgNamePlaceholder": "私の新組織",
- "console.containers.organization-form.form.adminContactDescription": "この組織の管理者連絡先情報。通常、組織に関する管理的な質問をするべき連絡先を示すために使用されます。",
- "console.containers.organization-form.form.techContactDescription": "この組織の技術連絡先情報。通常、組織に関する技術/セキュリティの質問をするべき連絡先を示すために使用されます。",
- "console.containers.organization-form.update.deleteOrg": "組織を削除",
- "console.containers.organization-form.update.updateSuccess": "組織が更新されました",
- "console.containers.organization-form.update.deleteSuccess": "削除された組織",
+ "console.containers.network-information-container.registry-totals.applicationsUsed": "",
+ "console.containers.network-information-container.registry-totals.gatewaysUsed": "",
+ "console.containers.network-information-container.registry-totals.registeredUsers": "",
+ "console.containers.network-information-container.registry-totals.endDevicesAdded": "",
+ "console.containers.organization-form.form.orgDescPlaceholder": "",
+ "console.containers.organization-form.form.orgDescDescription": "",
+ "console.containers.organization-form.form.orgIdPlaceholder": "",
+ "console.containers.organization-form.form.orgNamePlaceholder": "",
+ "console.containers.organization-form.form.adminContactDescription": "",
+ "console.containers.organization-form.form.techContactDescription": "",
+ "console.containers.organization-form.update.deleteOrg": "",
+ "console.containers.organization-form.update.updateSuccess": "",
+ "console.containers.organization-form.update.deleteSuccess": "",
"console.containers.organizations-table.index.restoreSuccess": "復元された組織",
"console.containers.organizations-table.index.restoreFail": "エラーが発生し、組織を復元することができませんでした",
"console.containers.organizations-table.index.purgeSuccess": "パージされた組織",
"console.containers.organizations-table.index.purgeFail": "エラーが発生したため、組織をパージすることができませんでした",
- "console.containers.owners-select.owners-select.title": "所有者",
- "console.containers.owners-select.owners-select.warning": "エラーが発生し、組織の一覧を表示できませんでした",
+ "console.containers.owners-select.owners-select.title": "",
+ "console.containers.owners-select.owners-select.warning": "",
"console.containers.packet-broker-networks-table.index.nonDefaultPolicies": "デフォルトでないポリシーを持つネットワーク",
"console.containers.packet-broker-networks-table.index.search": "テナントID、テナント名で検索",
"console.containers.packet-broker-networks-table.index.forwarderPolicy": "私たちに対する彼らのルーティングポリシー",
"console.containers.packet-broker-networks-table.index.homeNetworkPolicy": "それらに対する当社のルーティングポリシー",
"console.containers.pubsub-formats-select.index.warning": "Pub/Subフォーマットが無効です",
"console.containers.pubsubs-table.index.host": "サーバーホスト",
- "console.containers.user-data-form.edit.deleteWarning": "これにより、このアカウントは永久に削除され、再登録のためにユーザーIDおよび電子メールがロックされます。このユーザーが所有し、他の協力者がいない関連エンティティ(ゲートウェイ、アプリケーション、エンドデバイスなど)は接続不能となり、同じIDまたはEUIを持つエンティティを再び登録することはできなくなります。このようなエンティティを継続して使用する場合は、必ず新しいコラボレーターを割り当ててください",
- "console.containers.user-data-form.edit.purgeWarning": "これにより、このアカウントは永久に削除されます。このユーザーが所有し、他の協力者がいない関連エンティティ(ゲートウェイ、アプリケーション、エンドデバイスなど)は接続不能となり、同じIDまたはEUIを持つエンティティを再び登録することはできなくなります。このようなエンティティの使用を継続する場合は、必ず新しい共同作業者を割り当ててください",
- "console.containers.user-data-form.edit.deleteConfirmMessage": "確認のため、このユーザーのユーザーIDを入力してください",
- "console.containers.user-data-form.edit.updateSuccess": "ユーザーが更新しました",
- "console.containers.user-data-form.edit.deleteSuccess": "ユーザー削除",
+ "console.containers.user-data-form.edit.deleteWarning": "",
+ "console.containers.user-data-form.edit.purgeWarning": "",
+ "console.containers.user-data-form.edit.deleteConfirmMessage": "",
+ "console.containers.user-data-form.edit.updateSuccess": "",
+ "console.containers.user-data-form.edit.deleteSuccess": "",
"console.containers.users-table.index.invite": "ユーザーを招待",
"console.containers.users-table.index.revokeInvitation": "この招待を取り消し",
"console.containers.users-table.index.sentAt": "送信済み",
@@ -671,51 +669,49 @@
"console.lib.packet-broker.messages.gatewayStatusDescription": "ゲートウェイがオンラインかオフラインかを表示します",
"console.lib.packet-broker.messages.gatewayPacketRatesLabel": "パケットレート",
"console.lib.packet-broker.messages.gatewayPacketRatesDescription": "受信・送信パケットレート",
- "console.store.middleware.logics.packet-broker.unauthenticatedErrorTitle": "オーソライズできません",
- "console.store.middleware.logics.packet-broker.unauthenticatedErrorMessage": "コンソールは、Packet Brokerエージェントへのリクエストを認証することができません。The Things StackのPacket Broker機能が正しく設定されていることを確認してください。上記のドキュメントを参照することで、より詳細なガイダンスが得られます",
- "console.store.middleware.logics.users.errEmailValidationActionSuccess": "確認メールが送信されました(迷惑メールフォルダも確認してください)",
- "console.store.middleware.logics.users.errEmailValidationActionFailure": "エラーが発生し、確認メールを送信できませんでした。",
- "console.store.middleware.logics.users.errEmailValidationAlreadySent": "最近、あなたのメールアドレスに確認メールが送信されました。迷惑メールフォルダも確認してください。",
- "console.views.admin-packet-broker.messages.packetBrokerInfoText": "Packet Brokerは、他のLoRaWANネットワークとトラフィックを交換(ピアリング)することで、カバレッジを共有し、ネットワーク全体のパフォーマンスを向上させるために使用することができます",
- "console.views.admin-packet-broker.messages.packetBrokerWebsite": "Packer Brokerのサイト",
- "console.views.admin-packet-broker.messages.registrationStatus": "登録状況",
- "console.views.admin-packet-broker.messages.registerNetwork": "ネットワーク登録",
- "console.views.admin-packet-broker.messages.networkVisibility": "ネットワークの可視化",
- "console.views.admin-packet-broker.messages.packetBrokerRegistrationDesc": "ご自宅のネットワークから、またはご自宅のネットワークへのピアリングを可能にするには、ご自宅のネットワークを登録する必要があります。これにより、お客様のネットワークがPacket Brokerに認識され、お客様のネットワークのピアリング動作を設定することができます",
- "console.views.admin-packet-broker.messages.packetBrokerDisabledDesc": "The Things Stackは、Packet Brokerを使用するための設定はされていません。Packet BrokerとピアリングするためのThe Things Stackのセットアップ方法については、上記のドキュメントリンクを参照してください",
- "console.views.admin-packet-broker.messages.packetBrokerRegistrationDisabledDesc": "The Things Stackは、Packet Brokerを使用するように設定されていますが、セキュリティの設定により、ここでネットワークを登録することはできません(解除)。登録の管理は、Packet Brokerにお問い合わせください。連絡先については、上記のドキュメントリンクを参照してください",
- "console.views.admin-packet-broker.messages.network": "ネットワーク: {network}",
- "console.views.admin-packet-broker.messages.homeNetworkEnabled": "ホームネットワーク有効",
- "console.views.admin-packet-broker.messages.homeNetworkDisabled": "ホームネットワーク無効",
- "console.views.admin-packet-broker.messages.forwarderEnabled": "フォワ―ダ―ネットワーク 有効",
- "console.views.admin-packet-broker.messages.forwarderDisabled": "フォワ―ダ―ネットワーク 無効",
- "console.views.admin-packet-broker.messages.listNetwork": "ネットワーク公開で一覧表示",
- "console.views.admin-packet-broker.messages.listNetworkDesc": "ネットワークをリストアップすることで、他のネットワーク管理者があなたのネットワークを見ることができます。これにより、他のネットワーク管理者は、あなたのネットワークでルーティングポリシーを簡単に設定することができます",
- "console.views.admin-packet-broker.messages.unlistNetwork": "このネットワークをアンリスト化",
- "console.views.admin-packet-broker.messages.confirmUnlist": "アンリストを確認",
- "console.views.admin-packet-broker.messages.Are you sure you want to unlist your network in Packet Broker?{lineBreak}This will hide your network. Other network administrators will not be able to see your network to configure routing policies.": "PacketBrokerに登録されていないネットワークは、本当に登録されていないのでしょうか?他のネットワーク管理者は、ルーティングポリシーを設定するためにあなたのネットワークを見ることができなくなります",
- "console.views.admin-packet-broker.messages.routingPolicyInformation": "以下のチェックボックスを使用して、ネットワークのデフォルトの転送動作を制御することができます。さらに、[ネットワーク]タブでネットワークごとのルーティングポリシーを個別に設定することもできます",
- "console.views.admin-packet-broker.messages.defaultRoutingPolicySet": "デフォルトのルーティングポリシー設定",
- "console.views.admin-packet-broker.messages.routingPolicySet": "ルーティングポリシーセット",
- "console.views.admin-packet-broker.messages.defaultRoutingPolicy": "既定のルーティングポリシー",
- "console.views.admin-packet-broker.messages.devAddressBlock": "デバイスアドレスブロック",
- "console.views.admin-packet-broker.messages.devAddressBlocks": "デバイスアドレスブロック",
- "console.views.admin-packet-broker.messages.lastPolicyChange": "最後の方針変更",
- "console.views.admin-packet-broker.messages.networkId": "ネットワークID",
- "console.views.admin-packet-broker.messages.routingPolicyFromThisNetwork": "このネットワークの当社に対するルーティングポリシー",
- "console.views.admin-packet-broker.messages.routingPolicyToThisNetwork": "このネットワークに対するルーティングポリシーを設定します",
- "console.views.admin-packet-broker.messages.saveRoutingPolicy": "ルーティングポリシーの保存",
- "console.views.admin-packet-broker.messages.noPolicySet": "ポリシーはまだ決まっていません",
- "console.views.admin-packet-broker.messages.prefixes": "プレフィクス",
- "console.views.admin-packet-broker.messages.homeNetworkClusterId": "ホームネットワーククラスターID",
- "console.views.admin-packet-broker.messages.backToAllNetworks": "すべてのネットワークへ戻る",
- "console.views.admin-packet-broker.messages.deregisterNetwork": "このネットワークの登録解除",
- "console.views.admin-packet-broker.messages.confirmDeregister": "登録解除の確認",
- "console.views.admin-packet-broker.messages.Are you sure you want to deregister your network from Packet Broker?{lineBreak}This will permanently delete<.b> all routing policies and may stop traffic from flowing.{lineBreak}Traffic may still be forwarded to your network based on default routing policies configured by forwarders.": "Packet Brokerからネットワークの登録を解除してよろしいですか? {lineBreak}すべてのルーティングポリシーが永久に削除されるため、トラフィックが流れなくなる可能性があります。{lineBreak}フォワーダが設定したデフォルトのルーティングポリシーに基づき、トラフィックがネットワークに転送される可能性はあります",
- "console.views.admin-packet-broker.messages.defaultGatewayVisibility": "デフォルトゲートウェイの可視化",
- "console.views.admin-packet-broker.messages.gatewayVisibilityInformation": "チェックボックスを使用して、ゲートウェイの情報を表示するように制御することができます。この情報は、登録されたネットワークだけでなく、一般にも公開されることに注意してください",
- "console.views.admin-packet-broker.messages.defaultGatewayVisibilitySet": "デフォルトゲートウェイの可視化設定",
- "console.views.admin-packet-broker.messages.packetBrokerStatusPage": "Packet Broker ステータスページ",
+ "console.store.middleware.logics.packet-broker.unauthenticatedErrorTitle": "",
+ "console.store.middleware.logics.packet-broker.unauthenticatedErrorMessage": "",
+ "console.store.middleware.logics.users.errEmailValidationActionSuccess": "",
+ "console.store.middleware.logics.users.errEmailValidationActionFailure": "",
+ "console.store.middleware.logics.users.errEmailValidationAlreadySent": "",
+ "console.views.admin-packet-broker.messages.packetBrokerInfoText": "",
+ "console.views.admin-packet-broker.messages.packetBrokerWebsite": "",
+ "console.views.admin-packet-broker.messages.learnMore": "",
+ "console.views.admin-packet-broker.messages.whyNetworkPeeringTitle": "",
+ "console.views.admin-packet-broker.messages.whyNetworkPeeringText": "",
+ "console.views.admin-packet-broker.messages.enbaling": "",
+ "console.views.admin-packet-broker.messages.packetBrokerDisabledDesc": "",
+ "console.views.admin-packet-broker.messages.enablePacketBroker": "",
+ "console.views.admin-packet-broker.messages.packetBrokerRegistrationDesc": "",
+ "console.views.admin-packet-broker.messages.routingConfig": "",
+ "console.views.admin-packet-broker.messages.network": "",
+ "console.views.admin-packet-broker.messages.listNetwork": "",
+ "console.views.admin-packet-broker.messages.listNetworkDesc": "",
+ "console.views.admin-packet-broker.messages.unlistNetwork": "",
+ "console.views.admin-packet-broker.messages.confirmUnlist": "",
+ "console.views.admin-packet-broker.messages.Are you sure you want to unlist your network in Packet Broker?{lineBreak}This will hide your network. Other network administrators will not be able to see your network to configure routing policies.": "",
+ "console.views.admin-packet-broker.messages.routingPolicyInformation": "",
+ "console.views.admin-packet-broker.messages.defaultRoutingPolicySet": "",
+ "console.views.admin-packet-broker.messages.routingPolicySet": "",
+ "console.views.admin-packet-broker.messages.defaultRoutingPolicy": "",
+ "console.views.admin-packet-broker.messages.devAddressBlock": "",
+ "console.views.admin-packet-broker.messages.devAddressBlocks": "",
+ "console.views.admin-packet-broker.messages.lastPolicyChange": "",
+ "console.views.admin-packet-broker.messages.networkId": "",
+ "console.views.admin-packet-broker.messages.routingPolicyFromThisNetwork": "",
+ "console.views.admin-packet-broker.messages.routingPolicyToThisNetwork": "",
+ "console.views.admin-packet-broker.messages.saveRoutingPolicy": "",
+ "console.views.admin-packet-broker.messages.noPolicySet": "",
+ "console.views.admin-packet-broker.messages.prefixes": "",
+ "console.views.admin-packet-broker.messages.homeNetworkClusterId": "",
+ "console.views.admin-packet-broker.messages.backToAllNetworks": "",
+ "console.views.admin-packet-broker.messages.deregisterNetwork": "",
+ "console.views.admin-packet-broker.messages.confirmDeregister": "",
+ "console.views.admin-packet-broker.messages.Are you sure you want to deregister your network from Packet Broker?{lineBreak}This will permanently delete<.b> all routing policies and may stop traffic from flowing.{lineBreak}Traffic may still be forwarded to your network based on default routing policies configured by forwarders.": "",
+ "console.views.admin-packet-broker.messages.defaultGatewayVisibility": "",
+ "console.views.admin-packet-broker.messages.gatewayVisibilityInformation": "",
+ "console.views.admin-packet-broker.messages.defaultGatewayVisibilitySet": "",
+ "console.views.admin-packet-broker.messages.packetBrokerStatusPage": "",
"console.views.application-add.index.appDescription": "アプリケーション内では、エンドデバイスとそのネットワークデータを登録、管理することができます。デバイス群を設定した後、多くの統合オプションの1つを使用して、関連データを外部サービスに渡します。Adding Applications に関するガイドで詳しく説明しています",
"console.views.application-integrations-lora-cloud.index.loraCloudInfoText": "LoRaWANネットワークやLoRaベースのデバイスに関連する一般的なタスクのシンプルなソリューションを可能にする付加価値の高いAPIをローラクラウドが提供します。以下からLoRaCloudのインテグレーションを設定することができます",
"console.views.application-integrations-lora-cloud.index.officialLoRaCloudDocumentation": "オフィシャル LoRa Cloud ドキュメンテーション",
@@ -745,40 +741,40 @@
"console.views.device-general-settings.application-server-form.index.include": "ペイロード暗号の強制",
"console.views.device-general-settings.application-server-form.index.default": "アプリケーションのデフォルトを使用",
"console.views.device-general-settings.application-server-form.index.skipCryptoTitle": "ペイロード暗号の上書き",
- "console.views.device-general-settings.identity-server-form.index.unclaimAndDeleteDevice": "エンドデバイスのアンクレームと削除",
- "console.views.device-general-settings.identity-server-form.index.deleteDevice": "エンドデバイスの削除",
- "console.views.device-general-settings.identity-server-form.index.deleteWarning": "{deviceId} \"を削除してよろしいでしょうか?この操作は元に戻すことができず、終了したデバイスIDを再利用することはできません",
- "console.views.device-general-settings.messages.isTitle": "ベーシック",
- "console.views.device-general-settings.messages.isDescription": "説明、クラスタ情報、メタデータ",
- "console.views.device-general-settings.messages.isDescriptionMissing": "アイデンティティサーバーは利用できません",
- "console.views.device-general-settings.messages.asTitle": "アプリケーションレイヤー",
- "console.views.device-general-settings.messages.asDescription": "アプリケーションレイヤーの動作とセッション",
- "console.views.device-general-settings.messages.asDescriptionMissing": "アプリケーションサーバーは利用できません",
- "console.views.device-general-settings.messages.asDescriptionOTAA": "参加したOTAAエンドデバイスのキーのみがアプリケーションサーバに保存されます",
- "console.views.device-general-settings.messages.jsTitle": "Join設定",
- "console.views.device-general-settings.messages.jsDescription": "エンドデバイスのアクティベーションのためのルートキーとネットワーク設定",
- "console.views.device-general-settings.messages.jsDescriptionMissing": "Joinサーバーは利用できません",
- "console.views.device-general-settings.messages.jsDescriptionOTAA": "ABP/マルチキャストのエンドデバイスはJoinサーバーに保存されません",
- "console.views.device-general-settings.messages.nsTitle": "ネットワークレイヤー",
- "console.views.device-general-settings.messages.nsDescription": "LoRaWANネットワーク層の設定、動作、セッション",
- "console.views.device-general-settings.messages.nsDescriptionMissing": "ネットワークサーバーは利用できません",
- "console.views.device-general-settings.messages.deleteSuccess": "エンドデバイス削除",
- "console.views.device-general-settings.messages.deleteFailure": "エラーが発生し、エンドデバイスを削除できませんでした",
- "console.views.device-general-settings.messages.activationModeUnknown": "ネットワークサーバーが利用できないため、アクティベーションモードが不明です",
- "console.views.device-general-settings.messages.notInCluster": "このクラスタに登録されていません",
- "console.views.device-general-settings.messages.updateSuccess": "エンドデバイスの更新",
- "console.views.device-general-settings.messages.keysResetWarning": "エンドデバイスのキーの閲覧は禁止されていますが、上書きは許可されています",
- "console.views.device-general-settings.messages.unclaimFailure": "エラーが発生し、エンドデバイスをアンクレイムして削除することができませんでした",
- "console.views.device-general-settings.messages.validateSessionKey": "{field}は0以外の値でなければなりません",
- "console.views.device-general-settings.messages.resetUsedDevNonces": "使用したDevNoncesをリセット",
- "console.views.device-general-settings.messages.resetUsedDevNoncesModal": "{break}{break}使用済みDevNoncesをリセットすると、過去のNoncesを使用したリプレイアタックが可能になります。エンドデバイスのNVRAMをリセットしていない限り、このオプションは使用しないでください",
- "console.views.device-general-settings.messages.resetSuccess": "中古DevNoncesリセット",
- "console.views.device-general-settings.messages.resetFailure": "エラーが発生し、使用中のDevNoncesをリセットすることができませんでした",
- "console.views.device-general-settings.network-server-form.index.resetTitle": "セッションおよびMAC状態のリセット",
- "console.views.device-general-settings.network-server-form.index.resetButtonTitle": "セッションとMACの状態をリセット",
- "console.views.device-general-settings.network-server-form.index.resetSuccess": "エンドデバイスのリセット",
- "console.views.device-general-settings.network-server-form.index.resetFailure": "エラーが発生し、エンドデバイスのセッションとMACの状態をリセットすることができませんでした",
- "console.views.device-general-settings.network-server-form.index.modalMessage": "このエンドデバイスのセッションコンテキストとMACの状態をリセットしていいですか? これにより、以下のような影響があります: