Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
ccbea56
chore(deps): bump fast-uri from 3.1.0 to 3.1.2 (#2541)
dependabot[bot] May 9, 2026
fcf64d7
Edit/stable versions (#2544)
TheRusCompass May 11, 2026
1247954
fix: updated references to release v14.5.4 (#2552)
ThisIsDemetrio May 12, 2026
6742089
chore(deps): bump webpack-dev-server from 5.2.2 to 5.2.4 (#2558)
dependabot[bot] May 21, 2026
9f83fd2
chore(deps): bump nginx from 1.29.8-alpine to 1.31.0-alpine (#2557)
dependabot[bot] May 21, 2026
5493512
chore(deps): bump brace-expansion from 2.0.2 to 5.0.6 (#2556)
dependabot[bot] May 21, 2026
f0190c2
chore(deps): bump semver from 7.7.4 to 7.8.0 (#2551)
dependabot[bot] May 21, 2026
6597370
chore(deps-dev): bump @inquirer/prompts from 8.4.2 to 8.4.3 (#2550)
dependabot[bot] May 21, 2026
c680dcf
chore(deps-dev): bump fs-extra from 11.3.4 to 11.3.5 (#2549)
dependabot[bot] May 21, 2026
419f363
chore(deps): bump typescript-eslint from 8.59.2 to 8.59.3 (#2548)
dependabot[bot] May 21, 2026
790f8e1
chore(deps): bump the react group across 1 directory with 2 updates (…
dependabot[bot] May 21, 2026
c55a7dc
chore(deps): bump @babel/plugin-transform-modules-systemjs from 7.27.…
dependabot[bot] May 21, 2026
c782909
chore(deps): bump ws from 8.18.3 to 8.20.1 (#2560)
dependabot[bot] May 21, 2026
79e961a
chore(deps): bump lodash-es from 4.17.21 to 4.18.1 (#2561)
dependabot[bot] May 21, 2026
bef34d8
chore(deps-dev): bump @inquirer/core from 11.1.9 to 11.1.10 (#2547)
dependabot[bot] May 21, 2026
7cc859f
chore(deps): bump mermaid from 11.12.0 to 11.15.0 (#2545)
dependabot[bot] May 22, 2026
5859ef7
chore(deps): bump minimatch from 10.2.2 to 10.2.5 (#2563)
dependabot[bot] May 25, 2026
db8067d
feat: add link to v15 in v14 doc (#2559)
epessina May 25, 2026
22f823f
chore: set redirect for v15 rn
epessina May 27, 2026
3828dcb
Edit/stable version table (#2581)
TheRusCompass Jun 3, 2026
6bdf8fb
chore(deps-dev): bump @inquirer/core from 11.1.10 to 11.2.1 (#2579)
dependabot[bot] Jun 3, 2026
d061c10
chore(deps): bump tsx from 4.21.0 to 4.22.4 (#2578)
dependabot[bot] Jun 3, 2026
f0e90ac
chore(deps): bump the react group with 2 updates (#2575)
dependabot[bot] Jun 3, 2026
3620067
chore(deps-dev): bump @babel/eslint-parser from 7.28.6 to 7.29.7 (#2566)
dependabot[bot] Jun 3, 2026
c574f54
chore(deps): bump nginx from 1.31.0-alpine to 1.31.1-alpine (#2565)
dependabot[bot] Jun 3, 2026
2422a4b
Fix bucket storage documentation typo
bte808 Jun 4, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
4 changes: 4 additions & 0 deletions 301redirects.json
Original file line number Diff line number Diff line change
Expand Up @@ -5482,5 +5482,9 @@
"/docs/microfrontend-composer/(.*)": {
"destination": "/docs/products/microfrontend-composer/$1",
"addedOn": "2026-03-11"
},
"/release-notes/v15.0.0": {
"destination": "https://v15.docs.mia-platform.eu/release-notes/v15.0.0",
"addedOn": "2026-05-27"
}
}
2 changes: 1 addition & 1 deletion Dockerfile
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
FROM nginx:1.29.8-alpine
FROM nginx:1.31.1-alpine

LABEL maintainer="Mia Platform Core Team<core@mia-platform.eu>" \
name="Documentation" \
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ In order to correctly integrate the plugins with the Fast Data in a parallel way

:::note
Parallel architecture requires configuring a subsequent Real-Time Updater which shares the same configuration of the standard data flow,
whereas it reads different ingestion topics (the reingestion ones). This service can deployed alongside the whole Bucket Storage Support
whereas it reads different ingestion topics (the reingestion ones). This service can be deployed alongside the whole Bucket Storage Support
configuration with its replicas set to zero (no actual pod is created on Kubernetes).
Whenever it is necessary to perform a re-ingestion operation it would then be sufficient to scale up the service's replicas.
:::
Expand Down
18 changes: 18 additions & 0 deletions docusaurus.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,13 @@ const config = {
additionalLanguages: ['rego', 'java', 'csharp', 'kotlin', 'nginx', 'docker', 'ini'],
},
image: "img/documentation-link-preview.png",
announcementBar: {
id: 'archived',
content: 'Mia-Platform v15 is now available in preview. Please, check the <a target="_blank" rel="noopener noreferrer" href="https://v15.docs.mia-platform.eu/">v15 documentation</a> for up-to-date information.',
backgroundColor: '#def2ff',
textColor: '#193c47',
isCloseable: false,
},
algolia: {
placeholder: "Search for terms, features and more...",
apiKey: "602a752c6342891e2488bea38b0d9292",
Expand Down Expand Up @@ -164,6 +171,17 @@ const config = {
{
type: 'custom-CustomVersionsDropdown',
position: 'right',
dropdownItemsBefore: [
{
type: 'html',
value: '<b style="margin-left: 8px; font-size: 14px;">Preview</b>',
},
{ label: '15.0.0', href: 'https://v15.docs.mia-platform.eu' },
{
type: 'html',
value: '<hr style="margin: 4px 0;">',
}
],
dropdownItemsAfter: [
{
type: 'html',
Expand Down
18 changes: 9 additions & 9 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -38,24 +38,24 @@
"klaw": "^4.1.0",
"medium-zoom": "^1.1.0",
"prism-react-renderer": "^2.3.0",
"react": "^19.2.5",
"react-dom": "^19.2.5",
"react": "^19.2.7",
"react-dom": "^19.2.7",
"react-youtube": "^10.1.0",
"semver": "^7.7.4",
"tsx": "^4.21.0",
"typescript-eslint": "^8.59.2"
"semver": "^7.8.0",
"tsx": "^4.22.4",
"typescript-eslint": "^8.59.3"
},
"devDependencies": {
"@babel/eslint-parser": "^7.28.6",
"@babel/eslint-parser": "^7.29.7",
"@docusaurus/module-type-aliases": "^3.10.1",
"@docusaurus/types": "3.10.1",
"@ianvs/prettier-plugin-sort-imports": "4.7.1",
"@inquirer/core": "^11.1.9",
"@inquirer/prompts": "^8.4.2",
"@inquirer/core": "^11.2.1",
"@inquirer/prompts": "^8.4.3",
"@types/semver": "^7",
"eslint": "^9.39.2",
"eslint-plugin-react": "^7.37.5",
"fs-extra": "^11.3.4",
"fs-extra": "^11.3.5",
"glob": "^13.0.6",
"gray-matter": "^4.0.3",
"prettier": "3.8.3",
Expand Down
4 changes: 2 additions & 2 deletions release-notes/v14.5.4.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ _May 04th, 2026_

## How to update your Console

For self-hosted installations, please head to the [self hosted upgrade guide](/docs/infrastructure/self-hosted/installation-chart/how-to-upgrade) or contact your Mia-Platform referent and upgrade to _Console Helm Chart_ `v15.0.11-hotfix.2`.
For self-hosted installations, please head to the [self hosted upgrade guide](/docs/infrastructure/self-hosted/installation-chart/how-to-upgrade) or contact your Mia-Platform referent and upgrade to _Console Helm Chart_ `v15.0.11-hotfix.3`.

### Bill of materials

Expand All @@ -23,7 +23,7 @@ For self-hosted installations, please head to the [self hosted upgrade guide](/d
| nexus.mia-platform.eu/api-portal/website | 2.2.0 |
| nexus.mia-platform.eu/back-kit/mfe-toolkit-on-prem | 1.3.13 |
| nexus.mia-platform.eu/backoffice/login-site | 7.2.3 |
| nexus.mia-platform.eu/console/aggregated-website | 1.5.62-0 |
| nexus.mia-platform.eu/console/aggregated-website | 1.5.62-1 |
| nexus.mia-platform.eu/console/api-gateway | 0.2.9 |
| nexus.mia-platform.eu/console/backend | 33.0.2 |
| nexus.mia-platform.eu/console/catalog-service | 1.7.2 |
Expand Down
89 changes: 0 additions & 89 deletions release-notes/v15.0.0.mdx

This file was deleted.

1 change: 0 additions & 1 deletion sidebarsReleaseNotes.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
/** @type {import('@docusaurus/plugin-content-docs').SidebarsConfig} */
export default {
releaseNotes: [
{"id": "v15.0.0", "type": "doc", "label": "v15.0.0 - Preview"},
{
"label": "v14",
"type": "category",
Expand Down
114 changes: 80 additions & 34 deletions src/components/Gantt/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,19 +2,21 @@ import React from 'react';
import styles from './styles.module.css';

// --- Helper Functions ---
const getCurrentYearMonth = () => {
const now = new Date();
const year = now.getFullYear();
const month = (now.getMonth() + 1).toString().padStart(2, '0');
return `${year}-${month}`;
const parseISODate = (dateString) => {
if (!dateString) return null;
const date = new Date(dateString + 'T00:00:00');
return isNaN(date.getTime()) ? null : date;
};

const getTaskStatus = (task, currentYearMonth) => {
const startMonth = task.start.slice(0, 7);
const endMonth = task.end.slice(0, 7);
if (endMonth < currentYearMonth) return 'passed';
if (startMonth <= currentYearMonth && endMonth >= currentYearMonth) return 'current';
return 'next';
const getTaskStatus = (task, currentDate) => {
const previewDate = parseISODate(task.releaseDates?.preview);
const stableDate = parseISODate(task.releaseDates?.stable) || parseISODate(task.start);
const endDate = parseISODate(task.end);

if (endDate && endDate < currentDate) return 'passed';
if (previewDate && stableDate && previewDate <= currentDate && currentDate < stableDate) return 'preview';
if (stableDate && endDate && stableDate <= currentDate && currentDate <= endDate) return 'current';
return 'future';
};

/**
Expand All @@ -38,8 +40,9 @@ const getOrdinalSuffix = (d) => {
* @returns {string} The formatted date.
*/
const formatDateForTable = (dateString) => {
if (!dateString) return 'TBD';
const date = new Date(dateString + 'T00:00:00');
if (isNaN(date.getTime())) return 'Invalid Date';
if (isNaN(date.getTime())) return 'TBD';
const day = date.getDate();
const year = date.getFullYear();
const month = date.toLocaleString('en-US', {month: 'long'});
Expand All @@ -60,35 +63,78 @@ const findQuarter = (dateString) => {
return `Q${quarter} - ${year}`;
};

const renderTaskName = (name = '') => {
const normalized = String(name).replace(/\\n/g, '\n');
return normalized.split('\n').map((line, index) => (
<React.Fragment key={`${line}-${index}`}>
{index > 0 ? <br /> : null}
{line}
</React.Fragment>
));
};

const renderStatusLegend = () => (
<div aria-label="Stable versions status legend" className={styles.legend}>
<span className={styles.legendItem}>
<span className={`${styles.legendSwatch} ${styles.passedLegend}`} />
{`Passed`}
</span>
<span className={styles.legendItem}>
<span className={`${styles.legendSwatch} ${styles.currentLegend}`} />
{`Active`}
</span>
<span className={styles.legendItem}>
<span className={`${styles.legendSwatch} ${styles.previewLegend}`} />
{`Preview`}
</span>
<span className={styles.legendItem}>
<span className={`${styles.legendSwatch} ${styles.futureLegend}`} />
{`Future`}
</span>
</div>
);

// --- Main Component ---
export default function GanttChart({config, renderAs = 'chart'}) {
if (!config || !config.tasks || (renderAs === 'chart' && !config.timeline)) {
return <pre><code>{`Error: The 'config' prop is missing or invalid.`}</code></pre>;
}

const currentDate = new Date();

// MODIFIED: Render a styled HTML table if specified
if (renderAs === 'table') {
return (
<table>
<thead>
<tr>
<th>{`Quarter`}</th>
<th>{`Stable Version*`}</th>
<th>{`Start MTW`}</th>
<th>{`End MTW`}</th>
</tr>
</thead>
<tbody>
{config.tasks.map(task => (
<tr key={task.name}>
<td>{findQuarter(task.start)}</td>
<td>{task.name}</td>
<td>{formatDateForTable(task.start)}</td>
<td>{formatDateForTable(task.end)}</td>
<div className={styles.ganttContainer}>
<table className={styles.statusTable}>
<thead>
<tr>
<th>{`Quarter`}</th>
<th>{`Stable Version*`}</th>
<th>{`Preview Release Date`}</th>
<th>{`Stable Release Date`}</th>
<th>{`Start MTW`}</th>
<th>{`End MTW`}</th>
</tr>
))}
</tbody>
</table>
</thead>
<tbody>
{config.tasks.map(task => {
const status = getTaskStatus(task, currentDate);

return (
<tr className={styles[`${status}Row`]} key={task.name}>
<td>{findQuarter(task.start)}</td>
<td>{renderTaskName(task.name)}</td>
<td>{formatDateForTable(task.releaseDates?.preview)}</td>
<td>{formatDateForTable(task.releaseDates?.stable)}</td>
<td>{formatDateForTable(task.start)}</td>
<td>{formatDateForTable(task.end)}</td>
</tr>
)})}
</tbody>
</table>
{renderStatusLegend()}
</div>
);
}

Expand All @@ -100,7 +146,6 @@ export default function GanttChart({config, renderAs = 'chart'}) {
})
);

const currentYearMonth = getCurrentYearMonth();
const totalMonths = allMonths.length;

return (
Expand Down Expand Up @@ -136,15 +181,15 @@ export default function GanttChart({config, renderAs = 'chart'}) {
);
}

const status = getTaskStatus(task, currentYearMonth);
const status = getTaskStatus(task, currentDate);
const gridColumn = `${startIndex + 1} / ${endIndex + 2}`;

return (
<tr key={task.name}>
<td className={styles.barCell} colSpan={totalMonths}>
<div className={styles.barContainer} style={{'--total-months': totalMonths}}>
<div className={`${styles.bar} ${styles[status]}`} style={{gridColumn}}>
{task.name}
{renderTaskName(task.name)}
</div>
</div>
</td>
Expand All @@ -153,6 +198,7 @@ export default function GanttChart({config, renderAs = 'chart'}) {
})}
</tbody>
</table>
{renderStatusLegend()}
</div>
);
}
Loading