From 3e510f3b4b050cfb2ab3a31747afdc72da80d912 Mon Sep 17 00:00:00 2001 From: Dana Breseman <142491015+dbreseman@users.noreply.github.com> Date: Tue, 30 Apr 2024 10:45:59 +0200 Subject: [PATCH 01/62] Custom lint --- .github/workflows/lint-action.yml | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/.github/workflows/lint-action.yml b/.github/workflows/lint-action.yml index 564acc62566..0a64db2394a 100644 --- a/.github/workflows/lint-action.yml +++ b/.github/workflows/lint-action.yml @@ -12,8 +12,6 @@ on: jobs: # This workflow contains a single job called "lint-pr" lint-pr: - # Check if the event is not triggered by a fork - if: github.repository_owner == 'mendix' # The type of runner that the job will run on runs-on: ubuntu-latest # Steps represent a sequence of tasks that will be executed as part of the job @@ -53,9 +51,8 @@ jobs: body: | ${{ env.VER }} branch: lint-docs - committer: MarkvanMents - assignees: MarkvanMents - reviewers: MarkvanMents - labels: Internal WIP + committer: dbreseman + assignees: dbreseman + reviewers: dbreseman add-paths: | content/en/docs/**/*.md From 0cc2de77ec6aa4114ff7b5c7c1274bff88ba1e3b Mon Sep 17 00:00:00 2001 From: Dana Breseman <142491015+dbreseman@users.noreply.github.com> Date: Tue, 30 Apr 2024 11:22:39 +0200 Subject: [PATCH 02/62] Create scan-dates.yml --- .github/workflows/scan-dates.yml | 91 ++++++++++++++++++++++++++++++++ 1 file changed, 91 insertions(+) create mode 100644 .github/workflows/scan-dates.yml diff --git a/.github/workflows/scan-dates.yml b/.github/workflows/scan-dates.yml new file mode 100644 index 00000000000..aff77641578 --- /dev/null +++ b/.github/workflows/scan-dates.yml @@ -0,0 +1,91 @@ +name: Upcoming Date Alert + +on: + # Run action at midnight on the 25th of each month + schedule: + - cron: '0 0 25 * *' + # Allows you to run this workflow manually from the Actions tab + workflow_dispatch: + +jobs: + # This workflow contains a single job called "check-dates" + check-dates: + runs-on: ubuntu-latest + steps: + # Checks out your repository under $GITHUB_WORKSPACE, so your job can access it + - name: Checkout repository + uses: actions/checkout@v4 + with: + ref: development + + # JS to scan files for dates + - name: Scan files for dates + run: | + const fs = require('fs'); + const path = require('path'); + + // Define regex pattern to match dates + const datePattern = /(January|February|March|April|May|June|July|August|September|October|November|December).{0,6} [0-9]{4}/; + + // Function to recursively search for dates in Markdown files + const scanFilesForDates = (directory) => { + const dateLines = []; + + // Recursive function to search for dates + const searchForDates = (directory) => { + const files = fs.readdirSync(directory); + + for (const file of files) { + const filePath = path.join(directory, file); + const stats = fs.statSync(filePath); + + if (stats.isDirectory()) { + searchForDates(filePath); // Recursive call for subdirectories + } else if (file.endsWith('.md')) { + const lines = fs.readFileSync(filePath, 'utf8').split('\n'); + lines.forEach((line, lineNumber) => { + if (line.match(datePattern)) { + dateLines.push(`${filePath}:${lineNumber + 1}:${line.trim()}`); + } + }); + } + } + }; + + searchForDates(directory); + return dateLines; + }; + + // Scan files for dates in the specified directory + const dateLines = scanFilesForDates('content/en/docs'); + + // Print filename, line number, and text containing dates + dateLines.forEach((dateLine) => { + const [filename, lineNumber, lineText] = dateLine.split(':'); + console.log(`File: ${filename}`); + console.log(`Line: ${lineNumber}`); + console.log(`Text: ${lineText}`); + console.log("---"); + }); + + // Set outputs for subsequent steps + const scanOutput = dateLines.join('\n'); + console.log(`::set-output name=scan_output::${scanOutput}`); + + # Create GitHub issue, based on https://docs.github.com/en/actions/managing-issues-and-pull-requests/scheduling-issue-creation + - name: Create GitHub issue + env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + GH_REPO: ${{ github.repository }} + TITLE: "Upcoming Dates Search: Check if Updates Are Needed" + BODY: | + if [[ -n "${{ steps.check-dates.outputs.scan_output }}" ]]; then + echo "Manually confirm if updates are needed in the following docs:\n\n${{ steps.check-dates.outputs.scan_output }}" + else + echo "Ran successfully. No upcoming dates found for the next month." + fi + run: | + new_issue_url=$(gh issue create \ + --title "$TITLE" \ + --body "$BODY" \ + --repo "$GH_REPO") From d9f844d160b59ada9bee7b49322d60882f581294 Mon Sep 17 00:00:00 2001 From: Dana Breseman <142491015+dbreseman@users.noreply.github.com> Date: Tue, 30 Apr 2024 11:26:05 +0200 Subject: [PATCH 03/62] Modularize --- .github/workflows/scan-dates.yml | 112 ++++++++----------------------- 1 file changed, 28 insertions(+), 84 deletions(-) diff --git a/.github/workflows/scan-dates.yml b/.github/workflows/scan-dates.yml index aff77641578..48d540897db 100644 --- a/.github/workflows/scan-dates.yml +++ b/.github/workflows/scan-dates.yml @@ -1,91 +1,35 @@ name: Upcoming Date Alert on: - # Run action at midnight on the 25th of each month - schedule: - - cron: '0 0 25 * *' - # Allows you to run this workflow manually from the Actions tab - workflow_dispatch: + schedule: + - cron: '0 0 25 * *' + workflow_dispatch: jobs: - # This workflow contains a single job called "check-dates" - check-dates: - runs-on: ubuntu-latest - steps: - # Checks out your repository under $GITHUB_WORKSPACE, so your job can access it - - name: Checkout repository - uses: actions/checkout@v4 - with: - ref: development + check-dates: + runs-on: ubuntu-latest + steps: + - name: Checkout repository + uses: actions/checkout@v4 + with: + ref: development - # JS to scan files for dates - - name: Scan files for dates - run: | - const fs = require('fs'); - const path = require('path'); - - // Define regex pattern to match dates - const datePattern = /(January|February|March|April|May|June|July|August|September|October|November|December).{0,6} [0-9]{4}/; - - // Function to recursively search for dates in Markdown files - const scanFilesForDates = (directory) => { - const dateLines = []; - - // Recursive function to search for dates - const searchForDates = (directory) => { - const files = fs.readdirSync(directory); - - for (const file of files) { - const filePath = path.join(directory, file); - const stats = fs.statSync(filePath); - - if (stats.isDirectory()) { - searchForDates(filePath); // Recursive call for subdirectories - } else if (file.endsWith('.md')) { - const lines = fs.readFileSync(filePath, 'utf8').split('\n'); - lines.forEach((line, lineNumber) => { - if (line.match(datePattern)) { - dateLines.push(`${filePath}:${lineNumber + 1}:${line.trim()}`); - } - }); - } - } - }; - - searchForDates(directory); - return dateLines; - }; + - name: Scan files for dates + run: node scanDates.js - // Scan files for dates in the specified directory - const dateLines = scanFilesForDates('content/en/docs'); - - // Print filename, line number, and text containing dates - dateLines.forEach((dateLine) => { - const [filename, lineNumber, lineText] = dateLine.split(':'); - console.log(`File: ${filename}`); - console.log(`Line: ${lineNumber}`); - console.log(`Text: ${lineText}`); - console.log("---"); - }); - - // Set outputs for subsequent steps - const scanOutput = dateLines.join('\n'); - console.log(`::set-output name=scan_output::${scanOutput}`); - - # Create GitHub issue, based on https://docs.github.com/en/actions/managing-issues-and-pull-requests/scheduling-issue-creation - - name: Create GitHub issue - env: - GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} - GH_REPO: ${{ github.repository }} - TITLE: "Upcoming Dates Search: Check if Updates Are Needed" - BODY: | - if [[ -n "${{ steps.check-dates.outputs.scan_output }}" ]]; then - echo "Manually confirm if updates are needed in the following docs:\n\n${{ steps.check-dates.outputs.scan_output }}" - else - echo "Ran successfully. No upcoming dates found for the next month." - fi - run: | - new_issue_url=$(gh issue create \ - --title "$TITLE" \ - --body "$BODY" \ - --repo "$GH_REPO") + - name: Create GitHub issue + env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + GH_REPO: ${{ github.repository }} + TITLE: "Upcoming Dates Search: Check if Updates Are Needed" + BODY: | + if [[ -n "${{ steps.check-dates.outputs.scan_output }}" ]]; then + echo "Manually confirm if updates are needed in the following docs:\n\n${{ steps.check-dates.outputs.scan_output }}" + else + echo "Ran successfully. No upcoming dates found for the next month." + fi + run: | + new_issue_url=$(gh issue create \ + --title "$TITLE" \ + --body "$BODY" \ + --repo "$GH_REPO") From a96f2cdcf03f0fe8b47fa1a6e6b089fbb11ec079 Mon Sep 17 00:00:00 2001 From: Dana Breseman <142491015+dbreseman@users.noreply.github.com> Date: Tue, 30 Apr 2024 11:27:03 +0200 Subject: [PATCH 04/62] Create scanDates.js --- _scripts/scanDates.js | 50 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 _scripts/scanDates.js diff --git a/_scripts/scanDates.js b/_scripts/scanDates.js new file mode 100644 index 00000000000..a46ef397c4d --- /dev/null +++ b/_scripts/scanDates.js @@ -0,0 +1,50 @@ +const fs = require('fs'); +const path = require('path'); + +// Define regex pattern to match dates +const datePattern = /(January|February|March|April|May|June|July|August|September|October|November|December).{0,6} [0-9]{4}/; + +// Function to recursively search for dates in Markdown files +const scanFilesForDates = (directory) => { + const dateLines = []; + + // Recursive function to search for dates + const searchForDates = (directory) => { + const files = fs.readdirSync(directory); + + for (const file of files) { + const filePath = path.join(directory, file); + const stats = fs.statSync(filePath); + + if (stats.isDirectory()) { + searchForDates(filePath); // Recursive call for subdirectories + } else if (file.endsWith('.md')) { + const lines = fs.readFileSync(filePath, 'utf8').split('\n'); + lines.forEach((line, lineNumber) => { + if (line.match(datePattern)) { + dateLines.push(`${filePath}:${lineNumber + 1}:${line.trim()}`); + } + }); + } + } + }; + + searchForDates(directory); + return dateLines; +}; + +// Scan files for dates in the specified directory +const dateLines = scanFilesForDates('content/en/docs'); + +// Print filename, line number, and text containing dates +dateLines.forEach((dateLine) => { + const [filename, lineNumber, lineText] = dateLine.split(':'); + console.log(`File: ${filename}`); + console.log(`Line: ${lineNumber}`); + console.log(`Text: ${lineText}`); + console.log("---"); +}); + +// Set outputs for subsequent steps +const scanOutput = dateLines.join('\n'); +console.log(`::set-output name=scan_output::${scanOutput}`); From 544bf38fe3ef8f5a320692891ee4dcb2e6a3716e Mon Sep 17 00:00:00 2001 From: Dana Breseman <142491015+dbreseman@users.noreply.github.com> Date: Tue, 30 Apr 2024 11:29:55 +0200 Subject: [PATCH 05/62] Fix path --- .github/workflows/scan-dates.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/scan-dates.yml b/.github/workflows/scan-dates.yml index 48d540897db..1c124c6e108 100644 --- a/.github/workflows/scan-dates.yml +++ b/.github/workflows/scan-dates.yml @@ -15,7 +15,7 @@ jobs: ref: development - name: Scan files for dates - run: node scanDates.js + run: node _scripts/scanDates.js - name: Create GitHub issue env: From 082dfb1f0eb38b7772258c90abd45cd6a17599aa Mon Sep 17 00:00:00 2001 From: Dana Breseman <142491015+dbreseman@users.noreply.github.com> Date: Tue, 30 Apr 2024 11:36:46 +0200 Subject: [PATCH 06/62] Troubleshoot output --- .github/workflows/scan-dates.yml | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/.github/workflows/scan-dates.yml b/.github/workflows/scan-dates.yml index 1c124c6e108..a0e1212b0a4 100644 --- a/.github/workflows/scan-dates.yml +++ b/.github/workflows/scan-dates.yml @@ -14,20 +14,28 @@ jobs: with: ref: development + - name: Setup Node.js + uses: actions/setup-node@v4 + with: + node-version: '20' + + - name: Install dependencies + run: npm install + - name: Scan files for dates + id: scan run: node _scripts/scanDates.js - name: Create GitHub issue + if: steps.scan.outputs.scan_output != '' env: GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} GH_REPO: ${{ github.repository }} TITLE: "Upcoming Dates Search: Check if Updates Are Needed" BODY: | - if [[ -n "${{ steps.check-dates.outputs.scan_output }}" ]]; then - echo "Manually confirm if updates are needed in the following docs:\n\n${{ steps.check-dates.outputs.scan_output }}" - else - echo "Ran successfully. No upcoming dates found for the next month." - fi + Manually confirm if updates are needed in the following docs: + + ${{ steps.scan.outputs.scan_output }} run: | new_issue_url=$(gh issue create \ --title "$TITLE" \ From 29aac4374b975f455525191ac2bb0d559ec5ecf1 Mon Sep 17 00:00:00 2001 From: Dana Breseman <142491015+dbreseman@users.noreply.github.com> Date: Tue, 30 Apr 2024 11:41:49 +0200 Subject: [PATCH 07/62] Concatenate results --- .github/workflows/scan-dates.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/scan-dates.yml b/.github/workflows/scan-dates.yml index a0e1212b0a4..68a80dae56a 100644 --- a/.github/workflows/scan-dates.yml +++ b/.github/workflows/scan-dates.yml @@ -35,7 +35,7 @@ jobs: BODY: | Manually confirm if updates are needed in the following docs: - ${{ steps.scan.outputs.scan_output }} + ${{ join(steps.scan.outputs.scan_output, '\n') }} run: | new_issue_url=$(gh issue create \ --title "$TITLE" \ From e899e16212df487904412de695293a36062d693e Mon Sep 17 00:00:00 2001 From: Dana Breseman <142491015+dbreseman@users.noreply.github.com> Date: Tue, 30 Apr 2024 11:50:24 +0200 Subject: [PATCH 08/62] Check against current date --- _scripts/scanDates.js | 58 +++++++++++++++++++++++++++++++++++-------- 1 file changed, 47 insertions(+), 11 deletions(-) diff --git a/_scripts/scanDates.js b/_scripts/scanDates.js index a46ef397c4d..e14f930a595 100644 --- a/_scripts/scanDates.js +++ b/_scripts/scanDates.js @@ -1,8 +1,26 @@ const fs = require('fs'); const path = require('path'); +const { parse } = require('date-fns'); -// Define regex pattern to match dates -const datePattern = /(January|February|March|April|May|June|July|August|September|October|November|December).{0,6} [0-9]{4}/; +// Define regex pattern to match dates in different formats +const datePattern = /\b(?:\d{1,2}\s*(?:st|nd|rd|th)?,?\s+)?(?:Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|Jun(?:e)?|Jul(?:y)?|Aug(?:ust)?|Sep(?:tember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)(?:\s+\d{4})?\b/; + +// Define date formats to try parsing +const dateFormats = [ + 'MMMM yyyy', // January 2023 + 'MMMM d, yyyy', // January 2, 2023 + 'MMMM do, yyyy', // January 2nd, 2023 + 'MMMM dd, yyyy', // January 22, 2023 + 'do MMMM, yyyy', // 22 January, 2023 + 'd MMMM, yyyy', // 2 January, 2023 + 'd MMM yyyy', // 2 Jan 2023 + 'd MMMM yyyy', // 2 January 2023 +]; + +// Get the start date and end date for the upcoming month +const today = new Date(); +const startDate = new Date(today.getFullYear(), today.getMonth() + 1, 1); +const endDate = new Date(today.getFullYear(), today.getMonth() + 2, 0); // Function to recursively search for dates in Markdown files const scanFilesForDates = (directory) => { @@ -19,10 +37,17 @@ const scanFilesForDates = (directory) => { if (stats.isDirectory()) { searchForDates(filePath); // Recursive call for subdirectories } else if (file.endsWith('.md')) { - const lines = fs.readFileSync(filePath, 'utf8').split('\n'); + const content = fs.readFileSync(filePath, 'utf-8'); + const lines = content.split('\n'); lines.forEach((line, lineNumber) => { - if (line.match(datePattern)) { - dateLines.push(`${filePath}:${lineNumber + 1}:${line.trim()}`); + const datesInLine = line.match(datePattern); + if (datesInLine) { + datesInLine.forEach(dateStr => { + const date = parseDate(dateStr); + if (date && date >= startDate && date <= endDate) { + dateLines.push(`${filePath}:${lineNumber + 1}:${line.trim()}`); + } + }); } }); } @@ -31,18 +56,29 @@ const scanFilesForDates = (directory) => { searchForDates(directory); return dateLines; -}; +}; + +// Parse date string using multiple formats +const parseDate = (dateStr) => { + for (const format of dateFormats) { + try { + const date = parse(dateStr, format, new Date()); + if (!isNaN(date.getTime())) { + return date; + } + } catch (error) { + continue; + } + } + return null; +}; // Scan files for dates in the specified directory const dateLines = scanFilesForDates('content/en/docs'); // Print filename, line number, and text containing dates dateLines.forEach((dateLine) => { - const [filename, lineNumber, lineText] = dateLine.split(':'); - console.log(`File: ${filename}`); - console.log(`Line: ${lineNumber}`); - console.log(`Text: ${lineText}`); - console.log("---"); + console.log(dateLine); }); // Set outputs for subsequent steps From c80d8ccbe38752a53ba15e177aa82b889315b6ac Mon Sep 17 00:00:00 2001 From: Dana Breseman <142491015+dbreseman@users.noreply.github.com> Date: Tue, 30 Apr 2024 11:52:53 +0200 Subject: [PATCH 09/62] Remove date-fns dependency --- _scripts/scanDates.js | 27 ++++++++++----------------- 1 file changed, 10 insertions(+), 17 deletions(-) diff --git a/_scripts/scanDates.js b/_scripts/scanDates.js index e14f930a595..e0eec69c980 100644 --- a/_scripts/scanDates.js +++ b/_scripts/scanDates.js @@ -1,17 +1,17 @@ const fs = require('fs'); const path = require('path'); -const { parse } = require('date-fns'); // Define regex pattern to match dates in different formats -const datePattern = /\b(?:\d{1,2}\s*(?:st|nd|rd|th)?,?\s+)?(?:Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|Jun(?:e)?|Jul(?:y)?|Aug(?:ust)?|Sep(?:tember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)(?:\s+\d{4})?\b/; +const datePattern = /\b(?:\d{1,2}(?:st|nd|rd|th)?,?\s+)?(?:Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|Jun(?:e)?|Jul(?:y)?|Aug(?:ust)?|Sep(?:tember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)(?:\s+\d{4})?\b/; // Define date formats to try parsing const dateFormats = [ - 'MMMM yyyy', // January 2023 + 'MMMM do, yyyy', // January 1st, 2023 + 'MMMM dd, yyyy', // January 01, 2023 'MMMM d, yyyy', // January 2, 2023 - 'MMMM do, yyyy', // January 2nd, 2023 - 'MMMM dd, yyyy', // January 22, 2023 - 'do MMMM, yyyy', // 22 January, 2023 + 'MMMM yyyy', // January 2023 + 'do MMMM, yyyy', // 1st January, 2023 + 'dd MMMM, yyyy', // 01 January, 2023 'd MMMM, yyyy', // 2 January, 2023 'd MMM yyyy', // 2 Jan 2023 'd MMMM yyyy', // 2 January 2023 @@ -60,17 +60,10 @@ const scanFilesForDates = (directory) => { // Parse date string using multiple formats const parseDate = (dateStr) => { - for (const format of dateFormats) { - try { - const date = parse(dateStr, format, new Date()); - if (!isNaN(date.getTime())) { - return date; - } - } catch (error) { - continue; - } - } - return null; + // Replace suffixes like 'st', 'nd', 'rd', 'th' with '' + dateStr = dateStr.replace(/st|nd|rd|th/g, ''); + const parsedDate = new Date(dateStr); + return isNaN(parsedDate.getTime()) ? null : parsedDate; }; // Scan files for dates in the specified directory From 515efcc6987ea72e53d232e5d707b15681b42644 Mon Sep 17 00:00:00 2001 From: Dana Breseman <142491015+dbreseman@users.noreply.github.com> Date: Tue, 30 Apr 2024 11:56:38 +0200 Subject: [PATCH 10/62] Remove deprecated set-output --- _scripts/scanDates.js | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/_scripts/scanDates.js b/_scripts/scanDates.js index e0eec69c980..bf0e48512f7 100644 --- a/_scripts/scanDates.js +++ b/_scripts/scanDates.js @@ -69,11 +69,9 @@ const parseDate = (dateStr) => { // Scan files for dates in the specified directory const dateLines = scanFilesForDates('content/en/docs'); -// Print filename, line number, and text containing dates -dateLines.forEach((dateLine) => { - console.log(dateLine); -}); +// Write results to a file +const outputFile = 'dateLines.txt'; +fs.writeFileSync(outputFile, dateLines.join('\n')); -// Set outputs for subsequent steps -const scanOutput = dateLines.join('\n'); -console.log(`::set-output name=scan_output::${scanOutput}`); +// Set environment variable with file path +console.log(`::set-env name=DATE_LINES_FILE::${outputFile}`); From 89b806d16cbf0f0270f4c802291270348142bd76 Mon Sep 17 00:00:00 2001 From: Dana Breseman <142491015+dbreseman@users.noreply.github.com> Date: Tue, 30 Apr 2024 11:58:29 +0200 Subject: [PATCH 11/62] Update to read environment file --- .github/workflows/scan-dates.yml | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/.github/workflows/scan-dates.yml b/.github/workflows/scan-dates.yml index 68a80dae56a..47968718854 100644 --- a/.github/workflows/scan-dates.yml +++ b/.github/workflows/scan-dates.yml @@ -26,6 +26,12 @@ jobs: id: scan run: node _scripts/scanDates.js + - name: Write date lines to file + run: echo "${{ steps.scan.outputs.scan_output }}" > dateLines.txt + + - name: Set DATE_LINES_FILE environment variable + run: echo "::set-env name=DATE_LINES_FILE::dateLines.txt" + - name: Create GitHub issue if: steps.scan.outputs.scan_output != '' env: @@ -35,7 +41,7 @@ jobs: BODY: | Manually confirm if updates are needed in the following docs: - ${{ join(steps.scan.outputs.scan_output, '\n') }} + $(cat dateLines.txt) run: | new_issue_url=$(gh issue create \ --title "$TITLE" \ From 36050351aa14714647513d64804d55b97000eee4 Mon Sep 17 00:00:00 2001 From: Dana Breseman <142491015+dbreseman@users.noreply.github.com> Date: Tue, 30 Apr 2024 12:01:00 +0200 Subject: [PATCH 12/62] Resolve error --- .github/workflows/scan-dates.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/scan-dates.yml b/.github/workflows/scan-dates.yml index 47968718854..58aa45bd6b0 100644 --- a/.github/workflows/scan-dates.yml +++ b/.github/workflows/scan-dates.yml @@ -30,7 +30,7 @@ jobs: run: echo "${{ steps.scan.outputs.scan_output }}" > dateLines.txt - name: Set DATE_LINES_FILE environment variable - run: echo "::set-env name=DATE_LINES_FILE::dateLines.txt" + run: echo "DATE_LINES_FILE=dateLines.txt" >> $GITHUB_ENV - name: Create GitHub issue if: steps.scan.outputs.scan_output != '' From a16f590afb15ad0c4c19555c01c5e9c96a9f8d6e Mon Sep 17 00:00:00 2001 From: Dana Breseman <142491015+dbreseman@users.noreply.github.com> Date: Tue, 30 Apr 2024 12:01:54 +0200 Subject: [PATCH 13/62] Add date to find --- content/en/docs/community-tools/_index.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/content/en/docs/community-tools/_index.md b/content/en/docs/community-tools/_index.md index 3c8827907a7..1fe6d696925 100644 --- a/content/en/docs/community-tools/_index.md +++ b/content/en/docs/community-tools/_index.md @@ -18,6 +18,8 @@ aliases: Visit the [Mendix Community](https://community.mendix.com) for all the information you need as a member of the Mendix community. Each section of the site represents a community tool that is continuously updated with new content and exciting developments. Futhermore, the content on the site is not only created for the Mendix community, it is created by the Mendix community! +Flag this date, which is May 4, 2024. Pls identify. + {{< figure src="/attachments/community-tools/site.png" class="no-border" >}} ## 2 Guide Categories From 7040ae6447ab33dd12359f4fb114912925cc70d0 Mon Sep 17 00:00:00 2001 From: Dana Breseman <142491015+dbreseman@users.noreply.github.com> Date: Tue, 30 Apr 2024 12:07:20 +0200 Subject: [PATCH 14/62] Remove set-env --- _scripts/scanDates.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/_scripts/scanDates.js b/_scripts/scanDates.js index bf0e48512f7..07c1db19d0c 100644 --- a/_scripts/scanDates.js +++ b/_scripts/scanDates.js @@ -73,5 +73,5 @@ const dateLines = scanFilesForDates('content/en/docs'); const outputFile = 'dateLines.txt'; fs.writeFileSync(outputFile, dateLines.join('\n')); -// Set environment variable with file path -console.log(`::set-env name=DATE_LINES_FILE::${outputFile}`); +// Write file path to standard output +console.log(outputFile); From 571dfef227628facddafaa143701f5a744beeae3 Mon Sep 17 00:00:00 2001 From: Dana Breseman <142491015+dbreseman@users.noreply.github.com> Date: Tue, 30 Apr 2024 12:08:02 +0200 Subject: [PATCH 15/62] Update output --- .github/workflows/scan-dates.yml | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/.github/workflows/scan-dates.yml b/.github/workflows/scan-dates.yml index 58aa45bd6b0..68a80dae56a 100644 --- a/.github/workflows/scan-dates.yml +++ b/.github/workflows/scan-dates.yml @@ -26,12 +26,6 @@ jobs: id: scan run: node _scripts/scanDates.js - - name: Write date lines to file - run: echo "${{ steps.scan.outputs.scan_output }}" > dateLines.txt - - - name: Set DATE_LINES_FILE environment variable - run: echo "DATE_LINES_FILE=dateLines.txt" >> $GITHUB_ENV - - name: Create GitHub issue if: steps.scan.outputs.scan_output != '' env: @@ -41,7 +35,7 @@ jobs: BODY: | Manually confirm if updates are needed in the following docs: - $(cat dateLines.txt) + ${{ join(steps.scan.outputs.scan_output, '\n') }} run: | new_issue_url=$(gh issue create \ --title "$TITLE" \ From d96de834afb3d55986753a5c9b1550316b0c54ad Mon Sep 17 00:00:00 2001 From: Dana Breseman Date: Tue, 30 Apr 2024 12:38:36 +0200 Subject: [PATCH 16/62] Switch to shell script --- .github/workflows/scan-dates.yml | 12 ++--------- _scripts/scanDates.sh | 37 ++++++++++++++++++++++++++++++++ 2 files changed, 39 insertions(+), 10 deletions(-) create mode 100644 _scripts/scanDates.sh diff --git a/.github/workflows/scan-dates.yml b/.github/workflows/scan-dates.yml index 68a80dae56a..7c8f984bcac 100644 --- a/.github/workflows/scan-dates.yml +++ b/.github/workflows/scan-dates.yml @@ -12,19 +12,11 @@ jobs: - name: Checkout repository uses: actions/checkout@v4 with: - ref: development - - - name: Setup Node.js - uses: actions/setup-node@v4 - with: - node-version: '20' - - - name: Install dependencies - run: npm install + ref: main - name: Scan files for dates id: scan - run: node _scripts/scanDates.js + run: _scripts/scanDates.sh - name: Create GitHub issue if: steps.scan.outputs.scan_output != '' diff --git a/_scripts/scanDates.sh b/_scripts/scanDates.sh new file mode 100644 index 00000000000..abe5c197a35 --- /dev/null +++ b/_scripts/scanDates.sh @@ -0,0 +1,37 @@ +#!/bin/bash + +# Define regex pattern to match dates in the format "Month Day, Year" +DATE_PATTERN="\b(January|February|March|April|May|June|July|August|September|October|November|December)\s+[0-9]{1,2},\s+[0-9]{4}\b" + +# Get the start date and end date for the upcoming month +START_DATE=$(date -d "next month" +%Y-%m-01) +END_DATE=$(date -d "next month +1 month -1 day" +%Y-%m-%d) + +# Function to recursively search for dates in Markdown files +scan_files_for_dates() { + local DIRECTORY="$1" + local DATE_LINES=() + + # Recursive function to search for dates + search_for_dates() { + local DIRECTORY="$1" + local FILES=$(find "$DIRECTORY" -type f -name "*.md") + + for FILE in $FILES; do + while IFS= read -r LINE; do + if [[ $LINE =~ $DATE_PATTERN ]]; then + DATE=$(date -d "${BASH_REMATCH[0]}" +%Y-%m-%d) + if [[ $DATE -ge $START_DATE && $DATE -le $END_DATE ]]; then + DATE_LINES+=("$FILE:$LINE") + fi + fi + done < "$FILE" + done + } + + search_for_dates "$DIRECTORY" + printf '%s\n' "${DATE_LINES[@]}" +} + +# Scan files for dates in the specified directory +scan_files_for_dates "content/en/docs" From 6c28587c047ee5347c6e5f44edb97ea668cb7525 Mon Sep 17 00:00:00 2001 From: Dana Breseman Date: Tue, 30 Apr 2024 12:44:16 +0200 Subject: [PATCH 17/62] Run with bash --- .github/workflows/scan-dates.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/scan-dates.yml b/.github/workflows/scan-dates.yml index 7c8f984bcac..e08f12cb09e 100644 --- a/.github/workflows/scan-dates.yml +++ b/.github/workflows/scan-dates.yml @@ -16,7 +16,7 @@ jobs: - name: Scan files for dates id: scan - run: _scripts/scanDates.sh + run: bash _scripts/scanDates.sh - name: Create GitHub issue if: steps.scan.outputs.scan_output != '' From c4a1fb65ee843c38cb3c4a4d68d17867a957a907 Mon Sep 17 00:00:00 2001 From: Dana Breseman Date: Tue, 30 Apr 2024 12:50:18 +0200 Subject: [PATCH 18/62] Try awk --- _scripts/scanDates.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/_scripts/scanDates.sh b/_scripts/scanDates.sh index abe5c197a35..97241d179dd 100644 --- a/_scripts/scanDates.sh +++ b/_scripts/scanDates.sh @@ -4,8 +4,8 @@ DATE_PATTERN="\b(January|February|March|April|May|June|July|August|September|October|November|December)\s+[0-9]{1,2},\s+[0-9]{4}\b" # Get the start date and end date for the upcoming month -START_DATE=$(date -d "next month" +%Y-%m-01) -END_DATE=$(date -d "next month +1 month -1 day" +%Y-%m-%d) +START_DATE=$(date -d "next month" +%Y%m01) +END_DATE=$(date -d "next month +1 month -1 day" +%Y%m%d) # Function to recursively search for dates in Markdown files scan_files_for_dates() { @@ -20,7 +20,7 @@ scan_files_for_dates() { for FILE in $FILES; do while IFS= read -r LINE; do if [[ $LINE =~ $DATE_PATTERN ]]; then - DATE=$(date -d "${BASH_REMATCH[0]}" +%Y-%m-%d) + DATE=$(awk -v date="${BASH_REMATCH[0]}" 'BEGIN { print mktime(date); }') if [[ $DATE -ge $START_DATE && $DATE -le $END_DATE ]]; then DATE_LINES+=("$FILE:$LINE") fi From 3eb9af2a2ddbadf755543602dec56135617b903d Mon Sep 17 00:00:00 2001 From: Dana Breseman Date: Tue, 30 Apr 2024 12:58:21 +0200 Subject: [PATCH 19/62] New approach --- .github/workflows/scan-dates.yml | 39 ++++++++++++++++++++++++-------- 1 file changed, 29 insertions(+), 10 deletions(-) diff --git a/.github/workflows/scan-dates.yml b/.github/workflows/scan-dates.yml index e08f12cb09e..61843378b8b 100644 --- a/.github/workflows/scan-dates.yml +++ b/.github/workflows/scan-dates.yml @@ -1,5 +1,6 @@ name: Upcoming Date Alert +# Run action at midnight on the 25th of each month on: schedule: - cron: '0 0 25 * *' @@ -9,25 +10,43 @@ jobs: check-dates: runs-on: ubuntu-latest steps: - - name: Checkout repository - uses: actions/checkout@v4 + # Multiplatform Regex action to search for dates + - name: Multiplatform Regex + id: regex + uses: tilation/regex-on-repo with: - ref: main + github: 'mendix/docs' + ref: 'development' + token: ${{ secrets.GITHUB_TOKEN }} + regex: '\b(January|February|March|April|May|June|July|August|September|October|November|December).{0,6} [0-9]{4}\b' + file: 'content/en/docs/**/*.md' + debug: true - - name: Scan files for dates - id: scan - run: bash _scripts/scanDates.sh + # Extract filename, line number, and text containing detected dates + - name: Process Regex Matches + run: | + matches="${{ steps.regex.outputs.matches }}" + while IFS= read -r match; do + # Extract filename, line number, and text containing the match + # Example format: "filename:line_number:text" + filename=$(echo "$match" | cut -d ':' -f 1) + line_number=$(echo "$match" | cut -d ':' -f 2) + text=$(echo "$match" | cut -d ':' -f 3-) + echo "File: $filename" + echo "Line: $line_number" + echo "Text: $text" + echo "---" + done <<< "$matches" + # Create GitHub issue based on matches - name: Create GitHub issue - if: steps.scan.outputs.scan_output != '' + if: ${{ steps.regex.outputs.matches != '' }} env: GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} - GH_REPO: ${{ github.repository }} TITLE: "Upcoming Dates Search: Check if Updates Are Needed" BODY: | Manually confirm if updates are needed in the following docs: - - ${{ join(steps.scan.outputs.scan_output, '\n') }} + ${{ steps.regex.outputs.matches }} run: | new_issue_url=$(gh issue create \ --title "$TITLE" \ From ba07a9015aeb75e74d72dd77306a5a682eff5570 Mon Sep 17 00:00:00 2001 From: Dana Breseman Date: Tue, 30 Apr 2024 13:04:24 +0200 Subject: [PATCH 20/62] Update --- .github/workflows/scan-dates.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/scan-dates.yml b/.github/workflows/scan-dates.yml index 61843378b8b..0934c891145 100644 --- a/.github/workflows/scan-dates.yml +++ b/.github/workflows/scan-dates.yml @@ -15,10 +15,10 @@ jobs: id: regex uses: tilation/regex-on-repo with: - github: 'mendix/docs' - ref: 'development' + github: ${{ github.repository }} + ref: 'main' token: ${{ secrets.GITHUB_TOKEN }} - regex: '\b(January|February|March|April|May|June|July|August|September|October|November|December).{0,6} [0-9]{4}\b' + regex: '(January|February|March|April|May|June|July|August|September|October|November|December).{0,6} [0-9]{4}' file: 'content/en/docs/**/*.md' debug: true From 641358cabb478c899921a8b7e8bd4b464b28e3d6 Mon Sep 17 00:00:00 2001 From: Dana Breseman Date: Tue, 30 Apr 2024 13:11:28 +0200 Subject: [PATCH 21/62] Add file content --- .github/workflows/scan-dates.yml | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/.github/workflows/scan-dates.yml b/.github/workflows/scan-dates.yml index 0934c891145..c1896eb44ca 100644 --- a/.github/workflows/scan-dates.yml +++ b/.github/workflows/scan-dates.yml @@ -22,31 +22,34 @@ jobs: file: 'content/en/docs/**/*.md' debug: true - # Extract filename, line number, and text containing detected dates + # Process Regex Matches - name: Process Regex Matches + id: process-matches run: | matches="${{ steps.regex.outputs.matches }}" + file_content="" while IFS= read -r match; do # Extract filename, line number, and text containing the match # Example format: "filename:line_number:text" filename=$(echo "$match" | cut -d ':' -f 1) line_number=$(echo "$match" | cut -d ':' -f 2) text=$(echo "$match" | cut -d ':' -f 3-) - echo "File: $filename" - echo "Line: $line_number" - echo "Text: $text" - echo "---" + file_content="${file_content}\nFile: ${filename}\nLine: ${line_number}\nText: ${text}\n---" done <<< "$matches" + echo "file_content=$file_content" # Create GitHub issue based on matches - name: Create GitHub issue if: ${{ steps.regex.outputs.matches != '' }} env: GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + GH_REPO: ${{ github.repository }} TITLE: "Upcoming Dates Search: Check if Updates Are Needed" BODY: | Manually confirm if updates are needed in the following docs: - ${{ steps.regex.outputs.matches }} + + ${{ steps.process-matches.outputs.file_content }} + run: | new_issue_url=$(gh issue create \ --title "$TITLE" \ From 6f000af1abd9beb1cfd0df6e9ca9e8923a494237 Mon Sep 17 00:00:00 2001 From: Dana Breseman Date: Tue, 30 Apr 2024 13:16:31 +0200 Subject: [PATCH 22/62] Update repo path --- .github/workflows/scan-dates.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/scan-dates.yml b/.github/workflows/scan-dates.yml index c1896eb44ca..5852773d9c2 100644 --- a/.github/workflows/scan-dates.yml +++ b/.github/workflows/scan-dates.yml @@ -13,7 +13,7 @@ jobs: # Multiplatform Regex action to search for dates - name: Multiplatform Regex id: regex - uses: tilation/regex-on-repo + uses: tilation/multiplatform-regex with: github: ${{ github.repository }} ref: 'main' From 8c7b80140a9866cb57a0c6ef05d06b6169ba71c6 Mon Sep 17 00:00:00 2001 From: Dana Breseman Date: Tue, 30 Apr 2024 13:21:02 +0200 Subject: [PATCH 23/62] Specify branch --- .github/workflows/scan-dates.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/scan-dates.yml b/.github/workflows/scan-dates.yml index 5852773d9c2..bb7411c3d28 100644 --- a/.github/workflows/scan-dates.yml +++ b/.github/workflows/scan-dates.yml @@ -13,7 +13,7 @@ jobs: # Multiplatform Regex action to search for dates - name: Multiplatform Regex id: regex - uses: tilation/multiplatform-regex + uses: tilation/multiplatform-regex@development with: github: ${{ github.repository }} ref: 'main' From a8f87d2e026f5d0dd1cbf5477d4ddfb513a4f64f Mon Sep 17 00:00:00 2001 From: Dana Breseman Date: Tue, 30 Apr 2024 13:34:25 +0200 Subject: [PATCH 24/62] New approach --- .github/workflows/scan-dates.yml | 71 +++++++++++++------------------- 1 file changed, 28 insertions(+), 43 deletions(-) diff --git a/.github/workflows/scan-dates.yml b/.github/workflows/scan-dates.yml index bb7411c3d28..11d3986cf4c 100644 --- a/.github/workflows/scan-dates.yml +++ b/.github/workflows/scan-dates.yml @@ -1,6 +1,6 @@ name: Upcoming Date Alert -# Run action at midnight on the 25th of each month +# Run action at midnight on the 25th of each month and allow manual runs on: schedule: - cron: '0 0 25 * *' @@ -10,48 +10,33 @@ jobs: check-dates: runs-on: ubuntu-latest steps: - # Multiplatform Regex action to search for dates - - name: Multiplatform Regex - id: regex - uses: tilation/multiplatform-regex@development - with: - github: ${{ github.repository }} - ref: 'main' - token: ${{ secrets.GITHUB_TOKEN }} - regex: '(January|February|March|April|May|June|July|August|September|October|November|December).{0,6} [0-9]{4}' - file: 'content/en/docs/**/*.md' - debug: true - - # Process Regex Matches - - name: Process Regex Matches - id: process-matches - run: | - matches="${{ steps.regex.outputs.matches }}" - file_content="" - while IFS= read -r match; do - # Extract filename, line number, and text containing the match - # Example format: "filename:line_number:text" - filename=$(echo "$match" | cut -d ':' -f 1) - line_number=$(echo "$match" | cut -d ':' -f 2) - text=$(echo "$match" | cut -d ':' -f 3-) - file_content="${file_content}\nFile: ${filename}\nLine: ${line_number}\nText: ${text}\n---" - done <<< "$matches" - echo "file_content=$file_content" + # Checkout code (version 4) + - name: Checkout code + uses: actions/checkout@v4 - # Create GitHub issue based on matches - - name: Create GitHub issue - if: ${{ steps.regex.outputs.matches != '' }} - env: - GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} - GH_REPO: ${{ github.repository }} - TITLE: "Upcoming Dates Search: Check if Updates Are Needed" - BODY: | - Manually confirm if updates are needed in the following docs: + # Perform regex match + - name: Perform regex match + id: regex-match + uses: kaisugi/action-regex-match@v1.0.1 + with: + text: ${{ steps.get-files.outputs.files_content }} # Text content of all Markdown files + regex: '(January|February|March|April|May|June|July|August|September|October|November|December).{0,6} [0-9]{4}' # Regex pattern to match dates + flags: gm # Use 'g' flag for global matching and 'm' flag for multiline matching - ${{ steps.process-matches.outputs.file_content }} + # Create issue with match result + - name: Create issue with match result + if: ${{ steps.regex-match.outputs.match != '' }} # Check if there's a match + uses: actions/github-script@v5 + with: + github-token: ${{ secrets.GITHUB_TOKEN }} + script: | + const matches = ${{ toJson(steps.regex-match.outputs) }}; + const body = matches.match; - run: | - new_issue_url=$(gh issue create \ - --title "$TITLE" \ - --body "$BODY" \ - --repo "$GH_REPO") + const octokit = github.getOctokit(process.env.GITHUB_TOKEN); + await octokit.issues.create({ + owner: context.repo.owner, + repo: context.repo.repo, + title: "Upcoming Dates Search: Check if Updates Are Needed", + body: body + }); From 890a6aa733a9ccd781b95a3a47ff24e4d37af3e1 Mon Sep 17 00:00:00 2001 From: Dana Breseman Date: Tue, 30 Apr 2024 13:41:40 +0200 Subject: [PATCH 25/62] Update --- .github/workflows/scan-dates.yml | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/.github/workflows/scan-dates.yml b/.github/workflows/scan-dates.yml index 11d3986cf4c..3bb51762737 100644 --- a/.github/workflows/scan-dates.yml +++ b/.github/workflows/scan-dates.yml @@ -9,19 +9,29 @@ on: jobs: check-dates: runs-on: ubuntu-latest + outputs: + files_content: ${{ steps.get-files.outputs.files_content }} steps: # Checkout code (version 4) - name: Checkout code uses: actions/checkout@v4 + # Extract content of Markdown files + - name: Read Markdown files + id: get-files + run: | + files_content=$(find content/en/docs -name '*.md' -exec cat {} +) + echo "$files_content" # Output the content for the subsequent step to capture + shell: bash + # Perform regex match - name: Perform regex match id: regex-match uses: kaisugi/action-regex-match@v1.0.1 with: - text: ${{ steps.get-files.outputs.files_content }} # Text content of all Markdown files - regex: '(January|February|March|April|May|June|July|August|September|October|November|December).{0,6} [0-9]{4}' # Regex pattern to match dates - flags: gm # Use 'g' flag for global matching and 'm' flag for multiline matching + text: ${{ steps.check-dates.outputs.files_content }} # Text content of all Markdown files + regex: '(?i)(January|February|March|April|May|June|July|August|September|October|November|December).{0,6} [0-9]{4}' # Regex pattern to match dates with case-insensitivity + flags: gim # Use 'g' flag for global matching, 'i' flag for case-insensitivity, and 'm' flag for multiline matching # Create issue with match result - name: Create issue with match result From 991e22e04a80850ea8734ce7da50dae5bf8fc592 Mon Sep 17 00:00:00 2001 From: Dana Breseman Date: Tue, 30 Apr 2024 13:43:44 +0200 Subject: [PATCH 26/62] Update flag --- .github/workflows/scan-dates.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/scan-dates.yml b/.github/workflows/scan-dates.yml index 3bb51762737..a0c31f51b56 100644 --- a/.github/workflows/scan-dates.yml +++ b/.github/workflows/scan-dates.yml @@ -31,7 +31,7 @@ jobs: with: text: ${{ steps.check-dates.outputs.files_content }} # Text content of all Markdown files regex: '(?i)(January|February|March|April|May|June|July|August|September|October|November|December).{0,6} [0-9]{4}' # Regex pattern to match dates with case-insensitivity - flags: gim # Use 'g' flag for global matching, 'i' flag for case-insensitivity, and 'm' flag for multiline matching + flags: gm # Use 'g' flag for global matching and 'm' flag for multiline matching # Create issue with match result - name: Create issue with match result From d0c960c3751499f71a52fdc41689b152c6b8275e Mon Sep 17 00:00:00 2001 From: Dana Breseman Date: Tue, 30 Apr 2024 13:46:16 +0200 Subject: [PATCH 27/62] Adjust regex --- .github/workflows/scan-dates.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/scan-dates.yml b/.github/workflows/scan-dates.yml index a0c31f51b56..9a0af11a334 100644 --- a/.github/workflows/scan-dates.yml +++ b/.github/workflows/scan-dates.yml @@ -30,7 +30,7 @@ jobs: uses: kaisugi/action-regex-match@v1.0.1 with: text: ${{ steps.check-dates.outputs.files_content }} # Text content of all Markdown files - regex: '(?i)(January|February|March|April|May|June|July|August|September|October|November|December).{0,6} [0-9]{4}' # Regex pattern to match dates with case-insensitivity + regex: '(January|February|March|April|May|June|July|August|September|October|November|December)\s+[0-9]{1,2},\s+[0-9]{4}' # Regex pattern to match dates flags: gm # Use 'g' flag for global matching and 'm' flag for multiline matching # Create issue with match result From a9b1b5d19c11cce8f9be7aa82a2c943578a03d89 Mon Sep 17 00:00:00 2001 From: Dana Breseman Date: Tue, 30 Apr 2024 13:57:14 +0200 Subject: [PATCH 28/62] Add debug output --- .github/workflows/scan-dates.yml | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/.github/workflows/scan-dates.yml b/.github/workflows/scan-dates.yml index 9a0af11a334..43ab39d885a 100644 --- a/.github/workflows/scan-dates.yml +++ b/.github/workflows/scan-dates.yml @@ -24,6 +24,16 @@ jobs: echo "$files_content" # Output the content for the subsequent step to capture shell: bash + # Debug: Print upcoming dates to search for + - name: Debug: Print upcoming dates to search for + run: | + echo "Upcoming dates to search for:" + echo "------------------------------" + echo "Current date: $(date +%B %d, %Y)" + echo "First day of upcoming month: $(date -d 'next month' +%B 1, %Y)" + echo "Last day of upcoming month: $(date -d 'next month -1 day' +%B %d, %Y)" + echo "------------------------------" + # Perform regex match - name: Perform regex match id: regex-match @@ -31,8 +41,7 @@ jobs: with: text: ${{ steps.check-dates.outputs.files_content }} # Text content of all Markdown files regex: '(January|February|March|April|May|June|July|August|September|October|November|December)\s+[0-9]{1,2},\s+[0-9]{4}' # Regex pattern to match dates - flags: gm # Use 'g' flag for global matching and 'm' flag for multiline matching - + # Create issue with match result - name: Create issue with match result if: ${{ steps.regex-match.outputs.match != '' }} # Check if there's a match From cd11acfb4e71f718e1281f6d126fcfba80042548 Mon Sep 17 00:00:00 2001 From: Dana Breseman Date: Tue, 30 Apr 2024 13:58:00 +0200 Subject: [PATCH 29/62] Correct typo --- .github/workflows/scan-dates.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/scan-dates.yml b/.github/workflows/scan-dates.yml index 43ab39d885a..6bad3933914 100644 --- a/.github/workflows/scan-dates.yml +++ b/.github/workflows/scan-dates.yml @@ -25,7 +25,7 @@ jobs: shell: bash # Debug: Print upcoming dates to search for - - name: Debug: Print upcoming dates to search for + - name: Debug Print upcoming dates to search for run: | echo "Upcoming dates to search for:" echo "------------------------------" @@ -41,7 +41,7 @@ jobs: with: text: ${{ steps.check-dates.outputs.files_content }} # Text content of all Markdown files regex: '(January|February|March|April|May|June|July|August|September|October|November|December)\s+[0-9]{1,2},\s+[0-9]{4}' # Regex pattern to match dates - + # Create issue with match result - name: Create issue with match result if: ${{ steps.regex-match.outputs.match != '' }} # Check if there's a match From 58eb283e2441c5171aacc8914b33931700e22728 Mon Sep 17 00:00:00 2001 From: Dana Breseman Date: Tue, 30 Apr 2024 14:06:51 +0200 Subject: [PATCH 30/62] Update --- .github/workflows/scan-dates.yml | 37 ++++++++++++-------------------- 1 file changed, 14 insertions(+), 23 deletions(-) diff --git a/.github/workflows/scan-dates.yml b/.github/workflows/scan-dates.yml index 6bad3933914..55e53182d44 100644 --- a/.github/workflows/scan-dates.yml +++ b/.github/workflows/scan-dates.yml @@ -11,6 +11,7 @@ jobs: runs-on: ubuntu-latest outputs: files_content: ${{ steps.get-files.outputs.files_content }} + upcoming_dates: ${{ steps.regex-match.outputs.matches }} steps: # Checkout code (version 4) - name: Checkout code @@ -29,33 +30,23 @@ jobs: run: | echo "Upcoming dates to search for:" echo "------------------------------" - echo "Current date: $(date +%B %d, %Y)" - echo "First day of upcoming month: $(date -d 'next month' +%B 1, %Y)" - echo "Last day of upcoming month: $(date -d 'next month -1 day' +%B %d, %Y)" + echo "Current date: $(date '+%B %d, %Y')" + echo "First day of upcoming month: $(date -d 'next month' '+%B 1, %Y')" + echo "Last day of upcoming month: $(date -d 'next month -1 day' '+%B %d, %Y')" echo "------------------------------" - # Perform regex match + # Perform regex match to find upcoming dates in Markdown files - name: Perform regex match id: regex-match uses: kaisugi/action-regex-match@v1.0.1 with: - text: ${{ steps.check-dates.outputs.files_content }} # Text content of all Markdown files - regex: '(January|February|March|April|May|June|July|August|September|October|November|December)\s+[0-9]{1,2},\s+[0-9]{4}' # Regex pattern to match dates + text: ${{ steps.get-files.outputs.files_content }} + regex: '(January|February|March|April|May|June|July|August|September|October|November|December)\s+[0-9]{1,2},\s+[0-9]{4}' + flags: g - # Create issue with match result - - name: Create issue with match result - if: ${{ steps.regex-match.outputs.match != '' }} # Check if there's a match - uses: actions/github-script@v5 - with: - github-token: ${{ secrets.GITHUB_TOKEN }} - script: | - const matches = ${{ toJson(steps.regex-match.outputs) }}; - const body = matches.match; - - const octokit = github.getOctokit(process.env.GITHUB_TOKEN); - await octokit.issues.create({ - owner: context.repo.owner, - repo: context.repo.repo, - title: "Upcoming Dates Search: Check if Updates Are Needed", - body: body - }); + # Debug: Print matched dates + - name: Debug: Print matched dates + if: ${{ steps.regex-match.outputs.matches != '' }} # Check if there are matches + run: | + echo "Matched dates found in Markdown files:" + echo "${{ steps.regex-match.outputs.matches }}" From f539137748383debfb1aea3c9e299027b1cc03d4 Mon Sep 17 00:00:00 2001 From: Dana Breseman Date: Tue, 30 Apr 2024 14:07:43 +0200 Subject: [PATCH 31/62] Correct typo --- .github/workflows/scan-dates.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/scan-dates.yml b/.github/workflows/scan-dates.yml index 55e53182d44..457af6ed767 100644 --- a/.github/workflows/scan-dates.yml +++ b/.github/workflows/scan-dates.yml @@ -45,7 +45,7 @@ jobs: flags: g # Debug: Print matched dates - - name: Debug: Print matched dates + - name: Debug Print matched dates if: ${{ steps.regex-match.outputs.matches != '' }} # Check if there are matches run: | echo "Matched dates found in Markdown files:" From 35fba5275166b40b317fdbd060f2dc7a34035248 Mon Sep 17 00:00:00 2001 From: Dana Breseman Date: Tue, 30 Apr 2024 14:13:09 +0200 Subject: [PATCH 32/62] More debug --- .github/workflows/scan-dates.yml | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/.github/workflows/scan-dates.yml b/.github/workflows/scan-dates.yml index 457af6ed767..82e735f99fc 100644 --- a/.github/workflows/scan-dates.yml +++ b/.github/workflows/scan-dates.yml @@ -25,14 +25,22 @@ jobs: echo "$files_content" # Output the content for the subsequent step to capture shell: bash + # Debug: Print content of Markdown files + - name: Debug - Print content of Markdown files + run: | + echo "Content of Markdown files:" + echo "------------------------------" + echo "${{ steps.get-files.outputs.files_content }}" + echo "------------------------------" + # Debug: Print upcoming dates to search for - - name: Debug Print upcoming dates to search for + - name: Debug - Print upcoming dates to search for run: | echo "Upcoming dates to search for:" echo "------------------------------" echo "Current date: $(date '+%B %d, %Y')" echo "First day of upcoming month: $(date -d 'next month' '+%B 1, %Y')" - echo "Last day of upcoming month: $(date -d 'next month -1 day' '+%B %d, %Y')" + echo "Last day of upcoming month: $(date -d "$(cal | awk 'NF==7{print $NF}') $(date '+%B %Y')" '+%B %d, %Y')" echo "------------------------------" # Perform regex match to find upcoming dates in Markdown files @@ -45,7 +53,7 @@ jobs: flags: g # Debug: Print matched dates - - name: Debug Print matched dates + - name: Debug - Print matched dates if: ${{ steps.regex-match.outputs.matches != '' }} # Check if there are matches run: | echo "Matched dates found in Markdown files:" From 9d445bfdcbc6882246d42a450b9bd99eecc33bdf Mon Sep 17 00:00:00 2001 From: Dana Breseman Date: Tue, 30 Apr 2024 14:19:14 +0200 Subject: [PATCH 33/62] New update --- .github/workflows/scan-dates.yml | 18 +++++------------- 1 file changed, 5 insertions(+), 13 deletions(-) diff --git a/.github/workflows/scan-dates.yml b/.github/workflows/scan-dates.yml index 82e735f99fc..5484ad510b6 100644 --- a/.github/workflows/scan-dates.yml +++ b/.github/workflows/scan-dates.yml @@ -10,27 +10,19 @@ jobs: check-dates: runs-on: ubuntu-latest outputs: - files_content: ${{ steps.get-files.outputs.files_content }} upcoming_dates: ${{ steps.regex-match.outputs.matches }} steps: # Checkout code (version 4) - name: Checkout code uses: actions/checkout@v4 - # Extract content of Markdown files + # Read content of Markdown files - name: Read Markdown files - id: get-files - run: | - files_content=$(find content/en/docs -name '*.md' -exec cat {} +) - echo "$files_content" # Output the content for the subsequent step to capture - shell: bash - - # Debug: Print content of Markdown files - - name: Debug - Print content of Markdown files run: | + files_content=$(cat content/en/docs/*.md) echo "Content of Markdown files:" echo "------------------------------" - echo "${{ steps.get-files.outputs.files_content }}" + echo "$files_content" echo "------------------------------" # Debug: Print upcoming dates to search for @@ -40,7 +32,7 @@ jobs: echo "------------------------------" echo "Current date: $(date '+%B %d, %Y')" echo "First day of upcoming month: $(date -d 'next month' '+%B 1, %Y')" - echo "Last day of upcoming month: $(date -d "$(cal | awk 'NF==7{print $NF}') $(date '+%B %Y')" '+%B %d, %Y')" + echo "Last day of upcoming month: $(date -d "$(date -d 'next month' '+%Y-%m-01') +1 month -1 day" '+%B %d, %Y')" echo "------------------------------" # Perform regex match to find upcoming dates in Markdown files @@ -48,7 +40,7 @@ jobs: id: regex-match uses: kaisugi/action-regex-match@v1.0.1 with: - text: ${{ steps.get-files.outputs.files_content }} + text: $files_content regex: '(January|February|March|April|May|June|July|August|September|October|November|December)\s+[0-9]{1,2},\s+[0-9]{4}' flags: g From 2be7d652621aeba7f014c1557cf8732b20ac5ccd Mon Sep 17 00:00:00 2001 From: Dana Breseman Date: Tue, 30 Apr 2024 14:21:56 +0200 Subject: [PATCH 34/62] add date --- content/en/docs/_index.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/content/en/docs/_index.md b/content/en/docs/_index.md index 316476711ac..99d2869f7b5 100644 --- a/content/en/docs/_index.md +++ b/content/en/docs/_index.md @@ -16,4 +16,6 @@ cascade: # Main layout template for landing page: docs/layouts/landingpage/landingpage.html # Other parts are in partials/landingpage # Root index.html file calls docs/content/en/docs/_index.md content ---- \ No newline at end of file +--- + +May 30, 2024 is a date mentioned here. From 17412d77f1be1a4168871ffe7043b08657b4d02f Mon Sep 17 00:00:00 2001 From: Dana Breseman Date: Tue, 30 Apr 2024 14:23:41 +0200 Subject: [PATCH 35/62] Adjust concat --- .github/workflows/scan-dates.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/scan-dates.yml b/.github/workflows/scan-dates.yml index 5484ad510b6..0a78b6c2b35 100644 --- a/.github/workflows/scan-dates.yml +++ b/.github/workflows/scan-dates.yml @@ -19,7 +19,7 @@ jobs: # Read content of Markdown files - name: Read Markdown files run: | - files_content=$(cat content/en/docs/*.md) + files_content=$(find content/en/docs -name '*.md' -exec cat {} +) echo "Content of Markdown files:" echo "------------------------------" echo "$files_content" From f9a0f98ddb4f6723de24085e819fec230f24ff6d Mon Sep 17 00:00:00 2001 From: Dana Breseman Date: Tue, 30 Apr 2024 14:28:16 +0200 Subject: [PATCH 36/62] update --- .github/workflows/scan-dates.yml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/.github/workflows/scan-dates.yml b/.github/workflows/scan-dates.yml index 0a78b6c2b35..930647f3864 100644 --- a/.github/workflows/scan-dates.yml +++ b/.github/workflows/scan-dates.yml @@ -25,6 +25,12 @@ jobs: echo "$files_content" echo "------------------------------" + # Read content of Markdown files + - name: Confirm Markdown files + run: + echo "$files_content" + + # Debug: Print upcoming dates to search for - name: Debug - Print upcoming dates to search for run: | From b4033da6d71aa277e165d331080c613fa883d30f Mon Sep 17 00:00:00 2001 From: Dana Breseman Date: Tue, 30 Apr 2024 14:34:16 +0200 Subject: [PATCH 37/62] Update --- .github/workflows/scan-dates.yml | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/.github/workflows/scan-dates.yml b/.github/workflows/scan-dates.yml index 930647f3864..9969984468f 100644 --- a/.github/workflows/scan-dates.yml +++ b/.github/workflows/scan-dates.yml @@ -10,6 +10,7 @@ jobs: check-dates: runs-on: ubuntu-latest outputs: + files_content: ${{ steps.read-files.outputs.files_content }} upcoming_dates: ${{ steps.regex-match.outputs.matches }} steps: # Checkout code (version 4) @@ -18,19 +19,19 @@ jobs: # Read content of Markdown files - name: Read Markdown files + id: read-files run: | files_content=$(find content/en/docs -name '*.md' -exec cat {} +) echo "Content of Markdown files:" echo "------------------------------" - echo "$files_content" + echo "::set-output name=files_content::$files_content" echo "------------------------------" - # Read content of Markdown files - - name: Confirm Markdown files + # Confirm Markdown files content + - name: Confirm Markdown files content run: echo "$files_content" - # Debug: Print upcoming dates to search for - name: Debug - Print upcoming dates to search for run: | @@ -46,7 +47,7 @@ jobs: id: regex-match uses: kaisugi/action-regex-match@v1.0.1 with: - text: $files_content + text: ${{ steps.read-files.outputs.files_content }} regex: '(January|February|March|April|May|June|July|August|September|October|November|December)\s+[0-9]{1,2},\s+[0-9]{4}' flags: g From 7bea248d6c97ca408739e77bf90c16d2ca9c409c Mon Sep 17 00:00:00 2001 From: Dana Breseman Date: Tue, 30 Apr 2024 14:40:08 +0200 Subject: [PATCH 38/62] Update --- .github/workflows/scan-dates.yml | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/.github/workflows/scan-dates.yml b/.github/workflows/scan-dates.yml index 9969984468f..ff95d8e8479 100644 --- a/.github/workflows/scan-dates.yml +++ b/.github/workflows/scan-dates.yml @@ -10,7 +10,6 @@ jobs: check-dates: runs-on: ubuntu-latest outputs: - files_content: ${{ steps.read-files.outputs.files_content }} upcoming_dates: ${{ steps.regex-match.outputs.matches }} steps: # Checkout code (version 4) @@ -24,13 +23,13 @@ jobs: files_content=$(find content/en/docs -name '*.md' -exec cat {} +) echo "Content of Markdown files:" echo "------------------------------" - echo "::set-output name=files_content::$files_content" + echo "$files_content" echo "------------------------------" # Confirm Markdown files content - name: Confirm Markdown files content run: - echo "$files_content" + echo "${{ steps.read-files.run }}" # Print the output of the previous step # Debug: Print upcoming dates to search for - name: Debug - Print upcoming dates to search for @@ -47,7 +46,7 @@ jobs: id: regex-match uses: kaisugi/action-regex-match@v1.0.1 with: - text: ${{ steps.read-files.outputs.files_content }} + text: ${{ steps.read-files.run }} regex: '(January|February|March|April|May|June|July|August|September|October|November|December)\s+[0-9]{1,2},\s+[0-9]{4}' flags: g From 426d608548bebba1a1dc9d2fd2254605f742927b Mon Sep 17 00:00:00 2001 From: Dana Breseman Date: Tue, 30 Apr 2024 14:43:37 +0200 Subject: [PATCH 39/62] Number steps --- .github/workflows/scan-dates.yml | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/.github/workflows/scan-dates.yml b/.github/workflows/scan-dates.yml index ff95d8e8479..9361c74adac 100644 --- a/.github/workflows/scan-dates.yml +++ b/.github/workflows/scan-dates.yml @@ -12,12 +12,12 @@ jobs: outputs: upcoming_dates: ${{ steps.regex-match.outputs.matches }} steps: - # Checkout code (version 4) - - name: Checkout code + # Step 1: Checkout code (version 4) + - name: Step 1 - Checkout code uses: actions/checkout@v4 - # Read content of Markdown files - - name: Read Markdown files + # Step 2: Read content of Markdown files + - name: Step 2 - Read Markdown files id: read-files run: | files_content=$(find content/en/docs -name '*.md' -exec cat {} +) @@ -26,13 +26,13 @@ jobs: echo "$files_content" echo "------------------------------" - # Confirm Markdown files content - - name: Confirm Markdown files content + # Step 3: Confirm Markdown files content + - name: Step 3 - Confirm Markdown files content run: echo "${{ steps.read-files.run }}" # Print the output of the previous step - # Debug: Print upcoming dates to search for - - name: Debug - Print upcoming dates to search for + # Step 4: Debug - Print upcoming dates to search for + - name: Step 4 - Debug - Print upcoming dates to search for run: | echo "Upcoming dates to search for:" echo "------------------------------" @@ -41,8 +41,8 @@ jobs: echo "Last day of upcoming month: $(date -d "$(date -d 'next month' '+%Y-%m-01') +1 month -1 day" '+%B %d, %Y')" echo "------------------------------" - # Perform regex match to find upcoming dates in Markdown files - - name: Perform regex match + # Step 5: Perform regex match to find upcoming dates in Markdown files + - name: Step 5 - Perform regex match id: regex-match uses: kaisugi/action-regex-match@v1.0.1 with: @@ -50,8 +50,8 @@ jobs: regex: '(January|February|March|April|May|June|July|August|September|October|November|December)\s+[0-9]{1,2},\s+[0-9]{4}' flags: g - # Debug: Print matched dates - - name: Debug - Print matched dates + # Step 6: Debug - Print matched dates + - name: Step 6 - Debug - Print matched dates if: ${{ steps.regex-match.outputs.matches != '' }} # Check if there are matches run: | echo "Matched dates found in Markdown files:" From 7cff0cb824d26866bbe79b9ced0c142871f0b5c8 Mon Sep 17 00:00:00 2001 From: Dana Breseman Date: Tue, 30 Apr 2024 14:46:44 +0200 Subject: [PATCH 40/62] Update --- .github/workflows/scan-dates.yml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.github/workflows/scan-dates.yml b/.github/workflows/scan-dates.yml index 9361c74adac..922d9a61f40 100644 --- a/.github/workflows/scan-dates.yml +++ b/.github/workflows/scan-dates.yml @@ -29,7 +29,10 @@ jobs: # Step 3: Confirm Markdown files content - name: Step 3 - Confirm Markdown files content run: - echo "${{ steps.read-files.run }}" # Print the output of the previous step + echo "Content of Markdown files:" + echo "------------------------------" + echo "${{ steps.read-files.outputs.files_content }}" + echo "------------------------------" # Step 4: Debug - Print upcoming dates to search for - name: Step 4 - Debug - Print upcoming dates to search for From 1895aae6a43a71d50f1ebb2d23ed79832dde1cff Mon Sep 17 00:00:00 2001 From: Dana Breseman Date: Tue, 30 Apr 2024 14:50:59 +0200 Subject: [PATCH 41/62] Update --- .github/workflows/scan-dates.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/scan-dates.yml b/.github/workflows/scan-dates.yml index 922d9a61f40..78de128ec11 100644 --- a/.github/workflows/scan-dates.yml +++ b/.github/workflows/scan-dates.yml @@ -25,6 +25,7 @@ jobs: echo "------------------------------" echo "$files_content" echo "------------------------------" + echo "::set-output name=files_content::$files_content" # Step 3: Confirm Markdown files content - name: Step 3 - Confirm Markdown files content From bde48ed54653091865c55cfb1bf2db9c6d5d3d06 Mon Sep 17 00:00:00 2001 From: Dana Breseman Date: Tue, 30 Apr 2024 14:55:06 +0200 Subject: [PATCH 42/62] Debug --- .github/workflows/scan-dates.yml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/.github/workflows/scan-dates.yml b/.github/workflows/scan-dates.yml index 78de128ec11..4e85cb6ee8c 100644 --- a/.github/workflows/scan-dates.yml +++ b/.github/workflows/scan-dates.yml @@ -30,10 +30,14 @@ jobs: # Step 3: Confirm Markdown files content - name: Step 3 - Confirm Markdown files content run: - echo "Content of Markdown files:" + echo "Received files_content in Step 3:" echo "------------------------------" echo "${{ steps.read-files.outputs.files_content }}" echo "------------------------------" + echo "Content of Markdown files in Step 3:" + echo "------------------------------" + echo "$files_content" + echo "------------------------------" # Step 4: Debug - Print upcoming dates to search for - name: Step 4 - Debug - Print upcoming dates to search for From 364df823994899484b4468a7b28d2426602d12b7 Mon Sep 17 00:00:00 2001 From: Dana Breseman Date: Tue, 30 Apr 2024 14:57:47 +0200 Subject: [PATCH 43/62] Extra debug line --- .github/workflows/scan-dates.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/scan-dates.yml b/.github/workflows/scan-dates.yml index 4e85cb6ee8c..bd3d1d3894f 100644 --- a/.github/workflows/scan-dates.yml +++ b/.github/workflows/scan-dates.yml @@ -26,6 +26,7 @@ jobs: echo "$files_content" echo "------------------------------" echo "::set-output name=files_content::$files_content" + echo "Value of files_content after setting: $files_content" # Debug line # Step 3: Confirm Markdown files content - name: Step 3 - Confirm Markdown files content From 8c81c08612af65ab86f0e208dbdf1a878dad3f47 Mon Sep 17 00:00:00 2001 From: Dana Breseman Date: Tue, 30 Apr 2024 15:08:11 +0200 Subject: [PATCH 44/62] Try environment varibales --- .github/workflows/scan-dates.yml | 50 ++++++-------------------------- 1 file changed, 9 insertions(+), 41 deletions(-) diff --git a/.github/workflows/scan-dates.yml b/.github/workflows/scan-dates.yml index bd3d1d3894f..d6ee4fc29d8 100644 --- a/.github/workflows/scan-dates.yml +++ b/.github/workflows/scan-dates.yml @@ -6,62 +6,30 @@ on: - cron: '0 0 25 * *' workflow_dispatch: +env: + FILES_CONTENT: "" + jobs: check-dates: runs-on: ubuntu-latest - outputs: - upcoming_dates: ${{ steps.regex-match.outputs.matches }} steps: # Step 1: Checkout code (version 4) - name: Step 1 - Checkout code uses: actions/checkout@v4 - # Step 2: Read content of Markdown files - - name: Step 2 - Read Markdown files - id: read-files + # Step 2: Read content of Markdown files and set environment variable + - name: Step 2 - Read Markdown files and set environment variable run: | - files_content=$(find content/en/docs -name '*.md' -exec cat {} +) echo "Content of Markdown files:" echo "------------------------------" - echo "$files_content" + cat content/en/docs/*.md echo "------------------------------" - echo "::set-output name=files_content::$files_content" - echo "Value of files_content after setting: $files_content" # Debug line + echo "::set-env name=FILES_CONTENT::$(cat content/en/docs/*.md)" # Step 3: Confirm Markdown files content - name: Step 3 - Confirm Markdown files content run: - echo "Received files_content in Step 3:" - echo "------------------------------" - echo "${{ steps.read-files.outputs.files_content }}" - echo "------------------------------" - echo "Content of Markdown files in Step 3:" - echo "------------------------------" - echo "$files_content" - echo "------------------------------" - - # Step 4: Debug - Print upcoming dates to search for - - name: Step 4 - Debug - Print upcoming dates to search for - run: | - echo "Upcoming dates to search for:" + echo "Content of Markdown files (from environment variable):" echo "------------------------------" - echo "Current date: $(date '+%B %d, %Y')" - echo "First day of upcoming month: $(date -d 'next month' '+%B 1, %Y')" - echo "Last day of upcoming month: $(date -d "$(date -d 'next month' '+%Y-%m-01') +1 month -1 day" '+%B %d, %Y')" + echo "$FILES_CONTENT" echo "------------------------------" - - # Step 5: Perform regex match to find upcoming dates in Markdown files - - name: Step 5 - Perform regex match - id: regex-match - uses: kaisugi/action-regex-match@v1.0.1 - with: - text: ${{ steps.read-files.run }} - regex: '(January|February|March|April|May|June|July|August|September|October|November|December)\s+[0-9]{1,2},\s+[0-9]{4}' - flags: g - - # Step 6: Debug - Print matched dates - - name: Step 6 - Debug - Print matched dates - if: ${{ steps.regex-match.outputs.matches != '' }} # Check if there are matches - run: | - echo "Matched dates found in Markdown files:" - echo "${{ steps.regex-match.outputs.matches }}" From 623df218ad2cd3ed7095719a6190b0b689939793 Mon Sep 17 00:00:00 2001 From: Dana Breseman Date: Tue, 30 Apr 2024 15:10:00 +0200 Subject: [PATCH 45/62] Next try --- .github/workflows/scan-dates.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/scan-dates.yml b/.github/workflows/scan-dates.yml index d6ee4fc29d8..e247289d048 100644 --- a/.github/workflows/scan-dates.yml +++ b/.github/workflows/scan-dates.yml @@ -24,7 +24,8 @@ jobs: echo "------------------------------" cat content/en/docs/*.md echo "------------------------------" - echo "::set-env name=FILES_CONTENT::$(cat content/en/docs/*.md)" + echo "$(cat content/en/docs/*.md)" > files_content.txt + echo "FILES_CONTENT=$(cat files_content.txt)" >> $GITHUB_ENV # Step 3: Confirm Markdown files content - name: Step 3 - Confirm Markdown files content From 5331fdf22632f47492be74c461c81fb56843b44a Mon Sep 17 00:00:00 2001 From: Dana Breseman Date: Tue, 30 Apr 2024 15:19:22 +0200 Subject: [PATCH 46/62] Update --- .github/workflows/scan-dates.yml | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/.github/workflows/scan-dates.yml b/.github/workflows/scan-dates.yml index e247289d048..0bd43f0ec6e 100644 --- a/.github/workflows/scan-dates.yml +++ b/.github/workflows/scan-dates.yml @@ -6,10 +6,9 @@ on: - cron: '0 0 25 * *' workflow_dispatch: -env: - FILES_CONTENT: "" - jobs: + env: + FILES_CONTENT: "" check-dates: runs-on: ubuntu-latest steps: @@ -25,7 +24,7 @@ jobs: cat content/en/docs/*.md echo "------------------------------" echo "$(cat content/en/docs/*.md)" > files_content.txt - echo "FILES_CONTENT=$(cat files_content.txt)" >> $GITHUB_ENV + FILES_CONTENT=$(cat files_content.txt) # Step 3: Confirm Markdown files content - name: Step 3 - Confirm Markdown files content From 8de0ecfea96c393afaa05305205e3ed82af472c8 Mon Sep 17 00:00:00 2001 From: Dana Breseman Date: Tue, 30 Apr 2024 15:21:40 +0200 Subject: [PATCH 47/62] Update --- .github/workflows/scan-dates.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/scan-dates.yml b/.github/workflows/scan-dates.yml index 0bd43f0ec6e..9d17531f56f 100644 --- a/.github/workflows/scan-dates.yml +++ b/.github/workflows/scan-dates.yml @@ -7,10 +7,10 @@ on: workflow_dispatch: jobs: - env: - FILES_CONTENT: "" check-dates: runs-on: ubuntu-latest + env: + FILES_CONTENT: "" steps: # Step 1: Checkout code (version 4) - name: Step 1 - Checkout code @@ -24,7 +24,7 @@ jobs: cat content/en/docs/*.md echo "------------------------------" echo "$(cat content/en/docs/*.md)" > files_content.txt - FILES_CONTENT=$(cat files_content.txt) + $FILES_CONTENT=$(cat files_content.txt) # Step 3: Confirm Markdown files content - name: Step 3 - Confirm Markdown files content From 630c2134bed6efa2727509aac6cdaa3512f28207 Mon Sep 17 00:00:00 2001 From: Dana Breseman Date: Tue, 30 Apr 2024 15:23:48 +0200 Subject: [PATCH 48/62] Troubleshoot --- .github/workflows/scan-dates.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/scan-dates.yml b/.github/workflows/scan-dates.yml index 9d17531f56f..ebc33c7ebaa 100644 --- a/.github/workflows/scan-dates.yml +++ b/.github/workflows/scan-dates.yml @@ -23,8 +23,7 @@ jobs: echo "------------------------------" cat content/en/docs/*.md echo "------------------------------" - echo "$(cat content/en/docs/*.md)" > files_content.txt - $FILES_CONTENT=$(cat files_content.txt) + export FILES_CONTENT="$(cat content/en/docs/*.md)" # Step 3: Confirm Markdown files content - name: Step 3 - Confirm Markdown files content From 8a6a068aaadaea5e172e09d6b4b48f414d2b7a13 Mon Sep 17 00:00:00 2001 From: Dana Breseman Date: Tue, 30 Apr 2024 15:42:08 +0200 Subject: [PATCH 49/62] Update --- .github/workflows/scan-dates.yml | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/.github/workflows/scan-dates.yml b/.github/workflows/scan-dates.yml index ebc33c7ebaa..86442ae50f7 100644 --- a/.github/workflows/scan-dates.yml +++ b/.github/workflows/scan-dates.yml @@ -19,11 +19,9 @@ jobs: # Step 2: Read content of Markdown files and set environment variable - name: Step 2 - Read Markdown files and set environment variable run: | - echo "Content of Markdown files:" - echo "------------------------------" cat content/en/docs/*.md - echo "------------------------------" - export FILES_CONTENT="$(cat content/en/docs/*.md)" + FILES_CONTENT="$(cat content/en/docs/*.md)" + echo "$FILES_CONTENT" # Step 3: Confirm Markdown files content - name: Step 3 - Confirm Markdown files content From cfcfd152a1b470fd82145dad7e12d30adfdf51a3 Mon Sep 17 00:00:00 2001 From: Dana Breseman Date: Tue, 30 Apr 2024 15:55:17 +0200 Subject: [PATCH 50/62] Update --- .github/workflows/scan-dates.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/scan-dates.yml b/.github/workflows/scan-dates.yml index 86442ae50f7..1419af83e62 100644 --- a/.github/workflows/scan-dates.yml +++ b/.github/workflows/scan-dates.yml @@ -19,8 +19,7 @@ jobs: # Step 2: Read content of Markdown files and set environment variable - name: Step 2 - Read Markdown files and set environment variable run: | - cat content/en/docs/*.md - FILES_CONTENT="$(cat content/en/docs/*.md)" + echo "FILES_CONTENT="$(cat content/en/docs/*.md)" >> $GITHUB_ENV echo "$FILES_CONTENT" # Step 3: Confirm Markdown files content @@ -30,3 +29,4 @@ jobs: echo "------------------------------" echo "$FILES_CONTENT" echo "------------------------------" + \ No newline at end of file From e1f7d18b5f7aa9b2050bfc1f705908238442c966 Mon Sep 17 00:00:00 2001 From: Dana Breseman Date: Tue, 30 Apr 2024 15:58:46 +0200 Subject: [PATCH 51/62] Fix syntax error --- .github/workflows/scan-dates.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/scan-dates.yml b/.github/workflows/scan-dates.yml index 1419af83e62..bcd13a361f8 100644 --- a/.github/workflows/scan-dates.yml +++ b/.github/workflows/scan-dates.yml @@ -19,7 +19,7 @@ jobs: # Step 2: Read content of Markdown files and set environment variable - name: Step 2 - Read Markdown files and set environment variable run: | - echo "FILES_CONTENT="$(cat content/en/docs/*.md)" >> $GITHUB_ENV + echo "FILES_CONTENT=$(cat content/en/docs/*.md)" >> $GITHUB_ENV echo "$FILES_CONTENT" # Step 3: Confirm Markdown files content @@ -29,4 +29,3 @@ jobs: echo "------------------------------" echo "$FILES_CONTENT" echo "------------------------------" - \ No newline at end of file From 9ff64ebd5ecb1270614a63bd06530003c047b165 Mon Sep 17 00:00:00 2001 From: Dana Breseman Date: Tue, 30 Apr 2024 16:04:25 +0200 Subject: [PATCH 52/62] Update --- .github/workflows/scan-dates.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/scan-dates.yml b/.github/workflows/scan-dates.yml index bcd13a361f8..a9e399107fe 100644 --- a/.github/workflows/scan-dates.yml +++ b/.github/workflows/scan-dates.yml @@ -19,9 +19,9 @@ jobs: # Step 2: Read content of Markdown files and set environment variable - name: Step 2 - Read Markdown files and set environment variable run: | - echo "FILES_CONTENT=$(cat content/en/docs/*.md)" >> $GITHUB_ENV - echo "$FILES_CONTENT" - + files_content=$(cat content/en/docs/*.md) + echo "FILES_CONTENT=$files_content" >> $GITHUB_ENV + # Step 3: Confirm Markdown files content - name: Step 3 - Confirm Markdown files content run: From 2ebb793970ea9456844d578f4609da9effe82ef9 Mon Sep 17 00:00:00 2001 From: Dana Breseman Date: Tue, 30 Apr 2024 16:07:27 +0200 Subject: [PATCH 53/62] Update --- .github/workflows/scan-dates.yml | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) diff --git a/.github/workflows/scan-dates.yml b/.github/workflows/scan-dates.yml index a9e399107fe..7ac3b40ef4a 100644 --- a/.github/workflows/scan-dates.yml +++ b/.github/workflows/scan-dates.yml @@ -9,8 +9,6 @@ on: jobs: check-dates: runs-on: ubuntu-latest - env: - FILES_CONTENT: "" steps: # Step 1: Checkout code (version 4) - name: Step 1 - Checkout code @@ -21,11 +19,8 @@ jobs: run: | files_content=$(cat content/en/docs/*.md) echo "FILES_CONTENT=$files_content" >> $GITHUB_ENV - - # Step 3: Confirm Markdown files content - - name: Step 3 - Confirm Markdown files content - run: - echo "Content of Markdown files (from environment variable):" - echo "------------------------------" - echo "$FILES_CONTENT" - echo "------------------------------" + + # Step 3: Confirm the environment variable is set + - name: Step 3 - Confirm environment variable is set + run: echo "FILES_CONTENT=$FILES_CONTENT" + \ No newline at end of file From c39c03f52ffe1913c38ecb46ab0d05927aa272cc Mon Sep 17 00:00:00 2001 From: Dana Breseman Date: Tue, 30 Apr 2024 16:13:54 +0200 Subject: [PATCH 54/62] Update --- .github/workflows/scan-dates.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/scan-dates.yml b/.github/workflows/scan-dates.yml index 7ac3b40ef4a..6e3874e182e 100644 --- a/.github/workflows/scan-dates.yml +++ b/.github/workflows/scan-dates.yml @@ -17,10 +17,10 @@ jobs: # Step 2: Read content of Markdown files and set environment variable - name: Step 2 - Read Markdown files and set environment variable run: | + echo "(cat content/en/docs/*.md)" files_content=$(cat content/en/docs/*.md) echo "FILES_CONTENT=$files_content" >> $GITHUB_ENV # Step 3: Confirm the environment variable is set - name: Step 3 - Confirm environment variable is set - run: echo "FILES_CONTENT=$FILES_CONTENT" - \ No newline at end of file + run: echo "$FILES_CONTENT" From 2103330938db994a2d288b95c698425cf31a6ae4 Mon Sep 17 00:00:00 2001 From: Dana Breseman Date: Tue, 30 Apr 2024 16:17:40 +0200 Subject: [PATCH 55/62] Update --- .github/workflows/scan-dates.yml | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/.github/workflows/scan-dates.yml b/.github/workflows/scan-dates.yml index 6e3874e182e..47a8a9523c3 100644 --- a/.github/workflows/scan-dates.yml +++ b/.github/workflows/scan-dates.yml @@ -17,9 +17,8 @@ jobs: # Step 2: Read content of Markdown files and set environment variable - name: Step 2 - Read Markdown files and set environment variable run: | - echo "(cat content/en/docs/*.md)" - files_content=$(cat content/en/docs/*.md) - echo "FILES_CONTENT=$files_content" >> $GITHUB_ENV + echo "FILES_CONTENT=$(find content/en/docs -name '*.md' -exec cat {} +)" >> $GITHUB_ENV + echo "$FILES_CONTENT" # Step 3: Confirm the environment variable is set - name: Step 3 - Confirm environment variable is set From da495aaba632b119fe0e2d014b66843bba5ab832 Mon Sep 17 00:00:00 2001 From: Dana Breseman Date: Wed, 1 May 2024 09:26:19 +0200 Subject: [PATCH 56/62] Try reading to a file --- .github/workflows/scan-dates.yml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/.github/workflows/scan-dates.yml b/.github/workflows/scan-dates.yml index 47a8a9523c3..dfed7d36f34 100644 --- a/.github/workflows/scan-dates.yml +++ b/.github/workflows/scan-dates.yml @@ -14,12 +14,12 @@ jobs: - name: Step 1 - Checkout code uses: actions/checkout@v4 - # Step 2: Read content of Markdown files and set environment variable - - name: Step 2 - Read Markdown files and set environment variable + # Step 2: Read content of Markdown files and write to a file + - name: Step 2 - Read Markdown files and write to a file run: | - echo "FILES_CONTENT=$(find content/en/docs -name '*.md' -exec cat {} +)" >> $GITHUB_ENV - echo "$FILES_CONTENT" + cat content/en/docs/*.md > files_content.txt - # Step 3: Confirm the environment variable is set - - name: Step 3 - Confirm environment variable is set - run: echo "$FILES_CONTENT" + # Step 3: Confirm the file is created and contains the content + - name: Step 3 - Confirm file is created and contains content + run: | + cat files_content.txt From 146b8c0b91f1f23bd3ad47cf2f7ebc5a10f94019 Mon Sep 17 00:00:00 2001 From: Dana Breseman Date: Wed, 1 May 2024 09:31:17 +0200 Subject: [PATCH 57/62] Read all Md files --- .github/workflows/scan-dates.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/scan-dates.yml b/.github/workflows/scan-dates.yml index dfed7d36f34..333a9931b54 100644 --- a/.github/workflows/scan-dates.yml +++ b/.github/workflows/scan-dates.yml @@ -17,7 +17,7 @@ jobs: # Step 2: Read content of Markdown files and write to a file - name: Step 2 - Read Markdown files and write to a file run: | - cat content/en/docs/*.md > files_content.txt + find content/en/docs -name '*.md' -exec cat {} + > files_content.txt # Step 3: Confirm the file is created and contains the content - name: Step 3 - Confirm file is created and contains content From 893258c17f77450de8d25de43b61e42bc6df252a Mon Sep 17 00:00:00 2001 From: Dana Breseman Date: Wed, 1 May 2024 09:34:53 +0200 Subject: [PATCH 58/62] Add regex steps --- .github/workflows/scan-dates.yml | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/.github/workflows/scan-dates.yml b/.github/workflows/scan-dates.yml index 333a9931b54..5bcf60be34e 100644 --- a/.github/workflows/scan-dates.yml +++ b/.github/workflows/scan-dates.yml @@ -23,3 +23,29 @@ jobs: - name: Step 3 - Confirm file is created and contains content run: | cat files_content.txt + + # Step 4: Debug - Print upcoming dates to search for + - name: Step 4 - Debug - Print upcoming dates to search for + run: | + echo "Upcoming dates to search for:" + echo "------------------------------" + echo "Current date: $(date '+%B %d, %Y')" + echo "First day of upcoming month: $(date -d 'next month' '+%B 1, %Y')" + echo "Last day of upcoming month: $(date -d "$(date -d 'next month' '+%Y-%m-01') +1 month -1 day" '+%B %d, %Y')" + echo "------------------------------" + + # Step 5: Perform regex match to find upcoming dates in Markdown files + - name: Step 5 - Perform regex match + id: regex-match + uses: kaisugi/action-regex-match@v1.0.1 + with: + text: ${{ steps.confirm-file-creation.outputs.files_content }} + regex: '(January|February|March|April|May|June|July|August|September|October|November|December)\s+[0-9]{1,2},\s+[0-9]{4}' + flags: gm + + # Step 6: Debug - Print matched dates + - name: Step 6 - Debug - Print matched dates + if: ${{ steps.regex-match.outputs.matches != '' }} # Check if there are matches + run: | + echo "Matched dates found in Markdown files:" + echo "${{ steps.regex-match.outputs.matches }}" From 966cd81b43690f93907e276f6b8c72d7247ceb8f Mon Sep 17 00:00:00 2001 From: Dana Breseman Date: Wed, 1 May 2024 09:38:07 +0200 Subject: [PATCH 59/62] Correct syntax errors --- .github/workflows/scan-dates.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/scan-dates.yml b/.github/workflows/scan-dates.yml index 5bcf60be34e..29e466179ce 100644 --- a/.github/workflows/scan-dates.yml +++ b/.github/workflows/scan-dates.yml @@ -17,7 +17,7 @@ jobs: # Step 2: Read content of Markdown files and write to a file - name: Step 2 - Read Markdown files and write to a file run: | - find content/en/docs -name '*.md' -exec cat {} + > files_content.txt + find content/en/docs -name '*.md' -exec cat {} + > files_content.txt # Step 3: Confirm the file is created and contains the content - name: Step 3 - Confirm file is created and contains content @@ -39,7 +39,7 @@ jobs: id: regex-match uses: kaisugi/action-regex-match@v1.0.1 with: - text: ${{ steps.confirm-file-creation.outputs.files_content }} + text: ${{ runner.workspace }}/files_content.txt regex: '(January|February|March|April|May|June|July|August|September|October|November|December)\s+[0-9]{1,2},\s+[0-9]{4}' flags: gm From 02623dfd12c3e627bc0649600444941a37aece86 Mon Sep 17 00:00:00 2001 From: Dana Breseman Date: Wed, 1 May 2024 09:39:53 +0200 Subject: [PATCH 60/62] Update date --- content/en/docs/_index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/en/docs/_index.md b/content/en/docs/_index.md index 99d2869f7b5..a01e0e572ed 100644 --- a/content/en/docs/_index.md +++ b/content/en/docs/_index.md @@ -18,4 +18,4 @@ cascade: # Root index.html file calls docs/content/en/docs/_index.md content --- -May 30, 2024 is a date mentioned here. +June 17, 2024 is a date mentioned here. From c2cbb3bd6d0aaea4aee5389b5ccaec4c896f0328 Mon Sep 17 00:00:00 2001 From: Dana Breseman Date: Wed, 1 May 2024 09:49:33 +0200 Subject: [PATCH 61/62] Try text string --- .github/workflows/scan-dates.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/scan-dates.yml b/.github/workflows/scan-dates.yml index 29e466179ce..081daad917a 100644 --- a/.github/workflows/scan-dates.yml +++ b/.github/workflows/scan-dates.yml @@ -39,7 +39,7 @@ jobs: id: regex-match uses: kaisugi/action-regex-match@v1.0.1 with: - text: ${{ runner.workspace }}/files_content.txt + text: June 17, 2024 regex: '(January|February|March|April|May|June|July|August|September|October|November|December)\s+[0-9]{1,2},\s+[0-9]{4}' flags: gm From b6c03af544e181657097519d3d520e07658d0161 Mon Sep 17 00:00:00 2001 From: dbreseman <142491015+dbreseman@users.noreply.github.com> Date: Tue, 1 Oct 2024 20:21:58 +0000 Subject: [PATCH 62/62] Run markdownlint-cli2 on docs to find (and correct) linting errors. --- .../extensibility-api-howtos/add-menu.md | 2 +- .../build-todo-example-extension.md | 29 ++++++++------- .../create-context-menu.md | 4 +- .../create-dockable-pane.md | 2 +- .../create-menu-extension.md | 2 +- .../create-microflow-service.md | 3 +- .../create-microflows-calculations.md | 12 +++++- .../create-modal-web-view.md | 3 +- .../interact-with-model-api.md | 1 - .../extension-points.md | 16 ++++---- .../services.md | 22 +++++------ .../web-view.md | 2 + .../extensibility-api/release-notes.md | 1 - .../apidocs/private-cloud-deploy-api.md | 18 ++++----- .../mxsdk/sdk-howtos/using-platform-sdk.md | 1 + .../appstore/overview/component-details.md | 37 +++++++++---------- .../marketplace-content-support.md | 1 - .../use-content/modules/aws/amazon-bedrock.md | 3 -- .../use-content/modules/aws/aws-dynamodb.md | 1 + .../modules/aws/aws-s3-connector.md | 4 +- .../use-content/modules/aws/aws-sqs.md | 1 + .../use-content/modules/genai/_index.md | 1 - .../use-content/modules/mendix-feedback.md | 2 +- .../modules/teamcenter-extension.md | 3 +- .../partner-solutions/qsm/_index.md | 1 - content/en/docs/control-center/apps.md | 2 +- .../en/docs/control-center/deployed-apps.md | 20 +++++----- .../monitoring-with-apm/dynatrace-metrics.md | 1 + .../monitoring-with-apm/newrelic-metrics.md | 1 + .../monitoring-with-apm/splunk-metrics.md | 1 + .../private-cloud-global-operator.md | 1 - content/en/docs/deployment/sap-btp/_index.md | 2 + content/en/docs/developerportal/_index.md | 7 ++-- .../general/settings/manage-deeplinks.md | 5 +-- .../installation/system-requirements.md | 2 + .../use-min-older-sp.md | 2 + .../getting-started-with-mobile/_index.md | 1 - .../notif-implement-native.md | 1 + .../push-notifications/notif-implement-pwa.md | 2 +- .../working-with-lists-in-a-microflow.md | 5 +++ .../refguide/runtime/mendix-client/_index.md | 1 + .../mapping-documents/select--elements.md | 1 + .../push-notifications/notif-config-push.md | 2 +- .../notif-implement-native.md | 3 +- .../push-notifications/notif-implement-pwa.md | 2 +- .../push-notifications/notif-send-test.md | 2 +- .../working-with-lists-in-a-microflow.md | 5 +++ .../docs/refguide9/runtime/mendix-client.md | 1 + .../nt-studio-pro-9-parent/nt-8-rn.md | 2 - .../docs/releasenotes/studio-pro/10/10.6.md | 1 - 50 files changed, 135 insertions(+), 110 deletions(-) diff --git a/content/en/docs/apidocs-mxsdk/apidocs/extensibility-api/extensibility-api-howtos/add-menu.md b/content/en/docs/apidocs-mxsdk/apidocs/extensibility-api/extensibility-api-howtos/add-menu.md index 8dd5cfd9569..4e7ae2091b2 100644 --- a/content/en/docs/apidocs-mxsdk/apidocs/extensibility-api/extensibility-api-howtos/add-menu.md +++ b/content/en/docs/apidocs-mxsdk/apidocs/extensibility-api/extensibility-api-howtos/add-menu.md @@ -14,7 +14,7 @@ You can download the example in this how-to in [this GitHub repository](https:// 1. Open the project that you previously created when you [created the menu extension](/apidocs-mxsdk/apidocs/extensibility-api/create-menu-extension/). 2. Add a new class to the project and name it `MyMenuExtension.cs`. -3. Replace the code in the file with the following code: +3. Replace the code in the file with the following code: ```csharp using Mendix.StudioPro.ExtensionsAPI.UI.Menu; diff --git a/content/en/docs/apidocs-mxsdk/apidocs/extensibility-api/extensibility-api-howtos/build-todo-example-extension.md b/content/en/docs/apidocs-mxsdk/apidocs/extensibility-api/extensibility-api-howtos/build-todo-example-extension.md index f6f9590a3bf..b8ca8683077 100644 --- a/content/en/docs/apidocs-mxsdk/apidocs/extensibility-api/extensibility-api-howtos/build-todo-example-extension.md +++ b/content/en/docs/apidocs-mxsdk/apidocs/extensibility-api/extensibility-api-howtos/build-todo-example-extension.md @@ -35,11 +35,11 @@ In order for your extension to be loaded correctly as an extension in Studio Pro {{< figure src="/attachments/apidocs-mxsdk/apidocs/extensibility-api/extensibility-api-howtos/build-todo-example-extension/step-one.png" >}} 3. Name the project *Mendix.ToDoExtension*. -4. Choose a location to store your extension, and click **Next**. +4. Choose a location to store your extension, and click **Next**. {{< figure src="/attachments/apidocs-mxsdk/apidocs/extensibility-api/extensibility-api-howtos/build-todo-example-extension/step-two.png" >}} -5. Set **Framework** to *.NET 8.0 (Long Term Support)* and click **Create**. +5. Set **Framework** to *.NET 8.0 (Long Term Support)* and click **Create**. {{< figure src="/attachments/apidocs-mxsdk/apidocs/extensibility-api/extensibility-api-howtos/build-todo-example-extension/step-three.png" max-width=80% >}} @@ -56,15 +56,15 @@ The details of each step are described below. #### 3.2.1 Referencing the Extensibility API NuGet Package -1. In Visual Studio, go to **Tools** > **NuGet Package Manager** > **Manage NuGet Packages for Solution**. +1. In Visual Studio, go to **Tools** > **NuGet Package Manager** > **Manage NuGet Packages for Solution**. {{< figure src="/attachments/apidocs-mxsdk/apidocs/extensibility-api/extensibility-api-howtos/build-todo-example-extension/step-four.png" >}} -2. On the **Browse** tab, search for **Mendix ExtensionsAPI**. +2. On the **Browse** tab, search for **Mendix ExtensionsAPI**. {{< figure src="/attachments/apidocs-mxsdk/apidocs/extensibility-api/extensibility-api-howtos/build-todo-example-extension/step-five.png" max-width=50% >}} -3. Select the NuGet package and click **Install**. +3. Select the NuGet package and click **Install**. {{< figure src="/attachments/apidocs-mxsdk/apidocs/extensibility-api/extensibility-api-howtos/build-todo-example-extension/step-six.png" max-width=50% >}} @@ -76,7 +76,7 @@ You now have a class library that can be loaded as an extension by Studio Pro. H 2. Right-click in the Solution Explorer and add a new file called *manifest.json*. 3. Right-click in the Solution Explorer and select **Properties**. 4. Ensure that you set the **Copy to Output Directory** property to **Copy always** to ensure that this file is included in your extensions output files. -5. Replace the contents of your manifest.json file with the following code: +5. Replace the contents of your manifest.json file with the following code: ```json { @@ -98,7 +98,7 @@ You now have a class library that can be loaded as an extension by Studio Pro. H In this section, you will host a dockable pane within Studio Pro. This will provide you with a window where you can render the User Interface of the extension. 1. Add a new file to the solution called `ToDoListDockablePaneExtension.cs`. -2. Replace the contents of the file with the following code: +2. Replace the contents of the file with the following code: ```csharp using System.ComponentModel.Composition; @@ -399,7 +399,7 @@ Now, create the methods responsible for performing the logic: In order to store the information to disk, add some model classes that will be able to store the Todo information. 1. Add a new class that will host the To do information itself. Call the file `ToDoModel.cs` -2. Replace the contents of the file with the following code: +2. Replace the contents of the file with the following code: ```csharp using System.Text.Json.Serialization; @@ -430,7 +430,7 @@ In order to store the information to disk, add some model classes that will be a You will also need a model class that will store a list of all the todos that you have available. 3. Add another class and name it `ToDoListModel.cs`. -4. Replace the contents of this file with the following code: +4. Replace the contents of this file with the following code: ```csharp using System.Text.Json.Serialization; @@ -454,7 +454,7 @@ In order to store the information to disk, add some model classes that will be a With the models created, you can now create a storage handler that will manage storing these models to disk. 1. Add a new class file and call it `ToDoStorage.cs`. -2. Replace the contents of the file with the following code: +2. Replace the contents of the file with the following code: ```csharp using System.Text; @@ -553,10 +553,11 @@ In this section, you will add a menu item to the toolbar that will allow you to 1. Create a `MenuExtension`. 2. Add another class and call it `ToDoListMenuExtension.cs`. -3. Replace the contents of the file with the following code: +3. Replace the contents of the file with the following code: ```csharp using System.Collections.Generic; + using System.ComponentModel.Composition; using Mendix.StudioPro.ExtensionsAPI.UI.DockablePane; using Mendix.StudioPro.ExtensionsAPI.UI.Menu; @@ -595,7 +596,7 @@ Up to now you have been adding all the logic that will allow your extension to r * A JavaScript file that contains the client side logic for the user interface. Call it `main.js` 3. Open `index.html`. -4. Replace its contents with the following: +4. Replace its contents with the following: ```html @@ -641,7 +642,7 @@ Up to now you have been adding all the logic that will allow your extension to r ``` -5. Open `main.js` and add the JavaScript logic by replacing the contents of the file with the following: +5. Open `main.js` and add the JavaScript logic by replacing the contents of the file with the following: ```js function postMessage(message, data) { @@ -750,7 +751,7 @@ It is important to set these two `index.html` and `main.js` files to *Copy alway So far you have configured the extension to be usable in Studio Pro. You added support for storing the to do items. You also added a user interface that users can interact with. The last step in this process is to link the extension c# logic with the web-based JavaScript logic. 1. Start with adding a utility class to help simplify the way you interact with web responses. Call the file `HttpListenerResponseUtils.cs`. -2. Replace the contents of the file with the following: +2. Replace the contents of the file with the following: ```csharp using System.Net; diff --git a/content/en/docs/apidocs-mxsdk/apidocs/extensibility-api/extensibility-api-howtos/create-context-menu.md b/content/en/docs/apidocs-mxsdk/apidocs/extensibility-api/extensibility-api-howtos/create-context-menu.md index 3ce1a9c8b02..f54bed7c7ba 100644 --- a/content/en/docs/apidocs-mxsdk/apidocs/extensibility-api/extensibility-api-howtos/create-context-menu.md +++ b/content/en/docs/apidocs-mxsdk/apidocs/extensibility-api/extensibility-api-howtos/create-context-menu.md @@ -16,7 +16,7 @@ You can download the example in this how-to in [this GitHub repository](https:// 1. Open the project that you previously created when you [created the menu extension](/apidocs-mxsdk/apidocs/extensibility-api/create-menu-extension/). 2. Add a new class to the project and name it `MyEntityContextMenuExtension.cs`. -3. Replace the code in the file with the following code: +3. Replace the code in the file with the following code: ```csharp namespace MyCompany.MyProject.MendixExtension; @@ -115,4 +115,4 @@ class MyDocumentContextMenuExtension(IMessageBoxService messageBoxService) : Con yield return new MenuViewModel("This document is a page", () => messageBoxService.ShowInformation(page.Name)); } } -``` \ No newline at end of file +``` diff --git a/content/en/docs/apidocs-mxsdk/apidocs/extensibility-api/extensibility-api-howtos/create-dockable-pane.md b/content/en/docs/apidocs-mxsdk/apidocs/extensibility-api/extensibility-api-howtos/create-dockable-pane.md index 5a73b10c849..5623c52ae2b 100644 --- a/content/en/docs/apidocs-mxsdk/apidocs/extensibility-api/extensibility-api-howtos/create-dockable-pane.md +++ b/content/en/docs/apidocs-mxsdk/apidocs/extensibility-api/extensibility-api-howtos/create-dockable-pane.md @@ -14,7 +14,7 @@ You can download the example in this how-to in [this GitHub repository](https:// 1. Open the project that you previously created when you [created the menu extension](/apidocs-mxsdk/apidocs/extensibility-api/create-menu-extension/). 2. Add a new class to the project and name it `MyDockablePaneExtension.cs`. -3. Replace the code in the file with the following code: +3. Replace the code in the file with the following code: ```csharp using System.ComponentModel.Composition; diff --git a/content/en/docs/apidocs-mxsdk/apidocs/extensibility-api/extensibility-api-howtos/create-menu-extension.md b/content/en/docs/apidocs-mxsdk/apidocs/extensibility-api/extensibility-api-howtos/create-menu-extension.md index 10d2a445e4a..8dea4368ecb 100644 --- a/content/en/docs/apidocs-mxsdk/apidocs/extensibility-api/extensibility-api-howtos/create-menu-extension.md +++ b/content/en/docs/apidocs-mxsdk/apidocs/extensibility-api/extensibility-api-howtos/create-menu-extension.md @@ -15,7 +15,7 @@ You can download the example in this how-to in [this GitHub repository](https:// 1. Create a new project in Visual Studio based on `C# Class Library` template. 2. Choose a name for the project. Use a format similar to `MyCompany.MyProject.MendixExtension`, but it is not a hard requirement. 3. Choose `.NET 8.0` Framework. -4. Add `Mendix.StudioPro.ExtensionsAPI` NuGet package to the project references. Pick the version that does not exceed the Studio Pro version you installed. To do so, perform the following steps: +4. Add `Mendix.StudioPro.ExtensionsAPI` NuGet package to the project references. Pick the version that does not exceed the Studio Pro version you installed. To do so, perform the following steps: 1. Include a reference to the Extensions API [NuGet package](https://www.nuget.org/packages/Mendix.StudioPro.ExtensionsAPI): 2. Add new file named `manifest.json` to your project. Put the following content into it: diff --git a/content/en/docs/apidocs-mxsdk/apidocs/extensibility-api/extensibility-api-howtos/create-microflow-service.md b/content/en/docs/apidocs-mxsdk/apidocs/extensibility-api/extensibility-api-howtos/create-microflow-service.md index 454f16244f2..0d7afed7252 100644 --- a/content/en/docs/apidocs-mxsdk/apidocs/extensibility-api/extensibility-api-howtos/create-microflow-service.md +++ b/content/en/docs/apidocs-mxsdk/apidocs/extensibility-api/extensibility-api-howtos/create-microflow-service.md @@ -86,6 +86,7 @@ In this more advanced example, you will see the `IMicroflowExpressionService.Cre transaction.Commit(); } ``` + The `IMicroflowService.CreateMicroflow` method is a bit easier to use than the `IMicroflowService.Initialize` method because it doesn't require manually creating the microflow with `IModel.Create` and then manually adding it to the `IFolderBase` container. It can do everything behind the scenes as long as everything is supplied to it. For a comprehensive example on how to create microflows, see [Create Microflows for Calculations](/apidocs-mxsdk/apidocs/extensibility-api/create-microflows-for-calculations/) ## 4 `TryInsertAfterStart` and `TryInsertBeforeActivity` @@ -140,4 +141,4 @@ public void AddNewActivity(IModel currentApp, IMicroflow microflow, string activ transaction.Commit(); } -``` \ No newline at end of file +``` diff --git a/content/en/docs/apidocs-mxsdk/apidocs/extensibility-api/extensibility-api-howtos/create-microflows-calculations.md b/content/en/docs/apidocs-mxsdk/apidocs/extensibility-api/extensibility-api-howtos/create-microflows-calculations.md index 4e32fd53416..20eeaea2065 100644 --- a/content/en/docs/apidocs-mxsdk/apidocs/extensibility-api/extensibility-api-howtos/create-microflows-calculations.md +++ b/content/en/docs/apidocs-mxsdk/apidocs/extensibility-api/extensibility-api-howtos/create-microflows-calculations.md @@ -16,7 +16,7 @@ You can download the example in this how-to in [this GitHub repository](https:// 2. Add a new folder *MicroflowTutorial* to your solution. 3. Create a `MenuExtension` class. 4. Add a new class to the project and call it `CreateMicroflowsMenu.cs`. -5. Replace the code in the file with the code below. +5. Replace the code in the file with the code below. ```csharp using Mendix.StudioPro.ExtensionsAPI.UI.Menu; @@ -41,6 +41,7 @@ You can download the example in this how-to in [this GitHub repository](https:// } } ``` + As you can see, the `GetMenus` method is overridden to add your own menus to Studio Pro. The class `CalculationsMicroflowCreator` (which you will add shortly) will be called from the action of your menu. You can see that this class has been injected in the constructor of your menu extension. ## 3. Microflow Creator @@ -139,9 +140,11 @@ void CreateMultiplicationMicroflow(IModel currentApp, IFolderBase folder, IMicro (multiplication2Param, "100")); } ``` + {{< figure src="/attachments/apidocs-mxsdk/apidocs/extensibility-api/multiplication-microflow.png" >}} To create a microflow that performs an addition between two decimal values, you can use the code below. Just like the multiplication microflow example above, you can see that the String `addition1` and the String `addition2` match the parameters used in the expression for the return value. You can also see that their `DataType` is decimal. + ```csharp void CreateAdditionMicroflow(IModel currentApp, IFolderBase folder, IMicroflow callingMicroflow, string outputVariableName) { @@ -162,11 +165,13 @@ void CreateAdditionMicroflow(IModel currentApp, IFolderBase folder, IMicroflow c (addition2Param, "2.2")); } ``` + {{< figure src="/attachments/apidocs-mxsdk/apidocs/extensibility-api/addition-microflow.png" >}} Once a microflow is created, in order to enable this microflow to be called by other microflows, you need to add a call activity (`IActionActivity`). In the example, you have a method called `CreatMicroflowCallActivity` that can be used by both your multiplication and addition microflows. There are a few prerequisites that you must complete before a microflow can be called by another microflow. This method can be broken down into parts: + ```csharp var microflowCallActivity = currentApp.Create(); var microflowCallAction = currentApp.Create(); @@ -176,6 +181,7 @@ microflowCallActivity.Action = microflowCallAction; microflowCallAction.OutputVariableName = outputVariableName; ``` + In order to create `IActionActivity`, `IMicroflowCallAction` must also be created, and set as the `Action` property of the `IActionActivity`. Then, for `IMicroflowCallAction`, `IMicroflowCall` must also be created and set as the `MicroflowCall` property of the `IMicroflowCallAction`. @@ -187,6 +193,7 @@ Finally, you can set `OutputVariableName` on `IActionActivity` , which is what t ## 4 Passing Parameters It is also possible to pass a set of parameters to the action activity, which will be the inputs for the called microflow. This set of parameters is a simple `Tuple` of a name and an expression. In the example, these parameters are the two integers for the multiplication microflow and the two decimals for the addition microflow. + ```csharp foreach (var (parameterName, expression) in parameters) { @@ -228,6 +235,7 @@ void CreateMicroflowCallActivity(IModel currentApp, ``` To create a call activity for your multiplication and addition microflows, you can use something like the code below. As you can see, the parameter names for the activity match the parameter name from the microflow and their values are also passed in for integers and decimals. + ```csharp CreateMicroflowCallActivity(currentApp, callingMicroflow, mathMicroflow, outputVariableName, @@ -284,4 +292,4 @@ IQualifiedName FindJavaAction(string name, IModule module) } ``` -Download the [whole code](https://github.com/mendix/ExtensionAPI-Samples) to see the way it works in its entirety. \ No newline at end of file +Download the [whole code](https://github.com/mendix/ExtensionAPI-Samples) to see the way it works in its entirety. diff --git a/content/en/docs/apidocs-mxsdk/apidocs/extensibility-api/extensibility-api-howtos/create-modal-web-view.md b/content/en/docs/apidocs-mxsdk/apidocs/extensibility-api/extensibility-api-howtos/create-modal-web-view.md index 7d23123abdb..8053b027295 100644 --- a/content/en/docs/apidocs-mxsdk/apidocs/extensibility-api/extensibility-api-howtos/create-modal-web-view.md +++ b/content/en/docs/apidocs-mxsdk/apidocs/extensibility-api/extensibility-api-howtos/create-modal-web-view.md @@ -160,6 +160,7 @@ class MyMenuExtension(MyModalWebViewController myModalWebViewController) : MenuE } } ``` + These changes inject your new controller class into the `MyMenuExtension` class. Then you add a new menu item called `Create Entity From Dialog` and call the controller's `ShowDialog` method. -Note that in this example, the parameter `currentApp` will be necessary, if the dialog needs to interact with the model. Additionally, `WebServerBaseUrl` is crucial, because, without the base path, navigating to the route you defined in the web server extension would not be possible. \ No newline at end of file +Note that in this example, the parameter `currentApp` will be necessary, if the dialog needs to interact with the model. Additionally, `WebServerBaseUrl` is crucial, because, without the base path, navigating to the route you defined in the web server extension would not be possible. diff --git a/content/en/docs/apidocs-mxsdk/apidocs/extensibility-api/extensibility-api-howtos/interact-with-model-api.md b/content/en/docs/apidocs-mxsdk/apidocs/extensibility-api/extensibility-api-howtos/interact-with-model-api.md index b443b32bf71..b10bedbed01 100644 --- a/content/en/docs/apidocs-mxsdk/apidocs/extensibility-api/extensibility-api-howtos/interact-with-model-api.md +++ b/content/en/docs/apidocs-mxsdk/apidocs/extensibility-api/extensibility-api-howtos/interact-with-model-api.md @@ -58,4 +58,3 @@ using (var transaction = model.StartTransaction("add entity")) ## 5 Read More * [Understanding the Mendix Metamodel](/apidocs-mxsdk/mxsdk/mendix-metamodel/) - diff --git a/content/en/docs/apidocs-mxsdk/apidocs/extensibility-api/extensibility-api-reference-guide/extension-points.md b/content/en/docs/apidocs-mxsdk/apidocs/extensibility-api/extensibility-api-reference-guide/extension-points.md index 417bd125086..573ab180d7d 100644 --- a/content/en/docs/apidocs-mxsdk/apidocs/extensibility-api/extensibility-api-reference-guide/extension-points.md +++ b/content/en/docs/apidocs-mxsdk/apidocs/extensibility-api/extensibility-api-reference-guide/extension-points.md @@ -17,11 +17,11 @@ that is employed by Studio Pro. ## 2 List of Available Extension Points ### 2.1 Studio Pro UI Extensions -- [ContextMenuExtension](https://github.com/mendix/ExtensionAPI-Samples/blob/main/API%20Reference/Mendix.StudioPro.ExtensionsAPI.UI.Menu/ContextMenuExtension-1.md) – This allows injecting new context menu items into model elements. +* [ContextMenuExtension](https://github.com/mendix/ExtensionAPI-Samples/blob/main/API%20Reference/Mendix.StudioPro.ExtensionsAPI.UI.Menu/ContextMenuExtension-1.md) – This allows injecting new context menu items into model elements. -- [MenuExtension](https://github.com/mendix/ExtensionAPI-Samples/blob/main/API%20Reference/Mendix.StudioPro.ExtensionsAPI.UI.Menu/MenuExtension.md) – This allows injecting new menu items into Studio Pro menu bar. +* [MenuExtension](https://github.com/mendix/ExtensionAPI-Samples/blob/main/API%20Reference/Mendix.StudioPro.ExtensionsAPI.UI.Menu/MenuExtension.md) – This allows injecting new menu items into Studio Pro menu bar. -- [DockablePaneExtension](https://github.com/mendix/ExtensionAPI-Samples/blob/main/API%20Reference/Mendix.StudioPro.ExtensionsAPI.UI.DockablePane/DockablePaneExtension.md) – allows introducing new +* [DockablePaneExtension](https://github.com/mendix/ExtensionAPI-Samples/blob/main/API%20Reference/Mendix.StudioPro.ExtensionsAPI.UI.DockablePane/DockablePaneExtension.md) – allows introducing new [dockable pane](/refguide/studio-pro-overview/#panes) like Connector or Documentation. Panes integrate with Studio Pro [layout system](/refguide/view-menu/#layout-of-panes) automatically. @@ -29,10 +29,10 @@ that is employed by Studio Pro. Additionally, there are additional features that provide access to the following: -- [Studio Pro configuration](https://github.com/mendix/ExtensionAPI-Samples/blob/main/API%20Reference/Mendix.StudioPro.ExtensionsAPI/ExtensionBase/Configuration.md) -- [The currently opened app](https://github.com/mendix/ExtensionAPI-Samples/blob/main/API%20Reference/Mendix.StudioPro.ExtensionsAPI.UI/UIExtensionBase/CurrentApp.md), as well as event subscription mechanism to that app -- Events can be subscribed to by using the subscribe and unsubscribe methods exposed in [UIExtensionBase](https://github.com/mendix/ExtensionAPI-Samples/blob/main/API%20Reference/Mendix.StudioPro.ExtensionsAPI.UI/UIExtensionBase.md). +* [Studio Pro configuration](https://github.com/mendix/ExtensionAPI-Samples/blob/main/API%20Reference/Mendix.StudioPro.ExtensionsAPI/ExtensionBase/Configuration.md) +* [The currently opened app](https://github.com/mendix/ExtensionAPI-Samples/blob/main/API%20Reference/Mendix.StudioPro.ExtensionsAPI.UI/UIExtensionBase/CurrentApp.md), as well as event subscription mechanism to that app +* Events can be subscribed to by using the subscribe and unsubscribe methods exposed in [UIExtensionBase](https://github.com/mendix/ExtensionAPI-Samples/blob/main/API%20Reference/Mendix.StudioPro.ExtensionsAPI.UI/UIExtensionBase.md). ### 2.2 Studio Pro and MxBuild Extensions -- [ConsistencyCheckExtension](https://github.com/mendix/ExtensionAPI-Samples/blob/main/API%20Reference/Mendix.StudioPro.ExtensionsAPI.ConsistencyCheck/ConsistencyCheckExtension-1.md) – This allows injecting custom logic into - the [Consistency check](https://docs.mendix.com/refguide/consistency-errors/) process. \ No newline at end of file +* [ConsistencyCheckExtension](https://github.com/mendix/ExtensionAPI-Samples/blob/main/API%20Reference/Mendix.StudioPro.ExtensionsAPI.ConsistencyCheck/ConsistencyCheckExtension-1.md) – This allows injecting custom logic into + the [Consistency check](https://docs.mendix.com/refguide/consistency-errors/) process. diff --git a/content/en/docs/apidocs-mxsdk/apidocs/extensibility-api/extensibility-api-reference-guide/services.md b/content/en/docs/apidocs-mxsdk/apidocs/extensibility-api/extensibility-api-reference-guide/services.md index b199de3d629..8c4b303d393 100644 --- a/content/en/docs/apidocs-mxsdk/apidocs/extensibility-api/extensibility-api-reference-guide/services.md +++ b/content/en/docs/apidocs-mxsdk/apidocs/extensibility-api/extensibility-api-reference-guide/services.md @@ -11,14 +11,14 @@ A Studio Pro service is an interface that exposes some core Studio Pro functiona {{% alert color="info" %}}You should not implement these interfaces in your production code, although it is possible to make sense to do so for unit testing purposes.{{% /alert %}} ## 2 List of Available Services -- Helpers to operate on the app model or parts of it: - - [`IMicroflowService`](https://github.com/mendix/ExtensionAPI-Samples/blob/main/API%20Reference/Mendix.StudioPro.ExtensionsAPI.Services/IMicroflowService.md) - - [`IMicroflowExpressionService`](https://github.com/mendix/ExtensionAPI-Samples/blob/main/API%20Reference/Mendix.StudioPro.ExtensionsAPI.Services/IMicroflowExpressionService.md) -- Services giving access to interactive operations: - - [`IAppService`](https://github.com/mendix/ExtensionAPI-Samples/blob/main/API%20Reference/Mendix.StudioPro.ExtensionsAPI.UI.Services/IAppService.md) - - [`ISelectorDialogService`](https://github.com/mendix/ExtensionAPI-Samples/blob/main/API%20Reference/Mendix.StudioPro.ExtensionsAPI.UI.Services/ISelectorDialogService.md) - - [`IDockingWindowService`](https://github.com/mendix/ExtensionAPI-Samples/blob/main/API%20Reference/Mendix.StudioPro.ExtensionsAPI.UI.Services/IDockingWindowService.md) -- Utility services: - - [`IConfigurationService`](https://github.com/mendix/ExtensionAPI-Samples/blob/main/API%20Reference/Mendix.StudioPro.ExtensionsAPI.Services/IConfigurationService.md) - - [`ILogService`](https://github.com/mendix/ExtensionAPI-Samples/blob/main/API%20Reference/Mendix.StudioPro.ExtensionsAPI.Services/ILogService.md) - - [`IExtensionFileService`](https://github.com/mendix/ExtensionAPI-Samples/blob/main/API%20Reference/Mendix.StudioPro.ExtensionsAPI.Services/IExtensionFileService.md) \ No newline at end of file +* Helpers to operate on the app model or parts of it: + * [`IMicroflowService`](https://github.com/mendix/ExtensionAPI-Samples/blob/main/API%20Reference/Mendix.StudioPro.ExtensionsAPI.Services/IMicroflowService.md) + * [`IMicroflowExpressionService`](https://github.com/mendix/ExtensionAPI-Samples/blob/main/API%20Reference/Mendix.StudioPro.ExtensionsAPI.Services/IMicroflowExpressionService.md) +* Services giving access to interactive operations: + * [`IAppService`](https://github.com/mendix/ExtensionAPI-Samples/blob/main/API%20Reference/Mendix.StudioPro.ExtensionsAPI.UI.Services/IAppService.md) + * [`ISelectorDialogService`](https://github.com/mendix/ExtensionAPI-Samples/blob/main/API%20Reference/Mendix.StudioPro.ExtensionsAPI.UI.Services/ISelectorDialogService.md) + * [`IDockingWindowService`](https://github.com/mendix/ExtensionAPI-Samples/blob/main/API%20Reference/Mendix.StudioPro.ExtensionsAPI.UI.Services/IDockingWindowService.md) +* Utility services: + * [`IConfigurationService`](https://github.com/mendix/ExtensionAPI-Samples/blob/main/API%20Reference/Mendix.StudioPro.ExtensionsAPI.Services/IConfigurationService.md) + * [`ILogService`](https://github.com/mendix/ExtensionAPI-Samples/blob/main/API%20Reference/Mendix.StudioPro.ExtensionsAPI.Services/ILogService.md) + * [`IExtensionFileService`](https://github.com/mendix/ExtensionAPI-Samples/blob/main/API%20Reference/Mendix.StudioPro.ExtensionsAPI.Services/IExtensionFileService.md) diff --git a/content/en/docs/apidocs-mxsdk/apidocs/extensibility-api/extensibility-api-reference-guide/web-view.md b/content/en/docs/apidocs-mxsdk/apidocs/extensibility-api/extensibility-api-reference-guide/web-view.md index e905cd61131..21c13aa6705 100644 --- a/content/en/docs/apidocs-mxsdk/apidocs/extensibility-api/extensibility-api-reference-guide/web-view.md +++ b/content/en/docs/apidocs-mxsdk/apidocs/extensibility-api/extensibility-api-reference-guide/web-view.md @@ -14,6 +14,7 @@ Studio Pro also contains a built-in web server that can be used to serve the web In addition, there is a two-way message passing mechanism for direct communication between the web content and the C# part of your extension. ## 2 Showing a Web View in the UI + There are a number of places where the Studio Pro Extensibility API allows you to add custom UI. Typically, the Extensibility API requires you to return a view model for your UI, and for every view model type, there is a corresponding base class for showing the UI in a web view. @@ -36,4 +37,5 @@ In this method, you can tell the web view to navigate to the (local) URL that co In addition, the view model class can be used to house the logic for communicating with the web view. ## 3 Serving Content to the Web View + For serving content to the web view and communicating both ways with it, see [Build a Todo Example Extension](/apidocs-mxsdk/apidocs/extensibility-api/extensibility-api-howtos/build-todo-example-extension/). diff --git a/content/en/docs/apidocs-mxsdk/apidocs/extensibility-api/release-notes.md b/content/en/docs/apidocs-mxsdk/apidocs/extensibility-api/release-notes.md index 5572d12e786..135c580cfcc 100644 --- a/content/en/docs/apidocs-mxsdk/apidocs/extensibility-api/release-notes.md +++ b/content/en/docs/apidocs-mxsdk/apidocs/extensibility-api/release-notes.md @@ -8,7 +8,6 @@ weight: 6 These release notes cover changes to the Extensibility API. - ## Version 10.6.0 * The Extensibility API is released for beta usage. diff --git a/content/en/docs/apidocs-mxsdk/apidocs/private-cloud-deploy-api.md b/content/en/docs/apidocs-mxsdk/apidocs/private-cloud-deploy-api.md index 49234125d8c..625361f653c 100644 --- a/content/en/docs/apidocs-mxsdk/apidocs/private-cloud-deploy-api.md +++ b/content/en/docs/apidocs-mxsdk/apidocs/private-cloud-deploy-api.md @@ -51,24 +51,24 @@ Store the `{GENERATED_PAT}` value in a safe location, so you can use it to autho #### 2.1.2 Scopes explanation -| Operation | Scopes | +| Operation | Scopes | |-----------------------------|-------------------------------------------------| | Get namespace manifest | `mx:deployment:read` or `mx:deployment:write` | | Get namespaces manifest | `mx:deployment:read` or `mx:deployment:write` | | Get cluster manifest | `mx:deployment:read` or `mx:deployment:write` | | Get clusters manifest | `mx:deployment:read` or `mx:deployment:write` | -| Create cluster | `mx:deployment:write` | -| Update cluster | `mx:deployment:write` | -| Delete cluster | `mx:deployment:write` | -| Create namespace | `mx:deployment:write` | -| Update namespace | `mx:deployment:write` | -| Delete namespace | `mx:deployment:write` | +| Create cluster | `mx:deployment:write` | +| Update cluster | `mx:deployment:write` | +| Delete cluster | `mx:deployment:write` | +| Create namespace | `mx:deployment:write` | +| Update namespace | `mx:deployment:write` | +| Delete namespace | `mx:deployment:write` | | Get environment manifest | `mx:deployment:read` or `mx:deployment:write` | -| Create environment | `mx:deployment:write` | +| Create environment | `mx:deployment:write` | | Update environment | `mx:deployment:write` | | Delete environment | `mx:deployment:write` | | Get Apps manifest | `mx:deployment:write` and `mx:app:metadata:read`| -| Get App manifest. | `mx:deployment:write` and `mx:app:metadata:read`| +| Get App manifest. | `mx:deployment:write` and `mx:app:metadata:read`| | Get Job | `mx:deployment:read` and `mx:deployment:write` | #### 2.1.3 Using the PAT diff --git a/content/en/docs/apidocs-mxsdk/mxsdk/sdk-howtos/using-platform-sdk.md b/content/en/docs/apidocs-mxsdk/mxsdk/sdk-howtos/using-platform-sdk.md index 20bb7a93576..dc3f1920657 100644 --- a/content/en/docs/apidocs-mxsdk/mxsdk/sdk-howtos/using-platform-sdk.md +++ b/content/en/docs/apidocs-mxsdk/mxsdk/sdk-howtos/using-platform-sdk.md @@ -96,6 +96,7 @@ const workingCopy = await app.createTemporaryWorkingCopy("main"); ``` You can pass the following options to `createTemporaryWorkingCopy`: + | Name | Description | |--- | --- | | `commitId` | The ID of the commit on which the working copy should be based. If not passed, the working copy is created from the last commit in the specified branch. | diff --git a/content/en/docs/appstore/overview/component-details.md b/content/en/docs/appstore/overview/component-details.md index 8ae4b858b56..cabe4ba1cc0 100644 --- a/content/en/docs/appstore/overview/component-details.md +++ b/content/en/docs/appstore/overview/component-details.md @@ -17,22 +17,22 @@ Clicking the tile of a [Marketplace](https://marketplace.mendix.com/) component The header for a component presents the following details: * Labels (if there is any) - * **Partner**: If the header contains this label, it means that the component is partner-supported. - * These components can have a **Contact Us** button for setting up your subscription with the partner. - * If you already have an active subscription or trial, click **View status** to go to the [Company Subscriptions](/appstore/overview/#company-subscriptions) page. - * **Mendix**: If the header contains this label, it means that the component is platform-supported. - * **Siemens**: If the header contains this label, it means that the component is Siemens-supported. - * **Recommended**: If the header contains this label, it means that the component meets your company's policies and guidelines, and therefore is recommended by your Mendix Admins. + * **Partner**: If the header contains this label, it means that the component is partner-supported. + * These components can have a **Contact Us** button for setting up your subscription with the partner. + * If you already have an active subscription or trial, click **View status** to go to the [Company Subscriptions](/appstore/overview/#company-subscriptions) page. + * **Mendix**: If the header contains this label, it means that the component is platform-supported. + * **Siemens**: If the header contains this label, it means that the component is Siemens-supported. + * **Recommended**: If the header contains this label, it means that the component meets your company's policies and guidelines, and therefore is recommended by your Mendix Admins. * The name of the component * The review average (in stars) and the number of reviews * The number of times the component has been downloaded * **Save** – Click this to add the component to your [Saved Content](/appstore/overview/#personal) list. * Depending on the content type: - * **Use in Studio Pro** for modules and widgets – Click this to copy the content ID so that you can [search for and use the component in Studio Pro](/appstore/use-content/#current-sp). - * **Start with Template** for starter templates – Click this to use the template. - * **Download** for other content types – Click this to download the component. - * **Contact Us** – Click this to contact Mendix or the community supplier. + * **Use in Studio Pro** for modules and widgets – Click this to copy the content ID so that you can [search for and use the component in Studio Pro](/appstore/use-content/#current-sp). + * **Start with Template** for starter templates – Click this to use the template. + * **Download** for other content types – Click this to download the component. + * **Contact Us** – Click this to contact Mendix or the community supplier. The **Usage** section presents the following information (depending on the type of component): @@ -54,14 +54,13 @@ The component details page also presents the following tabs: * **Documentation** – This tab includes details on typical use cases, features and limitations, dependencies, installation and configuration, frequently asked questions, and screenshots. * [Platform-supported components](/appstore/marketplace-content-support/#category) are documented according to content type or category in the [Marketplace Guide](/appstore/). * **Releases** – This tab lists all the versions of the component along with details like the **Framework version** and the **UUID**. - * Each version can be downloaded by clicking **Download.** - * If any version has the label **React-Ready** next to it, it means this version is optimized for React Client applications. + * Each version can be downloaded by clicking **Download.** + * If any version has the label **React-Ready** next to it, it means this version is optimized for React Client applications. * **Reviews** – This tab shows user reviews of the component. - * You can browse, sort by review date, and filter by ratings for insights on the component. - * You can select the **Only show my reviews** checkbox to check your own reviews. - * You can click **Write Review** to open a section where you can add text, rate the component, and submit the review. - * Before you write a review, you can first read the **Tips for Sharing Your Review**, which appears on the right. You can now rate a component four or five stars without leaving a review. For three-, two-, and one-star ratings, a review is mandatory. - * You can find all your reviews on your [My Reviews](/appstore/overview/#my-reviews) page in the Marketplace home page. - * If you are a developer of the component, you can **Reply** to a review. + * You can browse, sort by review date, and filter by ratings for insights on the component. + * You can select the **Only show my reviews** checkbox to check your own reviews. + * You can click **Write Review** to open a section where you can add text, rate the component, and submit the review. + * Before you write a review, you can first read the **Tips for Sharing Your Review**, which appears on the right. You can now rate a component four or five stars without leaving a review. For three-, two-, and one-star ratings, a review is mandatory. + * You can find all your reviews on your [My Reviews](/appstore/overview/#my-reviews) page in the Marketplace home page. + * If you are a developer of the component, you can **Reply** to a review. * **Developers** – This tab shows the names of the developers who most recently updated the component, with links to their [Mendix Profile](/community-tools/mendix-profile/). - diff --git a/content/en/docs/appstore/use-content/marketplace-content-support.md b/content/en/docs/appstore/use-content/marketplace-content-support.md index 17cdd70df33..0892549f4b7 100644 --- a/content/en/docs/appstore/use-content/marketplace-content-support.md +++ b/content/en/docs/appstore/use-content/marketplace-content-support.md @@ -94,4 +94,3 @@ Partner-supported content is created and maintained by partners as part of the [ | ---------------- | -------------------------------- | ------------------------------------------------------------ | ------------------------------------------------------------ | | **Siemens** | N/A | Siemens supports. | Content in this category is provided and supported by the Siemens team. Siemens supports this content as-is when you are equipped with an SLA with Siemens. | | **Community** | Mendix community supports | Options: No support from partner, or Mendix community supports | Content is provided as-is by members of the Mendix community, and support depends on the availability and effort of the owner. | - diff --git a/content/en/docs/appstore/use-content/modules/aws/amazon-bedrock.md b/content/en/docs/appstore/use-content/modules/aws/amazon-bedrock.md index dec12f8db0a..22e58d09861 100644 --- a/content/en/docs/appstore/use-content/modules/aws/amazon-bedrock.md +++ b/content/en/docs/appstore/use-content/modules/aws/amazon-bedrock.md @@ -253,7 +253,6 @@ This entity inherits from the GenAICommons.Response entity. An object of this ty | --- | --- | | `LatencyMs` | The LatencyMs attribute describes the latency of the API call in milliseconds. | - ##### 4.1.1.9 RequestedResponseField {#requested-response-field} This entity holds information about additional model-specific response fields. If valid additional response fields were requested during the request a list of this entity will be returned as part of the response. @@ -1103,7 +1102,6 @@ This operation corresponds to the **AmazonBedrockConnection_Create** microflow. | `ENUM_Region (enumeration)`, `UseStaticCredentials (Boolean)`, `ModelId (string)` | `AmazonBedrockConnection (object)`| - ##### 4.2.2.2 Request: Add Knowledge Base Tool to Collection {#add-knowledge-base-tool} Use this microflow to add a new [KnowledgeBaseTool](#knowledge-base-tool) object to your request. This is useful for adding additional parameters when using the [Retrieve And Generate](#retrieve-and-generate) operation. @@ -1278,7 +1276,6 @@ The input and output for this service are shown in the table below: | --- | --- | | `ENUM_Region (enumeration)`, `Credentials (object)`, `ListKnowledgeBasesRequest (object)` | `ListKnowledgeBasesResponse (object)` | - ##### 4.2.3.5 StartIngestionJob {#start-ingestion-job} The `StartIngestionJob` activity allows you to begin an ingestion job, in which the contents of the data source S3 bucket is preprocessed and synced with the vector database of the knowledge base. It requires `ENUM_Region`, `Credentials` and `StartIngestionJobRequest` as input parameters. diff --git a/content/en/docs/appstore/use-content/modules/aws/aws-dynamodb.md b/content/en/docs/appstore/use-content/modules/aws/aws-dynamodb.md index 5d7ff183bfd..ac27e151847 100644 --- a/content/en/docs/appstore/use-content/modules/aws/aws-dynamodb.md +++ b/content/en/docs/appstore/use-content/modules/aws/aws-dynamodb.md @@ -507,6 +507,7 @@ An enumeration is a predefined list of values that can be used as an attribute t #### 4.2.5 `ENUM_ComparisonOperator` For more information on using comparison operators, please visit [Amazon DynamoDB docs](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_Condition.html). + | Name | Caption | Description | | --- | --- | --- | |`BEGINS_WITH` | **BEGINS_WITH** | The enumeration element that evaluates items for a prefix | diff --git a/content/en/docs/appstore/use-content/modules/aws/aws-s3-connector.md b/content/en/docs/appstore/use-content/modules/aws/aws-s3-connector.md index 3ced16db34d..a7dbf713e54 100644 --- a/content/en/docs/appstore/use-content/modules/aws/aws-s3-connector.md +++ b/content/en/docs/appstore/use-content/modules/aws/aws-s3-connector.md @@ -225,7 +225,7 @@ This entity is the generalization of all request entities of the S3 Connector. I | --- | --- | | `PathStyleAccessEnabled` | The PathStyleAccessEnabled attribute specifies whether the S3 resources are accessed using the path-style hosting or its default virtual hosting. | -[Read more about these hosting styles | AWS Documentation ](https://docs.aws.amazon.com/AmazonS3/latest/userguide/VirtualHosting.html) +[Read more about these hosting styles | AWS Documentation](https://docs.aws.amazon.com/AmazonS3/latest/userguide/VirtualHosting.html) #### 4.1.19 AbstractPresignConfig {#abstractpresignconfig} @@ -367,6 +367,7 @@ It returns the presigned url as a String. The input and output for this service | --- | --- | | `AbstractS3Request`, `AWS_Region`, `Credentials` | `String` | ======= + #### 4.3.11 HeadBucket {#headbucket} The `HeadBucket` operation allows you to retrieve the `AWS_Region` where a bucket is located, check if the bucket exists, and verify if you have access to the bucket. Furthermore it determines if the bucket name used in the request is an access point alias. It requires a valid `AWS_Region` parameter, `Credentials`, and a `HeadBucketRequest` object, and it returns a `HeadBucketResponse` object. The input and output for this service are shown in the table below: @@ -374,4 +375,3 @@ The `HeadBucket` operation allows you to retrieve the `AWS_Region` where a bucke | Input | Output | | --- | --- | | `HeadBucketRequest`, `AWS_Region`, `Credentials` | `HeadBucketResponse` | - diff --git a/content/en/docs/appstore/use-content/modules/aws/aws-sqs.md b/content/en/docs/appstore/use-content/modules/aws/aws-sqs.md index 634487a15fd..6d7ccc1aa99 100644 --- a/content/en/docs/appstore/use-content/modules/aws/aws-sqs.md +++ b/content/en/docs/appstore/use-content/modules/aws/aws-sqs.md @@ -196,6 +196,7 @@ This is the response entity of the `GetQueueAttributes` action. #### 4.1.20 GetQueueAttributesQueueUsage {#getqueueattributesqueueusage} This is a specialization of the `AbstractQueueAttributesUsage` entity. + | Attribute | Description | | --- | --- | |`ApproximateNumberOfMessages`| Approximate number of messages available for retrieval from the queue.| diff --git a/content/en/docs/appstore/use-content/modules/genai/_index.md b/content/en/docs/appstore/use-content/modules/genai/_index.md index 70262e0c1ee..21ce0ca9a4d 100644 --- a/content/en/docs/appstore/use-content/modules/genai/_index.md +++ b/content/en/docs/appstore/use-content/modules/genai/_index.md @@ -69,7 +69,6 @@ Mendix connectors offer direct support for the following models: | | Mistral Large | Chat Completions | text | text | Function calling | | | | Mistral Small | Chat Completions | text | text | Function calling | | - For more details on limitations and supported model capabilities for the Bedrock Converse API used in the ChatCompletions operations, see [Supported models and model features](https://docs.aws.amazon.com/bedrock/latest/userguide/conversation-inference.html#conversation-inference-supported-models-features) in the AWS documentation. The available showcase applications offer implementation inspiration for many of the listed models. diff --git a/content/en/docs/appstore/use-content/modules/mendix-feedback.md b/content/en/docs/appstore/use-content/modules/mendix-feedback.md index de26d02f70a..58bd9610767 100644 --- a/content/en/docs/appstore/use-content/modules/mendix-feedback.md +++ b/content/en/docs/appstore/use-content/modules/mendix-feedback.md @@ -95,7 +95,7 @@ To configure the Feedback widget, double-click it to open the **Edit Feedback** * **Configuration** tab * **Feedback button action** –This controls what happens once you click the **Feedback** button. By default, it opens the **Share Feedback** page. If you select **Custom**, you can select a different **On click** action. - * **Project Settings** – This is the unique identifier of your app. You can find it in your app’s [General Settings](/developerportal/collaborate/general-settings/) in Apps. + * **Project Settings** – This is the unique identifier of your app. You can find it in your app’s [General Settings](/developerportal/collaborate/general-settings/) in Apps. {{% alert color="info" %}}The original value of **App ID** is *1*, but this value should automatically change to your correct app ID. If it does not change automatically, see [Updating App ID](#update-app-id) below. {{% /alert %}} diff --git a/content/en/docs/appstore/use-content/modules/teamcenter-extension.md b/content/en/docs/appstore/use-content/modules/teamcenter-extension.md index 6e723501f8d..c900b34ba07 100644 --- a/content/en/docs/appstore/use-content/modules/teamcenter-extension.md +++ b/content/en/docs/appstore/use-content/modules/teamcenter-extension.md @@ -146,12 +146,14 @@ On the **History** tab, you can view details of each action, such as entities an * **Edit** – This allows you to modify an existing action and updating existing domain model and microflows. When you click **Edit**, it takes you to the import mapping page, where you can add or edit entities, attributes, and associations, subsequently updating the domain model and microflows. It is not recommended to make specific adjustments to artifacts generated by Teamcenter Extension outside of Teamcenter Extension. Doing so may result in breaking the integration. Instead, you should make adjustments inside Teamcenter Extension using the **Delete**, **Duplicate** or **Edit** operations, wherever possible. Examples of adjustments that are not advisable outside Teamcenter Extension are as follows: + * Modifying the **CreateInput** and **CompoundCreateInput** entities generated from The **Create Item** action * Modifying any entity generated from the **Revise Item Revision** action * Deleting attributes or associations generated by Teamcenter Extension * Deleting or editing microflows generated by Teamcenter Extension However, you can make the following adjustments outside Teamcenter Extension: + * Adding attributes or associations * Moving microflows * Renaming microflows @@ -237,7 +239,6 @@ If you use Teamcenter Extension V 1.0.0 with Teamcenter Connector V 3.6.1 or bel * [Solution 2](#solution-2) – Using Solution 2 has an advantage: after completing the procedure, the integrations will appear on the **History** tab. - ### 4.1 Resolving the Errors – Solution 1 {#solution-1} Follow the instructions in the table below: diff --git a/content/en/docs/appstore/use-content/partner-solutions/qsm/_index.md b/content/en/docs/appstore/use-content/partner-solutions/qsm/_index.md index f0e11340c1a..2bf2078a9a3 100644 --- a/content/en/docs/appstore/use-content/partner-solutions/qsm/_index.md +++ b/content/en/docs/appstore/use-content/partner-solutions/qsm/_index.md @@ -56,7 +56,6 @@ To obtain or renew your purchased license, go to [this form](https://addon.mendi * By default, the Mendix QSM reports are based on the main line in your app's Team Server. * We are building CI support for Mendix that will allow you to run QSM in your Mendix CI pipeline (for more information, see [SigridCI](https://github.com/Software-Improvement-Group/sigridci)). - ## 7 Release Notes {{% alert color="info" %}} diff --git a/content/en/docs/control-center/apps.md b/content/en/docs/control-center/apps.md index 387c09a1efa..bef44e39dbf 100644 --- a/content/en/docs/control-center/apps.md +++ b/content/en/docs/control-center/apps.md @@ -127,7 +127,7 @@ The description of the items that you can select are as follows: * **NamespaceID**: the ID of the namespace -* **Namespace**: the Kubernetes namespace +* **Namespace**: the Kubernetes namespace {{% alert color="info" %}}For more information, see [How to Create a Cluster and Namespace](/developerportal/deploy/private-cloud-cluster/#3-creating-a-cluster-and-namespace) in *Creating a Private Cloud Cluster*.{{% /alert %}} diff --git a/content/en/docs/control-center/deployed-apps.md b/content/en/docs/control-center/deployed-apps.md index 981af4d5cfe..69fa1e42e14 100644 --- a/content/en/docs/control-center/deployed-apps.md +++ b/content/en/docs/control-center/deployed-apps.md @@ -103,17 +103,17 @@ License keys here are aligned with your contracts with Mendix and need to be ap On the **Apps with License Keys** tab, you can do the following: -- View your apps with issued license keys. -- See active license keys for all environments of an app. -- Delete license keys for environments that are no longer in use. -- Resend licenses to the Technical Contacts of your on-premises deployed apps or download all licenses to your local device. -- Quickly change Technical Contacts for these apps and resend keys as needed. +* View your apps with issued license keys. +* See active license keys for all environments of an app. +* Delete license keys for environments that are no longer in use. +* Resend licenses to the Technical Contacts of your on-premises deployed apps or download all licenses to your local device. +* Quickly change Technical Contacts for these apps and resend keys as needed. You can download all the license keys by clicking {{% icon name="download-bottom" %}} **Download all keys** on the right side above the list. The list shows the following information: -* **App Name** – This is the name of the app. To view [app environment details](#apps-license-keys-app-environment), click the app name. +* **App Name** – This is the name of the app. To view [app environment details](#apps-license-keys-app-environment), click the app name. {{% alert color="info" %}}The app name shown here is the name that was initially given to the app when the license keys were generated. Your current app name may be different.{{% /alert %}} @@ -122,8 +122,8 @@ The list shows the following information: * **Created Date** – This is the date on which the app was originally created. * **Actions** – You can carry out actions with the following icons: - * {{% icon name="email" %}} – Clicking this emails the license keys of the app to the registered Technical Contact. - * {{% icon name="download-bottom" %}} – Clicking this downloads the license keys to your local computer. The license keys can then be applied to the app for which they were created. + * {{% icon name="email" %}} – Clicking this emails the license keys of the app to the registered Technical Contact. + * {{% icon name="download-bottom" %}} – Clicking this downloads the license keys to your local computer. The license keys can then be applied to the app for which they were created. ### 4.1 App Environment Details {#apps-license-keys-app-environment} @@ -135,7 +135,7 @@ To quickly change the Technical Contact for your app, click the edit icon ({{% i On the right side above the list, you can see the following buttons: -* {{% icon name="email" %}} **Email Keys** – Clicking this emails the license keys of the app to the registered Technical Contact. +* {{% icon name="email" %}} **Email Keys** – Clicking this emails the license keys of the app to the registered Technical Contact. * {{% icon name="download-bottom" %}} **Download Keys** – Clicking this downloads the license keys to your local computer. The license keys can then be applied to the app for which they were created. @@ -146,7 +146,7 @@ The list below show the details of the environments with the following columns: * **LicenseID** – This shows the ID of the license that was emailed to the Technical Contact when the license keys were generated. This unique identifier allows you to reference and manage your licenses, ensuring they align with the licenses in your various environments. * **Start Date** and **End Date** – Your license keys are valid between these two dates. An app needs an active contract with a future end date to keep working. * **Actions** – You can carry out an action with the following icon: - * {{% icon name="trash-can" %}} – Clicking this offboards that license from the database. Before the action is completed, a dialog box opens to ask for your confirmation. When the last license of an app is offboarded, the app is automatically offboarded and will no longer show up on the **Apps with Licensed Keys** tab. + * {{% icon name="trash-can" %}} – Clicking this offboards that license from the database. Before the action is completed, a dialog box opens to ask for your confirmation. When the last license of an app is offboarded, the app is automatically offboarded and will no longer show up on the **Apps with Licensed Keys** tab. ### 4.2 Frequent Asked Questions {#license-keys-faq} diff --git a/content/en/docs/deployment/mendix-cloud-deploy/monitoring-with-apm/dynatrace-metrics.md b/content/en/docs/deployment/mendix-cloud-deploy/monitoring-with-apm/dynatrace-metrics.md index 4e91c14bdaf..0446a922535 100644 --- a/content/en/docs/deployment/mendix-cloud-deploy/monitoring-with-apm/dynatrace-metrics.md +++ b/content/en/docs/deployment/mendix-cloud-deploy/monitoring-with-apm/dynatrace-metrics.md @@ -33,6 +33,7 @@ To start sending your Mendix app's metrics to Dynatrace, you need to set some en 1. Click **Details** on the environment you wish to monitor with Dynatrace. 1. Switch to the [**Runtime** tab](/developerportal/deploy/environments-details/#runtime-tab). 1. Add the following **Custom Environment Variables**. + | Variable | Required? | Description | Details | | --- | --- | --- | --- | | `DT_SAAS_URL` | Yes | The URL of Dynatrace environment | The format when using the Dynatrace SaaS environment is similar to `https://.live.dynatrace.com`. If you are using a Dynatrace managed environment, just provide the full URL of the Dynatrace domain, like `https://`. | diff --git a/content/en/docs/deployment/mendix-cloud-deploy/monitoring-with-apm/newrelic-metrics.md b/content/en/docs/deployment/mendix-cloud-deploy/monitoring-with-apm/newrelic-metrics.md index 57bac82cecd..624f53d3b78 100644 --- a/content/en/docs/deployment/mendix-cloud-deploy/monitoring-with-apm/newrelic-metrics.md +++ b/content/en/docs/deployment/mendix-cloud-deploy/monitoring-with-apm/newrelic-metrics.md @@ -42,6 +42,7 @@ To send your runtime information to New Relic, you must provide the New Relic AP 1. Click **Details** on the environment you wish to monitor with New Relic. 1. Switch to the **Runtime** tab. 1. Add the following **Custom Environment Variables**: + | Variable | Description | | --- | --- | | `NEW_RELIC_LICENSE_KEY` | License key or API key from New Relic. Obtained in the [New Relic API Key](#newrelic-api-key) section. diff --git a/content/en/docs/deployment/mendix-cloud-deploy/monitoring-with-apm/splunk-metrics.md b/content/en/docs/deployment/mendix-cloud-deploy/monitoring-with-apm/splunk-metrics.md index e768a82d69e..8b4345bab79 100644 --- a/content/en/docs/deployment/mendix-cloud-deploy/monitoring-with-apm/splunk-metrics.md +++ b/content/en/docs/deployment/mendix-cloud-deploy/monitoring-with-apm/splunk-metrics.md @@ -35,6 +35,7 @@ To send your runtime information to Splunk Cloud Platform, you need to set it up 1. Click **Details** on the environment you wish to monitor with Splunk Cloud Platform. 1. Switch to the [**Runtime** tab](/developerportal/deploy/environments-details/#runtime-tab). 1. Add the following **Custom Environment Variables**. + | Variable | Description | Default | | --- | --- | --- | | `SPLUNK_HOST` | The hostname or the IP address of the Splunk Cloud Platform Controller without the scheme (protocol). An example is `test.splunkcloud.com`. | | diff --git a/content/en/docs/deployment/private-cloud/private-cloud-cluster/private-cloud-global-operator.md b/content/en/docs/deployment/private-cloud/private-cloud-cluster/private-cloud-global-operator.md index 7928cb16718..c2e168c425e 100644 --- a/content/en/docs/deployment/private-cloud/private-cloud-cluster/private-cloud-global-operator.md +++ b/content/en/docs/deployment/private-cloud/private-cloud-cluster/private-cloud-global-operator.md @@ -144,7 +144,6 @@ You can convert a namespace which currently uses the standard operator to be a G Once all the standard namespaces within a cluster created on portal side are converted to Global Operator Managed namespace, then the status of the cluster would be changed to **Conversion Finalized**, otherwise it will show **Conversion in Progress** if not all the namespaces within that cluster are converted. {{% /alert %}} - ## 4 Licensing ### 4.1 Installing Private Cloud License Manager diff --git a/content/en/docs/deployment/sap-btp/_index.md b/content/en/docs/deployment/sap-btp/_index.md index 17263547fec..e3cf7c14c12 100644 --- a/content/en/docs/deployment/sap-btp/_index.md +++ b/content/en/docs/deployment/sap-btp/_index.md @@ -682,6 +682,7 @@ If your SAP HANA database has performance issues, you may be able to improve per {{< figure src="/attachments/deployment/sap-cloud-platform/binding-credentials.png" class="no-border" >}} 2. Go to the [Runtime tab](#runtime-tab) of your app environment 3. Enter the following unsupported environment variables with the associated values, using the values taken from the service binding credentials: + | Variable | Value | | --- | --- | | MXRUNTIME_DatabaseHost | {host} | @@ -690,6 +691,7 @@ If your SAP HANA database has performance issues, you may be able to improve per | MXRUNTIME_DatabasePassword | {password} | | MXRUNTIME_DatabaseUserName | {user} | | MXRUNTIME_DatabaseType | `SAPHANA` | + 4. Go to the [General tab](#general-tab) and restart your app to apply the changes. The additional parameters that you added to the url in the `MXRUNTIME_DatabaseJdbcUrl` will set the following tuning parameters: diff --git a/content/en/docs/developerportal/_index.md b/content/en/docs/developerportal/_index.md index c9b80a45ac3..f1c27abf3bc 100644 --- a/content/en/docs/developerportal/_index.md +++ b/content/en/docs/developerportal/_index.md @@ -26,11 +26,11 @@ The Mendix Portal is the online platform of Mendix. It includes Apps, [Control C To create a new app and start collaborating, you can perform the following procedure. -1. In Apps, click **Create App** in the upper-right corner. A screen opens to guide you through the process. +1. In Apps, click **Create App** in the upper-right corner. A screen opens to guide you through the process. {{< figure src="/attachments/developerportal/create-app-step-1.png" alt="Create App Step One" >}} -2. Enter the following information for your app: +2. Enter the following information for your app: * **App name** – Every app must have a name. @@ -40,8 +40,7 @@ To create a new app and start collaborating, you can perform the following proce * **App icon** – Mendix has generated an icon for your app. You can change the color of the icon if you like. You can upload a custom icon in the [App Settings](/developerportal/collaborate/general-settings/#general) page after you created the app. - -3. Click **Next** in the lower-right corner to go to step 2. +3. Click **Next** in the lower-right corner to go to step 2. {{< figure src="/attachments/developerportal/create-app-step-2.png" alt="Create App Step Two" >}} diff --git a/content/en/docs/developerportal/general/settings/manage-deeplinks.md b/content/en/docs/developerportal/general/settings/manage-deeplinks.md index dee48390d2e..1543ae3e727 100644 --- a/content/en/docs/developerportal/general/settings/manage-deeplinks.md +++ b/content/en/docs/developerportal/general/settings/manage-deeplinks.md @@ -19,7 +19,7 @@ This how-to teaches you how to find the app ID and environment ID, and create de To get the app ID, do as follows: 1. In [Apps](https://sprintr.home.mendix.com/), open the app. -2. On the navigation pane, go to **Settings**. You can find the app ID on the **General** tab. +2. On the navigation pane, go to **Settings**. You can find the app ID on the **General** tab. {{< figure src="/attachments/developerportal/general/settings/manage-deeplinks/app-id.png" width="500px" alt="App ID on the Settings page" class="no-border" >}} @@ -29,7 +29,6 @@ To get the environment ID, do as follows: 2. On the navigation pane, go to **Environments**, and then click **Details** ({{% icon name="notes-paper-edit" %}}) by the environment you want to view. You can find the environment ID on the **General** tab. - ## 3 Creating a Deep Link in Apps If you want to provide links directly to a specific element in your app in [Apps](https://sprintr.home.mendix.com/), use the following links, with the specific app ID or environment ID added, as instructed: @@ -44,7 +43,7 @@ If you want to provide links directly to a specific element in your app in [Apps * App team: `https://sprintr.home.mendix.com/link/team/` -* Feedback for app: `https://appinsights.mendix.com/link/feedback/` +* Feedback for app: `https://appinsights.mendix.com/link/feedback/` {{% alert color="info" %}}To get the link to a specific feedback item, [open the feedback item](/developerportal/app-insights/feedback/#feedback-details) in Feedback, and click the **Copy Link** icon ({{% icon name="hyperlink" %}}).{{% /alert %}} diff --git a/content/en/docs/refguide/installation/system-requirements.md b/content/en/docs/refguide/installation/system-requirements.md index 996fc0e2985..3596497dcf4 100644 --- a/content/en/docs/refguide/installation/system-requirements.md +++ b/content/en/docs/refguide/installation/system-requirements.md @@ -55,9 +55,11 @@ The following frameworks are required. They will be installed automatically by t When you are running Studio Pro on a Parallels virtual machine on an ARM64 device (for example, an M1 Mac), you need the following dependencies in addition to the x64 version listed above: * .NET Desktop Runtime (arm64) + | Studio Pro 10.0.0 - 10.10.0 | Studio Pro 10.11.0 and above | | --- | --- | | .NET 6 Desktop Runtime | .NET 8 Desktop Runtime | + * Microsoft Edge WebView2 Evergreen Runtime (arm64) {{% alert color="info" %}} diff --git a/content/en/docs/refguide/mobile/distributing-mobile-apps/use-min-older-sp.md b/content/en/docs/refguide/mobile/distributing-mobile-apps/use-min-older-sp.md index 1fc30d57762..039f1f17486 100644 --- a/content/en/docs/refguide/mobile/distributing-mobile-apps/use-min-older-sp.md +++ b/content/en/docs/refguide/mobile/distributing-mobile-apps/use-min-older-sp.md @@ -47,7 +47,9 @@ Make It Native, just like any other native apps, relies on third party dependenc ```bash npm install ``` + 1. Install pods (only for iOS): + ```bash cd ios && pod install && cd .. ``` diff --git a/content/en/docs/refguide/mobile/getting-started-with-mobile/_index.md b/content/en/docs/refguide/mobile/getting-started-with-mobile/_index.md index a10b45bbd10..e1231d88674 100644 --- a/content/en/docs/refguide/mobile/getting-started-with-mobile/_index.md +++ b/content/en/docs/refguide/mobile/getting-started-with-mobile/_index.md @@ -54,7 +54,6 @@ At this point you have a running native mobile app. To view your app on a mobile Depending on the Mendix version your app is developed in and the device you want to run on, you need a different Make It Native app. For more information on how to download the correct version, see the [Getting the Make It Native App](/refguide/mobile/getting-started-with-mobile/prerequisites/#get-min-app) section in *Native App Prerequisites and Troubleshooting*. - ### 3.3 Viewing Your App on Your Testing Device Viewing your app on a mobile device will allow you to test native features and other aspects of your app. This section is written for mobile devices, but you may use an Android emulator mentioned in the [Prerequisites](#prerequisites) section above. To view your app, follow these steps: diff --git a/content/en/docs/refguide/mobile/using-mobile-capabilities/push-notifications/notif-implement-native.md b/content/en/docs/refguide/mobile/using-mobile-capabilities/push-notifications/notif-implement-native.md index 1158de87f38..8a21b54404d 100644 --- a/content/en/docs/refguide/mobile/using-mobile-capabilities/push-notifications/notif-implement-native.md +++ b/content/en/docs/refguide/mobile/using-mobile-capabilities/push-notifications/notif-implement-native.md @@ -73,6 +73,7 @@ Now that you have everything set up, it is time to deploy your native app: | -------- | -------- | ------- | | **google-services.json** | Google Firebase | Firebase configuration and private key, bundled as part of your Android application. | | **GoogleServices-Info.plist** | Google Firebase | Firebase configuration and private key, bundled as part of your iOS application. | + 1. Save the configuration. Now you are ready to build. When building for local development, keep in mind that Mendix's Make It Native app does not support push notifications. In order to use and test push notifications, you will have to build your own native app as described above and distribute it to an emulator (Android only) or test device. diff --git a/content/en/docs/refguide/mobile/using-mobile-capabilities/push-notifications/notif-implement-pwa.md b/content/en/docs/refguide/mobile/using-mobile-capabilities/push-notifications/notif-implement-pwa.md index 541a21175b7..61c337f47e9 100644 --- a/content/en/docs/refguide/mobile/using-mobile-capabilities/push-notifications/notif-implement-pwa.md +++ b/content/en/docs/refguide/mobile/using-mobile-capabilities/push-notifications/notif-implement-pwa.md @@ -16,7 +16,7 @@ Push notifications in progressive web apps require Firebase to be set up as earl 1. Create a custom `index.html` in your `theme\web` folder by following [this guide](/howto/front-end/customize-styling-new/#custom-web). 1. Edit the created `index.html` file in your favorite text editor. -1. Add below text before the line `` (replace `firebaseConfig` with your configuration from step 3): +1. Add below text before the line `` (replace `firebaseConfig` with your configuration from step 3): ```html diff --git a/content/en/docs/refguide/modeling/application-logic/microflows-and-nanoflows/activities/list-activities/working-with-lists-in-a-microflow.md b/content/en/docs/refguide/modeling/application-logic/microflows-and-nanoflows/activities/list-activities/working-with-lists-in-a-microflow.md index 2a3234eda37..1621b6a7b3e 100644 --- a/content/en/docs/refguide/modeling/application-logic/microflows-and-nanoflows/activities/list-activities/working-with-lists-in-a-microflow.md +++ b/content/en/docs/refguide/modeling/application-logic/microflows-and-nanoflows/activities/list-activities/working-with-lists-in-a-microflow.md @@ -21,6 +21,7 @@ Before you continue, you should first set up a test app, and populate it with te 1. Create a [domain model](/refguide/configuring-a-domain-model/) with the following entities: * **Customer** + | Attribute name | Attribute type | | --- | --- | | *CustomerID* | String | @@ -28,7 +29,9 @@ Before you continue, you should first set up a test app, and populate it with te | *Address* | String | | *ZipCode* | String | | *City* | String | + * **Order** + | Attribute name | Attribute type | | --- | --- | | *Number* | Integer | @@ -43,6 +46,7 @@ Before you continue, you should first set up a test app, and populate it with te 2. Create [overview and detail pages](/howto/front-end/create-your-first-two-overview-and-detail-pages/) to manage the **Customer** and **Order** objects. 3. Create [menu items](/refguide/setting-up-the-navigation-structure/#menu-items) to access the **Customer** and **Order** overview pages. 4. Add the following **Customer** data to your app: + | Name | Address | Zip code | City | | --- | --- | --- | --- | | Olav | Gedempte Zalmhaven 34 | 3050 TE | Rotterdam | @@ -51,6 +55,7 @@ Before you continue, you should first set up a test app, and populate it with te | Harry | Emmerreklaan 25 | 1458 PE | Utrecht | 5. Add the following **Order** data to your app: + | Number | Customer | Date | Total price | Order status | | --- | --- | --- | --- | --- | | 1 | Harry | 1/28/2022 | 345.00 | Open | diff --git a/content/en/docs/refguide/runtime/mendix-client/_index.md b/content/en/docs/refguide/runtime/mendix-client/_index.md index 05e31949443..3d70a9b3d8f 100644 --- a/content/en/docs/refguide/runtime/mendix-client/_index.md +++ b/content/en/docs/refguide/runtime/mendix-client/_index.md @@ -250,6 +250,7 @@ When the app is deployed, the static resources are placed in a separate structur #### 4.1.3 Cookies{#cookies} When the Mendix client is running, it sets a number of technical cookies to record information about the session. These can include: + | Name | Source | Purpose | Path | Duration | HttpOnly | | --- | --- | --- | --- | --- | --- | | **mx-cookie-test** | Client | Tests whether the browser supports cookies | `/` | deleted immediately after setting it | `false` | diff --git a/content/en/docs/refguide8/modeling/integration/mapping-documents/select--elements.md b/content/en/docs/refguide8/modeling/integration/mapping-documents/select--elements.md index 1386a069893..cf7a921044f 100644 --- a/content/en/docs/refguide8/modeling/integration/mapping-documents/select--elements.md +++ b/content/en/docs/refguide8/modeling/integration/mapping-documents/select--elements.md @@ -50,6 +50,7 @@ You may encounter element selection checkboxes that are greyed out. If you hover ## 3 Convenience functions {{% alert color="info" %}} + | Function | Description | | --- | --- | | Filter | Expand and filter the tree nodes based on whether the name contains the filter text. Because the filtering behavior relies on the 'Expand All' behavior, in very big schemas all elements matching the filter are not guaranteed to be found. | diff --git a/content/en/docs/refguide9/mobile/using-mobile-capabilities/push-notifications/notif-config-push.md b/content/en/docs/refguide9/mobile/using-mobile-capabilities/push-notifications/notif-config-push.md index 15fa9284b92..4e044f73919 100644 --- a/content/en/docs/refguide9/mobile/using-mobile-capabilities/push-notifications/notif-config-push.md +++ b/content/en/docs/refguide9/mobile/using-mobile-capabilities/push-notifications/notif-config-push.md @@ -30,4 +30,4 @@ When selecting a platform to support, the wizard will ask for the Google Firebas | -------- | -------- | ------- | | **{project_id}-firebase-adminsdk-{identifier}.json** | Google Firebase | Private key for the Firebase service account, used in runtime configuration. | -Now you completed the initial setup wizard, you can move on the next section to set up push notifications in your native mobile app or to part 6 do so in a progressive web app. \ No newline at end of file +Now you completed the initial setup wizard, you can move on the next section to set up push notifications in your native mobile app or to part 6 do so in a progressive web app. diff --git a/content/en/docs/refguide9/mobile/using-mobile-capabilities/push-notifications/notif-implement-native.md b/content/en/docs/refguide9/mobile/using-mobile-capabilities/push-notifications/notif-implement-native.md index d537abd089a..d2a65f0c1b8 100644 --- a/content/en/docs/refguide9/mobile/using-mobile-capabilities/push-notifications/notif-implement-native.md +++ b/content/en/docs/refguide9/mobile/using-mobile-capabilities/push-notifications/notif-implement-native.md @@ -84,8 +84,9 @@ Now that you have everything set up, it is time to deploy your native app. See [ | -------- | -------- | ------- | | **google-services.json** | Google Firebase | Firebase configuration and private key, bundled as part of your Android application. | | **GoogleServices-Info.plist** | Google Firebase | Firebase configuration and private key, bundled as part of your iOS application. | + 1. Save the configuration. Now you are ready to build. When building for local development, keep in mind that Mendix's Make It Native app does not support push notifications. In order to use and test push notifications, you will have to build your own native app as described above and distribute it to an emulator (Android only) or test device. -Now you are able to build, the next step is to run your app in an emulator or test device. Proceed to [part 7](/refguide/mobile/using-mobile-capabilities/push-notifications/notif-send-test/) to send your first push notifications or continue with the next section to set up push notifications for progressive web apps. \ No newline at end of file +Now you are able to build, the next step is to run your app in an emulator or test device. Proceed to [part 7](/refguide/mobile/using-mobile-capabilities/push-notifications/notif-send-test/) to send your first push notifications or continue with the next section to set up push notifications for progressive web apps. diff --git a/content/en/docs/refguide9/mobile/using-mobile-capabilities/push-notifications/notif-implement-pwa.md b/content/en/docs/refguide9/mobile/using-mobile-capabilities/push-notifications/notif-implement-pwa.md index ffe320cdfa2..8aa53b200ea 100644 --- a/content/en/docs/refguide9/mobile/using-mobile-capabilities/push-notifications/notif-implement-pwa.md +++ b/content/en/docs/refguide9/mobile/using-mobile-capabilities/push-notifications/notif-implement-pwa.md @@ -16,7 +16,7 @@ Push notifications in progressive web apps require Firebase to be set up as earl 1. Create a custom `index.html` in your `theme\web` folder by following [this guide](/howto9/front-end/customize-styling-new/#custom-web). 1. Edit the created `index.html` file in your favorite text editor. -1. Add below text before the line `` (replace `firebaseConfig` with your configuration from step 3): +1. Add below text before the line `` (replace `firebaseConfig` with your configuration from step 3): ```html diff --git a/content/en/docs/refguide9/mobile/using-mobile-capabilities/push-notifications/notif-send-test.md b/content/en/docs/refguide9/mobile/using-mobile-capabilities/push-notifications/notif-send-test.md index 8a7ba3dd9b8..bfb56966040 100644 --- a/content/en/docs/refguide9/mobile/using-mobile-capabilities/push-notifications/notif-send-test.md +++ b/content/en/docs/refguide9/mobile/using-mobile-capabilities/push-notifications/notif-send-test.md @@ -47,4 +47,4 @@ If you did not receive the message, check the application's logs to see if the m | Not receiving push notifications on a PWA | Push notifications on PWAs are only shown when the app is in the background or closed | Close the app and try again | | Registration fails on a PWA on iOS | To receive push notifications on iOS the app must be served over https and added to the home page | Deploy your app and add it to the home page via the Share button in Safari and try again | | Clicking on a push notification does not open the PWA | Push notifications for PWAs require a Web link to be set. | Make sure the Web link is set to a valid path of your application (for example "/") | -| Application no longer starts after changing index.html | Firebase is not found | Ensure that the script tags that load Firebase are placed above the script tag that loads mxui.js | \ No newline at end of file +| Application no longer starts after changing index.html | Firebase is not found | Ensure that the script tags that load Firebase are placed above the script tag that loads mxui.js | diff --git a/content/en/docs/refguide9/modeling/application-logic/microflows-and-nanoflows/activities/list-activities/working-with-lists-in-a-microflow.md b/content/en/docs/refguide9/modeling/application-logic/microflows-and-nanoflows/activities/list-activities/working-with-lists-in-a-microflow.md index ff73c5ee703..098a1f1f0d9 100644 --- a/content/en/docs/refguide9/modeling/application-logic/microflows-and-nanoflows/activities/list-activities/working-with-lists-in-a-microflow.md +++ b/content/en/docs/refguide9/modeling/application-logic/microflows-and-nanoflows/activities/list-activities/working-with-lists-in-a-microflow.md @@ -21,6 +21,7 @@ Before you continue, you should first set up a test app, and populate it with te 1. Create a [domain model](/refguide9/create-a-basic-data-layer/) with the following entities: * **Customer** + | Attribute name | Attribute type | | --- | --- | | *CustomerID* | String | @@ -28,7 +29,9 @@ Before you continue, you should first set up a test app, and populate it with te | *Address* | String | | *ZipCode* | String | | *City* | String | + * **Order** + | Attribute name | Attribute type | | --- | --- | | *Number* | Integer | @@ -43,6 +46,7 @@ Before you continue, you should first set up a test app, and populate it with te 2. Create [overview and detail pages](/howto9/front-end/create-your-first-two-overview-and-detail-pages/) to manage the **Customer** and **Order** objects. 3. Create [menu items](/refguide9/setting-up-the-navigation-structure/#menu-items) to access the **Customer** and **Order** overview pages. 4. Add the following **Customer** data to your app: + | Name | Address | Zip code | City | | --- | --- | --- | --- | | Olav | Gedempte Zalmhaven 34 | 3050 TE | Rotterdam | @@ -51,6 +55,7 @@ Before you continue, you should first set up a test app, and populate it with te | Harry | Emmerreklaan 25 | 1458 PE | Utrecht | 5. Add the following **Order** data to your app: + | Number | Customer | Date | Total price | Order status | | --- | --- | --- | --- | --- | | 1 | Harry | 1/28/2022 | 345.00 | Open | diff --git a/content/en/docs/refguide9/runtime/mendix-client.md b/content/en/docs/refguide9/runtime/mendix-client.md index de4086ad6c1..bb55846631a 100644 --- a/content/en/docs/refguide9/runtime/mendix-client.md +++ b/content/en/docs/refguide9/runtime/mendix-client.md @@ -217,6 +217,7 @@ When the app is deployed, the static resources are placed in a separate structur #### 4.1.3 Cookies{#cookies} When the Mendix client is running, it sets a number of technical cookies to record information about the session. These can include: + | Name | Source | Purpose | Path | Duration | HttpOnly | | --- | --- | --- | --- | --- | --- | | **mx-cookie-test** | Client | Tests whether the browser supports cookies | `/` | deleted immediately after setting it | `false` | diff --git a/content/en/docs/releasenotes/mobile/native-template/nt-studio-pro-9-parent/nt-8-rn.md b/content/en/docs/releasenotes/mobile/native-template/nt-studio-pro-9-parent/nt-8-rn.md index 17e112432f4..188abd5ac67 100644 --- a/content/en/docs/releasenotes/mobile/native-template/nt-studio-pro-9-parent/nt-8-rn.md +++ b/content/en/docs/releasenotes/mobile/native-template/nt-studio-pro-9-parent/nt-8-rn.md @@ -70,7 +70,6 @@ description: "Native Template 8 release notes." * We upgraded the `@mendix/native` dependency to the latest compatible version. - ## 8.1.0 {#806} **Release date: April 04, 2024** @@ -91,7 +90,6 @@ description: "Native Template 8 release notes." * We updated the `@mendix/native` dependency to fix an encryption issue. - ## 8.0.10 {#809} **Release date: June 24, 2024** diff --git a/content/en/docs/releasenotes/studio-pro/10/10.6.md b/content/en/docs/releasenotes/studio-pro/10/10.6.md index 22071bfc17c..15ec3c00aeb 100644 --- a/content/en/docs/releasenotes/studio-pro/10/10.6.md +++ b/content/en/docs/releasenotes/studio-pro/10/10.6.md @@ -118,7 +118,6 @@ required, resulted in an exception when the datasource was not configured. * When editing a page/microflow URL, an invalid, invisible, character is added at the end when saved, thus making it inaccessible in the browser. * Fixed in [10.6.10](/releasenotes/studio-pro/10.6/#fix-corrupt-url) - ## 10.6.8 {#1068} **Release date: April 18, 2024**