Skip to content

Commit 2493ea0

Browse files
authored
Merge branch 'main' into backend_group_ceadr_permissions_responce
2 parents edad494 + 3df5d5c commit 2493ea0

11 files changed

Lines changed: 109 additions & 36 deletions

File tree

.github/workflows/build-agent.yml

Lines changed: 20 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -67,9 +67,6 @@ jobs:
6767
name: bake-meta
6868
path: /tmp
6969

70-
- name: Set up QEMU
71-
uses: docker/setup-qemu-action@v3
72-
7370
- name: Set up Docker Buildx
7471
uses: docker/setup-buildx-action@v3
7572

@@ -84,6 +81,7 @@ jobs:
8481
uses: docker/bake-action@v5
8582
with:
8683
sbom: true
84+
provenance: true
8785
files: |
8886
./docker-bake-agent.hcl
8987
/tmp/bake-meta.json
@@ -108,14 +106,18 @@ jobs:
108106
retention-days: 1
109107

110108
- name: Attest Build Provenance
111-
uses: actions/attest-build-provenance@v1
109+
uses: actions/attest-build-provenance@v2
112110
with:
113111
subject-digest: "${{ fromJSON(steps.bake.outputs.metadata).image['containerimage.digest'] }}"
114112
push-to-registry: false
115113
subject-name: ${{ env.REGISTRY_IMAGE }}
116114

117115
merge:
118116
runs-on: ubuntu-latest
117+
permissions:
118+
id-token: write
119+
contents: read
120+
attestations: write
119121
needs:
120122
- build
121123
steps:
@@ -147,6 +149,20 @@ jobs:
147149
docker buildx imagetools create $(jq -cr '.target."docker-metadata-action".tags | map(select(startswith("${{ env.REGISTRY_IMAGE }}")) | "-t " + .) | join(" ")' /tmp/bake-meta.json) \
148150
$(printf '${{ env.REGISTRY_IMAGE }}@sha256:%s ' *)
149151
152+
- name: Get merged manifest digest
153+
id: manifest
154+
run: |
155+
TAG=$(jq -r '.target."docker-metadata-action".args.DOCKER_META_VERSION' /tmp/bake-meta.json)
156+
DIGEST="sha256:$(docker buildx imagetools inspect "${{ env.REGISTRY_IMAGE }}:${TAG}" --raw | sha256sum | cut -d ' ' -f1)"
157+
echo "digest=${DIGEST}" >> $GITHUB_OUTPUT
158+
159+
- name: Attest Merged Manifest Provenance
160+
uses: actions/attest-build-provenance@v2
161+
with:
162+
subject-digest: ${{ steps.manifest.outputs.digest }}
163+
subject-name: ${{ env.REGISTRY_IMAGE }}
164+
push-to-registry: false
165+
150166
- name: Inspect image
151167
run: |
152168
docker buildx imagetools inspect ${{ env.REGISTRY_IMAGE }}:$(jq -r '.target."docker-metadata-action".args.DOCKER_META_VERSION' /tmp/bake-meta.json)

.github/workflows/build.yml

Lines changed: 21 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -68,9 +68,6 @@ jobs:
6868
name: bake-meta
6969
path: /tmp
7070

71-
- name: Set up QEMU
72-
uses: docker/setup-qemu-action@v3
73-
7471
- name: Set up Docker Buildx
7572
uses: docker/setup-buildx-action@v3
7673

@@ -85,6 +82,7 @@ jobs:
8582
uses: docker/bake-action@v5
8683
with:
8784
sbom: true
85+
provenance: true
8886
files: |
8987
./docker-bake.hcl
9088
/tmp/bake-meta.json
@@ -109,14 +107,18 @@ jobs:
109107
retention-days: 1
110108

111109
- name: Attest Build Provenance
112-
uses: actions/attest-build-provenance@v1
110+
uses: actions/attest-build-provenance@v2
113111
with:
114112
subject-digest: "${{ fromJSON(steps.bake.outputs.metadata).image['containerimage.digest'] }}"
115113
push-to-registry: false
116-
subject-name: ${{ env.REGISTRY_IMAGE }}
114+
subject-name: ${{ env.REGISTRY_IMAGE }}
117115

118116
merge:
119117
runs-on: ubuntu-latest
118+
permissions:
119+
id-token: write
120+
contents: read
121+
attestations: write
120122
needs:
121123
- build
122124
steps:
@@ -148,6 +150,20 @@ jobs:
148150
docker buildx imagetools create $(jq -cr '.target."docker-metadata-action".tags | map(select(startswith("${{ env.REGISTRY_IMAGE }}")) | "-t " + .) | join(" ")' /tmp/bake-meta.json) \
149151
$(printf '${{ env.REGISTRY_IMAGE }}@sha256:%s ' *)
150152
153+
- name: Get merged manifest digest
154+
id: manifest
155+
run: |
156+
TAG=$(jq -r '.target."docker-metadata-action".args.DOCKER_META_VERSION' /tmp/bake-meta.json)
157+
DIGEST="sha256:$(docker buildx imagetools inspect "${{ env.REGISTRY_IMAGE }}:${TAG}" --raw | sha256sum | cut -d ' ' -f1)"
158+
echo "digest=${DIGEST}" >> $GITHUB_OUTPUT
159+
160+
- name: Attest Merged Manifest Provenance
161+
uses: actions/attest-build-provenance@v2
162+
with:
163+
subject-digest: ${{ steps.manifest.outputs.digest }}
164+
subject-name: ${{ env.REGISTRY_IMAGE }}
165+
push-to-registry: false
166+
151167
- name: Inspect image
152168
run: |
153169
docker buildx imagetools inspect ${{ env.REGISTRY_IMAGE }}:$(jq -r '.target."docker-metadata-action".args.DOCKER_META_VERSION' /tmp/bake-meta.json)

.github/workflows/quay.yml

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,7 @@ jobs:
9292
uses: docker/bake-action@v5
9393
with:
9494
sbom: true
95+
provenance: true
9596
files: |
9697
./docker-bake.hcl
9798
/tmp/bake-meta.json
@@ -116,14 +117,18 @@ jobs:
116117
retention-days: 1
117118

118119
- name: Attest Build Provenance
119-
uses: actions/attest-build-provenance@v1
120+
uses: actions/attest-build-provenance@v2
120121
with:
121122
subject-digest: "${{ fromJSON(steps.bake.outputs.metadata).image['containerimage.digest'] }}"
122123
push-to-registry: false
123124
subject-name: ${{ env.REGISTRY_IMAGE }}
124125

125126
merge:
126127
runs-on: ubuntu-latest
128+
permissions:
129+
id-token: write
130+
contents: read
131+
attestations: write
127132
needs:
128133
- build
129134
steps:
@@ -156,6 +161,20 @@ jobs:
156161
docker buildx imagetools create $(jq -cr '.target."docker-metadata-action".tags | map(select(startswith("${{ env.REGISTRY_IMAGE }}")) | "-t " + .) | join(" ")' /tmp/bake-meta.json) \
157162
$(printf '${{ env.REGISTRY_IMAGE }}@sha256:%s ' *)
158163
164+
- name: Get merged manifest digest
165+
id: manifest
166+
run: |
167+
TAG=$(jq -r '.target."docker-metadata-action".args.DOCKER_META_VERSION' /tmp/bake-meta.json)
168+
DIGEST="sha256:$(docker buildx imagetools inspect "${{ env.REGISTRY_IMAGE }}:${TAG}" --raw | sha256sum | cut -d ' ' -f1)"
169+
echo "digest=${DIGEST}" >> $GITHUB_OUTPUT
170+
171+
- name: Attest Merged Manifest Provenance
172+
uses: actions/attest-build-provenance@v2
173+
with:
174+
subject-digest: ${{ steps.manifest.outputs.digest }}
175+
subject-name: ${{ env.REGISTRY_IMAGE }}
176+
push-to-registry: false
177+
159178
- name: Inspect image
160179
run: |
161180
docker buildx imagetools inspect ${{ env.REGISTRY_IMAGE }}:$(jq -r '.target."docker-metadata-action".args.DOCKER_META_VERSION' /tmp/bake-meta.json)

.github/workflows/saas.yml

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ jobs:
2727
permissions:
2828
contents: read
2929
packages: write
30+
attestations: write
3031
# This is used to complete the identity challenge
3132
# with sigstore/fulcio when running outside of PRs.
3233
id-token: write
@@ -92,6 +93,16 @@ jobs:
9293
labels: ${{ steps.meta.outputs.labels }}
9394
cache-from: type=gha
9495
cache-to: type=gha,mode=max
96+
sbom: true
97+
provenance: true
98+
99+
- name: Attest Build Provenance
100+
if: ${{ github.event_name != 'pull_request' }}
101+
uses: actions/attest-build-provenance@v2
102+
with:
103+
subject-name: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
104+
subject-digest: ${{ steps.build-and-push.outputs.digest }}
105+
push-to-registry: true
95106

96107
# Sign the resulting Docker image digest except on PRs.
97108
# This will only write to the public Rekor transparency log when the Docker

.github/workflows/ws-server.yml

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ jobs:
2727
permissions:
2828
contents: read
2929
packages: write
30+
attestations: write
3031
# This is used to complete the identity challenge
3132
# with sigstore/fulcio when running outside of PRs.
3233
id-token: write
@@ -80,6 +81,16 @@ jobs:
8081
labels: ${{ steps.meta.outputs.labels }}
8182
cache-from: type=gha
8283
cache-to: type=gha,mode=max
84+
sbom: true
85+
provenance: true
86+
87+
- name: Attest Build Provenance
88+
if: ${{ github.event_name != 'pull_request' }}
89+
uses: actions/attest-build-provenance@v2
90+
with:
91+
subject-name: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
92+
subject-digest: ${{ steps.build-and-push.outputs.digest }}
93+
push-to-registry: true
8394

8495
# Sign the resulting Docker image digest except on PRs.
8596
# This will only write to the public Rekor transparency log when the Docker

frontend/src/app/components/dashboards/dashboard-view/dashboard-view.component.html

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
<div class="dashboard-view-page">
44
<div class="dashboard-header">
55
<div class="header-left">
6-
<button mat-icon-button (click)="navigateBack()" matTooltip="Back to dashboards">
6+
<button type="button" mat-icon-button (click)="navigateBack()" matTooltip="Back to dashboards">
77
<mat-icon>arrow_back</mat-icon>
88
</button>
99
<div class="header-info">
@@ -22,11 +22,11 @@ <h1 class="mat-h1">{{ dashboard()?.name || 'Loading...' }}</h1>
2222
data-testid="edit-mode-toggle">
2323
Edit mode
2424
</mat-slide-toggle>
25-
<button mat-flat-button color="primary"
25+
<button type="button" mat-flat-button color="primary"
2626
(click)="openAddPanelDialog()"
2727
data-testid="add-panel-button">
2828
<mat-icon>add</mat-icon>
29-
Add chart
29+
Add panel
3030
</button>
3131
</div>
3232
}
@@ -41,11 +41,11 @@ <h1 class="mat-h1">{{ dashboard()?.name || 'Loading...' }}</h1>
4141
@if (!loading() && gridsterItems().length === 0) {
4242
<div class="no-panels">
4343
<mat-icon class="no-panels-icon">bar_chart</mat-icon>
44-
<h3>No charts yet</h3>
45-
<p>Add charts to visualize your data from saved queries.</p>
46-
<button mat-flat-button color="primary" (click)="openAddPanelDialog()">
44+
<h3>No panels yet</h3>
45+
<p>Add panels to visualize your data from saved queries.</p>
46+
<button type="button" mat-flat-button color="primary" (click)="openAddPanelDialog()">
4747
<mat-icon>add</mat-icon>
48-
Add chart
48+
Add panel
4949
</button>
5050
</div>
5151
}
@@ -56,19 +56,19 @@ <h3>No charts yet</h3>
5656
<gridster-item [item]="item" class="panel-item" [class.edit-mode]="editMode()">
5757
<div class="panel-header">
5858
<span class="panel-title">{{ panelRef.savedQuery()?.name || 'Loading...' }}</span>
59-
<button mat-icon-button [matMenuTriggerFor]="panelMenu" class="panel-menu-button">
59+
<button type="button" mat-icon-button [matMenuTriggerFor]="panelMenu" class="panel-menu-button">
6060
<mat-icon>more_vert</mat-icon>
6161
</button>
6262
<mat-menu #panelMenu="matMenu">
6363
<a mat-menu-item [routerLink]="['/panels', connectionId(), item.widget.query_id]">
6464
<mat-icon>tune</mat-icon>
65-
<span>Configure chart</span>
65+
<span>Configure panel</span>
6666
</a>
67-
<button mat-menu-item (click)="openEditPanelDialog(item.widget)">
67+
<button type="button" mat-menu-item (click)="openEditPanelDialog(item.widget)">
6868
<mat-icon>swap_horiz</mat-icon>
6969
<span>Change query</span>
7070
</button>
71-
<button mat-menu-item (click)="openDeletePanelDialog(item.widget)" class="delete-action">
71+
<button type="button" mat-menu-item (click)="openDeletePanelDialog(item.widget)" class="delete-action">
7272
<mat-icon color="warn">delete</mat-icon>
7373
<span>Delete</span>
7474
</button>

frontend/src/app/components/dashboards/dashboard-view/dashboard-view.component.ts

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -191,9 +191,9 @@ export class DashboardViewComponent implements OnInit {
191191
},
192192
});
193193
this.angulartics2.eventTrack.next({
194-
action: 'Dashboards: add widget dialog opened',
194+
action: 'Dashboards: add panel dialog opened',
195195
});
196-
posthog.capture('Dashboards: add widget dialog opened');
196+
posthog.capture('Dashboards: add panel dialog opened');
197197

198198
const result = await dialogRef.afterClosed().toPromise();
199199
if (result) {
@@ -211,9 +211,9 @@ export class DashboardViewComponent implements OnInit {
211211
},
212212
});
213213
this.angulartics2.eventTrack.next({
214-
action: 'Dashboards: edit widget dialog opened',
214+
action: 'Dashboards: edit panel dialog opened',
215215
});
216-
posthog.capture('Dashboards: edit widget dialog opened');
216+
posthog.capture('Dashboards: edit panel dialog opened');
217217

218218
const result = await dialogRef.afterClosed().toPromise();
219219
if (result) {
@@ -231,9 +231,9 @@ export class DashboardViewComponent implements OnInit {
231231
},
232232
});
233233
this.angulartics2.eventTrack.next({
234-
action: 'Dashboards: delete widget dialog opened',
234+
action: 'Dashboards: delete panel dialog opened',
235235
});
236-
posthog.capture('Dashboards: delete widget dialog opened');
236+
posthog.capture('Dashboards: delete panel dialog opened');
237237

238238
const result = await dialogRef.afterClosed().toPromise();
239239
if (result) {

frontend/src/app/components/dashboards/panel-delete-dialog/panel-delete-dialog.component.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,9 +34,9 @@ export class PanelDeleteDialogComponent {
3434
);
3535
if (result) {
3636
this.angulartics2.eventTrack.next({
37-
action: 'Dashboards: widget deleted successfully',
37+
action: 'Dashboards: panel deleted successfully',
3838
});
39-
posthog.capture('Dashboards: widget deleted successfully');
39+
posthog.capture('Dashboards: panel deleted successfully');
4040
this.dialogRef.close(true);
4141
}
4242
this.submitting.set(false);

frontend/src/app/components/dashboards/panel-edit-dialog/panel-edit-dialog.component.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
<form [formGroup]="form" (ngSubmit)="onSubmit()">
2-
<h2 mat-dialog-title>{{ isEdit ? 'Edit panel' : 'Add chart' }}</h2>
2+
<h2 mat-dialog-title>{{ isEdit ? 'Edit panel' : 'Add panel' }}</h2>
33

44
<mat-dialog-content>
55
@if (savedQueries().length > 0) {
@@ -27,7 +27,7 @@ <h2 mat-dialog-title>{{ isEdit ? 'Edit panel' : 'Add chart' }}</h2>
2727
<div class="no-queries-message">
2828
<mat-icon class="no-queries-icon">code</mat-icon>
2929
<h3>No saved queries yet</h3>
30-
<p>Create a saved query first to add it as a chart on this dashboard.</p>
30+
<p>Create a saved query first to add it as a panel on this dashboard.</p>
3131
<a mat-stroked-button color="primary"
3232
[routerLink]="['/panels', data.connectionId, 'new']"
3333
(click)="dialogRef.close()">

frontend/src/app/components/dashboards/panel-edit-dialog/panel-edit-dialog.component.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -79,9 +79,9 @@ export class PanelEditDialogComponent implements OnInit {
7979
);
8080
if (result) {
8181
this.angulartics2.eventTrack.next({
82-
action: 'Dashboards: widget updated successfully',
82+
action: 'Dashboards: panel updated successfully',
8383
});
84-
posthog.capture('Dashboards: widget updated successfully');
84+
posthog.capture('Dashboards: panel updated successfully');
8585
this.dialogRef.close(true);
8686
}
8787
} else {
@@ -96,9 +96,9 @@ export class PanelEditDialogComponent implements OnInit {
9696
const result = await this._dashboards.createWidget(this.data.connectionId, this.data.dashboardId, payload);
9797
if (result) {
9898
this.angulartics2.eventTrack.next({
99-
action: 'Dashboards: widget created successfully',
99+
action: 'Dashboards: panel created successfully',
100100
});
101-
posthog.capture('Dashboards: widget created successfully');
101+
posthog.capture('Dashboards: panel created successfully');
102102
this.dialogRef.close(true);
103103
}
104104
}

0 commit comments

Comments
 (0)