From 13b69e0c3a599dbb789c3e68aa7e717ae24a6cb3 Mon Sep 17 00:00:00 2001 From: Enno Runne <458526+ennru@users.noreply.github.com> Date: Wed, 15 Jan 2025 09:51:01 +0100 Subject: [PATCH 1/6] docs: cli and platform release notes (#149) --- Makefile | 2 +- docs/src/modules/reference/pages/release-notes.adoc | 10 ++++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/Makefile b/Makefile index 93d0c8da7..817cb58dd 100644 --- a/Makefile +++ b/Makefile @@ -44,7 +44,7 @@ attributes: prepare > "${managed_partials}/attributes.adoc" docs/bin/version.sh | xargs -0 printf ":akka-javasdk-version: %s" \ > "${managed_partials}/attributes.adoc" - echo ":akka-cli-version: 3.0.8" >> "${managed_partials}/attributes.adoc" + echo ":akka-cli-version: 3.0.9" >> "${managed_partials}/attributes.adoc" echo ":akka-cli-min-version: 3.0.4" >> "${managed_partials}/attributes.adoc" # see https://adoptium.net/marketplace/ echo ":java-version: 21" \ diff --git a/docs/src/modules/reference/pages/release-notes.adoc b/docs/src/modules/reference/pages/release-notes.adoc index 2d60cdf59..9ae3d2b83 100644 --- a/docs/src/modules/reference/pages/release-notes.adoc +++ b/docs/src/modules/reference/pages/release-notes.adoc @@ -10,6 +10,16 @@ Current versions * Akka CLI {akka-cli-version} * A glance of all Akka libraries and their current versions is presented at https://doc.akka.io/libraries/akka-dependencies/current[Akka library versions]. +== January 2025 + +* Akka CLI 3.0.9 + - Fixes listing of user role bindings + +* Platform update 2025-01-13 + - updates to internal libraries for security fixes + - switch of internal framework to apply environment configuration + - minor updates to the Console + == December 2024 * Akka CLI 3.0.8 From c8161ca58f92067002c741305df2e11febf8ecd6 Mon Sep 17 00:00:00 2001 From: Enno Runne <458526+ennru@users.noreply.github.com> Date: Wed, 15 Jan 2025 17:07:54 +0100 Subject: [PATCH 2/6] docs: review multi-region concepts --- docs/src/modules/concepts/images/steps-1.svg | 12 +++++++ docs/src/modules/concepts/images/steps-2.svg | 12 +++++++ docs/src/modules/concepts/images/steps-3.svg | 12 +++++++ docs/src/modules/concepts/images/steps-4.svg | 12 +++++++ docs/src/modules/concepts/images/steps-5.svg | 12 +++++++ docs/src/modules/concepts/images/steps-6.svg | 12 +++++++ .../modules/concepts/pages/multi-region.adoc | 36 ++++++++++--------- 7 files changed, 92 insertions(+), 16 deletions(-) create mode 100644 docs/src/modules/concepts/images/steps-1.svg create mode 100644 docs/src/modules/concepts/images/steps-2.svg create mode 100644 docs/src/modules/concepts/images/steps-3.svg create mode 100644 docs/src/modules/concepts/images/steps-4.svg create mode 100644 docs/src/modules/concepts/images/steps-5.svg create mode 100644 docs/src/modules/concepts/images/steps-6.svg diff --git a/docs/src/modules/concepts/images/steps-1.svg b/docs/src/modules/concepts/images/steps-1.svg new file mode 100644 index 000000000..f31eff7fc --- /dev/null +++ b/docs/src/modules/concepts/images/steps-1.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/src/modules/concepts/images/steps-2.svg b/docs/src/modules/concepts/images/steps-2.svg new file mode 100644 index 000000000..6681d8d2f --- /dev/null +++ b/docs/src/modules/concepts/images/steps-2.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/src/modules/concepts/images/steps-3.svg b/docs/src/modules/concepts/images/steps-3.svg new file mode 100644 index 000000000..d6438f67c --- /dev/null +++ b/docs/src/modules/concepts/images/steps-3.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/src/modules/concepts/images/steps-4.svg b/docs/src/modules/concepts/images/steps-4.svg new file mode 100644 index 000000000..d82d4ecb1 --- /dev/null +++ b/docs/src/modules/concepts/images/steps-4.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/src/modules/concepts/images/steps-5.svg b/docs/src/modules/concepts/images/steps-5.svg new file mode 100644 index 000000000..97150066f --- /dev/null +++ b/docs/src/modules/concepts/images/steps-5.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/src/modules/concepts/images/steps-6.svg b/docs/src/modules/concepts/images/steps-6.svg new file mode 100644 index 000000000..eb9d6f93f --- /dev/null +++ b/docs/src/modules/concepts/images/steps-6.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/src/modules/concepts/pages/multi-region.adoc b/docs/src/modules/concepts/pages/multi-region.adoc index 2b2091478..418bb1e1f 100644 --- a/docs/src/modules/concepts/pages/multi-region.adoc +++ b/docs/src/modules/concepts/pages/multi-region.adoc @@ -16,40 +16,44 @@ Multi-region operations are ideal for: * Low latency global reads * Low latency global writes -== Examples +== Replicated reads -The two main replication strategies that Akka offers are replicated reads, and replicated writes. - -=== Replicated reads - -With replicated reads, an entity has its "home" in one primary region, while being replicated to multiple other regions. +Akka's replicated reads offers full data replication across regions and even cloud providers, without any changes to the service implementation: an entity has its "home" in one _primary region_, while being replicated to multiple other regions. image:geo-a.svg[Geo data replication, width=600] -In the example above, the entity representing Alice has its primary region in Los Angeles (USA). When a user in the primary region performs a read request, the request is handled locally, and the response sent straight back. +In the image above, the entity representing Alice has its primary region in Los Angeles. When a user in the primary region performs a read request image:steps-1.svg[width=20], the request is handled locally, and the response sent straight back image:steps-2.svg[width=20]. + +When the user in the primary region performs a write request image:steps-1.svg[width=20], that request is also handled locally, and a response sent directly back image:steps-2.svg[width=20]. After that write request completes, that write is replicated to other regions image:steps-3.svg[width=20], such as in London (UK). -When the user in the primary region performs a write request, that request is also handled locally, and a response sent directly back. After that write request completes, that write is replicated to other regions, such as in London (UK). A user in London, when they perform a read, that read operation will happen locally, and a response sent immediately back. +A user in London, when they perform a read image:steps-4.svg[width=20], that read operation will happen locally, and a response sent immediately back image:steps-5.svg[width=20]. A user can also perform write operations on entities in non-primary regions. image:geo-b.svg[Geo data replication, width=600] -In this scenario, a user in London (UK) is performing a write operation on the Alice entity. Since London is not the primary region for the Alice entity, Akka will automatically forward that request to the primary region, in this case, Los Angeles (USA). That request will be handled in the USA, and a response sent directly back to the user. - -Akka has a configurable primary selection mode. The two main modes are static, and dynamic. In the static primary selection mode, the primary region for an entity is selected statically as part of the deployment, so all entities have the same primary region. This is useful for scenarios where you want one primary region, with the ability to failover to another region in the case of a regional outage. - -In the dynamic primary selection mode, each entity can have a different region that is considered its primary region. This is selected based on whichever region the entity was first written in. This is useful for scenarios where you want to have the primary region for you data close to the users who use the data. A user, Alice, in the USA, will have her data in the USA, while a user Bob, in the UK, will have his data, in the UK. +In this scenario, a user in London (UK) is performing a write operation on the Alice entity image:steps-1.svg[width=20]. Since London is not the primary region for the Alice entity, Akka will automatically forward that request to the primary region image:steps-2.svg[width=20], in this case, Los Angeles (USA). That request will be handled in the USA, and a response sent directly back to the user image:steps-3.svg[width=20]. image:geo-c.svg[Geo data replication, width=600] -When Bob makes a request in the UK on his data, that request is handled locally, and replicated to the US, while Alice's requests in the USA with her data are handled locally in the USA, and replicated to the UK. +When Bob makes a request in the UK on his data image:steps-1.svg[width=20], that request is handled locally image:steps-2.svg[width=20], and replicated to the US image:steps-3.svg[width=20], while Alice's requests in the USA with her data are handled locally in the USA, and replicated to the UK. The data however is still available in all regions. If Bob travels to the USA, he can still access his data. image:geo-d.svg[Geo data replication, width=600] -When Bob travels to the USA, read requests that Bob makes on his data are handled locally, while write requests are forwarded to the UK. Meanwhile, write requests made by Alice on her data is all handled locally, with writes being replicated to the UK. +When Bob travels to the USA, read requests that Bob makes on his data are handled locally image:steps-1.svg[width=20], while write requests are forwarded to the UK image:steps-2.svg[width=20]. Meanwhile, write requests made by Alice on her data is all handled locally image:steps-4.svg[width=20] image:steps-5.svg[width=20], with writes being replicated to the UK image:steps-6.svg[width=20]. + +=== Primary selection + +How Akka assigns the primary region to an entity is configurable. The two main modes are **static**, and **dynamic**. + +In the **static primary selection** mode (which is the default), the primary region for an entity is selected statically as part of the deployment, so all entities have the same primary region. This is useful for scenarios where you want one primary region, with the ability to fail over to another region in the case of a regional outage. + +In the **dynamic primary selection** mode, each entity can have a different region that is considered its primary region. This is selected based on whichever region the entity was first written in. This is useful for scenarios where you want to have the primary region for you data close to the users who use the data. A user, Alice, in the USA, will have her data in the USA, while a user Bob, in the UK, will have his data, in the UK. + +The Operating section explains more details about xref:operations:regions/index.adoc#selecting-primary[configuring the primary selection mode]. -=== Replicated writes +== Replicated writes The replicated write replication strategy allows every region to be capable of handling writes for all entities. This is done through the use of CRDTs, which can be modified concurrently in different regions, and their changes safely merged without conflict. From 1452c9b9889d486d1b3d1b5401c270104e728775 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 16 Jan 2025 09:38:14 +0100 Subject: [PATCH 3/6] docs: akka CLI docs (#154) Co-authored-by: GitHub --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index 817cb58dd..b33e17530 100644 --- a/Makefile +++ b/Makefile @@ -44,7 +44,7 @@ attributes: prepare > "${managed_partials}/attributes.adoc" docs/bin/version.sh | xargs -0 printf ":akka-javasdk-version: %s" \ > "${managed_partials}/attributes.adoc" - echo ":akka-cli-version: 3.0.9" >> "${managed_partials}/attributes.adoc" + echo ":akka-cli-version: 3.0.10" >> "${managed_partials}/attributes.adoc" echo ":akka-cli-min-version: 3.0.4" >> "${managed_partials}/attributes.adoc" # see https://adoptium.net/marketplace/ echo ":java-version: 21" \ From 7742e40c30562343f026de3e26883d278a7d6483 Mon Sep 17 00:00:00 2001 From: Francisco Lopez-Sancho Date: Thu, 16 Jan 2025 10:25:45 +0100 Subject: [PATCH 4/6] chore: adding edit service descriptor (#143) * chore: adding edit service descriptor --- .../pages/services/deploy-service.adoc | 21 ++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/docs/src/modules/operations/pages/services/deploy-service.adoc b/docs/src/modules/operations/pages/services/deploy-service.adoc index 6f3f880f5..9cba4046d 100644 --- a/docs/src/modules/operations/pages/services/deploy-service.adoc +++ b/docs/src/modules/operations/pages/services/deploy-service.adoc @@ -30,7 +30,7 @@ The docker build output in maven will print something similar to the following: ---- DOCKER> Tagging image shopping-cart:1.0-SNAPSHOT-20241028102843 successful! ---- - +[#_deploying_a_service] == Deploying a service Services can be deployed via the Akka CLI. @@ -171,16 +171,17 @@ For further details, see xref:operations:projects/external-container-registries. [#apply] == Using service descriptors -Akka services can also be described and managed with *YAML service descriptors*. +Akka services can also be described and managed with *YAML service descriptors*. See xref:reference:descriptors/service-descriptor.adoc[]. -First, <<_build_container_image>> and then push the image: +You can deploy your service using a service descriptor. +For this you need at least the image, which you can get by <<_build_container_image, building the container image>> and then <<_pushing_to_acr, pushing it to the container registry>>: [source, command line] ---- akka container-registry push container-name:tag-name ---- -Example of service descriptor: +Once pushed, you need to use the suggested image from the command's output in your service descriptor, for example: [source, yaml] ---- @@ -192,7 +193,7 @@ spec: value: some value ---- -NOTE: You must add the primary region image tag. See `akka container-registry push` command's output. +NOTE: You must add the primary region image tag from `akka container-registry push` output. To apply this descriptor, run: @@ -216,6 +217,15 @@ After editing the service descriptor (e.g., `my-service.yaml`), redeploy it with akka service apply -f my-service.yaml ---- +=== Editing the service descriptor in place + +Once you have <<_deploying_a_service, deployed your service>>, you can also modify it by editing its service descriptor: + +[source, command line] +---- +akka service edit my-service +---- + == Removing a deployed service To delete a service and free its resources, run the following command, replacing `my-service` with the name of the service you want to remove: @@ -245,3 +255,4 @@ You now know how to deploy, verify, update, and remove Akka services using the A == Related documentation - xref:reference:cli/akka-cli/akka_services.adoc[`akka service` CLI commands] +- xref:reference:descriptors/service-descriptor.adoc[Akka Service Descriptor] From e67f1b710e0d89791ca986a3c6a670766fa2514b Mon Sep 17 00:00:00 2001 From: Enno Runne <458526+ennru@users.noreply.github.com> Date: Fri, 17 Jan 2025 13:08:17 +0100 Subject: [PATCH 5/6] docs: split replication illustration (#159) --- docs/src/modules/concepts/images/geo-c.svg | 282 +++++----------- docs/src/modules/concepts/images/geo-d.svg | 314 ++++++------------ docs/src/modules/concepts/images/geo-e.svg | 93 ++++++ .../modules/concepts/pages/multi-region.adoc | 16 +- .../operations/pages/regions/index.adoc | 2 +- 5 files changed, 289 insertions(+), 418 deletions(-) create mode 100644 docs/src/modules/concepts/images/geo-e.svg diff --git a/docs/src/modules/concepts/images/geo-c.svg b/docs/src/modules/concepts/images/geo-c.svg index bf735f660..eccf84f9a 100644 --- a/docs/src/modules/concepts/images/geo-c.svg +++ b/docs/src/modules/concepts/images/geo-c.svg @@ -1,191 +1,93 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/src/modules/concepts/images/geo-d.svg b/docs/src/modules/concepts/images/geo-d.svg index 65f4ebf18..7f307696d 100644 --- a/docs/src/modules/concepts/images/geo-d.svg +++ b/docs/src/modules/concepts/images/geo-d.svg @@ -1,222 +1,94 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/src/modules/concepts/images/geo-e.svg b/docs/src/modules/concepts/images/geo-e.svg new file mode 100644 index 000000000..faae05440 --- /dev/null +++ b/docs/src/modules/concepts/images/geo-e.svg @@ -0,0 +1,93 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/src/modules/concepts/pages/multi-region.adoc b/docs/src/modules/concepts/pages/multi-region.adoc index 418bb1e1f..f7d995fe2 100644 --- a/docs/src/modules/concepts/pages/multi-region.adoc +++ b/docs/src/modules/concepts/pages/multi-region.adoc @@ -22,27 +22,31 @@ Akka's replicated reads offers full data replication across regions and even clo image:geo-a.svg[Geo data replication, width=600] -In the image above, the entity representing Alice has its primary region in Los Angeles. When a user in the primary region performs a read request image:steps-1.svg[width=20], the request is handled locally, and the response sent straight back image:steps-2.svg[width=20]. +In the image above, the entity representing Alice has its primary region in Los Angeles. When a user A in the primary region performs a read request image:steps-1.svg[width=20], the request is handled locally, and the response sent straight back image:steps-2.svg[width=20]. When the user in the primary region performs a write request image:steps-1.svg[width=20], that request is also handled locally, and a response sent directly back image:steps-2.svg[width=20]. After that write request completes, that write is replicated to other regions image:steps-3.svg[width=20], such as in London (UK). -A user in London, when they perform a read image:steps-4.svg[width=20], that read operation will happen locally, and a response sent immediately back image:steps-5.svg[width=20]. +A user B in London, when they perform a read image:steps-4.svg[width=20], that read operation will happen locally, and a response sent immediately back image:steps-5.svg[width=20]. A user can also perform write operations on entities in non-primary regions. image:geo-b.svg[Geo data replication, width=600] -In this scenario, a user in London (UK) is performing a write operation on the Alice entity image:steps-1.svg[width=20]. Since London is not the primary region for the Alice entity, Akka will automatically forward that request to the primary region image:steps-2.svg[width=20], in this case, Los Angeles (USA). That request will be handled in the USA, and a response sent directly back to the user image:steps-3.svg[width=20]. +In this scenario, the user B in London (UK) is performing a write operation on the Alice entity image:steps-1.svg[width=20]. Since London is not the primary region for the Alice entity, Akka will automatically forward that request to the primary region image:steps-2.svg[width=20], in this case, Los Angeles (USA). That request will be handled in the USA, and a response sent directly back to the user image:steps-3.svg[width=20]. image:geo-c.svg[Geo data replication, width=600] -When Bob makes a request in the UK on his data image:steps-1.svg[width=20], that request is handled locally image:steps-2.svg[width=20], and replicated to the US image:steps-3.svg[width=20], while Alice's requests in the USA with her data are handled locally in the USA, and replicated to the UK. +When Bob makes a request in the UK on his data image:steps-1.svg[width=20], that request is handled locally image:steps-2.svg[width=20], and replicated to the US image:steps-3.svg[width=20]. Exactly the same as Alice's requests in the USA with her data are handled locally in the USA, and replicated to the UK. -The data however is still available in all regions. If Bob travels to the USA, he can still access his data. +The data however is still available in all regions. If Bob travels to the USA, he can access his data in the Los Angeles region. image:geo-d.svg[Geo data replication, width=600] -When Bob travels to the USA, read requests that Bob makes on his data are handled locally image:steps-1.svg[width=20], while write requests are forwarded to the UK image:steps-2.svg[width=20]. Meanwhile, write requests made by Alice on her data is all handled locally image:steps-4.svg[width=20] image:steps-5.svg[width=20], with writes being replicated to the UK image:steps-6.svg[width=20]. +When Bob travels to the USA, read requests that Bob makes on his data are handled locally image:steps-1.svg[width=20] and getting an immediate reply image:steps-3.svg[width=20]. Write requests, on the other hand, are forwarded to the UK image:steps-2.svg[width=20], before the reply is sent image:steps-3.svg[width=20]. + +image:geo-e.svg[Geo data replication, width=600] + +Meanwhile, all requests made by Alice on her data are handled locally image:steps-1.svg[width=20] and get an immediate reply image:steps-2.svg[width=20]. The write operations are being replicated to the UK image:steps-3.svg[width=20]. === Primary selection diff --git a/docs/src/modules/operations/pages/regions/index.adoc b/docs/src/modules/operations/pages/regions/index.adoc index 4cc7959c3..041b6aa19 100644 --- a/docs/src/modules/operations/pages/regions/index.adoc +++ b/docs/src/modules/operations/pages/regions/index.adoc @@ -38,7 +38,7 @@ When you deploy a service it will run in all regions of the project. When you ad [[selecting-primary]] === Selecting primary for stateful components -Stateful components like Event Sourced Entities or Workflow can be replicated to other regions. For each stateful component instance there is a primary region, which handles all write requests. Read requests can be served from any region. See xref:java:event-sourced-entities.adoc#_replication[Event Sourced Entity replication] and xref:java:workflows.adoc#_replication[Workflow replication] for more information about read and write requests. +Stateful components like Event Sourced Entities and Workflows can be replicated to other regions. For each stateful component instance there is a primary region, which handles all write requests. Read requests can be served from any region. See xref:java:event-sourced-entities.adoc#_replication[Event Sourced Entity replication] and xref:java:workflows.adoc#_replication[Workflow replication] for more information about read and write requests. There are two operational choices for deciding where the primary is located: From 9d44701858f780ca444795b10c53306415b1ecaa Mon Sep 17 00:00:00 2001 From: Richard Summerhayes Date: Fri, 17 Jan 2025 06:09:52 -0600 Subject: [PATCH 6/6] docs: new get started drop down, tagged links (#162) --- .../bundle/akka-theme-ui-001-bundle.zip | Bin 160479 -> 161393 bytes .../partials/drop-down-developers.hbs | 18 ++++++------ .../partials/drop-down-get-started.hbs | 27 ++++++++++++++++++ .../partials/drop-down-sdk.hbs | 10 +++---- 4 files changed, 41 insertions(+), 14 deletions(-) create mode 100644 docs/supplemental_ui/partials/drop-down-get-started.hbs diff --git a/docs/supplemental_ui/bundle/akka-theme-ui-001-bundle.zip b/docs/supplemental_ui/bundle/akka-theme-ui-001-bundle.zip index 53724210ff8a961ac7554bb33c3472a2e26f771d..0954b53f26139f3cf0c30286febe4f979a904d74 100644 GIT binary patch delta 18226 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 diff --git a/docs/supplemental_ui/partials/drop-down-developers.hbs b/docs/supplemental_ui/partials/drop-down-developers.hbs index e5e816ea9..de6a3473a 100644 --- a/docs/supplemental_ui/partials/drop-down-developers.hbs +++ b/docs/supplemental_ui/partials/drop-down-developers.hbs @@ -4,23 +4,23 @@ diff --git a/docs/supplemental_ui/partials/drop-down-get-started.hbs b/docs/supplemental_ui/partials/drop-down-get-started.hbs new file mode 100644 index 000000000..690947d72 --- /dev/null +++ b/docs/supplemental_ui/partials/drop-down-get-started.hbs @@ -0,0 +1,27 @@ + + Get Started + + diff --git a/docs/supplemental_ui/partials/drop-down-sdk.hbs b/docs/supplemental_ui/partials/drop-down-sdk.hbs index cde2c7651..f1a22ef36 100644 --- a/docs/supplemental_ui/partials/drop-down-sdk.hbs +++ b/docs/supplemental_ui/partials/drop-down-sdk.hbs @@ -4,14 +4,14 @@