Skip to content

Commit d12a9fb

Browse files
committed
Merge branch 'master' into security-page-refactor-2
2 parents ed17ef8 + cde252a commit d12a9fb

84 files changed

Lines changed: 494 additions & 170 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
---
2+
name: Fork PR dispatch to enterprise
3+
on:
4+
workflow_run:
5+
workflows: ["PR verification (forks)"]
6+
types: [completed]
7+
permissions:
8+
id-token: write
9+
contents: read
10+
statuses: write
11+
jobs:
12+
dispatch:
13+
if: >
14+
github.event.workflow_run.conclusion == 'success' &&
15+
github.event.workflow_run.event == 'pull_request' &&
16+
github.event.workflow_run.head_repository.fork == true
17+
runs-on: blacksmith-2vcpu-ubuntu-2404
18+
steps:
19+
- uses: aws-actions/configure-aws-credentials@v4
20+
with:
21+
aws-region: ${{ vars.RP_AWS_CRED_REGION }}
22+
role-to-assume: arn:aws:iam::${{ secrets.RP_AWS_CRED_ACCOUNT_ID }}:role/${{ vars.RP_AWS_CRED_BASE_ROLE_NAME }}${{ github.event.repository.name }}
23+
- uses: aws-actions/aws-secretsmanager-get-secrets@v2
24+
with:
25+
secret-ids: |
26+
,sdlc/prod/github/actions_bot_token
27+
parse-json-secrets: true
28+
- name: Build dispatch payload
29+
id: payload
30+
env:
31+
HEAD_BRANCH: ${{ github.event.workflow_run.head_branch }}
32+
HEAD_SHA: ${{ github.event.workflow_run.head_sha }}
33+
HEAD_REPO: ${{ github.event.workflow_run.head_repository.full_name }}
34+
uses: actions/github-script@v7
35+
with:
36+
script: |
37+
const payload = {
38+
branch: process.env.HEAD_BRANCH,
39+
commit_sha: process.env.HEAD_SHA,
40+
head_repository: process.env.HEAD_REPO,
41+
is_fork: true,
42+
};
43+
core.setOutput('json', JSON.stringify(payload));
44+
core.setOutput('sha', process.env.HEAD_SHA);
45+
- name: Repository dispatch for fork PR
46+
uses: peter-evans/repository-dispatch@caebe2a7c967e9f927ff8780fea8e16e50b5ce40
47+
with:
48+
token: ${{ env.ACTIONS_BOT_TOKEN }}
49+
repository: redpanda-data/console-enterprise
50+
event-type: push
51+
client-payload: ${{ steps.payload.outputs.json }}
52+
- name: Set pending enterprise CI status
53+
env:
54+
HEAD_SHA: ${{ steps.payload.outputs.sha }}
55+
uses: actions/github-script@v7
56+
with:
57+
github-token: ${{ env.ACTIONS_BOT_TOKEN }}
58+
script: |
59+
await github.rest.repos.createCommitStatus({
60+
owner: 'redpanda-data',
61+
repo: 'console',
62+
sha: process.env.HEAD_SHA,
63+
state: 'pending',
64+
description: 'Enterprise CI is running...',
65+
context: 'Enterprise CI'
66+
});

CHANGELOG.md

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,15 @@
22

33
## Master / Unreleased
44

5+
## v3.7.2 / 2026-04-29
6+
- [BUGFIX] Hide unavailable "Infinite" retention option for topics with capped configurations and fix topic config UI layout.
7+
- [BUGFIX] Fix secrets list returning only the first page instead of all entries.
8+
- [BUGFIX] Fix ACL rule key collision in edit mode causing incorrect rule management.
9+
- [IMPROVEMENT] Show Group principals in ACLs and Permissions List.
10+
- [IMPROVEMENT] Add `lockPrincipal` query parameter to ACL create page to pre-fill and lock the principal field.
11+
- [IMPROVEMENT] UX copy and typography improvements across console UI.
12+
- [SECURITY] Resolve security vulnerabilities in frontend and backend dependencies.
13+
514
## v3.7.1 / 2026-04-08
615
- [IMPROVEMENT] Schema Registry pagination and sort order are now reflected in URL query parameters, enabling bookmarkable views.
716
- [IMPROVEMENT] Add user-friendly Kafka error messages with detailed per-error context.

backend/pkg/console/config_extensions.go

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,12 @@ type ConfigEntryExtension struct {
5252
// the user the available compression methods for `compression.type`.
5353
// The presented values may be dependent on the target Kafka cluster version.
5454
EnumValues []string `json:"enumValues,omitempty"`
55+
56+
// NoInfiniteValue opts a config out of the "Infinite" button in the config
57+
// editor. BYTE_SIZE and DURATION configs show Infinite by default; set this
58+
// to true for configs where the broker rejects the infinite sentinel (e.g.
59+
// max.message.bytes, segment.bytes, which have hard server-side caps).
60+
NoInfiniteValue bool `json:"noInfiniteValue,omitempty"`
5561
}
5662

5763
func loadConfigExtensions() (map[string]ConfigEntryExtension, error) {

backend/pkg/embed/kafka/apache_kafka_configs.json

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,8 @@
6060
"type": "INT",
6161
"documentation": "This configuration controls the segment file size for the log. Retention and cleaning is always done a file at a time so a larger segment size means fewer files but less granular control over retention.",
6262
"category": "Storage Internals",
63-
"frontendFormat": "BYTE_SIZE"
63+
"frontendFormat": "BYTE_SIZE",
64+
"noInfiniteValue": true
6465
},
6566
{
6667
"name": "retention.ms",
@@ -102,7 +103,8 @@
102103
"type": "INT",
103104
"documentation": "The largest record batch size allowed by Kafka (after compression if compression is enabled). If this is increased and there are consumers older than 0.10.2, the consumers' fetch size must also be increased so that they can fetch record batches this large. In the latest message format version, records are always grouped into batches for efficiency. In previous message format versions, uncompressed records are not grouped into batches and this limit only applies to a single record in that case.",
104105
"category": "Message Handling",
105-
"frontendFormat": "BYTE_SIZE"
106+
"frontendFormat": "BYTE_SIZE",
107+
"noInfiniteValue": true
106108
},
107109
{
108110
"name": "min.compaction.lag.ms",

backend/pkg/protogen/redpanda/api/dataplane/v1alpha3/transcript.pb.go

Lines changed: 6 additions & 6 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

frontend/src/components/license/register-modal.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -159,7 +159,7 @@ export const RegisterModal = ({ isOpen, onClose }: RegisterModalProps) => {
159159
</Box>
160160
<VStack align="center" spacing={2}>
161161
<Text fontSize="lg" fontWeight="bold" textAlign="center">
162-
This cluster has been successfully registered
162+
Cluster registered
163163
</Text>
164164
<Text color="gray.600" textAlign="center">
165165
Enjoy 30 more days of enterprise features.
@@ -256,7 +256,7 @@ export const RegisterModal = ({ isOpen, onClose }: RegisterModalProps) => {
256256
required: 'Email address is required',
257257
pattern: {
258258
value: EMAIL_VALIDATION_REGEX,
259-
message: 'Please enter a valid email address',
259+
message: 'Enter a valid email address',
260260
},
261261
}}
262262
/>

frontend/src/components/misc/connection-error-ui.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -31,17 +31,17 @@ function getErrorMessage(error: ConnectError): { title: string; description: str
3131
case Code.DeadlineExceeded:
3232
return {
3333
title: 'Request Timeout',
34-
description: 'The server took too long to respond. Please try again.',
34+
description: 'The server took too long to respond. Try again.',
3535
};
3636
case Code.Internal:
3737
return {
3838
title: 'Internal Server Error',
39-
description: 'An unexpected error occurred on the server. Please try again.',
39+
description: 'An unexpected error occurred on the server. Try again.',
4040
};
4141
default:
4242
return {
4343
title: 'Connection Error',
44-
description: 'Unable to connect to the server. Please check your connection and try again.',
44+
description: 'Unable to connect to the server. Check your connection and try again.',
4545
};
4646
}
4747
}

frontend/src/components/misc/error-boundary.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -261,7 +261,7 @@ const CopyToClipboardButton: FC<{ message: string; disabled: boolean; isLoading:
261261
.then(() => {
262262
toast({
263263
status: 'success',
264-
description: 'All info copied to clipboard!',
264+
description: 'All info copied to clipboard',
265265
});
266266
})
267267
.catch(navigatorClipboardErrorHandler);

frontend/src/components/misc/login.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -263,7 +263,7 @@ const LoginPage = () => {
263263
{{
264264
token_exchange_failed: 'OIDC authentication failed. Check backend logs for details.',
265265
kafka_authentication_failed:
266-
'Authenticated via OIDC, but failed to authenticate with the Kafka API.',
266+
'Authenticated through OIDC, but failed to authenticate with the Kafka API.',
267267
console_internal: 'An unexpected error occurred. Check backend logs.',
268268
permission_denied: `This user is not authorized to use Console. An administrator should grant user ${searchParams.get('oidc_subject') ?? ''} permissions in the Console configuration to proceed.`,
269269
}[searchParams.get('error_code') as string] || 'An unexpected error occurred. Check backend logs.'}

frontend/src/components/misc/no-clipboard-popover.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ import { isClipboardAvailable } from '../../utils/feature-detection';
1717
const popoverContent = (
1818
<>
1919
<p>Due to browser restrictions, the clipboard is not accessible on unsecure connections.</p>
20-
<p>Please make sure to run Redpanda Console with SSL enabled to use this feature.</p>
20+
<p>Run Redpanda Console with SSL enabled to use this feature.</p>
2121
</>
2222
);
2323

0 commit comments

Comments
 (0)