Skip to content

Commit dea0b85

Browse files
authored
Merge branch 'main' into 6947-user-menu-expert-drawer-pinned
2 parents b9ddd07 + a1b200f commit dea0b85

58 files changed

Lines changed: 2161 additions & 1018 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/branch-deploy.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ jobs:
7070
steps:
7171
- name: Generate a token
7272
id: generate_token
73-
uses: actions/create-github-app-token@29824e69f54612133e76f7eaac726eef6c875baf # v2.2.1
73+
uses: actions/create-github-app-token@f8d387b68d61c58ab83c6c016672934102569859 # v3.0.0
7474
with:
7575
app-id: ${{ secrets.GH_BOT_APP_ID }}
7676
private-key: ${{ secrets.GH_BOT_APP_KEY }}
@@ -383,7 +383,7 @@ jobs:
383383
DOCKER_BUILD_SUMMARY: false
384384

385385
- name: Upload artifact
386-
uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6.0.0
386+
uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7.0.0
387387
with:
388388
name: k8s-forge
389389
path: /tmp/k8s-forge.tar

.github/workflows/docs.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ jobs:
1717
- name: Setup Node
1818
uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6.3.0
1919
with:
20-
node-version: '18'
20+
node-version: 24
2121
- name: Install Dependencies
2222
run: npm ci
2323
- name: Test Documentation Links
@@ -37,7 +37,7 @@ jobs:
3737
path: 'website'
3838
- name: Generate a token
3939
id: generate_token
40-
uses: actions/create-github-app-token@29824e69f54612133e76f7eaac726eef6c875baf # v2.2.1
40+
uses: actions/create-github-app-token@f8d387b68d61c58ab83c6c016672934102569859 # v3.0.0
4141
with:
4242
app-id: ${{ secrets.GH_BOT_APP_ID }}
4343
private-key: ${{ secrets.GH_BOT_APP_KEY }}
@@ -51,7 +51,7 @@ jobs:
5151
path: 'blueprint-library'
5252
token: ${{ steps.generate_token.outputs.token }}
5353
- name: Cache image pipeline output
54-
uses: actions/cache@cdf6c1fa76f9f475f3d7449005a359c84ca0f306 # v5.0.3
54+
uses: actions/cache@668228422ae6a00e4ad889ee87cd7109ec5666a7 # v5.0.4
5555
with:
5656
key: img-pipeline-cache
5757
path: website/_site/img
@@ -82,7 +82,7 @@ jobs:
8282
steps:
8383
- name: Generate token
8484
id: generate_token
85-
uses: actions/create-github-app-token@29824e69f54612133e76f7eaac726eef6c875baf # v2.2.1
85+
uses: actions/create-github-app-token@f8d387b68d61c58ab83c6c016672934102569859 # v3.0.0
8686
with:
8787
app-id: ${{ secrets.GH_BOT_APP_ID }}
8888
private-key: ${{ secrets.GH_BOT_APP_KEY }}

.github/workflows/install-test.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ jobs:
1111
steps:
1212
- uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6.3.0
1313
with:
14-
node-version: 20
14+
node-version: 24
1515
- name: install
1616
run: |
1717
npm install @flowfuse/flowfuse

.github/workflows/publish.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -116,7 +116,7 @@ jobs:
116116
steps:
117117
- name: Generate a token
118118
id: generate_token
119-
uses: actions/create-github-app-token@29824e69f54612133e76f7eaac726eef6c875baf # v2.2.1
119+
uses: actions/create-github-app-token@f8d387b68d61c58ab83c6c016672934102569859 # v3.0.0
120120
with:
121121
app-id: ${{ secrets.GH_BOT_APP_ID }}
122122
private-key: ${{ secrets.GH_BOT_APP_KEY }}

.github/workflows/release-publish.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ jobs:
1414
fetch-depth: 0
1515
- uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6.3.0
1616
with:
17-
node-version: 18
17+
node-version: 24
1818
- run: npm ci
1919
- run: npm run build
2020
# - run: npm run test

.github/workflows/tests.yml

Lines changed: 8 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -35,16 +35,13 @@ jobs:
3535
needs: check-changes
3636
runs-on: ubuntu-latest
3737
timeout-minutes: 20
38-
strategy:
39-
matrix:
40-
node-version: [20.x]
4138
steps:
4239
- name: Checkout
4340
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
44-
- name: Use Node.js ${{ matrix.node-version }}
41+
- name: Use Node.js 24
4542
uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6.3.0
4643
with:
47-
node-version: ${{ matrix.node-version }}
44+
node-version: 24
4845
- name: Install Dependencies
4946
run: npm ci
5047
- name: Build the forge
@@ -79,16 +76,13 @@ jobs:
7976
-m 3GB
8077
ports:
8178
- 5432:5432
82-
strategy:
83-
matrix:
84-
node-version: [20.x]
8579
steps:
8680
- name: Checkout
8781
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
88-
- name: Setup NodeJS ${{ matrix.node-version }}
82+
- name: Setup NodeJS 24
8983
uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6.3.0
9084
with:
91-
node-version: ${{ matrix.node-version }}
85+
node-version: 24
9286
- name: Install Dependencies
9387
run: npm ci
9488
- name: Build the forge
@@ -140,7 +134,7 @@ jobs:
140134
- name: Install Dependencies
141135
run: npm ci
142136
- name: Run UI E2E (Cypress) Tests - OS
143-
uses: cypress-io/github-action@bc22e01685c56e89e7813fd8e26f33dc47f87e15 # v7.1.5
137+
uses: cypress-io/github-action@4c06c48f3ffea349b7189aa06dfcda47a9fa7b92 # v7.1.8
144138
with:
145139
install: false
146140
config-file: config/cypress-os.config.js
@@ -151,7 +145,7 @@ jobs:
151145
SMTP_HOST: 'localhost'
152146
SMTP_PORT: '1025'
153147
SMTP_WEB_PORT: '8025'
154-
- uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6.0.0
148+
- uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7.0.0
155149
if: failure()
156150
with:
157151
name: os-cypress-output-${{ github.run_id }}-${{ github.run_number }}
@@ -180,7 +174,7 @@ jobs:
180174
- name: Install Dependencies
181175
run: npm ci
182176
- name: Run UI E2E (Cypress) Tests - EE
183-
uses: cypress-io/github-action@bc22e01685c56e89e7813fd8e26f33dc47f87e15 # v7.1.5
177+
uses: cypress-io/github-action@4c06c48f3ffea349b7189aa06dfcda47a9fa7b92 # v7.1.8
184178
with:
185179
install: false
186180
config-file: config/cypress-ee.config.js
@@ -191,7 +185,7 @@ jobs:
191185
SMTP_HOST: 'localhost'
192186
SMTP_PORT: '1025'
193187
SMTP_WEB_PORT: '8025'
194-
- uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6.0.0
188+
- uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7.0.0
195189
if: failure()
196190
with:
197191
name: ee-cypress-output-${{ github.run_id }}-${{ github.run_number }}

CHANGELOG.md

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,38 @@
1+
#### 2.28.1: Release
2+
3+
- Bump aws-actions/amazon-ecr-login from 2.0.1 to 2.0.2 (#6877)
4+
- Bump geekyeggo/delete-artifact from 5.1.0 to 6.0.0 (#6880)
5+
- Bump slackapi/slack-github-action from 2.1.1 to 3.0.1 (#6876)
6+
- Bump actions/setup-node from 6.2.0 to 6.3.0 (#6879)
7+
- Bump actions/download-artifact from 8.0.0 to 8.0.1 (#6878)
8+
- Run pre-staging on traefik (#6890)
9+
- Replace custom html with alert boxes (#6884)
10+
- Add Azure DevOps to GitOps pipelines (#6896) @hardillb
11+
- ci: Use NodeJS v24 as a default GitHub Actions runtime (#6946) @ppawlowski
12+
- Persist expert state (#6892) @Steve-Mcl
13+
- Fix `StreamableContent` render/sanitization order (#6936) @cstns
14+
- Bump flatted from 3.2.7 to 3.4.2 (#6912) @app/dependabot
15+
- Add rate limiting to team suspension instance shutdown (#6914) @hardillb
16+
- [6887] Make reusable dialog components for multiple option (#6891) @n-lark
17+
- Update RBAC documentation for Enterprise licensing (#6915) @hardillb
18+
- [6822] Pinia Task 5 - context (#6863) @n-lark
19+
- Fix expert messages reactivity when switching between agent modes (#6894) @cstns
20+
- [6791] Sentry: SecurityError removeEventListener from cross-origin Window (Part III) (#6888) @n-lark
21+
- Support for Expert Assistant inline action links (#6864) @Steve-Mcl
22+
- Expert/scalability (#6839) @cstns
23+
- Remove community support link from README (#6889) @allthedoll
24+
- Rate limit AutoStackUpdate task (#6874) @hardillb
25+
- [6820] Pinia Task 4 - ux-drawers (#6856) @n-lark
26+
- [6806] Pinia Task 3 - ux-navigation (#6838) @n-lark
27+
- [6804] Pinia Task 1 - ux-dialog (#6813) @n-lark
28+
- Ensure Certified Nodes always first in the list (#6869) @hardillb
29+
- [6805] Pinia Task 2 - ux-tours (#6837) @n-lark
30+
- docs: Clarify FlowFuse storage options (#6875) @ppawlowski
31+
- [6791] Sentry: SecurityError removeEventListener from cross-origin Window (Part II) (#6851) @n-lark
32+
- Ensure getProjectsToUpgrade Matches all Project Settings (#6870) @hardillb
33+
- ci: replace `tibdex/github-app-token` with `actions/create-github-app-token` (#6866) @ppawlowski
34+
- ci: switch to actions/create-github-app-token (#6865) @ppawlowski
35+
136
#### 2.28.0: Release
237

338
- Replace Ingress Nginx with Traefik (#6817)

docs/user/devops-pipelines.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -66,9 +66,9 @@ There are four types of stage to chose from:
6666
1. **[Instance](./concepts.md#hosted-instance)** - a single Node-RED instance.
6767
2. **[Device](./concepts.md#remote-instance)** - a single remote instance.
6868
3. **[Device Group](./concepts.md#device-groups)** - a group of remote instances.
69-
4. **Git Repository** - a remote GitHub repository.
69+
4. **Git Repository** - a remote GitHub/Azure DevOps repository.
7070
- This stage currently only supports:
71-
- Repositories hosted on GitHub.com
71+
- Repositories hosted on GitHub.com or dev.azure.com
7272

7373
### Actions
7474

@@ -103,7 +103,7 @@ When a Device Group stage is triggered, it will push the current active snapshot
103103

104104
#### Git Repository stage
105105

106-
Git Repository stages can be used to push and pull snapshots from a GitHub hosted repository. The stage can be configured with
106+
Git Repository stages can be used to push and pull snapshots from a GitHub or Azure DevOps hosted repository. The stage can be configured with
107107
the branch to push/pull from as well as the filename to use for the snapshot.
108108

109109
If a filename is not configured, it will generate the filename when pushing to the repository based on the name of Instance, Device
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
const { DataTypes } = require('sequelize')
2+
3+
module.exports = {
4+
/**
5+
* upgrade database
6+
* @param {QueryInterface} context Sequelize.QueryInterface
7+
*/
8+
up: async (context, Sequelize) => {
9+
await context.addColumn('GitTokens', 'type', {
10+
type: DataTypes.STRING,
11+
defaultValue: 'github',
12+
allowNull: false
13+
})
14+
},
15+
down: async (context, Sequelize) => { }
16+
}

forge/ee/db/models/GitToken.js

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,11 @@ module.exports = {
1010
token: {
1111
type: DataTypes.STRING,
1212
allowNull: false
13+
},
14+
type: {
15+
type: DataTypes.STRING,
16+
allowNull: false,
17+
default: 'github'
1318
}
1419
},
1520
associations: function (M) {

0 commit comments

Comments
 (0)