From 86ba6248fd4d818185f525d787397c117d7ab459 Mon Sep 17 00:00:00 2001 From: Paulo Borges Date: Tue, 9 Jul 2024 19:09:40 -0300 Subject: [PATCH] rpk 24.2 (#591) Co-authored-by: Joyce Fee <102751339+Feediver1@users.noreply.github.com> --- modules/ROOT/nav.adoc | 5 ++ .../rpk-cluster-partitions-list.adoc | 78 +++++++++--------- .../rpk-cluster/rpk-cluster-quotas-alter.adoc | 81 +++++++++++++++++++ .../rpk-cluster-quotas-describe.adoc | 67 +++++++++++++++ .../rpk/rpk-cluster/rpk-cluster-quotas.adoc | 37 +++++++++ .../rpk-cluster-self-test-start.adoc | 7 ++ ...k-registry-schema-check-compatibility.adoc | 6 +- .../rpk-registry-schema-create.adoc | 2 +- .../rpk-registry/rpk-registry-schema-get.adoc | 5 +- .../rpk-transform/rpk-transform-deploy.adoc | 45 +++++++---- .../rpk-transform/rpk-transform-pause.adoc | 34 ++++++++ .../rpk-transform/rpk-transform-resume.adoc | 32 ++++++++ package-lock.json | 2 +- 13 files changed, 342 insertions(+), 59 deletions(-) create mode 100644 modules/reference/pages/rpk/rpk-cluster/rpk-cluster-quotas-alter.adoc create mode 100644 modules/reference/pages/rpk/rpk-cluster/rpk-cluster-quotas-describe.adoc create mode 100644 modules/reference/pages/rpk/rpk-cluster/rpk-cluster-quotas.adoc create mode 100644 modules/reference/pages/rpk/rpk-transform/rpk-transform-pause.adoc create mode 100644 modules/reference/pages/rpk/rpk-transform/rpk-transform-resume.adoc diff --git a/modules/ROOT/nav.adoc b/modules/ROOT/nav.adoc index f5f442b9b..3e774c1bc 100644 --- a/modules/ROOT/nav.adoc +++ b/modules/ROOT/nav.adoc @@ -328,6 +328,9 @@ ****** xref:reference:rpk/rpk-cluster/rpk-cluster-partitions-move-status.adoc[] ***** xref:reference:rpk/rpk-cluster/rpk-cluster-partitions-transfer-leadership.adoc[] ***** xref:reference:rpk/rpk-cluster/rpk-cluster-partitions-unsafe-recover.adoc[] +**** xref:reference:rpk/rpk-cluster/rpk-cluster-quotas.adoc[] +***** xref:reference:rpk/rpk-cluster/rpk-cluster-quotas-alter.adoc[] +***** xref:reference:rpk/rpk-cluster/rpk-cluster-quotas-describe.adoc[] **** xref:reference:rpk/rpk-cluster/rpk-cluster-self-test.adoc[] ***** xref:reference:rpk/rpk-cluster/rpk-cluster-self-test-start.adoc[] ***** xref:reference:rpk/rpk-cluster/rpk-cluster-self-test-status.adoc[] @@ -467,6 +470,8 @@ **** xref:reference:rpk/rpk-transform/rpk-transform-init.adoc[] **** xref:reference:rpk/rpk-transform/rpk-transform-list.adoc[] **** xref:reference:rpk/rpk-transform/rpk-transform-logs.adoc[] +**** xref:reference:rpk/rpk-transform/rpk-transform-pause.adoc[] +**** xref:reference:rpk/rpk-transform/rpk-transform-resume.adoc[] *** xref:reference:rpk/rpk-version.adoc[] ** xref:reference:console/index.adoc[Redpanda Console] *** xref:reference:console/config.adoc[Redpanda Console Configuration] diff --git a/modules/reference/pages/rpk/rpk-cluster/rpk-cluster-partitions-list.adoc b/modules/reference/pages/rpk/rpk-cluster/rpk-cluster-partitions-list.adoc index 72519aa6a..595f0530d 100644 --- a/modules/reference/pages/rpk/rpk-cluster/rpk-cluster-partitions-list.adoc +++ b/modules/reference/pages/rpk/rpk-cluster/rpk-cluster-partitions-list.adoc @@ -15,40 +15,6 @@ If the Disabled column contains a '-' value, then it means you are running this Disabling a partition in Redpanda involves prohibiting any data consumption or production to and from it. All internal processes associated with the partition are stopped, and it remains unloaded during system startup. This measure aims to maintain cluster health by preventing issues caused by specific corrupted partitions that may lead to Redpanda crashes. Although the data remains stored on disk, Redpanda ceases interaction with the disabled partitions to ensure system stability. You may disable/enable partition using `rpk cluster partitions enable/disable`. - - -== Examples - -List all partitions in the cluster: - -[,bash] ----- -rpk cluster partitions list --all ----- - -List all partitions in the cluster, filtering for topic foo and bar: - -[,bash] ----- -rpk cluster partitions list foo bar ----- - -List only the disabled partitions: - -[,bash] ----- -rpk cluster partitions list -a --disabled-only ----- - - - -List all in JSON format: - -[,bash] ----- -rpk cluster partition list -a --format json ----- - == Usage [,bash] @@ -77,7 +43,9 @@ list, ls, describe |-h, --help |- |Help for list. -|-p, --partition |- |ints List of comma-separated partitions IDs that you wish to filter the results with. +|-n, --node-ids |ints |List of comma-separated broker IDs you wish to use to filter the results. + +|-p, --partition |ints |List of comma-separated partitions IDs you wish to use to filter the results. |--config |string |Redpanda or `rpk` config file; default search paths are `/var/lib/redpanda/.config/rpk/rpk.yaml`, `$PWD/redpanda.yaml`, and `/etc/redpanda/redpanda.yaml`. @@ -87,4 +55,42 @@ list, ls, describe |--profile |string |Profile to use. See xref:reference:rpk/rpk-profile.adoc[`rpk profile`] for more details. |-v, --verbose |- |Enable verbose logging. -|=== \ No newline at end of file +|=== + + +== Examples + +List all partitions in the cluster: + +[,bash] +---- +rpk cluster partitions list --all +---- + +List all partitions in the cluster, filtering for topic foo and bar: + +[,bash] +---- +rpk cluster partitions list foo bar +---- + +List partitions with replicas that are assigned to brokers 1 and 2. + +[,bash] +---- +rpk cluster partitions list foo --node-ids 1,2 +---- + +List only the disabled partitions: + +[,bash] +---- +rpk cluster partitions list -a --disabled-only +---- + +List all in JSON format: + +[,bash] +---- +rpk cluster partition list -a --format json +---- \ No newline at end of file diff --git a/modules/reference/pages/rpk/rpk-cluster/rpk-cluster-quotas-alter.adoc b/modules/reference/pages/rpk/rpk-cluster/rpk-cluster-quotas-alter.adoc new file mode 100644 index 000000000..672ecc81b --- /dev/null +++ b/modules/reference/pages/rpk/rpk-cluster/rpk-cluster-quotas-alter.adoc @@ -0,0 +1,81 @@ += rpk cluster quotas alter +:description: rpk cluster quotas alter + +Add or delete a client quota. + +A client quota consists of an entity (to which the quota is applied) and a quota type (what is being applied). + +There are two entity types supported by Redpanda: client ID and client ID prefix. Use the `--default` flag to assign quotas to default entity types. + +You can perform a dry run using the `--dry` flag. + +== Usage + +[,bash] +---- +rpk cluster quotas alter [flags] +---- + +== Flags + +[cols="1m,1a,2a"] +|=== +|*Value* |*Type* |*Description* + +|--add |strings |Key=value quota to add, where the value is a float number (repeatable). + +|--default |strings |Entity type for default matching, where type is client-id or client-id-prefix (repeatable). + +|--delete |strings |Key of the quota to delete (repeatable). + +|--dry |- |Key of the quota to delete (repeatable). + +|--format |string |Output format. Possible values: `json`, `yaml`, `text`, `wide`, `help`. Default: `text`. + +|-h, --help |- |Help for alter. + +|--name |strings |Entity for exact matching. Format `type=name` where `type` is the `client-id` or `client-id-prefix` (repeatable). + +|--config |string |Redpanda or `rpk` config file; default search paths are `~/.config/rpk/rpk.yaml`, `$PWD`, and `/etc/redpanda/redpanda.yaml`. + +|-X, --config-opt |stringArray |Override `rpk` configuration settings. See xref:reference:rpk/rpk-x-options.adoc[`rpk -X`] or execute `rpk -X help` for inline detail or `rpk -X list` for terser detail. + +|--profile |string |Profile to use. See xref:reference:rpk/rpk-profile.adoc[`rpk profile`] for more details. + +|-v, --verbose |- |Enable verbose logging. +|=== + + +== Examples + +Add quota (consumer_byte_rate) to client ID ``: + +[,bash] +---- +rpk cluster quotas alter --add consumer_byte_rate=200000 \ + --name client-id= +---- + +Add quota (consumer_byte_rate) to client ID starting with `-`: + +[,bash] +---- +rpk cluster quotas alter --add consumer_byte_rate=200000 \ + --name client-id-prefix=- +---- + +Add quota (producer_byte_rate) to default client ID: + +[,bash] +---- +rpk cluster quotas alter --add producer_byte_rate=180000 \ + --default client-id=foo +---- + +Remove quota (producer_byte_rate) from client ID `foo`: + +[,bash] +---- +rpk cluster quotas alter --delete producer_byte_rate \ + --name client-id= +---- \ No newline at end of file diff --git a/modules/reference/pages/rpk/rpk-cluster/rpk-cluster-quotas-describe.adoc b/modules/reference/pages/rpk/rpk-cluster/rpk-cluster-quotas-describe.adoc new file mode 100644 index 000000000..c7701067d --- /dev/null +++ b/modules/reference/pages/rpk/rpk-cluster/rpk-cluster-quotas-describe.adoc @@ -0,0 +1,67 @@ += rpk cluster quotas describe +:description: rpk cluster quotas describe + +Describe client quotas. + +This command describes client quotas that match the provided filtering criteria. Running the command without filters returns all client quotas. Use the +`--strict` flag for strict matching, which means that the only quotas returned exactly match the filters. + +You can specify filters in terms of entities. An entity consists of either a client ID or a client ID prefix. + +== Usage + +[,bash] +---- +rpk cluster quotas describe [flags] +---- + +== Flags + +[cols="1m,1a,2a"] +|=== +|*Value* |*Type* |*Description* + +|--any |strings |Type for any matching (names or default), where type is `client-id` or `client-id-prefix` (repeatable). + +|--default |strings |Type for default matching, where type is `client-id` or `client-id-prefix` (repeatable). + +|--format |string |Output format. Possible values: `json`, `yaml`, `text`, `wide`, `help`. Default: `text`. + +|-h, --help |- |Help for describe. + +|--name |strings |The `type=name` pair for exact name matching, where type is `client-id` or `client-id-prefix` (repeatable). + +|--strict |- |Specifies whether matches are strict. If `true`, entities with unspecified entity types are excluded. + +|--config |string |Redpanda or `rpk` config file; default search paths are `~/.config/rpk/rpk.yaml`, `$PWD`, and `/etc/redpanda/redpanda.yaml`. + +|-X, --config-opt |stringArray |Override `rpk` configuration settings. See xref:reference:rpk/rpk-x-options.adoc[`rpk -X`] or execute `rpk -X help` for inline detail or `rpk -X list` for terser detail. + +|--profile |string |Profile to use. See xref:reference:rpk/rpk-profile.adoc[`rpk profile`] for more details. + +|-v, --verbose |- |Enable verbose logging. +|=== + + +== Examples + +Describe all client quotas: + +[,bash] +---- +rpk cluster quotas describe +---- + +Describe all client quota with client ID ``: + +[,bash] +---- +rpk cluster quotas describe --name client-id= +---- + +Describe client quotas for a given client ID prefix `.`: + +[,bash] +---- +rpk cluster quotas describe --name client-id=. +---- \ No newline at end of file diff --git a/modules/reference/pages/rpk/rpk-cluster/rpk-cluster-quotas.adoc b/modules/reference/pages/rpk/rpk-cluster/rpk-cluster-quotas.adoc new file mode 100644 index 000000000..ccb200962 --- /dev/null +++ b/modules/reference/pages/rpk/rpk-cluster/rpk-cluster-quotas.adoc @@ -0,0 +1,37 @@ += rpk cluster quotas +:description: rpk cluster quotas + +Manage Redpanda client quotas. + +== Usage + +[,bash] +---- +rpk cluster quotas [command] [flags] +---- + +== Aliases + +[,bash] +---- +quotas, quota +---- + +== Flags + +[cols="1m,1a,2a"] +|=== +|*Value* |*Type* |*Description* + +|--format |string |Output format. Possible values: `json`, `yaml`, `text`, `wide`, `help`. Default: `text`. + +|-h, --help |- |Help for quotas. + +|--config |string |Redpanda or `rpk` config file; default search paths are `~/.config/rpk/rpk.yaml`, `$PWD`, and `/etc/redpanda/redpanda.yaml`. + +|-X, --config-opt |stringArray |Override `rpk` configuration settings. See xref:reference:rpk/rpk-x-options.adoc[`rpk -X`] or execute `rpk -X help` for inline detail or `rpk -X list` for terser detail. + +|--profile |string |Profile to use. See xref:reference:rpk/rpk-profile.adoc[`rpk profile`] for more details. + +|-v, --verbose |- |Enable verbose logging. +|=== \ No newline at end of file diff --git a/modules/reference/pages/rpk/rpk-cluster/rpk-cluster-self-test-start.adoc b/modules/reference/pages/rpk/rpk-cluster/rpk-cluster-self-test-start.adoc index 54761f79b..2fad68714 100644 --- a/modules/reference/pages/rpk/rpk-cluster/rpk-cluster-self-test-start.adoc +++ b/modules/reference/pages/rpk/rpk-cluster/rpk-cluster-self-test-start.adoc @@ -14,6 +14,13 @@ Available tests to run: ** Throughput test: 8192-bit messages *** Unique pairs of Redpanda nodes each act as a client and a server. *** The test pushes as much data over the wire, within the test parameters. +* *Cloud tests* +** Latency test: 1024-bit object. +** Depending on cluster read/write permissions (xref:reference:properties/object-storage-properties.adoc#cloud_storage_enable_remote_read[`cloud_storage_enable_remote_read`], xref:reference:properties/object-storage-properties.adoc#cloud_storage_enable_remote_write[`cloud_storage_enable_remote_write`]), a series of cloud storage operations are performed: +*** Upload an object to an object storage. +*** List objects in the object storage. +*** Download an object from the object storage. +*** Delete the original object from the object storage, if it was uploaded. This command immediately returns on success, and the tests run asynchronously. The user polls for results with the xref:./rpk-cluster-self-test-status.adoc[rpk cluster self-test status] diff --git a/modules/reference/pages/rpk/rpk-registry/rpk-registry-schema-check-compatibility.adoc b/modules/reference/pages/rpk/rpk-registry/rpk-registry-schema-check-compatibility.adoc index 0e9b099fb..0fb9b9ad5 100644 --- a/modules/reference/pages/rpk/rpk-registry/rpk-registry-schema-check-compatibility.adoc +++ b/modules/reference/pages/rpk/rpk-registry/rpk-registry-schema-check-compatibility.adoc @@ -6,7 +6,7 @@ Check schema compatibility with existing schemas in the subject. [,bash] ---- -rpk registry schema check-compatibility SUBJECT [flags] +rpk registry schema check-compatibility [SUBJECT] [flags] ---- == Flags @@ -18,11 +18,11 @@ rpk registry schema check-compatibility SUBJECT [flags] |-h, --help |- |Help for check-compatibility. |--references |string |Comma-separated list of references (name:subject:version), or path to reference file. -|--schema |string |Schema filepath to check, must be `.avro` or `.proto`. +|--schema |string |Schema file path to check. Must be `.avro`, `.json` or `.proto`. |--schema-version |string |Schema version to check compatibility with (`latest`, `0`, `1`...). -|--type |string |Schema type (`avro`,`protobuf`); overrides schema file extension. +|--type |string |Schema type (`avro`, `json`, `protobuf`). Overrides schema file extension. |--config |string |Redpanda or `rpk` config file; default search paths are `~/.config/rpk/rpk.yaml`, `$PWD`, and `/etc/redpanda/redpanda.yaml`. diff --git a/modules/reference/pages/rpk/rpk-registry/rpk-registry-schema-create.adoc b/modules/reference/pages/rpk/rpk-registry/rpk-registry-schema-create.adoc index 0127e62b8..3af063bef 100644 --- a/modules/reference/pages/rpk/rpk-registry/rpk-registry-schema-create.adoc +++ b/modules/reference/pages/rpk/rpk-registry/rpk-registry-schema-create.adoc @@ -3,7 +3,7 @@ Create a schema for the given subject. -This uploads a schema to the registry, creating the schema if it does not exist. The schema type is detected by the filename extension: `.avro` or `.avsc` for Avro and `.proto` for Protobuf. You can manually specify the type with the `--type` flag. +This uploads a schema to the registry, creating the schema if it does not exist. The schema type is detected by the filename extension: `.avro` or `.avsc` for Avro, `json` for JSON, and `.proto` for Protobuf. You can manually specify the type with the `--type` flag. You may pass the references using the --reference flag, which accepts either a comma separated list of `::` or a path to a file. The file must contain lines of name, subject, and version separated by a tab or space, or the equivalent in json / yaml format. diff --git a/modules/reference/pages/rpk/rpk-registry/rpk-registry-schema-get.adoc b/modules/reference/pages/rpk/rpk-registry/rpk-registry-schema-get.adoc index 8b66eb76c..7a155a203 100644 --- a/modules/reference/pages/rpk/rpk-registry/rpk-registry-schema-get.adoc +++ b/modules/reference/pages/rpk/rpk-registry/rpk-registry-schema-get.adoc @@ -33,11 +33,12 @@ rpk registry schema get [SUBJECT] [flags] |--print-schema |- |Prints the schema in JSON format. -|--schema |string |Schema filepath to upload, must be `.avro`, `.avsc`, or `.proto`. +|--schema |string |Schema filepath to upload, must be `.avro`, `.avsc`, `json`, or `.proto`. |--schema-version |string |Schema version to check compatibility with (`latest`, `0`, `1`...). -|--type |string |Schema type of the file used to lookup (avro, protobuf); overrides schema file extension. +|--type |string |Schema type of the file used to lookup (`avro`, `json`, `protobuf`). Overrides schema file extension. + |--config |string |Redpanda or `rpk` config file; default search paths are `/var/lib/redpanda/.config/rpk/rpk.yaml`, `$PWD/redpanda.yaml`, and `/etc/redpanda/redpanda.yaml`. diff --git a/modules/reference/pages/rpk/rpk-transform/rpk-transform-deploy.adoc b/modules/reference/pages/rpk/rpk-transform/rpk-transform-deploy.adoc index ff6e81dfb..29ba09d77 100644 --- a/modules/reference/pages/rpk/rpk-transform/rpk-transform-deploy.adoc +++ b/modules/reference/pages/rpk/rpk-transform/rpk-transform-deploy.adoc @@ -5,26 +5,20 @@ Deploy a data transform. When run in the same directory as a `transform.yaml`, this reads the configuration file, then looks for a `.wasm` file with the same name as your project. If the input and output topics are specified in the configuration file, those are used. Otherwise, the topics can be specified on the command line using the `--input-topic` and `--output-topic` flags. -== Example +You can specify environment variables for the transform using the `--var` flag. Variables are separated by an equal sign. For example: `--var=KEY=VALUE`. The `--var` flag can be repeated to specify multiple variables. -To deploy Wasm files directly without a `transform.yaml` file: -[,bash] ----- -rpk transform deploy --file transform.wasm --name myTransform \ ---input-topic my-topic-1 \ ---output-topic my-topic-2 ---output-topic my-topic-3 ----- +You can specify the `--from-offset` flag to identify where on the input topic the transform should begin processing. Expressed as: -Environment variables can be specified for the transform using the `--var` flag, these are separated by an equals for example: `--var=KEY=VALUE`. -The --var flag can be repeated to specify multiple variables like so: +- `@T` - Begin reading records with committed timestamp >= T (UNIX time, ms from epoch) + +- `+N` - Begin reading N records from the start of each input partition + +- `-N` - Begin reading N records prior to the end of each input partition + +Note that the broker will only respect `--from-offset` on the first deploy for a given transform. Re-deploying the transform will cause processing to pick up at the last committed offset. This state is maintained until the transform is deleted. -[,bash] ----- -rpk transform deploy --var FOO=BAR --var FIZZ=BUZZ ----- == Usage @@ -59,4 +53,23 @@ rpk transform deploy [flags] |--profile |string |Profile to use. See xref:reference:rpk/rpk-profile.adoc[`rpk profile`] for more details. |-v, --verbose |- |Enable verbose logging. -|=== \ No newline at end of file +|=== + +== Examples + +Deploy Wasm files directly without a `transform.yaml` file: + +[,bash] +---- +rpk transform deploy --file transform.wasm --name myTransform \ +--input-topic my-topic-1 \ +--output-topic my-topic-2 +--output-topic my-topic-3 +---- + +Deploy a transformation with multiple environment variables: + +[,bash] +---- +rpk transform deploy --var FOO=BAR --var FIZZ=BUZZ +---- \ No newline at end of file diff --git a/modules/reference/pages/rpk/rpk-transform/rpk-transform-pause.adoc b/modules/reference/pages/rpk/rpk-transform/rpk-transform-pause.adoc new file mode 100644 index 000000000..4d8315bb9 --- /dev/null +++ b/modules/reference/pages/rpk/rpk-transform/rpk-transform-pause.adoc @@ -0,0 +1,34 @@ += rpk transform pause +:description: rpk transform pause + +Pause a data transform. + +This command suspends execution of the specified transform without removing it from the system. In this way, a transform may resume at a later time, with each new processor picking up processing from the last committed offset on the corresponding input partition. + +Subsequent `rpk transform list` operations will show transform processors as `inactive`. + +To resume a paused transform, use `rpk transform resume`. + +== Usage + +[,bash] +---- +rpk transform pause [NAME] [flags] +---- + +== Flags + +[cols="1m,1a,2a"] +|=== +|*Value* |*Type* |*Description* + +|-h, --help |- |Help for pause. + +|--config |string |Redpanda or `rpk` config file; default search paths are `~/.config/rpk/rpk.yaml`, `$PWD`, and `/etc/redpanda/redpanda.yaml`. + +|-X, --config-opt |stringArray |Override `rpk` configuration settings. See xref:reference:rpk/rpk-x-options.adoc[`rpk -X`] or execute `rpk -X help` for inline detail or `rpk -X list` for terser detail. + +|--profile |string |Profile to use. See xref:reference:rpk/rpk-profile.adoc[`rpk profile`] for more details. + +|-v, --verbose |- |Enable verbose logging. +|=== \ No newline at end of file diff --git a/modules/reference/pages/rpk/rpk-transform/rpk-transform-resume.adoc b/modules/reference/pages/rpk/rpk-transform/rpk-transform-resume.adoc new file mode 100644 index 000000000..43a39219c --- /dev/null +++ b/modules/reference/pages/rpk/rpk-transform/rpk-transform-resume.adoc @@ -0,0 +1,32 @@ += rpk transform resume +:description: rpk transform resume + +Resume a data transform. + +This command resumes execution of the specified data transform, if it was previously paused. Transform processors are restarted and resume processing from the last committed offset on the corresponding input partition. + +Subsequent `rpk transform list` operations will show transform processors as `running`. + +== Usage + +[,bash] +---- +rpk transform resume [NAME] [flags] +---- + +== Flags + +[cols="1m,1a,2a"] +|=== +|*Value* |*Type* |*Description* + +|-h, --help |- |Help for resume. + +|--config |string |Redpanda or `rpk` config file; default search paths are `~/.config/rpk/rpk.yaml`, `$PWD`, and `/etc/redpanda/redpanda.yaml`. + +|-X, --config-opt |stringArray |Override `rpk` configuration settings. See xref:reference:rpk/rpk-x-options.adoc[`rpk -X`] or execute `rpk -X help` for inline detail or `rpk -X list` for terser detail. + +|--profile |string |Profile to use. See xref:reference:rpk/rpk-profile.adoc[`rpk profile`] for more details. + +|-v, --verbose |- |Enable verbose logging. +|=== \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 290e474ca..df89ac68e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -12,7 +12,7 @@ "@antora/cli": "3.1.2", "@antora/site-generator": "3.1.2", "@asciidoctor/tabs": "^1.0.0-beta.5", - "@redpanda-data/docs-extensions-and-macros": "^3.5.5" + "@redpanda-data/docs-extensions-and-macros": "latest" }, "devDependencies": { "@web/dev-server": "^0.2.1",