Skip to content

Commit

Permalink
feat(ui): progressive rollout (#587)
Browse files Browse the repository at this point in the history
  • Loading branch information
bimalgrg519 authored Feb 28, 2024
1 parent 8e7bf53 commit a281a21
Show file tree
Hide file tree
Showing 34 changed files with 3,917 additions and 1,088 deletions.
46 changes: 40 additions & 6 deletions ui/web-v2/apps/admin/src/assets/lang/en.json
Original file line number Diff line number Diff line change
Expand Up @@ -93,24 +93,34 @@
"auditLog.sort.oldest": "Oldest",
"autoOps.active": "Active",
"autoOps.clauseType": "Rule type",
"autoOps.completed": "Completed",
"autoOps.condition": "Condition",
"autoOps.createAnOperation": "Create An Operation",
"autoOps.currentEventRate": "Current Event Rate",
"autoOps.daily": "Daily",
"autoOps.dateIncreasingOrder": "The date must be in increasing order.",
"autoOps.datetime.datetime": "Date time",
"autoOps.datetimeClauseType": "Schedule",
"autoOps.deleteOperation": "Delete Operation",
"autoOps.deleteKillSwitch": "Delete Kill Switch",
"autoOps.deleteProgressiveRollout": "Delete Progressive Rollout",
"autoOps.deleteSchedule": "Delete Schedule",
"autoOps.disableFeatureType": "Disable feature",
"autoOps.editOperation": "Edit Operation",
"autoOps.editKillSwitch": "Edit Kill Switch",
"autoOps.editSchedule": "Edit Schedule",
"autoOps.enable": "Enable",
"autoOps.enableFeatureType": "Enable feature",
"autoOps.enableOperation": "Enable Operation",
"autoOps.evaluationCount": "Evaluation Count",
"autoOps.eventRate": "Event Rate",
"autoOps.eventRateClauseType": "Event rate",
"autoOps.executeAt": "Execute at",
"autoOps.finished": "Finished",
"autoOps.frequency": "Frequency",
"autoOps.goalCount": "Goal Count",
"autoOps.hourly": "Hourly",
"autoOps.increment": "Increment",
"autoOps.killSwitch": "Kill Switch",
"autoOps.killSwitchOperation": "Kill Switch Operation",
"autoOps.manual": "Manual",
"autoOps.minimumGoalCount": "Minimum Goal Count",
"autoOps.operation": "Operation",
"autoOps.operationDetails": "Operation Details",
Expand All @@ -119,12 +129,22 @@
"autoOps.opsEventRateClause.goal": "Goal",
"autoOps.opsEventRateClause.minCount": "Minimum count",
"autoOps.progressInformation": "Progress information",
"autoOps.progressiveRollout": "Progressive Rollout",
"autoOps.rule": "Rule",
"autoOps.schedule": "Schedule",
"autoOps.startDate": "Start Date",
"autoOps.stopProgressiveRollout": "Stop Progressive Rollout",
"autoOps.stoppedByKillSwitch": "{clockIcon} Stopped {relativeDate} by {stoppedByIcon} Kill Switch",
"autoOps.stoppedBySchedule": "{clockIcon} Stopped {relativeDate} by {stoppedByIcon} Schedule",
"autoOps.stoppedByUser": "{clockIcon} Stopped {relativeDate} by {stoppedByIcon} User",
"autoOps.template": "Template",
"autoOps.threshold": "Threshold",
"autoOps.timeInterval5MinutesApart": "The scheduled time interval must be at least 5 minutes apart.",
"autoOps.totalGoalCountEvents": "Total Goal Count Events",
"autoOps.updateAnOperation": "Update An Operation",
"autoOps.weekly": "Weekly",
"autoOps.weight": "Weight",
"autoOps.weightIncreasingOrder": "The weight must be in increasing order.",
"button.add": "Add",
"button.addCondition": "Add condition",
"button.addOperation": "Add operation",
Expand All @@ -134,13 +154,15 @@
"button.cancel": "Cancel",
"button.clearAll": "Clear All",
"button.copyFlags": "Copy flags",
"button.delete": "Delete",
"button.disable": "Disable",
"button.edit": "Edit",
"button.enable": "Enable",
"button.result": "Result",
"button.save": "Save",
"button.saveWithComment": "Save with comment",
"button.schedule": "Schedule",
"button.stop": "Stop",
"button.submit": "Submit",
"close": "Close",
"copy.copied": "Copied!",
Expand All @@ -153,6 +175,7 @@
"error": "Error",
"experiment.action.archive": "Archive",
"experiment.action.archiveTooltip": "Please stop the experiment before archiving.",
"experiment.add.hasProgressiveRollout": "The selected feature flag has a {link}. Please stop or delete it before creating the experiment.",
"experiment.add.header.description": "Get started by filling in the information below to create your new experiment.",
"experiment.add.header.title": "Create a experiment",
"experiment.baselineVariation": "Baseline variation",
Expand Down Expand Up @@ -244,6 +267,7 @@
"feature.confirm.unarchiveDescription": "Are you sure you want to unarchive the feature flag \"{featureId}\"?",
"feature.confirm.unarchiveTitle": "Unarchive Feature Flag",
"feature.defaultStrategy": "Default strategy",
"feature.documentation": "Documentation",
"feature.filter.archived": "Archived",
"feature.filter.enabled": "Enabled",
"feature.filter.hasExperiment": "Has experiment",
Expand All @@ -257,6 +281,7 @@
"feature.flagStatus.new": "New",
"feature.flagStatus.receivingRequests": "Receiving requests",
"feature.id": "ID",
"feature.isProgressiveRolloutsRunning": "While a progressive rollout is in progress, new variations cannot be added, but changes can be made.",
"feature.last14Days": "Last 14 days",
"feature.last24Hours": "Last 24 hours",
"feature.last30Days": "Last 30 days",
Expand All @@ -272,6 +297,7 @@
"feature.prerequisites": "Prerequisites",
"feature.resetRandomSampling": "Reset random sampling",
"feature.rule": "Rule rollout percentage",
"feature.runningProgressiveRolloutMessage": "To update the Default Strategy, you must stop or delete the current {link}",
"feature.search.placeholder": "ID, Name, Description",
"feature.selectFlag": "Select a feature flag",
"feature.selectVariation": "Select a variation",
Expand Down Expand Up @@ -321,10 +347,8 @@
"goal.update.header.description": "The goal lets you measure user behaviors affected by your feature flags in experiments.",
"goal.update.header.title": "Update the goal",
"id": "ID",
"infoBlocks.killSwitch": "Kill Switch",
"infoBlocks.killSwitchInfo": "Turn off automatically a flag based on KPI events",
"infoBlocks.progressiveRollout": "Progressive Rollout",
"infoBlocks.progressiveRolloutInfo": "Coming soon",
"infoBlocks.progressiveRolloutInfo": "Automate to release a feature progressively",
"infoBlocks.scheduleInfo": "Schedule a flag to turn on or off",
"infoBlocks.title": "You can safely switch a flag on and off by using auto operations",
"input.destinationEnvironment": "Destination environment",
Expand Down Expand Up @@ -388,6 +412,12 @@
"notification.sort.oldest": "Oldest",
"notification.update.header.description": "A notification lets you know when someone adds or updates something on the admin console and operational tasks status.",
"notification.update.header.title": "Update the notification",
"progressiveRolloutWarningMessages.alreadyProgressiveRollout": "Cannot execute more than one progressive rollout at the same time.",
"progressiveRolloutWarningMessages.experimentOnProgress": "To create a Progressive Rollout, you must stop the current {link}.",
"progressiveRolloutWarningMessages.moreInformation": "For more information, please see the {link}.",
"progressiveRolloutWarningMessages.progressiveRolloutInProgress": "There is a {link} in progress. It will stop it.",
"progressiveRolloutWarningMessages.title": "The progressive rollout cannot be created. Please check the following conditions.",
"progressiveRolloutWarningMessages.variations": "The flag must have only 2 variations.",
"push.add.header.description": "By using the push feature, the SDK can be updated in real-time. Every time a feature flag is updated, a notification is sent to the client.",
"push.add.header.title": "Create a push",
"push.confirm.delete.description": "The {pushName} push will be deleted permanently.",
Expand Down Expand Up @@ -509,6 +539,9 @@
"total": "Total",
"trigger.action": "Action",
"trigger.addTrigger": "Add Trigger",
"trigger.deleteKillSwitchDescription": "The kill switch will be deleted permanently.",
"trigger.deleteProgressiveRolloutDescription": "The progressive rollout will be deleted permanently.",
"trigger.deleteScheduleDescription": "The schedule will be deleted permanently.",
"trigger.deleteTrigger": "Delete Trigger",
"trigger.deleteTriggerDialogBtnTxt": "Delete",
"trigger.deleteTriggerDialogMessage": "The trigger will be deleted permanently.",
Expand All @@ -523,6 +556,7 @@
"trigger.resetTriggerDialogMessage": "The current URL will become invalid. Ensure that you copy and store the new URL.",
"trigger.resetTriggerDialogTitle": "Reset Trigger URL",
"trigger.resetURL": "Reset URL",
"trigger.stopProgressiveRolloutDescription": "The progressive rollout will be stopped.",
"trigger.triggerType": "Type",
"trigger.triggerURL": "Trigger URL",
"trigger.triggerUrlDescription": "Once you leave this page, the URL will be hidden.",
Expand Down
45 changes: 40 additions & 5 deletions ui/web-v2/apps/admin/src/assets/lang/ja.json
Original file line number Diff line number Diff line change
Expand Up @@ -97,20 +97,31 @@
"autoOps.condition": "条件",
"autoOps.createAnOperation": "オペレーションの追加",
"autoOps.currentEventRate": "現在のイベントレート",
"autoOps.daily": "",
"autoOps.dateIncreasingOrder": "日付は昇順で設定する必要があります。",
"autoOps.datetime.datetime": "日時",
"autoOps.datetimeClauseType": "スケジュール",
"autoOps.deleteOperation": "オペレーションを削除",
"autoOps.deleteKillSwitch": "キルスイッチの削除",
"autoOps.deleteProgressiveRollout": "プログレッシブロールアウトの削除",
"autoOps.deleteSchedule": "スケジュールを削除",
"autoOps.disableFeatureType": "フィーチャーフラグ無効化",
"autoOps.editOperation": "オペレーションを編集",
"autoOps.editKillSwitch": "キルスイッチを編集",
"autoOps.editSchedule": "スケジュールを編集",
"autoOps.enable": "有効",
"autoOps.enableFeatureType": "フィーチャーフラグ有効化",
"autoOps.enableOperation": "有効化オペレーション",
"autoOps.evaluationCount": "エバリュエーションカウント",
"autoOps.eventRate": "イベントレート",
"autoOps.eventRateClauseType": "イベントレート",
"autoOps.finished": "終了",
"autoOps.executeAt": "実行日時",
"autoOps.frequency": "頻度",
"autoOps.goalCount": "コールカウント",
"autoOps.hourly": "",
"autoOps.increment": "インクリメント",
"autoOps.killSwitch": "キルスイッチ",
"autoOps.killSwitchOperation": "キルスイッチオペレーション",
"autoOps.manual": "手動",
"autoOps.minimumGoalCount": "最低ゴールイベント数",
"autoOps.operation": "オペレーション",
"autoOps.operationDetails": "オペレーション詳細",
Expand All @@ -119,12 +130,22 @@
"autoOps.opsEventRateClause.goal": "ゴール",
"autoOps.opsEventRateClause.minCount": "最低カウント",
"autoOps.progressInformation": "進捗状況",
"autoOps.progressiveRollout": "プログレッシブロールアウト",
"autoOps.rule": "ルール",
"autoOps.schedule": "スケジュール",
"autoOps.startDate": "日付",
"autoOps.stopProgressiveRollout": "プログレッシブロールアウトの終了",
"autoOps.stoppedByKillSwitch": "{stoppedByIcon}キルスイッチによって停止{clockIcon}{relativeDate}",
"autoOps.stoppedBySchedule": "{stoppedByIcon}スケジュールによって停止{clockIcon}{relativeDate}",
"autoOps.stoppedByUser": "{stoppedByIcon}ユーザーによって停止{clockIcon}{relativeDate}",
"autoOps.template": "テンプレート",
"autoOps.threshold": "スレッショルド",
"autoOps.timeInterval5MinutesApart": "スケジュールされた時間の間隔を少なくとも5分以上空ける必要があります",
"autoOps.totalGoalCountEvents": "合計ゴールイベント数",
"autoOps.updateAnOperation": "オペレーションの更新",
"autoOps.weekly": "",
"autoOps.weight": "ウェイト",
"autoOps.weightIncreasingOrder": "ウェイトは昇順で設定する必要があります。",
"button.add": "追加",
"button.addCondition": "条件を追加",
"button.addOperation": "オペレーションを追加",
Expand All @@ -134,13 +155,15 @@
"button.cancel": "キャンセル",
"button.clearAll": "すべてクリア",
"button.copyFlags": "フラグのコピー",
"button.delete": "削除",
"button.disable": "無効化",
"button.edit": "編集",
"button.enable": "有効化",
"button.result": "結果",
"button.save": "保存",
"button.saveWithComment": "コメントを付けて保存",
"button.schedule": "スケジュール",
"button.stop": "キャンセル",
"button.submit": "送信",
"close": "閉じる",
"copy.copied": "コピーしました",
Expand All @@ -153,6 +176,7 @@
"error": "エラー",
"experiment.action.archive": "アーカイブ",
"experiment.action.archiveTooltip": "アーカイブする前にエクスペリメントを停止してください。",
"experiment.add.hasProgressiveRollout": "選択されたフラグには実行中の{link}があります。エクスペリメントの作成前に停止もしくは、削除してください。",
"experiment.add.header.description": "以下の情報を入力して、新しいエクスペリメントを始めましょう。",
"experiment.add.header.title": "エクスペリメントの作成",
"experiment.baselineVariation": "ベースラインバリエーション",
Expand Down Expand Up @@ -244,6 +268,7 @@
"feature.confirm.unarchiveDescription": "「{featureId}」をアーカイブから解除しますか?",
"feature.confirm.unarchiveTitle": "アーカイブの解除",
"feature.defaultStrategy": "デフォルトストラテジー",
"feature.documentation": "ドキュメンテーション",
"feature.filter.archived": "アーカイブ",
"feature.filter.enabled": "有効 / 無効",
"feature.filter.hasExperiment": "エクスペリメントがある",
Expand All @@ -257,6 +282,7 @@
"feature.flagStatus.new": "新規作成",
"feature.flagStatus.receivingRequests": "アクティブ",
"feature.id": "ID",
"feature.isProgressiveRolloutsRunning": "プログレッシブロールアウトが実行されているため、新しいバリエーションを追加することはできませんが、変更は可能です。",
"feature.last14Days": "過去14日",
"feature.last24Hours": "過去24時間",
"feature.last30Days": "過去30日",
Expand All @@ -272,6 +298,7 @@
"feature.prerequisites": "前提条件",
"feature.resetRandomSampling": "ランダムサンプリングをリセットする",
"feature.rule": "ルール",
"feature.runningProgressiveRolloutMessage": "デフォルトストラテジーを更新するには、{link}を停止もしくは、削除する必要があります。",
"feature.selectFlag": "フィーチャーフラグを選択",
"feature.selectVariation": "バリエーションを選択",
"feature.search.placeholder": "ID、 名前、 説明",
Expand Down Expand Up @@ -321,10 +348,8 @@
"goal.update.header.description": "ゴールを使用することで、エクスペリメントでフィーチャーフラグの影響受けるユーザーの行動を計測できます。",
"goal.update.header.title": "ゴールの更新",
"id": "ID",
"infoBlocks.killSwitch": "キルスイッチ",
"infoBlocks.killSwitchInfo": "KPIイベントに基づいてフラグを自動的にOFFにできます",
"infoBlocks.progressiveRollout": "プログレッシブロールアウト",
"infoBlocks.progressiveRolloutInfo": "Coming soon",
"infoBlocks.progressiveRolloutInfo": "フィーチャーフラグの段階的なリリースを自動化する",
"infoBlocks.scheduleInfo": "フラグのON/OFFをスケジュールできます",
"infoBlocks.title": "オートオペレーションを使うことによって、安全にフラグのON/OFFを切り替えることができます",
"input.destinationEnvironment": "環境先",
Expand Down Expand Up @@ -388,6 +413,12 @@
"notification.sort.oldest": "古い順",
"notification.update.header.description": "通知機能を使用することによって、管理コンソールでの追加・更新をした時や、運用タスクの状況を確認することができます。",
"notification.update.header.title": "通知の更新",
"progressiveRolloutWarningMessages.alreadyProgressiveRollout": "同時に複数のプログレッシブロールアウトを実行することはできません。",
"progressiveRolloutWarningMessages.experimentOnProgress": "プログレッシブロールアウトを作成するには、{link}を停止する必要があります。",
"progressiveRolloutWarningMessages.moreInformation": "詳細については、{link}を参照してください。",
"progressiveRolloutWarningMessages.progressiveRolloutInProgress": "実行中の{link}が停止されます。",
"progressiveRolloutWarningMessages.title": "プログレッシブロールアウトを作成できません。以下の条件を確認してください。",
"progressiveRolloutWarningMessages.variations": "3つ以上のバリエーションを持つフラグでは利用できません。",
"push.add.header.description": "プッシュ機能を使用することによって、リアルタイムでSDKを更新することができます。フィーチャーフラグが更新されるたびに、プッシュ通知がクライアントに送信されます。",
"push.add.header.title": "プッシュの作成",
"push.confirm.delete.description": "「{pushName}」が永久に削除されます。",
Expand Down Expand Up @@ -509,6 +540,9 @@
"total": "合計",
"trigger.action": "アクション",
"trigger.addTrigger": "トリガーの追加",
"trigger.deleteKillSwitchDescription": "キルスイッチが永久に削除されます。",
"trigger.deleteProgressiveRolloutDescription": "プログレッシブロールアウトが永久に削除されます。",
"trigger.deleteScheduleDescription": "スケジュールが永久に削除されます。",
"trigger.deleteTrigger": "トリガーを削除",
"trigger.deleteTriggerDialogBtnTxt": "削除",
"trigger.deleteTriggerDialogMessage": "このトリガーが永久に削除されます。",
Expand All @@ -523,6 +557,7 @@
"trigger.resetTriggerDialogMessage": "現在のURLは無効になります。 新しいURLを必ずコピーして保管してください。",
"trigger.resetTriggerDialogTitle": "トリガーURLのリセット",
"trigger.resetURL": "URLをリセット",
"trigger.stopProgressiveRolloutDescription": "プログレッシブロールアウトが終了されます。",
"trigger.triggerType": "トリガータイプ",
"trigger.triggerURL": "トリガーURL",
"trigger.triggerUrlDescription": "このページを離れますとURLが表示されなくなります。",
Expand Down
6 changes: 6 additions & 0 deletions ui/web-v2/apps/admin/src/assets/svg/user.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading

0 comments on commit a281a21

Please sign in to comment.