Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions modules/dynamic-plugins/rhdh-supported-plugins.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ a|

|Disabled

|AAP |@janus-idp/backstage-plugin-aap-backend |Backend |1.6.15 |Red Hat Tech Preview
|Ansible Automation Platform (AAP) |@janus-idp/backstage-plugin-aap-backend |Backend |1.6.15 |Red Hat Tech Preview
|./dynamic-plugins/dist/janus-idp-backstage-plugin-aap-backend-dynamic
a|
`AAP_BASE_URL`
Expand Down Expand Up @@ -117,7 +117,7 @@ a|

|Disabled

|Azure Repositories |@parfuemerie/douglas-scaffolder-backend-module-azure-repositories |Backend |0.2.7 |Community Support
|Azure Repositories |@parfuemerie-douglas/scaffolder-backend-module-azure-repositories |Backend |0.2.7 |Community Support
|./dynamic-plugins/dist/parfuemerie-douglas-scaffolder-backend-module-azure-repositories
a|
|Disabled
Expand Down Expand Up @@ -308,7 +308,7 @@ a|
a|
|Disabled

|OCM |@janus-idp/backstage-plugin-ocm-backend |Backend |4.0.8 |Production
|OCM |@janus-idp/backstage-plugin-ocm-backend |Backend |4.0.9 |Production
|./dynamic-plugins/dist/janus-idp-backstage-plugin-ocm-backend-dynamic
a|
`OCM_HUB_NAME`
Expand Down
6 changes: 3 additions & 3 deletions modules/dynamic-plugins/rhdh-supported-plugins.csv
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
"Name","Plugin","Role","Version","Support Level","Path","Required Variables","Default"
"3scale ","@janus-idp/backstage-plugin-3scale-backend","Backend","1.5.15","Red Hat Tech Preview","./dynamic-plugins/dist/janus-idp-backstage-plugin-3scale-backend-dynamic","`THREESCALE_BASE_URL`;`THREESCALE_ACCESS_TOKEN`;","Disabled"
"AAP ","@janus-idp/backstage-plugin-aap-backend","Backend","1.6.15","Red Hat Tech Preview","./dynamic-plugins/dist/janus-idp-backstage-plugin-aap-backend-dynamic","`AAP_BASE_URL`;`AAP_AUTH_TOKEN`;","Disabled"
"Ansible Automation Platform (AAP) ","@janus-idp/backstage-plugin-aap-backend","Backend","1.6.15","Red Hat Tech Preview","./dynamic-plugins/dist/janus-idp-backstage-plugin-aap-backend-dynamic","`AAP_BASE_URL`;`AAP_AUTH_TOKEN`;","Disabled"
"ACR ","@janus-idp/backstage-plugin-acr","Frontend","1.4.13","Red Hat Tech Preview","./dynamic-plugins/dist/janus-idp-backstage-plugin-acr",";","Disabled"
"Analytics Provider Segment ","@janus-idp/backstage-plugin-analytics-provider-segment","Frontend","1.4.9","Production","./dynamic-plugins/dist/janus-idp-backstage-plugin-analytics-provider-segment","`SEGMENT_WRITE_KEY`;`SEGMENT_TEST_MODE`;","Enabled"
"Argo CD ","@janus-idp/backstage-plugin-argocd","Frontend","1.2.3","Production","./dynamic-plugins/dist/janus-idp-backstage-plugin-argocd",";","Disabled"
Expand All @@ -10,7 +10,7 @@
"Azure ","@backstage/plugin-scaffolder-backend-module-azure","Backend","0.1.9","Community Support","./dynamic-plugins/dist/backstage-plugin-scaffolder-backend-module-azure-dynamic",";","Enabled"
"Azure Devops ","@backstage/plugin-azure-devops","Frontend","0.4.4","Community Support","./dynamic-plugins/dist/backstage-plugin-azure-devops",";","Disabled"
"Azure Devops ","@backstage/plugin-azure-devops-backend","Backend","0.6.5","Community Support","./dynamic-plugins/dist/backstage-plugin-azure-devops-backend-dynamic","`AZURE_TOKEN`;`AZURE_ORG`;","Disabled"
"Azure Repositories ","@parfuemerie/douglas-scaffolder-backend-module-azure-repositories","Backend","0.2.7","Community Support","./dynamic-plugins/dist/parfuemerie-douglas-scaffolder-backend-module-azure-repositories",";","Disabled"
"Azure Repositories ","@parfuemerie-douglas/scaffolder-backend-module-azure-repositories","Backend","0.2.7","Community Support","./dynamic-plugins/dist/parfuemerie-douglas-scaffolder-backend-module-azure-repositories",";","Disabled"
"Bitbucket Cloud ","@backstage/plugin-catalog-backend-module-bitbucket-cloud","Backend","0.2.4","Community Support","./dynamic-plugins/dist/backstage-plugin-catalog-backend-module-bitbucket-cloud-dynamic","`BITBUCKET_WORKSPACE`;","Disabled"
"Bitbucket Cloud ","@backstage/plugin-scaffolder-backend-module-bitbucket-cloud","Backend","0.1.7","Community Support","./dynamic-plugins/dist/backstage-plugin-scaffolder-backend-module-bitbucket-cloud-dynamic",";","Enabled"
"Bitbucket Server ","@backstage/plugin-catalog-backend-module-bitbucket-server","Backend","0.1.31","Community Support","./dynamic-plugins/dist/backstage-plugin-catalog-backend-module-bitbucket-server-dynamic","`BITBUCKET_HOST`;","Disabled"
Expand Down Expand Up @@ -41,7 +41,7 @@
"Lighthouse ","@backstage/plugin-lighthouse","Frontend","0.4.20","Community Support","./dynamic-plugins/dist/backstage-plugin-lighthouse",";","Disabled"
"Nexus Repository Manager ","@janus-idp/backstage-plugin-nexus-repository-manager","Frontend","1.6.10","Red Hat Tech Preview","./dynamic-plugins/dist/janus-idp-backstage-plugin-nexus-repository-manager",";","Disabled"
"OCM ","@janus-idp/backstage-plugin-ocm","Frontend","4.1.8","Production","./dynamic-plugins/dist/janus-idp-backstage-plugin-ocm",";","Disabled"
"OCM ","@janus-idp/backstage-plugin-ocm-backend","Backend","4.0.8","Production","./dynamic-plugins/dist/janus-idp-backstage-plugin-ocm-backend-dynamic","`OCM_HUB_NAME`;`OCM_HUB_URL`;`moc_infra_token`;","Disabled"
"OCM ","@janus-idp/backstage-plugin-ocm-backend","Backend","4.0.9","Production","./dynamic-plugins/dist/janus-idp-backstage-plugin-ocm-backend-dynamic","`OCM_HUB_NAME`;`OCM_HUB_URL`;`moc_infra_token`;","Disabled"
"PagerDuty ","@pagerduty/backstage-plugin","Frontend","0.12.0","Community Support","./dynamic-plugins/dist/pagerduty-backstage-plugin",";","Disabled"
"Quay ","@janus-idp/backstage-plugin-quay","Frontend","1.7.8","Production","./dynamic-plugins/dist/janus-idp-backstage-plugin-quay",";","Disabled"
"Quay ","@janus-idp/backstage-scaffolder-backend-module-quay","Backend","1.4.12","Production","./dynamic-plugins/dist/janus-idp-backstage-scaffolder-backend-module-quay-dynamic",";","Enabled"
Expand Down
56 changes: 42 additions & 14 deletions modules/dynamic-plugins/rhdh-supported-plugins.sh
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
#!/bin/bash

# script to generate rhdh-supported-plugins.adoc from content in
# script to generate rhdh-supported-plugins.adoc from content in
# https://github.com/janus-idp/backstage-plugins/tree/main/plugins/ */package.json
# https://github.com/janus-idp/backstage-showcase/tree/main/dynamic-plugins/wrappers/ */json

Expand Down Expand Up @@ -61,13 +61,15 @@ fi
titlecase() {
for f in ${*} ; do \
case $f in
aap) echo -n "Ansible Automation Platform (AAP) ";;
# UPPERCASE these exceptions
aap|acr|cd|ocm|rbac) echo -n "${f^^} ";;
acr|cd|ocm|rbac) echo -n "${f^^} ";;
# MixedCase exceptions
argocd) echo -n "Argo CD ";;
github) echo -n "GitHub ";;
gitlab) echo -n "GitLab ";;
jfrog) echo -n "JFrog ";;
msgraph) echo -n "MS Graph ";;
pagerduty) echo -n "PagerDuty ";;
servicenow) echo -n "ServiceNow ";;
sonarqube) echo -n "SonarQube ";;
Expand All @@ -79,13 +81,15 @@ titlecase() {
}

# generate a list of plugin:version mapping from the following files
# * dynamic-plugins/imports/package.json#.peerDependencies or .dependencies
# * packages/app/package.json#.dependencies
# * packages/backend/package.json#.dependencies
pluginVersFile=/tmp/plugin-versions.txt
jq -r '.peerDependencies' /tmp/backstage-showcase/dynamic-plugins/imports/package.json | grep -E -v "\"\*\"|\{|\}" | grep "@" | tr -d "," > $pluginVersFile
jq -r '.dependencies' /tmp/backstage-showcase/packages/{app,backend}/package.json | grep -E -v "\"\*\"|\{|\}" | grep "@" | tr -d "," >> $pluginVersFile
cat $pluginVersFile | sort -uV > $pluginVersFile.out; mv -f $pluginVersFile.out $pluginVersFile
# * dynamic-plugins/imports/package.json#.peerDependencies or .dependencies
# * packages/app/package.json#.dependencies
# * packages/backend/package.json#.dependencies
pluginVersFile=/tmp/plugin-versions.txt
jq -r '.peerDependencies' /tmp/backstage-showcase/dynamic-plugins/imports/package.json | grep -E -v "\"\*\"|\{|\}" | grep "@" | tr -d "," > $pluginVersFile
jq -r '.dependencies' /tmp/backstage-showcase/packages/{app,backend}/package.json | grep -E -v "\"\*\"|\{|\}" | grep "@" | tr -d "," >> $pluginVersFile
cat $pluginVersFile | sort -uV > $pluginVersFile.out; mv -f $pluginVersFile.out $pluginVersFile

rm -fr /tmp/warnings.txt

# create arrays of adoc and csv content
declare -A adoc
Expand All @@ -110,7 +114,9 @@ for j in $jsons; do
# backstage-plugin-catalog-backend-module-bitbucket-cloud => @backstage/plugin-catalog-backend-module-bitbucket-cloud
Plugin="${Name}"
if [[ $Plugin != "@"* ]]; then # don't update janus-idp/backstage-plugins plugin names
Plugin="$(echo "${Plugin}" | sed -r -e 's/([^-]+)-(.+)/\@\1\/\2/')"
Plugin="$(echo "${Plugin}" | sed -r -e 's/([^-]+)-(.+)/\@\1\/\2/' \
-e 's|backstage/community-|backstage-community/|' \
-e 's|parfuemerie/douglas-|parfuemerie-douglas/|')"
fi

# "dynamic-plugins/wrappers/backstage-plugin-catalog-backend-module-bitbucket-cloud" ==> ./dynamic-plugins/dist/backstage-plugin-catalog-backend-module-bitbucket-cloud-dynamic
Expand All @@ -132,17 +138,32 @@ for j in $jsons; do
if [[ $found_in_default_config1 ]] || [[ $found_in_default_config2 ]] || [[ "$j" == *"/wrappers/"* ]]; then

Role=$(jq -r '.backstage.role' "$j")

Version=$(jq -r '.version' "$j")
VersionJQ=$(jq -r '.version' "$j")
# check this version against other references to the plugin in
# * dynamic-plugins/imports/package.json#.peerDependencies or .dependencies
# * packages/app/package.json#.dependencies
# * packages/backend/package.json#.dependencies
echo "[DEBUG] Check version of $Name is really $Version ..."
echo "[DEBUG] Check version of $Name is really $VersionJQ (from Path = $Path)..."
match=$(grep "\"$Name\": \"" $pluginVersFile || true)
Version=$VersionJQ
if [[ $match ]]; then
Version=$(echo "${match}" | sed -r -e "s/.+\": \"([0-9.]+)\"/\1/")
echo "[DEBUG] Updated version = $Version"
echo "[WARN] !! Using $pluginVersFile version = $Version, not $VersionJQ from $Path" | tee -a /tmp/warnings.txt
fi

# check if there's a newer version at npmjs.com and warn if so
# for tags and associated repo digests (git head)
# curl -sSLko- https://registry.npmjs.org/@janus-idp%2fcli | jq -r '.versions[]|(.version+", "+.gitHead)' | sort -uV
# for timestamp when tag is created
# curl -sSLko- https://registry.npmjs.org/@janus-idp%2fcli | jq -r '.time' | grep -v -E "created|modified|{|}" | sort -uV
allVersionsPublished="$(curl -sSLko- "https://registry.npmjs.org/${Plugin/\//%2f}" | jq -r '.versions[].version')"
# echo $allVersionsPublished
# clean out any pre-release versions
latestXYRelease="$(echo "$allVersionsPublished" | grep -v -E -- "next|alpha|-" | grep -E "^${Version%.*}" | sort -uV | tail -1)"
echo "[DEBUG] Latest x.y version at https://registry.npmjs.org/${Plugin/\//%2f} : $latestXYRelease"
if [[ "$latestXYRelease" != "$Version" ]]; then
echo "[WARN] !! Newer $latestXYRelease > $Version - should upgrade to https://www.npmjs.com/package/$Plugin/v/$latestXYRelease !!" | tee -a /tmp/warnings.txt
echo | tee -a /tmp/warnings.txt
fi

# default to community unless it's a RH-authored plugin
Expand Down Expand Up @@ -184,10 +205,12 @@ for j in $jsons; do

# echo -n "Converting $Name"
Name="$(echo "${Name}" | sed -r \
-e "s@(pagerduty)-.+@\1@g" \
-e "s@.+(-plugin-scaffolder-backend-module|backstage-scaffolder-backend-module)-(.+)@\2@g" \
-e "s@.+(-plugin-catalog-module|-plugin-catalog-backend-module)-(.+)@\2@g" \
-e "s@.+(-scaffolder-backend-module|-plugin-catalog-backend-module)-(.+)@\2@g" \
-e "s@.+(-scaffolder-backend-module|-scaffolder-backend|backstage-plugin)-(.+)@\2@g" \
-e "s@(backstage-community-plugin-)@@g" \
-e "s@(backstage-plugin)-(.+)@\2@g" \
-e "s@(.+)(-backstage-plugin)@\1@g" \
-e "s@-backend@@g" \
Expand Down Expand Up @@ -293,3 +316,8 @@ popd >/dev/null || exit

# cleanup
# rm -fr /tmp/backstage-plugins /tmp/backstage-showcase

warnings=$(grep -c "WARN" "/tmp/warnings.txt")
if [[ $warnings -gt 0 ]]; then
echo; echo "[WARN] $warnings warnings collected in /tmp/warnings.txt ! Consider upgrading upstream project to newer plugin versions !"
fi