@redpanda-data/docs-extensions-and-macros 3.7.1 → 3.7.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/extensions/replace-attributes-in-attachments.js +49 -22
- package/extensions/version-fetcher/get-latest-connect.js +1 -2
- package/extensions/version-fetcher/get-latest-console-version.js +6 -7
- package/extensions/version-fetcher/get-latest-redpanda-version.js +9 -10
- package/extensions/version-fetcher/set-latest-version.js +89 -64
- package/macros/rp-connect-components.js +7 -5
- package/package.json +1 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use strict';
|
|
2
|
+
const semver = require('semver');
|
|
2
3
|
|
|
3
4
|
module.exports.register = function () {
|
|
4
|
-
const sanitizeAttributeValue = (value) => String(value).replace("@", "");
|
|
5
5
|
this.on('contentClassified', ({ contentCatalog }) => {
|
|
6
6
|
const componentVersionTable = contentCatalog.getComponents().reduce((componentMap, component) => {
|
|
7
7
|
componentMap[component.name] = component.versions.reduce((versionMap, componentVersion) => {
|
|
@@ -12,39 +12,66 @@ module.exports.register = function () {
|
|
|
12
12
|
}, {});
|
|
13
13
|
|
|
14
14
|
contentCatalog.findBy({ family: 'attachment' }).forEach((attachment) => {
|
|
15
|
-
const componentVersion = componentVersionTable[attachment.src.component][attachment.src.version];
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
attributes = Object.entries(attributes).reduce((accum, [name, val]) => {
|
|
19
|
-
const stringValue = String(val);
|
|
20
|
-
accum[name] = stringValue.endsWith('@') ?
|
|
15
|
+
const componentVersion = componentVersionTable[attachment.src.component]?.[attachment.src.version];
|
|
16
|
+
if (!componentVersion?.asciidoc?.attributes) return;
|
|
17
|
+
|
|
18
|
+
const attributes = Object.entries(componentVersion.asciidoc.attributes).reduce((accum, [name, val]) => {
|
|
19
|
+
const stringValue = String(val);
|
|
20
|
+
accum[name] = stringValue.endsWith('@') ? sanitizeAttributeValue(stringValue) : stringValue;
|
|
21
21
|
return accum;
|
|
22
22
|
}, {});
|
|
23
|
-
|
|
23
|
+
|
|
24
24
|
let contentString = attachment.contents.toString();
|
|
25
|
-
|
|
25
|
+
let modified = false;
|
|
26
|
+
|
|
27
|
+
// Determine if we're using the tag or version attributes
|
|
28
|
+
// We introduced tag attributes in Self-Managed 24.3
|
|
29
|
+
const isPrerelease = attributes['page-component-version-is-prerelease'];
|
|
30
|
+
const componentVersionNumber = formatVersion(componentVersion.version || '');
|
|
31
|
+
const useTagAttributes = isPrerelease || (componentVersionNumber && semver.gte(componentVersionNumber, '24.3.0') && componentVersion.title === 'Self-Managed');
|
|
32
|
+
|
|
33
|
+
// Set replacements based on the condition
|
|
34
|
+
const redpandaVersion = isPrerelease
|
|
35
|
+
? sanitizeAttributeValue(attributes['redpanda-beta-tag'] || '')
|
|
36
|
+
: (useTagAttributes
|
|
37
|
+
? sanitizeAttributeValue(attributes['latest-redpanda-tag'] || '')
|
|
38
|
+
: sanitizeAttributeValue(attributes['full-version'] || ''));
|
|
39
|
+
|
|
40
|
+
const consoleVersion = useTagAttributes
|
|
41
|
+
? sanitizeAttributeValue(attributes['latest-console-tag'] || '')
|
|
42
|
+
: sanitizeAttributeValue(attributes['latest-console-version'] || '');
|
|
43
|
+
const redpandaRepo = isPrerelease ? 'redpanda-unstable' : 'redpanda';
|
|
44
|
+
const consoleRepo = 'console';
|
|
45
|
+
|
|
46
|
+
// YAML-specific replacements
|
|
26
47
|
if (attachment.out.path.endsWith('.yaml') || attachment.out.path.endsWith('.yml')) {
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
if (attributes['page-component-version-is-prerelease']) {
|
|
32
|
-
fullVersion = attributes['redpanda-beta-version'] ? sanitizeAttributeValue(attributes['redpanda-beta-version']) : fullVersion;
|
|
33
|
-
}
|
|
34
|
-
contentString = contentString.replace(redpandaVersionRegex, fullVersion);
|
|
35
|
-
contentString = contentString.replace(redpandaConsoleVersionRegex, latestConsoleVersion);
|
|
48
|
+
contentString = replacePlaceholder(contentString, /\$\{REDPANDA_DOCKER_REPO:[^\}]*\}/g, redpandaRepo);
|
|
49
|
+
contentString = replacePlaceholder(contentString, /\$\{CONSOLE_DOCKER_REPO:[^\}]*\}/g, consoleRepo);
|
|
50
|
+
contentString = replacePlaceholder(contentString, /\$\{REDPANDA_VERSION[^\}]*\}/g, redpandaVersion);
|
|
51
|
+
contentString = replacePlaceholder(contentString, /\$\{REDPANDA_CONSOLE_VERSION[^\}]*\}/g, consoleVersion);
|
|
36
52
|
modified = true;
|
|
37
53
|
}
|
|
38
54
|
|
|
39
|
-
|
|
55
|
+
// General attribute replacements (excluding uppercase with underscores)
|
|
56
|
+
const result = contentString.replace(/\{([a-z][\p{Alpha}\d_-]*)\}/gu, (match, name) => {
|
|
40
57
|
if (!(name in attributes)) return match;
|
|
41
58
|
modified = true;
|
|
42
|
-
|
|
43
|
-
if (value.endsWith('@')) value = value.slice(0, value.length - 1);
|
|
44
|
-
return value;
|
|
59
|
+
return attributes[name];
|
|
45
60
|
});
|
|
46
61
|
|
|
47
62
|
if (modified) attachment.contents = Buffer.from(result);
|
|
48
63
|
});
|
|
49
64
|
});
|
|
65
|
+
|
|
66
|
+
// Helper function to replace placeholders with attribute values
|
|
67
|
+
function replacePlaceholder(content, regex, replacement) {
|
|
68
|
+
return content.replace(regex, replacement);
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
const sanitizeAttributeValue = (value) => String(value).replace('@', '');
|
|
72
|
+
|
|
73
|
+
const formatVersion = (version) => {
|
|
74
|
+
if (!version) return null;
|
|
75
|
+
return semver.valid(version) ? version : `${version}.0`;
|
|
76
|
+
};
|
|
50
77
|
};
|
|
@@ -2,8 +2,7 @@ module.exports = async (github, owner, repo) => {
|
|
|
2
2
|
|
|
3
3
|
try {
|
|
4
4
|
const release = await github.rest.repos.getLatestRelease({ owner, repo });
|
|
5
|
-
|
|
6
|
-
return tag;
|
|
5
|
+
return release.data.tag_name
|
|
7
6
|
} catch (error) {
|
|
8
7
|
console.error(error);
|
|
9
8
|
return null;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
module.exports = async (github, owner, repo) => {
|
|
2
|
-
const semver = require('semver')
|
|
2
|
+
const semver = require('semver');
|
|
3
3
|
try {
|
|
4
4
|
const releases = await github.rest.repos.listReleases({
|
|
5
5
|
owner,
|
|
@@ -8,15 +8,14 @@ module.exports = async (github, owner, repo) => {
|
|
|
8
8
|
per_page: 50
|
|
9
9
|
});
|
|
10
10
|
|
|
11
|
-
// Filter valid semver
|
|
11
|
+
// Filter tags with valid semver format
|
|
12
12
|
const sortedReleases = releases.data
|
|
13
|
-
.map(release => release.tag_name
|
|
14
|
-
.filter(tag => semver.valid(tag))
|
|
15
|
-
|
|
16
|
-
.sort(semver.rcompare);
|
|
13
|
+
.map(release => release.tag_name)
|
|
14
|
+
.filter(tag => semver.valid(tag.replace(/^v/, '')))
|
|
15
|
+
.sort((a, b) => semver.rcompare(a.replace(/^v/, ''), b.replace(/^v/, '')));
|
|
17
16
|
|
|
18
17
|
if (sortedReleases.length > 0) {
|
|
19
|
-
// Return the highest version
|
|
18
|
+
// Return the highest version with "v" prefix
|
|
20
19
|
return sortedReleases[0];
|
|
21
20
|
} else {
|
|
22
21
|
console.log("No valid semver releases found.");
|
|
@@ -11,21 +11,20 @@ module.exports = async (github, owner, repo) => {
|
|
|
11
11
|
|
|
12
12
|
// Filter valid semver tags, exclude drafts, and sort them to find the highest version
|
|
13
13
|
const sortedReleases = releases.data
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
14
|
+
.filter(release => !release.draft)
|
|
15
|
+
.map(release => release.tag_name)
|
|
16
|
+
.filter(tag => semver.valid(tag.replace(/^v/, '')))
|
|
17
|
+
.sort((a, b) => semver.rcompare(a.replace(/^v/, ''), b.replace(/^v/, '')));
|
|
18
|
+
|
|
20
19
|
if (sortedReleases.length > 0) {
|
|
21
|
-
const latestRedpandaReleaseVersion = sortedReleases.find(tag => !tag.includes('rc'));
|
|
22
|
-
const latestRcReleaseVersion = sortedReleases.find(tag => tag.includes('rc'));
|
|
20
|
+
const latestRedpandaReleaseVersion = sortedReleases.find(tag => !tag.includes('-rc'));
|
|
21
|
+
const latestRcReleaseVersion = sortedReleases.find(tag => tag.includes('-rc'));
|
|
23
22
|
|
|
24
23
|
// Get the commit hash for the highest version tag
|
|
25
24
|
const commitData = await github.rest.git.getRef({
|
|
26
25
|
owner,
|
|
27
26
|
repo,
|
|
28
|
-
ref: `tags
|
|
27
|
+
ref: `tags/${latestRedpandaReleaseVersion}`
|
|
29
28
|
});
|
|
30
29
|
const latestRedpandaReleaseCommitHash = commitData.data.object.sha;
|
|
31
30
|
|
|
@@ -34,7 +33,7 @@ module.exports = async (github, owner, repo) => {
|
|
|
34
33
|
const rcCommitData = await github.rest.git.getRef({
|
|
35
34
|
owner,
|
|
36
35
|
repo,
|
|
37
|
-
ref: `tags
|
|
36
|
+
ref: `tags/${latestRcReleaseVersion}`
|
|
38
37
|
});
|
|
39
38
|
latestRcReleaseCommitHash = rcCommitData.data.object.sha;
|
|
40
39
|
}
|
|
@@ -1,13 +1,16 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
1
3
|
module.exports.register = function ({ config }) {
|
|
2
|
-
const GetLatestRedpandaVersion = require('./get-latest-redpanda-version')
|
|
3
|
-
const GetLatestConsoleVersion = require('./get-latest-console-version')
|
|
4
|
-
const GetLatestOperatorVersion = require('./get-latest-operator-version')
|
|
5
|
-
const GetLatestHelmChartVersion = require('./get-latest-redpanda-helm-version')
|
|
6
|
-
const GetLatestConnectVersion = require('./get-latest-connect')
|
|
7
|
-
const chalk = require('chalk')
|
|
8
|
-
const logger = this.getLogger('set-latest-version-extension')
|
|
4
|
+
const GetLatestRedpandaVersion = require('./get-latest-redpanda-version');
|
|
5
|
+
const GetLatestConsoleVersion = require('./get-latest-console-version');
|
|
6
|
+
const GetLatestOperatorVersion = require('./get-latest-operator-version');
|
|
7
|
+
const GetLatestHelmChartVersion = require('./get-latest-redpanda-helm-version');
|
|
8
|
+
const GetLatestConnectVersion = require('./get-latest-connect');
|
|
9
|
+
const chalk = require('chalk');
|
|
10
|
+
const logger = this.getLogger('set-latest-version-extension');
|
|
11
|
+
|
|
9
12
|
if (!process.env.REDPANDA_GITHUB_TOKEN) {
|
|
10
|
-
logger.warn('REDPANDA_GITHUB_TOKEN environment variable not set. Attempting unauthenticated request.')
|
|
13
|
+
logger.warn('REDPANDA_GITHUB_TOKEN environment variable not set. Attempting unauthenticated request.');
|
|
11
14
|
}
|
|
12
15
|
|
|
13
16
|
this.on('contentClassified', async ({ contentCatalog }) => {
|
|
@@ -17,83 +20,105 @@ module.exports.register = function ({ config }) {
|
|
|
17
20
|
const OctokitWithRetries = Octokit.plugin(retry);
|
|
18
21
|
|
|
19
22
|
const owner = 'redpanda-data';
|
|
20
|
-
|
|
21
|
-
let githubOptions = {
|
|
23
|
+
const githubOptions = {
|
|
22
24
|
userAgent: 'Redpanda Docs',
|
|
23
25
|
baseUrl: 'https://api.github.com',
|
|
26
|
+
auth: process.env.REDPANDA_GITHUB_TOKEN || undefined,
|
|
24
27
|
};
|
|
25
|
-
|
|
26
|
-
if (process.env.REDPANDA_GITHUB_TOKEN) {
|
|
27
|
-
githubOptions.auth = process.env.REDPANDA_GITHUB_TOKEN;
|
|
28
|
-
}
|
|
29
|
-
|
|
30
28
|
const github = new OctokitWithRetries(githubOptions);
|
|
29
|
+
|
|
31
30
|
try {
|
|
32
|
-
const
|
|
31
|
+
const [
|
|
32
|
+
latestRedpandaResult,
|
|
33
|
+
latestConsoleResult,
|
|
34
|
+
latestOperatorResult,
|
|
35
|
+
latestHelmChartResult,
|
|
36
|
+
latestConnectResult,
|
|
37
|
+
] = await Promise.allSettled([
|
|
33
38
|
GetLatestRedpandaVersion(github, owner, 'redpanda'),
|
|
34
39
|
GetLatestConsoleVersion(github, owner, 'console'),
|
|
35
40
|
GetLatestOperatorVersion(github, owner, 'redpanda-operator'),
|
|
36
41
|
GetLatestHelmChartVersion(github, owner, 'helm-charts', 'charts/redpanda/Chart.yaml'),
|
|
37
|
-
GetLatestConnectVersion(github, owner, 'connect')
|
|
38
|
-
])
|
|
42
|
+
GetLatestConnectVersion(github, owner, 'connect'),
|
|
43
|
+
]);
|
|
39
44
|
|
|
40
|
-
const
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
+
const latestVersions = {
|
|
46
|
+
redpanda: latestRedpandaResult.status === 'fulfilled' ? latestRedpandaResult.value : {},
|
|
47
|
+
console: latestConsoleResult.status === 'fulfilled' ? latestConsoleResult.value : undefined,
|
|
48
|
+
operator: latestOperatorResult.status === 'fulfilled' ? latestOperatorResult.value : undefined,
|
|
49
|
+
helmChart: latestHelmChartResult.status === 'fulfilled' ? latestHelmChartResult.value : undefined,
|
|
50
|
+
connect: latestConnectResult.status === 'fulfilled' ? latestConnectResult.value : undefined,
|
|
51
|
+
};
|
|
45
52
|
|
|
46
|
-
const components = await contentCatalog.getComponents()
|
|
53
|
+
const components = await contentCatalog.getComponents();
|
|
47
54
|
components.forEach(component => {
|
|
48
|
-
|
|
55
|
+
const prerelease = component.latestPrerelease;
|
|
56
|
+
|
|
49
57
|
component.versions.forEach(({ name, version, asciidoc }) => {
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
if (prerelease && prerelease.version === version) {
|
|
53
|
-
asciidoc.attributes['page-component-version-is-prerelease'] = 'true'
|
|
58
|
+
if (prerelease?.version === version) {
|
|
59
|
+
asciidoc.attributes['page-component-version-is-prerelease'] = 'true';
|
|
54
60
|
}
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
61
|
+
|
|
62
|
+
// Set operator and helm chart attributes
|
|
63
|
+
if (latestVersions.operator) {
|
|
64
|
+
asciidoc.attributes['latest-operator-version'] = latestVersions.operator;
|
|
58
65
|
}
|
|
59
|
-
if (
|
|
60
|
-
asciidoc.attributes['latest-
|
|
61
|
-
logger.info(`Set Redpanda Connect version to ${LatestConnectVersion} in ${name} ${version}`)
|
|
66
|
+
if (latestVersions.helmChart) {
|
|
67
|
+
asciidoc.attributes['latest-redpanda-helm-chart-version'] = latestVersions.helmChart;
|
|
62
68
|
}
|
|
63
|
-
if (LatestRedpandaVersion && LatestRedpandaVersion.latestRcRelease && LatestRedpandaVersion.latestRcRelease.version) {
|
|
64
|
-
asciidoc.attributes['redpanda-beta-version'] = `${LatestRedpandaVersion.latestRcRelease.version}@`
|
|
65
|
-
asciidoc.attributes['redpanda-beta-commit'] = `${LatestRedpandaVersion.latestRcRelease.commitHash}@`
|
|
66
|
-
logger.info(`Updated to latest Redpanda RC version: ${LatestRedpandaVersion.latestRcRelease.version} with commit: ${LatestRedpandaVersion.latestRcRelease.commitHash}`)
|
|
67
|
-
}
|
|
68
|
-
})
|
|
69
|
-
|
|
70
|
-
if (!component.latest.asciidoc) {
|
|
71
|
-
component.latest.asciidoc = { attributes: {} }
|
|
72
|
-
}
|
|
73
69
|
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
component.latest.asciidoc.attributes['full-version'] = `${LatestRedpandaVersion.latestRedpandaRelease.version}@`
|
|
78
|
-
component.latest.asciidoc.attributes['latest-release-commit'] = `${LatestRedpandaVersion.latestRedpandaRelease.commitHash}@`
|
|
79
|
-
logger.info(`Updated to latest Redpanda version: ${LatestRedpandaVersion.latestRedpandaRelease.version} with commit: ${LatestRedpandaVersion.latestRedpandaRelease.commitHash}`)
|
|
70
|
+
// Set attributes for console and connect versions
|
|
71
|
+
if (latestVersions.console) {
|
|
72
|
+
setVersionAndTagAttributes(asciidoc, 'latest-console', latestVersions.console, name, version);
|
|
80
73
|
}
|
|
81
|
-
|
|
74
|
+
if (latestVersions.connect) {
|
|
75
|
+
setVersionAndTagAttributes(asciidoc, 'latest-connect', latestVersions.connect, name, version);
|
|
76
|
+
}
|
|
77
|
+
// Special handling for Redpanda RC versions if in beta
|
|
78
|
+
if (latestVersions.redpanda?.latestRcRelease?.version) {
|
|
79
|
+
setVersionAndTagAttributes(asciidoc, 'redpanda-beta', latestVersions.redpanda.latestRcRelease.version, name, version)
|
|
80
|
+
asciidoc.attributes['redpanda-beta-commit'] = latestVersions.redpanda.latestRcRelease.commitHash;
|
|
81
|
+
}
|
|
82
|
+
});
|
|
82
83
|
|
|
83
|
-
if (
|
|
84
|
-
component.latest.asciidoc.attributes['latest-operator-version'] = `${LatestOperatorVersion}@`
|
|
85
|
-
logger.info(`Updated to latest Redpanda Operator version: ${LatestOperatorVersion}`)
|
|
86
|
-
}
|
|
84
|
+
if (!component.latest.asciidoc) component.latest.asciidoc = { attributes: {} };
|
|
87
85
|
|
|
88
|
-
if
|
|
89
|
-
|
|
90
|
-
|
|
86
|
+
// For Redpanda GA version, set both latest-redpanda-version and latest-redpanda-tag if available
|
|
87
|
+
if (semver.valid(latestVersions.redpanda?.latestRedpandaRelease?.version)) {
|
|
88
|
+
const currentVersion = component.latest.asciidoc.attributes['full-version'] || '0.0.0';
|
|
89
|
+
if (semver.gt(latestVersions.redpanda.latestRedpandaRelease.version, currentVersion)) {
|
|
90
|
+
// Required for backwards compatibility. Some docs still use full-version
|
|
91
|
+
component.latest.asciidoc.attributes['full-version'] = sanitizeVersion(latestVersions.redpanda.latestRedpandaRelease.version);
|
|
92
|
+
setVersionAndTagAttributes(component.latest.asciidoc, 'latest-redpanda', latestVersions.redpanda.latestRedpandaRelease.version, component.latest.name, component.latest.version);
|
|
93
|
+
component.latest.asciidoc.attributes['latest-release-commit'] = latestVersions.redpanda.latestRedpandaRelease.commitHash;
|
|
94
|
+
logger.info(`Updated Redpanda release version to ${latestVersions.redpanda.latestRedpandaRelease.version}`);
|
|
95
|
+
}
|
|
91
96
|
}
|
|
92
|
-
})
|
|
97
|
+
});
|
|
93
98
|
|
|
94
|
-
console.log(
|
|
99
|
+
console.log(chalk.green('Updated Redpanda documentation versions successfully.'));
|
|
95
100
|
} catch (error) {
|
|
96
|
-
logger.error(`Error updating versions: ${error}`)
|
|
101
|
+
logger.error(`Error updating versions: ${error}`);
|
|
97
102
|
}
|
|
98
|
-
})
|
|
99
|
-
|
|
103
|
+
});
|
|
104
|
+
|
|
105
|
+
// Helper function to set both latest-*version and latest-*tag attributes
|
|
106
|
+
function setVersionAndTagAttributes(asciidoc, baseName, versionData, name = '', version = '') {
|
|
107
|
+
if (versionData) {
|
|
108
|
+
const versionWithoutPrefix = sanitizeVersion(versionData);
|
|
109
|
+
asciidoc.attributes[`${baseName}-version`] = versionWithoutPrefix; // Without "v" prefix
|
|
110
|
+
asciidoc.attributes[`${baseName}-tag`] = `${versionData}`;
|
|
111
|
+
|
|
112
|
+
if (name && version) {
|
|
113
|
+
logger.info(`Set ${baseName}-version to ${versionWithoutPrefix} and ${baseName}-tag to ${versionData} in ${name} ${version}`);
|
|
114
|
+
} else {
|
|
115
|
+
logger.info(`Updated ${baseName}-version to ${versionWithoutPrefix} and ${baseName}-tag to ${versionData}`);
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
// Helper function to sanitize version by removing "v" prefix
|
|
121
|
+
function sanitizeVersion(version) {
|
|
122
|
+
return version.replace(/^v/, '');
|
|
123
|
+
}
|
|
124
|
+
};
|
|
@@ -619,7 +619,7 @@ module.exports.register = function (registry, context) {
|
|
|
619
619
|
});
|
|
620
620
|
|
|
621
621
|
/**
|
|
622
|
-
* Registers a block macro to
|
|
622
|
+
* Registers a block macro to display metadata about the selected component.
|
|
623
623
|
*
|
|
624
624
|
* This macro creates a dropdown to select different types of a connector component, such as Input, Output, or Processor.
|
|
625
625
|
* It also provides links to the corresponding Cloud or Self-Managed documentation for the selected component type, and displays information on whether the connector requires an enterprise license.
|
|
@@ -697,11 +697,13 @@ module.exports.register = function (registry, context) {
|
|
|
697
697
|
sortedTypes.unshift(currentType);
|
|
698
698
|
}
|
|
699
699
|
// Check if the component requires an Enterprise license (based on support level)
|
|
700
|
-
const requiresEnterprise = componentRows.some(row => row.is_licensed.toLowerCase() === 'yes');
|
|
701
700
|
let enterpriseLicenseInfo = '';
|
|
702
|
-
if (
|
|
703
|
-
|
|
704
|
-
|
|
701
|
+
if (component !== 'Cloud') {
|
|
702
|
+
const requiresEnterprise = componentRows.some(row => row.is_licensed.toLowerCase() === 'yes');
|
|
703
|
+
if (requiresEnterprise) {
|
|
704
|
+
enterpriseLicenseInfo = `
|
|
705
|
+
<p><strong>License</strong>: This component requires an <a href="https://redpanda.com/compare-platform-editions" target="_blank">Enterprise license</a>. To upgrade, contact <a href="https://redpanda.com/try-redpanda?section=enterprise-trial" target="_blank" rel="noopener">Redpanda sales</a>.</p>`;
|
|
706
|
+
}
|
|
705
707
|
}
|
|
706
708
|
const isCloudSupported = componentRows.some(row => row.is_cloud_supported === 'y');
|
|
707
709
|
let availableInInfo = '';
|