Skip to content

Commit 5c353fe

Browse files
Merge branch 'main' into rishabh-gupta/ui/deprecation-computed-property-override
2 parents 20a742b + 182ea58 commit 5c353fe

File tree

26 files changed

+568
-114
lines changed

26 files changed

+568
-114
lines changed

.changelog/22888.txt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
```release-note:improvement
2+
ui: replaced ember partials with components as an incremental step to upgrade to ember v4
3+
```

CHANGELOG.md

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,63 @@
1+
## 1.22.0-rc2+ent (October 15, 2025)
2+
3+
SECURITY:
4+
5+
* security: Adding warning when remote/local script checks are enabled without enabling ACL's [[GH-22877](https://github.com/hashicorp/consul/issues/22877)]
6+
* security: Improved validation of the Content-Length header in the Consul KV endpoint to prevent potential denial of service attacks[CVE-2025-11374]() [[GH-22916](https://github.com/hashicorp/consul/issues/22916)]
7+
* security: adding a maximum Content-Length on the event endpoint to fix denial-of-service (DoS) attacks. This resolves [CVE-2025-11375](https://nvd.nist.gov/vuln/detail/CVE-2025-11375). [[GH-22836](https://github.com/hashicorp/consul/issues/22836)]
8+
* security: breaking change - adding a key name validation on the key/value endpoint along side with the DisableKVKeyValidation config to disable/enable it to fix path traversal attacks. This resolves [CVE-2025-11392](https://nvd.nist.gov/vuln/detail/CVE-2025-11392). [[GH-22850](https://github.com/hashicorp/consul/issues/22850)]
9+
10+
BUG FIXES:
11+
12+
* cmd: Fix `consul operator utilization --help` to show only available options without extra parameters. [[GH-22912](https://github.com/hashicorp/consul/issues/22912)]
13+
14+
## 1.22.0-rc2 (October 15, 2025)
15+
16+
SECURITY:
17+
18+
* security: Adding warning when remote/local script checks are enabled without enabling ACL's [[GH-22877](https://github.com/hashicorp/consul/issues/22877)]
19+
* security: Improved validation of the Content-Length header in the Consul KV endpoint to prevent potential denial of service attacks[CVE-2025-11374]() [[GH-22916](https://github.com/hashicorp/consul/issues/22916)]
20+
* security: adding a maximum Content-Length on the event endpoint to fix denial-of-service (DoS) attacks. This resolves [CVE-2025-11375](https://nvd.nist.gov/vuln/detail/CVE-2025-11375). [[GH-22836](https://github.com/hashicorp/consul/issues/22836)]
21+
* security: breaking change - adding a key name validation on the key/value endpoint along side with the DisableKVKeyValidation config to disable/enable it to fix path traversal attacks. This resolves [CVE-2025-11392](https://nvd.nist.gov/vuln/detail/CVE-2025-11392). [[GH-22850](https://github.com/hashicorp/consul/issues/22850)]
22+
23+
BUG FIXES:
24+
25+
* cmd: Fix `consul operator utilization --help` to show only available options without extra parameters. [[GH-22912](https://github.com/hashicorp/consul/issues/22912)]
26+
27+
## 1.22.0-rc1+ent (September 30, 2025)
28+
29+
SECURITY:
30+
31+
* connect: Upgrade Consul's bundled Envoy version to 1.35.3 and remove support for 1.31.10. This update also includes a fix to prevent Envoy (v1.35+) startup failures by only configuring the TLS transport socket when the CA bundle is present. [[GH-22824](https://github.com/hashicorp/consul/issues/22824)]
32+
33+
FEATURES:
34+
35+
* Added support to register a service in consul with multiple ports [[GH-22769](https://github.com/hashicorp/consul/issues/22769)]
36+
* agent: Added IsDualStack utility function to detect if the agent is configured for both IPv4 and IPv6 (dual-stack mode) based on its bind address retrieved from "agent/self" API. [[GH-22741](https://github.com/hashicorp/consul/issues/22741)]
37+
* install: Updated license information displayed during post-install
38+
* ipv6: addtition of ip6tables changes for ipv6 and dual stack support [[GH-22787](https://github.com/hashicorp/consul/issues/22787)]
39+
* oidc: add client authentication using JWT assertion and PKCE. default PKCE is enabled. [[GH-22732](https://github.com/hashicorp/consul/issues/22732)]
40+
41+
IMPROVEMENTS:
42+
43+
* api: Added a new API (/v1/operator/utilization) to support enterprise API for Manual Snapshot Reporting [[GH-22837](https://github.com/hashicorp/consul/issues/22837)]
44+
* cmd: Added new subcommand `consul operator utilization [-today-only] [-message] [-y]` to generate a bundle with census utilization snapshot. Main flow is implemented in consul-enterprise
45+
http: Added a new API Handler for `/v1/operator/utilization`. Core functionality to be implemented in consul-enterprise
46+
agent: Always enabled census metrics collection with configurable option to export it to Hashicorp Reporting [[GH-22843](https://github.com/hashicorp/consul/issues/22843)]
47+
* cli: `snapshot agent` now supports authenticating to Azure Blob Storage using Azure Managed Service Identities (MSI). [[GH-11171](https://github.com/hashicorp/consul/issues/11171)]
48+
* command: connect envoy bootstrap defaults to 127.0.0.1 in IPv4-only environment and to ::1 in IPv6/DualStack environment. [[GH-22763](https://github.com/hashicorp/consul/issues/22763)]
49+
* connect: default upstream.local_bind_address to ::1 for IPv6 agent bind address [[GH-22773](https://github.com/hashicorp/consul/issues/22773)]
50+
* proxy: default proxy.local_service_address to ::1 for IPv6 agent bind address [[GH-22772](https://github.com/hashicorp/consul/issues/22772)]
51+
* ui: Improved accessibility features in the Consul UI to enhance usability for users with disabilities [[GH-22770](https://github.com/hashicorp/consul/issues/22770)]
52+
* ui: Replace yarn with pnpm for package management [[GH-22790](https://github.com/hashicorp/consul/issues/22790)]
53+
* ui: auth method config values were overflowing. This PR fixes the issue and adds word break for table elements with large content. [[GH-22813](https://github.com/hashicorp/consul/issues/22813)]
54+
55+
BUG FIXES:
56+
57+
* ui: Allow FQDN to be displayed in the Consul web interface. [[GH-22779](https://github.com/hashicorp/consul/issues/22779)]
58+
* ui: fixes the issue where namespaces where disappearing and Welcome to Namespace screen showed up after tab switching [[GH-22789](https://github.com/hashicorp/consul/issues/22789)]
59+
* ui: fixes the issue where when doing deletes of multiple tokens or policies, the three dots on the right hand side stops responding after the first delete. [[GH-22752](https://github.com/hashicorp/consul/issues/22752)]
60+
161
## 1.22.0-rc1 (September 30, 2025)
262

363
SECURITY:

envoyextensions/go.mod

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ require (
1414
github.com/envoyproxy/go-control-plane v0.13.4
1515
github.com/envoyproxy/go-control-plane/envoy v1.32.3
1616
github.com/google/go-cmp v0.6.0
17-
github.com/hashicorp/consul/api v1.33.0-rc1
17+
github.com/hashicorp/consul/api v1.33.0-rc2
1818
github.com/hashicorp/consul/sdk v0.17.0-rc1
1919
github.com/hashicorp/go-hclog v1.5.0
2020
github.com/hashicorp/go-multierror v1.1.1

go.mod

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -47,11 +47,11 @@ require (
4747
github.com/hashicorp/cap v0.10.0
4848
github.com/hashicorp/consul-awsauth v0.0.0-20250825122907-9e35fe9ded3a
4949
github.com/hashicorp/consul-net-rpc v0.0.0-20221205195236-156cfab66a69
50-
github.com/hashicorp/consul/api v1.33.0-rc1
51-
github.com/hashicorp/consul/envoyextensions v0.9.0-rc1
50+
github.com/hashicorp/consul/api v1.33.0-rc2
51+
github.com/hashicorp/consul/envoyextensions v0.9.0-rc2
5252
github.com/hashicorp/consul/proto-public v0.7.0-rc1
5353
github.com/hashicorp/consul/sdk v0.17.0-rc1
54-
github.com/hashicorp/consul/troubleshoot v0.8.0-rc1
54+
github.com/hashicorp/consul/troubleshoot v0.8.0-rc2
5555
github.com/hashicorp/go-bexpr v0.1.2
5656
github.com/hashicorp/go-checkpoint v0.5.0
5757
github.com/hashicorp/go-cleanhttp v0.5.2

test-integ/go.mod

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ go 1.25.1
44

55
require (
66
github.com/google/go-cmp v0.7.0
7-
github.com/hashicorp/consul/api v1.33.0-rc1
7+
github.com/hashicorp/consul/api v1.33.0-rc2
88
github.com/hashicorp/consul/proto-public v0.7.0-rc1
99
github.com/hashicorp/consul/sdk v0.17.0-rc1
1010
github.com/hashicorp/consul/test/integration/consul-container v0.0.0-20230628201853-bdf4fad7c5a5

test/integration/consul-container/go.mod

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,8 @@ require (
1111
github.com/go-jose/go-jose/v3 v3.0.4
1212
github.com/go-viper/mapstructure/v2 v2.4.0
1313
github.com/hashicorp/consul v1.16.1
14-
github.com/hashicorp/consul/api v1.33.0-rc1
15-
github.com/hashicorp/consul/envoyextensions v0.9.0-rc1
14+
github.com/hashicorp/consul/api v1.33.0-rc2
15+
github.com/hashicorp/consul/envoyextensions v0.9.0-rc2
1616
github.com/hashicorp/consul/sdk v0.17.0-rc1
1717
github.com/hashicorp/consul/testing/deployer v0.0.0-20230811171106-4a0afb5d1373
1818
github.com/hashicorp/go-cleanhttp v0.5.2

testing/deployer/go.mod

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ require (
66
github.com/avast/retry-go v3.0.0+incompatible
77
github.com/google/go-cmp v0.7.0
88
github.com/hashicorp/consul-server-connection-manager v0.1.12
9-
github.com/hashicorp/consul/api v1.33.0-rc1
9+
github.com/hashicorp/consul/api v1.33.0-rc2
1010
github.com/hashicorp/consul/proto-public v0.7.0-rc1
1111
github.com/hashicorp/consul/sdk v0.17.0-rc1
1212
github.com/hashicorp/go-cleanhttp v0.5.2

troubleshoot/go.mod

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,8 @@ require (
2626
github.com/envoyproxy/go-control-plane/envoy v1.32.4
2727
github.com/envoyproxy/go-control-plane/ratelimit v0.1.0
2828
github.com/envoyproxy/go-control-plane/xdsmatcher v0.13.4
29-
github.com/hashicorp/consul/api v1.33.0-rc1
30-
github.com/hashicorp/consul/envoyextensions v0.9.0-rc1
29+
github.com/hashicorp/consul/api v1.33.0-rc2
30+
github.com/hashicorp/consul/envoyextensions v0.9.0-rc2
3131
github.com/hashicorp/consul/sdk v0.17.0-rc1
3232
github.com/stretchr/testify v1.10.0
3333
google.golang.org/protobuf v1.36.4
Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
# Consul::Policy::Form
2+
3+
A presentational component that renders the Policy edit/create form and the action buttons (Save / Cancel / Delete). It wraps the existing PolicyForm fieldset, conditionally loads tokens that use the policy, and delegates create/update/cancel/delete behavior to closure actions supplied by caller.
4+
5+
## Usage
6+
7+
```hbs
8+
<Consul::Policy::Form
9+
@form={{form}}
10+
@partition={{partition}}
11+
@nspace={{nspace}}
12+
@item={{item}}
13+
@create={{create}}
14+
@dc={{dc}}
15+
@id={{id}}
16+
@items={{items}}
17+
@onCreate={{route-action 'create' item}}
18+
@onUpdate={{route-action 'update' item}}
19+
@onCancel={{route-action 'cancel' item}}
20+
@onDelete={{route-action 'delete'}}
21+
@onItemsChange={{action (mut items) value="data"}}
22+
/>
23+
```
24+
25+
## Arguments
26+
27+
| Argument | Type | Required | Description |
28+
|---|---:|:---:|---|
29+
| `@form` | object | yes | Form builder / changeset used by PolicyForm. |
30+
| `@partition` | string | yes | Current partition. |
31+
| `@nspace` | string | yes | Current namespace. |
32+
| `@item` | object | yes | Policy model / changeset. |
33+
| `@create` | boolean | no | True when rendering the "create" flow. |
34+
| `@dc` | string | no | Datacenter identifier used to build DataSource URIs. |
35+
| `@id` | string | no | Policy id (used to fetch tokens for the policy). |
36+
| `@items` | array | no | Tokens currently associated with the policy (passed from caller). |
37+
| `@onCreate` | function | no | Closure invoked to create the policy (caller typically passes `route-action 'create' item`). |
38+
| `@onUpdate` | function | no | Closure invoked to update the policy (caller typically passes `route-action 'update' item`). |
39+
| `@onCancel` | function | no | Closure invoked when Cancel is clicked (caller typically passes `route-action 'cancel' item` or a transition). |
40+
| `@onDelete` | function | no | Closure invoked to delete the policy (caller typically passes `route-action 'delete'`). |
41+
| `@onItemsChange` | function | no | Handler for DataSource `onchange`; recommended: `action (mut items) value="data"`. |
42+
43+
## Behavior / Notes
44+
45+
- When not in create mode and the policy has an ID, the component loads related tokens via the DataSource:
46+
/{partition}/{nspace}/{dc}/tokens/for-policy/{id}. The caller should provide `@onItemsChange` to keep caller state in sync.
47+
- Save button:
48+
- If `@create` is true and caller has permission → invokes `@onCreate`.
49+
- Otherwise → invokes `@onUpdate` if provided.
50+
- Cancel button calls `@onCancel`. Pass a route-action (preferred) so route-level handlers (e.g. WithBlockingActions) are used, or pass a controller action if desired.
51+
- Delete button opens a confirmation dialog; actual delete is triggered by calling the provided `@onDelete` closure (confirmed via the dialog).
52+
- Keep argument names and usage consistent with existing callers. Pass route-action closures when the route/mixin provides the action (create/update/delete/cancel).
53+
54+
## See
55+
56+
- Component template: ./index.hbs
57+
- Component class: ./index.js
58+
59+
## Implementation hints
60+
61+
- Invoke closure args directly inside the component (use `{{on 'click' @onCreate}}`, `{{on 'click' @onCancel}}`, `{{on 'click' (fn confirm @onDelete @item)}}`) so the calling context (route or controller) receives the event.
62+
- Avoid reserved/uppercase argument names (e.g. use `@local` not `@Local`).

ui/packages/consul-ui/app/templates/dc/acls/policies/-form.hbs renamed to ui/packages/consul-ui/app/components/consul/policy/form/index.hbs

Lines changed: 28 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -5,74 +5,74 @@
55

66
<form>
77
<PolicyForm
8-
@form={{form}}
9-
@partition={{partition}}
10-
@nspace={{nspace}}
11-
@item={{item}}
8+
@form={{@form}}
9+
@partition={{@partition}}
10+
@nspace={{@nspace}}
11+
@item={{@item}}
1212
>
1313
{{!don't show template selection here, i.e. Service Identity}}
1414
<BlockSlot @name="template" />
1515
</PolicyForm>
16-
{{#if (not create) }}
16+
{{#if (and (not @create) @item @item.ID)}}
1717
<DataSource
1818
@src={{uri '/${partition}/${nspace}/${dc}/tokens/for-policy/${id}'
1919
(hash
20-
partition=partition
21-
nspace=nspace
22-
dc=dc
23-
id=(or id '')
20+
partition=@partition
21+
nspace=@nspace
22+
dc=@dc
23+
id=(or @id '')
2424
)
2525
}}
26-
@onchange={{action (mut items) value="data"}}
26+
@onchange={{@onItemsChange}}
2727
/>
28-
{{#if (gt items.length 0)}}
28+
{{#if (gt @items.length 0)}}
2929
<TokenList
3030
@caption="Applied to the following tokens:"
31-
@items={{items}}
31+
@items={{@items}}
3232
/>
3333
{{/if}}
3434
{{/if}}
3535
<div>
3636
<Hds::ButtonSet>
37-
{{#if (and create (can "create tokens")) }}
37+
{{#if (and @create (can "create tokens")) }}
3838
{{! we only need to check for an empty name here as ember munges autofocus, once we have autofocus back revisit this}}
3939
<Hds::Button
4040
@text='Save'
4141
type='submit'
42-
{{ on 'click' (route-action 'create' item)}}
43-
disabled={{if (or item.isPristine item.isInvalid (eq item.Name '')) 'disabled'}}
42+
{{ on 'click' @onCreate}}
43+
disabled={{if (or @item.isPristine @item.isInvalid (eq @item.Name '')) 'disabled'}}
4444
/>
4545
{{ else }}
46-
{{#if (can "write policy" item=item)}}
46+
{{#if (can "write policy" item=@item)}}
4747
<Hds::Button
4848
@text='Save'
4949
type='submit'
50-
{{ on 'click' (route-action 'update' item)}}
51-
disabled={{if item.isInvalid 'disabled'}}
50+
{{ on 'click' @onUpdate}}
51+
disabled={{if @item.isInvalid 'disabled'}}
5252
/>
5353
{{/if}}
5454
{{/if}}
5555
<Hds::Button
5656
@text='Cancel'
5757
@color='secondary'
5858
type='reset'
59-
{{ action "cancel" item}}
59+
{{ on 'click' @onCancel}}
6060
/>
61-
{{# if (and (not create) (can "delete policy" item=item) ) }}
61+
{{# if (and (not @create) (can "delete policy" item=@item) ) }}
6262
<ConfirmationDialog @message="Are you sure you want to delete this Policy?">
6363
<BlockSlot @name="action" as |confirm|>
6464
<Hds::Button
6565
@text='Delete'
6666
@color='critical'
67-
{{action confirm 'delete' item}}
67+
{{on 'click' (fn confirm @onDelete @item)}}
6868
data-test-delete
6969
/>
7070
</BlockSlot>
7171
<BlockSlot @name="dialog" as |execute cancel message|>
72-
{{#if (gt items.length 0)}}
72+
{{#if (gt @items.length 0)}}
7373
<ModalDialog
7474
data-test-delete-modal
75-
@onclose={{action cancel}}
75+
@onclose={{cancel}}
7676
@open={{true}}
7777
@aria={{hash
7878
label="Policy in Use"
@@ -84,9 +84,9 @@
8484
<BlockSlot @name="body">
8585
<p>
8686
This Policy is currently in use. If you choose to delete this Policy, it will be removed from the
87-
following <strong>{{items.length}} Tokens</strong>:
87+
following <strong>{{@items.length}} Tokens</strong>:
8888
</p>
89-
<TokenList @items={{items}} @target="_blank" />
89+
<TokenList @items={{@items}} @target="_blank" />
9090
<p>
9191
This action cannot be undone. {{message}}
9292
</p>
@@ -97,12 +97,12 @@
9797
@text='Yes, Delete'
9898
data-test-delete
9999
@color='critical'
100-
{{action execute}}
100+
{{on 'click' execute}}
101101
/>
102102
<Hds::Button
103103
@text='Cancel'
104104
@color='secondary'
105-
{{action close}}
105+
{{on 'click' close}}
106106
/>
107107
</Hds::ButtonSet>
108108
</BlockSlot>
@@ -115,4 +115,4 @@
115115
{{/if}}
116116
</Hds::ButtonSet>
117117
</div>
118-
</form>
118+
</form>

0 commit comments

Comments
 (0)