From bd6f4fb2d95442395a34add23aec43b4ef643ce6 Mon Sep 17 00:00:00 2001 From: Suzanne Daniels Date: Thu, 7 Oct 2021 16:38:48 +0200 Subject: [PATCH 01/41] Getting started guide rewrite Signed-off-by: Suzanne Daniels --- .../bs-getting-started-portal.png | Bin 0 -> 134243 bytes .../bs-getting-started-startup.png | Bin 0 -> 108170 bytes docs/assets/getting-started/bs-wizard.png | Bin 0 -> 20559 bytes docs/getting-started/index.md | 100 ++++++++++++------ 4 files changed, 69 insertions(+), 31 deletions(-) create mode 100644 docs/assets/getting-started/bs-getting-started-portal.png create mode 100644 docs/assets/getting-started/bs-getting-started-startup.png create mode 100644 docs/assets/getting-started/bs-wizard.png diff --git a/docs/assets/getting-started/bs-getting-started-portal.png b/docs/assets/getting-started/bs-getting-started-portal.png new file mode 100644 index 0000000000000000000000000000000000000000..f16ad447578e8dea7fa38153f0dabeb6b405e452 GIT binary patch literal 134243 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ℑ+j8SaEY2kXTA>Oa_e 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 B-(jaB!iTr zuOTx^SS^|vP&0xalYZd?7{qiDWkHJLn=>J|iDvkD(J7W&$<1q9-xk8w1$pUtwlGT@ zNt=_y^vd3>10h66;N?iK#hVCG0@i3Q9kycGT3UZ7q1ED}_jF0Clhvhb^BVRid}3w< z_z`Sol4LcV`6bJoTOV174YWf2+wU`2Axf_%aO@Y zZn}$5HgJ~BJ%?4ZCNu4oJyG1XKQ#TAoz#l`2uQ{BwV7x%wUV~x5M!3`2cbissw`C< zZ%{B!-I5!=%k~g`#%8NC5--=*097wmi3PG0NBWj()DAhIC!Jo$qFXpS)4#mo?wUlj zXMYeLd|Q-TUs9Bym81Tp!F$D_rAA168sDq(sNB>`t~)RW6EStS2gK-wE}$Q}luc9e z)UWkvo&2UJ&6Vqlq)I||S+Aknzs*>>xA4B%YvfLWUYXk6uw>h6zY|JR%0-;|OQ6EK zchX=>7rC{y`?n_Z@zcY+cFe(hh~kR=C+{B?|dn$&M03 zGvj=0{BeCi( zdzg6eN;&l13?8>=8C<_1Kv&~TLabT!GPZ2eKy{~1 zJFA)1fQ{;?&Az@0X`@_^HzvKQ#Rf+ji=vD<8k+ZONt4L_mK9Xw7In@7RO#W6~>Ku z+nJ!h=02+i-o&DI`Agr7B-UIN;N(_@6Ab}pB1z^B@_hGrMWiVa!lRR!4%ieDYV~ZE z#m&lzMS8PMb1>tQSdZ&_WT0VyxA`@o1gb7wN2nzVl1v_N6+`bPGw}<0OS@|j!)7p7 zi!|f}$L;3kdIL`GgxYX^m*E&=f+F|$eS>)_pEg6hkMHNNm+i87*f9Gc_H!_8cz@<3 z{%R6~tq=?4N^&n2on^%Swi_ba;%1n5)RXZa`zPJmOnNQN=J=@VE8tt_r%cb{fmnla zR1&i3c**XV!9t?(wL!ehvCrW9%KDkKYBu;-*AmG%x3&bY4L&()X9swd==EJf+wTFM z-v_Nj3m@w6yf!S74vV>d?*F)^6;R`~%0pgT4qK^N{zW?IlZz%(OWyQxo3wUAW+7uDlrP@Ou2i;W* zKFTe~`@+ix9V&z>K5S%Gdfl5{tbB{R8#L0hEbnHV@sy$^Wv*ULN${zW{mGHX&tNV@ zAFTmeS0Zs;D1$NMrd5&)8$^t+7<@=oe6o%LH?UIO-<7xc>4rIn_3RM}3>6uA!VyI8 zNDo@gW7m7@ryq9pbC}vHjq~+fWzUsU8SKiAp_3f?7bHtOJMv(w1FAs*qw`s2;+X1_-q`i|Zs6>2%}AH_gUfCD8U<=!j}=LH zLOYs!`#|r=lY}kD&fP2K4^*{ZS8+NbkojH=wEZBQxSKPr$h^7Nv2Xo4K%Ijq*=eHu zZQYuHoPEVB6Q`V1Hec+=r<4iXRPx@#61BI=F1h#0&1YRuYED1*dG4&|C)*k!a=HDk z%H?f1GC$p3KDsZ^eLoi%WL?$Fm7y}#U&9iv{~qEUKS3GOxJqf3jNNNq8K~tl6Bux3 z_VJP?dihLL+sn-+?6i%Hhc&AI(c>?wpNCF<4Vbsk^jx=?QwX#t66-m)QIsM+N+1l= z+owG%%E3cQA?mcahqDWrUKPHsLG>2`2H7+fv=pBu`kSeG2fHVJ8=skO?sVj2NXlkoW8+Rc&BKJ_msV7)1x}(KnoWAE-tfaGf@V$xUCf7a=aJhNgae)PeLzU_ z>A%=*e;FFscq1~wr`B3m3~bL?jr3a2ST;fYHK!Z8Y5JHDrYO3^Adw~TVhBqI_cq}H zR6;BMlqXfbchHsia`(>ozJR{1>~ShiKZVfpyn*PY|2RZSvKot_Jl(GD^1vKYEK_0r zb>P@Gn!8%`Yu2&G_^?CH|-T?kYWIp2#2_2ih)@ zkNuhP;RqC!XqKsxmXgxLyc*~9&!AvjVGa?F+Ag8T^g@pz0kZu6WkHPf420L-WksGfRWgi#ITiGCx*e7KB1T=ss9|W|F1wj{rg`8~z5lWZEGb4j%n>0a zLEyxBdX`E`N`B?Ur7Jp>78E>*BPg#aSQ_QR+2Rt2I+>uEb`bT#@o*emkixoD%`|L)Ts@QK`vX{5oukg3K5$0qxL6 z8i*ImqHizn=h{e`uyeC+N&E1kh^#7hC!P;CT4Jb@9*|1fjF_bwX9;llO z!7`0t2Yf{lSiQRlyTRyMLND7}Env1el*@aZdPezS<9if-*Ys zyLpp$Zb!@a0n%#-W-^BF=Etpnn^I67;G`}3{6EyeA6GP>U1K2v@7q2^zZZ|#&5-0d zeDJsJWAFRKg$QBrR}B+z|LzTf&<5y~|Lx9y(mHW-Lk};8^!*<=V33R|z{!K-6+x!- z#OXqrdyv(g|FV2U0~=s*c{|G|{IujSOlrXcc3#6O}3o7WaP_nvnuH z{%?2wgVu@oQ+i^&is6Lj5LABAlC9!}S8#4Th95}b|HUrVq7lWrC0E~Fy*PAbwoJ1V zxT7%)Dja*>d(A7BBi{`T}G5|2J}t2=CyM zeCIC%)~8$~7t{dUe_=n}`E~bnq4mF)5Qd^W)A}Me^hd+sjIG1F=^8Mdp0psSG^NPPM-xK>oRrRa7)$H%*4ySwl=9UiY_aojuAt zzqFC@SV~be{yZaRiH;VmlhMrhE?1$Mu>Y2ksG6F19>$H&k-_p80=AeaSv|6bgAs=d@V0ZFEr>(D1sllyxSybNT36)Q_tF zUL?vK2yHs?C{6eqR2gfbM^8~q$9wp%4M!P^l62UpaRggENtbtjm;TXz1dNF`KUH~s z)m>>Jw9TL;(= Ti11GA06$}Wb3HQhbmad4>|=xw literal 0 HcmV?d00001 diff --git a/docs/assets/getting-started/bs-getting-started-startup.png b/docs/assets/getting-started/bs-getting-started-startup.png new file mode 100644 index 0000000000000000000000000000000000000000..626f7b129737e512a36bfa168a7b73bfe201df08 GIT binary patch literal 108170 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 literal 0 HcmV?d00001 diff --git a/docs/assets/getting-started/bs-wizard.png b/docs/assets/getting-started/bs-wizard.png new file mode 100644 index 0000000000000000000000000000000000000000..679878e252d7f2c8c47eedcf1d610c0a297d8cbb GIT binary patch literal 20559 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 literal 0 HcmV?d00001 diff --git a/docs/getting-started/index.md b/docs/getting-started/index.md index b01afac5c3..3367fa2572 100644 --- a/docs/getting-started/index.md +++ b/docs/getting-started/index.md @@ -4,49 +4,87 @@ title: Getting Started description: Documentation on How to get started with Backstage --- -There are two different ways to get started with Backstage: +For most Backstage installations, installing the standalone app will bring +you the best and most streamlined experience. In this guide you will: -- **Recommended:** Create a standalone app -- **Contributors:** Clone the Backstage repository +- Deploy Backstage Standalone with npm packages +- Run Backstage Standalone with a SQLite in-memory database and demo content -Creating a standalone app makes it simpler to customize the application for your -needs and stay up to date with the project. You will depend on `@backstage` -packages from npm, making your app much smaller. This is the recommended -approach for most installations. +This guide assumes a basic understanding of working on a Linux based operating +system using tools like apt-get, npm, yarn, curl. Docker knowledge is also +helpful for making the best use of your Backstage installation. -If you want to contribute plugins or to the project in general, it's easier to -fork and clone the repository. The `@backstage` packages will be included in the -clone. That will let you stay up to date with the latest changes, and give you -an easier path to make Pull Requests. +If you are planning to contribute plugins or the project in general, we advise +you to use the [Getting Started for Contributers](https://backstage.io/docs/getting-started/running-backstage-locally) guide to +do a repository-based installation. + +### Prerequisites + +- Access to a linux based operating system +- An account with elevated rights (eg. via sudo) +- `curl` or `wget` installed +- Node.js Active LTS Release installed (currently v14) using one of these methods: + - Using `nvm` (recommended) + - [Installing nvm](https://github.com/nvm-sh/nvm#install--update-script) + - [Install and change Node version with nvm](https://nodejs.org/en/download/package-manager/#nvm) + - [Binary Download](https://nodejs.org/en/download/) + - [Package manager](https://nodejs.org/en/download/package-manager/) + - [Using NodeSource packages](https://github.com/nodesource/distributions/blob/master/README.md) +- `yarn` [Installation](https://classic.yarnpkg.com/en/docs/install) +- `docker` [installation](https://docs.docker.com/engine/install/) +- `git` [installation](https://github.com/git-guides/install-git) +- If the system is not directly accessible over your network, the following + ports need to be opened: 3000, 7000 ### Create your Backstage App -Backstage provides the `@backstage/create-app` package to scaffold standalone -instances of Backstage. You will need to have -[Node.js](https://nodejs.org/en/download/) Active LTS Release installed -(currently v14) and [Yarn](https://classic.yarnpkg.com/en/docs/install). You -will also need to have [Docker](https://docs.docker.com/engine/install/) -installed to use some features like Software Templates and TechDocs. - -Using `npx` you can then run the following to create an app in a chosen -subdirectory of your current working directory: +To install the Backstage Standalone app, we make use of `npx`, a tool to run Node executables +straight from the registry. Running the command below will install Backstage. The wizard will +create a subdirectory inside your current working directory. ```bash npx @backstage/create-app ``` -You will be taken through a wizard to create your app. You can read more about -this process in [Create an app](./create-an-app.md). +The wizard will ask you -### Contributing to Backstage +- The name of the app, which will also be the name of the directory +- The database type to use for the backend. For this guide, you'll be using the SQLite option. -If you intend to make changes to the core project's packages, certain plugins, -or project documentation, then you can fork and clone -[https://github.com/backstage/backstage](https://github.com/backstage/backstage). +

+ Screenshot of the wizard asking for a name for the app, and a selection menu for the database. +

-This will let you run the latest code off of the `master` branch, fix bugs or -contribute new features, run test suites, etc. +### Run the Backstage app -You can read more in our -[CONTRIBUTING](https://github.com/backstage/backstage/blob/master/CONTRIBUTING.md) -guide, which can help you get setup with a Backstage development environment. +When the installation is complete you can go to the application directory and start the app. The `yarn dev` command will run both the frontend and backend as separate processes (named `[0]` and `[1]`) in the same window. + +```bash +cd my-backstage-app +yarn dev +``` + +

+ Screenshot of the command output, with the message webpack compiled successfully. +

+ +It might take a little while, but as soon as the message `[0] webpack compiled successfully` appears, you can open a browser and directly navigate to +your freshly installed Backstage portal at `http://localhost:3000`. You can start exploring the demo immediately. + +

+ Screenshot of the Backstage portal homescreen. +

+ +Congratulations! That should be it. Let us know how it went: +[on discord](https://discord.gg/EBHEGzX), file issues for any +[feature](https://github.com/backstage/backstage/issues/new?labels=help+wanted&template=feature_template.md) +or +[plugin suggestions](https://github.com/backstage/backstage/issues/new?labels=plugin&template=plugin_template.md&title=%5BPlugin%5D+THE+PLUGIN+NAME), +or [bugs](https://github.com/backstage/backstage/issues/new?labels=bug&template=bug_template.md) +you have, and feel free to [contribute](https://github.com/backstage/backstage/blob/master/CONTRIBUTING.md)! + +The most common next steps are to configure Backstage, add a plugin and moving to a more persistend database: + +- [Setting up Authentication](https://github.com/backstage/backstage/tree/master/plugins/auth-backend#github) +- [Switching from SQLite to PostgresQL](https://backstage.io/docs/tutorials/switching-sqlite-postgres) +- [Adding a plugin](https://backstage.io/docs/getting-started/configure-app-with-plugins) From 91ae05b8ec4c77aa7a1bebb5bbc49573415b0ec5 Mon Sep 17 00:00:00 2001 From: Suzanne Daniels Date: Thu, 7 Oct 2021 17:07:30 +0200 Subject: [PATCH 02/41] rename img to match styleguide Signed-off-by: Suzanne Daniels --- docs/assets/getting-started/portal.png | Bin 0 -> 134243 bytes docs/assets/getting-started/startup.png | Bin 0 -> 108170 bytes docs/assets/getting-started/wizard.png | Bin 0 -> 20559 bytes docs/getting-started/index.md | 6 +++--- 4 files changed, 3 insertions(+), 3 deletions(-) create mode 100644 docs/assets/getting-started/portal.png create mode 100644 docs/assets/getting-started/startup.png create mode 100644 docs/assets/getting-started/wizard.png diff --git a/docs/assets/getting-started/portal.png b/docs/assets/getting-started/portal.png new file mode 100644 index 0000000000000000000000000000000000000000..f16ad447578e8dea7fa38153f0dabeb6b405e452 GIT binary patch literal 134243 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ℑ+j8SaEY2kXTA>Oa_e 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 B-(jaB!iTr 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 Ti11GA06$}Wb3HQhbmad4>|=xw literal 0 HcmV?d00001 diff --git a/docs/assets/getting-started/startup.png b/docs/assets/getting-started/startup.png new file mode 100644 index 0000000000000000000000000000000000000000..626f7b129737e512a36bfa168a7b73bfe201df08 GIT binary patch literal 108170 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 literal 0 HcmV?d00001 diff --git a/docs/assets/getting-started/wizard.png b/docs/assets/getting-started/wizard.png new file mode 100644 index 0000000000000000000000000000000000000000..679878e252d7f2c8c47eedcf1d610c0a297d8cbb GIT binary patch literal 20559 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 literal 0 HcmV?d00001 diff --git a/docs/getting-started/index.md b/docs/getting-started/index.md index 3367fa2572..ab217d7655 100644 --- a/docs/getting-started/index.md +++ b/docs/getting-started/index.md @@ -52,7 +52,7 @@ The wizard will ask you - The database type to use for the backend. For this guide, you'll be using the SQLite option.

- Screenshot of the wizard asking for a name for the app, and a selection menu for the database. + Screenshot of the wizard asking for a name for the app, and a selection menu for the database.

### Run the Backstage app @@ -65,14 +65,14 @@ yarn dev ```

- Screenshot of the command output, with the message webpack compiled successfully. + Screenshot of the command output, with the message webpack compiled successfully.

It might take a little while, but as soon as the message `[0] webpack compiled successfully` appears, you can open a browser and directly navigate to your freshly installed Backstage portal at `http://localhost:3000`. You can start exploring the demo immediately.

- Screenshot of the Backstage portal homescreen. + Screenshot of the Backstage portal homescreen.

Congratulations! That should be it. Let us know how it went: From 9daaf366c1958d2db83876682220aaaacf308fff Mon Sep 17 00:00:00 2001 From: Suzanne Daniels Date: Thu, 7 Oct 2021 17:08:37 +0200 Subject: [PATCH 03/41] Delete imgs Signed-off-by: Suzanne Daniels --- .../bs-getting-started-portal.png | Bin 134243 -> 0 bytes .../bs-getting-started-startup.png | Bin 108170 -> 0 bytes docs/assets/getting-started/bs-wizard.png | Bin 20559 -> 0 bytes 3 files changed, 0 insertions(+), 0 deletions(-) delete mode 100644 docs/assets/getting-started/bs-getting-started-portal.png delete mode 100644 docs/assets/getting-started/bs-getting-started-startup.png delete mode 100644 docs/assets/getting-started/bs-wizard.png diff --git a/docs/assets/getting-started/bs-getting-started-portal.png b/docs/assets/getting-started/bs-getting-started-portal.png deleted file mode 100644 index f16ad447578e8dea7fa38153f0dabeb6b405e452..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 134243 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ℑ+j8SaEY2kXTA>Oa_e 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 B-(jaB!iTr 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 Ti11GA06$}Wb3HQhbmad4>|=xw diff --git a/docs/assets/getting-started/bs-getting-started-startup.png b/docs/assets/getting-started/bs-getting-started-startup.png deleted file mode 100644 index 626f7b129737e512a36bfa168a7b73bfe201df08..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 108170 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 diff --git a/docs/assets/getting-started/bs-wizard.png b/docs/assets/getting-started/bs-wizard.png deleted file mode 100644 index 679878e252d7f2c8c47eedcf1d610c0a297d8cbb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20559 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 From 11cc634c0821da2521cfc6013786c675da9b0701 Mon Sep 17 00:00:00 2001 From: Suzanne Daniels Date: Thu, 7 Oct 2021 17:27:56 +0200 Subject: [PATCH 04/41] Fixing typo in contributors Signed-off-by: Suzanne Daniels --- docs/getting-started/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/getting-started/index.md b/docs/getting-started/index.md index ab217d7655..12662ddfeb 100644 --- a/docs/getting-started/index.md +++ b/docs/getting-started/index.md @@ -15,7 +15,7 @@ system using tools like apt-get, npm, yarn, curl. Docker knowledge is also helpful for making the best use of your Backstage installation. If you are planning to contribute plugins or the project in general, we advise -you to use the [Getting Started for Contributers](https://backstage.io/docs/getting-started/running-backstage-locally) guide to +you to use the [Getting Started for Contributors](https://backstage.io/docs/getting-started/running-backstage-locally) guide to do a repository-based installation. ### Prerequisites From e27844cd073d58dedd444dcc0863c462874030e7 Mon Sep 17 00:00:00 2001 From: Suzanne Daniels Date: Thu, 7 Oct 2021 18:14:29 +0200 Subject: [PATCH 05/41] Prettierified index.md Signed-off-by: Suzanne Daniels --- docs/getting-started/index.md | 49 +++++++++++++++++++++-------------- 1 file changed, 30 insertions(+), 19 deletions(-) diff --git a/docs/getting-started/index.md b/docs/getting-started/index.md index 12662ddfeb..7df10f8bb6 100644 --- a/docs/getting-started/index.md +++ b/docs/getting-started/index.md @@ -4,8 +4,8 @@ title: Getting Started description: Documentation on How to get started with Backstage --- -For most Backstage installations, installing the standalone app will bring -you the best and most streamlined experience. In this guide you will: +For most Backstage installations, installing the standalone app will bring you +the best and most streamlined experience. In this guide you will: - Deploy Backstage Standalone with npm packages - Run Backstage Standalone with a SQLite in-memory database and demo content @@ -15,15 +15,17 @@ system using tools like apt-get, npm, yarn, curl. Docker knowledge is also helpful for making the best use of your Backstage installation. If you are planning to contribute plugins or the project in general, we advise -you to use the [Getting Started for Contributors](https://backstage.io/docs/getting-started/running-backstage-locally) guide to -do a repository-based installation. +you to use the +[Getting Started for Contributors](https://backstage.io/docs/getting-started/running-backstage-locally) +guide to do a repository-based installation. ### Prerequisites -- Access to a linux based operating system -- An account with elevated rights (eg. via sudo) +- Access to a Linux based operating system +- An account with elevated rights - `curl` or `wget` installed -- Node.js Active LTS Release installed (currently v14) using one of these methods: +- Node.js Active LTS Release installed (currently v14) using one of these + methods: - Using `nvm` (recommended) - [Installing nvm](https://github.com/nvm-sh/nvm#install--update-script) - [Install and change Node version with nvm](https://nodejs.org/en/download/package-manager/#nvm) @@ -38,9 +40,10 @@ do a repository-based installation. ### Create your Backstage App -To install the Backstage Standalone app, we make use of `npx`, a tool to run Node executables -straight from the registry. Running the command below will install Backstage. The wizard will -create a subdirectory inside your current working directory. +To install the Backstage Standalone app, we make use of `npx`, a tool to run +Node executables straight from the registry. Running the command below will +install Backstage. The wizard will create a subdirectory inside your current +working directory. ```bash npx @backstage/create-app @@ -49,7 +52,8 @@ npx @backstage/create-app The wizard will ask you - The name of the app, which will also be the name of the directory -- The database type to use for the backend. For this guide, you'll be using the SQLite option. +- The database type to use for the backend. For this guide, you'll be using the + SQLite option.

Screenshot of the wizard asking for a name for the app, and a selection menu for the database. @@ -57,7 +61,9 @@ The wizard will ask you ### Run the Backstage app -When the installation is complete you can go to the application directory and start the app. The `yarn dev` command will run both the frontend and backend as separate processes (named `[0]` and `[1]`) in the same window. +When the installation is complete you can go to the application directory and +start the app. The `yarn dev` command will run both the frontend and backend as +separate processes (named `[0]` and `[1]`) in the same window. ```bash cd my-backstage-app @@ -65,14 +71,16 @@ yarn dev ```

- Screenshot of the command output, with the message webpack compiled successfully. + Screenshot of the command output, with the message web pack compiled successfully.

-It might take a little while, but as soon as the message `[0] webpack compiled successfully` appears, you can open a browser and directly navigate to -your freshly installed Backstage portal at `http://localhost:3000`. You can start exploring the demo immediately. +It might take a little while, but as soon as the message +`[0] webpack compiled successfully` appears, you can open a browser and directly +navigate to your freshly installed Backstage portal at `http://localhost:3000`. +You can start exploring the demo immediately.

- Screenshot of the Backstage portal homescreen. + Screenshot of the Backstage portal.

Congratulations! That should be it. Let us know how it went: @@ -80,10 +88,13 @@ Congratulations! That should be it. Let us know how it went: [feature](https://github.com/backstage/backstage/issues/new?labels=help+wanted&template=feature_template.md) or [plugin suggestions](https://github.com/backstage/backstage/issues/new?labels=plugin&template=plugin_template.md&title=%5BPlugin%5D+THE+PLUGIN+NAME), -or [bugs](https://github.com/backstage/backstage/issues/new?labels=bug&template=bug_template.md) -you have, and feel free to [contribute](https://github.com/backstage/backstage/blob/master/CONTRIBUTING.md)! +or +[bugs](https://github.com/backstage/backstage/issues/new?labels=bug&template=bug_template.md) +you have, and feel free to +[contribute](https://github.com/backstage/backstage/blob/master/CONTRIBUTING.md)! -The most common next steps are to configure Backstage, add a plugin and moving to a more persistend database: +The most common next steps are to configure Backstage, add a plugin and moving +to a more persistent database: - [Setting up Authentication](https://github.com/backstage/backstage/tree/master/plugins/auth-backend#github) - [Switching from SQLite to PostgresQL](https://backstage.io/docs/tutorials/switching-sqlite-postgres) From 6859c42db992b434a309f97fe310d3f2032a79db Mon Sep 17 00:00:00 2001 From: Suzanne Daniels Date: Sat, 9 Oct 2021 07:56:10 +0200 Subject: [PATCH 06/41] Update docs/getting-started/index.md Co-authored-by: Tim Hansen Signed-off-by: Suzanne Daniels --- docs/getting-started/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/getting-started/index.md b/docs/getting-started/index.md index 7df10f8bb6..6d6b11b866 100644 --- a/docs/getting-started/index.md +++ b/docs/getting-started/index.md @@ -21,7 +21,7 @@ guide to do a repository-based installation. ### Prerequisites -- Access to a Linux based operating system +- Access to a Linux-based operating system, such as Linux, MacOS or [Windows Subsystem for Linux](https://docs.microsoft.com/en-us/windows/wsl/) - An account with elevated rights - `curl` or `wget` installed - Node.js Active LTS Release installed (currently v14) using one of these From df0ba2bb026974f655c86668bd827f2b08209960 Mon Sep 17 00:00:00 2001 From: Suzanne Daniels Date: Sat, 9 Oct 2021 07:56:37 +0200 Subject: [PATCH 07/41] Update docs/getting-started/index.md Co-authored-by: Tim Hansen Signed-off-by: Suzanne Daniels --- docs/getting-started/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/getting-started/index.md b/docs/getting-started/index.md index 6d6b11b866..82c1f3c075 100644 --- a/docs/getting-started/index.md +++ b/docs/getting-started/index.md @@ -96,6 +96,6 @@ you have, and feel free to The most common next steps are to configure Backstage, add a plugin and moving to a more persistent database: -- [Setting up Authentication](https://github.com/backstage/backstage/tree/master/plugins/auth-backend#github) +- [Setting up Authentication](https://backstage.io/docs/auth/) - [Switching from SQLite to PostgresQL](https://backstage.io/docs/tutorials/switching-sqlite-postgres) - [Adding a plugin](https://backstage.io/docs/getting-started/configure-app-with-plugins) From d207f6ee9ed84e421a9ff78294ec81df9a25ae9e Mon Sep 17 00:00:00 2001 From: Colton Padden Date: Mon, 11 Oct 2021 10:49:40 -0400 Subject: [PATCH 08/41] Support optional bucketRootPath in GCS and S3 techdocs publishers - Updated app-config.yaml with additional configuration parameters: - techdocs.publisher.awsS3.bucketRootPath - techdocs.publisher.googleGcs.bucketRootPath - Updated `fromConfig` and constructors to support additional `bucketRootPath` parameters. - Updated publish method to support `bucketRootPath` in constructing destination file path - Updated `fetchTechDocsMetadata` to use `bucketRootPath` - Updated `docsRouter` to use `docsRouter` when retrieving files - When using both legacy casing, and a bucket root path, additional logic was added to prevent the root path's case from being modified as previously legacy casing would be applied to the first three entities of the URI - Updated `hasDocsBeenGenerated` to use `bucketRootPath` - Added additional unit tests for new configurations to updated, and new methods Signed-off-by: Colton Padden --- .changeset/quick-walls-know.md | 5 + docs/features/techdocs/configuration.md | 8 ++ .../src/stages/publish/awsS3.test.ts | 97 ++++++++++++++++++ .../src/stages/publish/awsS3.ts | 34 ++++++- .../src/stages/publish/googleStorage.test.ts | 98 +++++++++++++++++++ .../src/stages/publish/googleStorage.ts | 35 +++++-- .../src/stages/publish/helpers.test.ts | 83 ++++++++++++++++ .../src/stages/publish/helpers.ts | 32 +++++- 8 files changed, 380 insertions(+), 12 deletions(-) create mode 100644 .changeset/quick-walls-know.md diff --git a/.changeset/quick-walls-know.md b/.changeset/quick-walls-know.md new file mode 100644 index 0000000000..6e7d7faa03 --- /dev/null +++ b/.changeset/quick-walls-know.md @@ -0,0 +1,5 @@ +--- +'@backstage/techdocs-common': minor +--- + +Support optional bucketRootPath in S3 and GCS publishers diff --git a/docs/features/techdocs/configuration.md b/docs/features/techdocs/configuration.md index 46cbc2a8a2..fbe9f36540 100644 --- a/docs/features/techdocs/configuration.md +++ b/docs/features/techdocs/configuration.md @@ -63,6 +63,10 @@ techdocs: # (Required) Cloud Storage Bucket Name bucketName: 'techdocs-storage' + # (Optional) Location in storage bucket to save files + # If not set, the default location will be the root of the storage bucket + bucketRootPath: '/' + # (Optional) An API key is required to write to a storage bucket. # If missing, GOOGLE_APPLICATION_CREDENTIALS environment variable will be used. # https://cloud.google.com/docs/authentication/production @@ -75,6 +79,10 @@ techdocs: # (Required) AWS S3 Bucket Name bucketName: 'techdocs-storage' + # (Optional) Location in storage bucket to save files + # If not set, the default location will be the root of the storage bucket + bucketRootPath: '/' + # (Optional) An API key is required to write to a storage bucket. # If not set, environment variables or aws config file will be used to authenticate. # https://docs.aws.amazon.com/sdk-for-javascript/v3/developer-guide/loading-node-credentials-environment.html diff --git a/packages/techdocs-common/src/stages/publish/awsS3.test.ts b/packages/techdocs-common/src/stages/publish/awsS3.test.ts index 35bc80438b..f9c2a9c3b2 100644 --- a/packages/techdocs-common/src/stages/publish/awsS3.test.ts +++ b/packages/techdocs-common/src/stages/publish/awsS3.test.ts @@ -43,9 +43,11 @@ const loggerErrorSpy = jest.spyOn(logger, 'error'); const createPublisherFromConfig = ({ bucketName = 'bucketName', + bucketRootPath = '/', legacyUseCaseSensitiveTripletPaths = false, }: { bucketName?: string; + bucketRootPath?: string; legacyUseCaseSensitiveTripletPaths?: boolean; } = {}) => { const mockConfig = new ConfigReader({ @@ -59,6 +61,7 @@ const createPublisherFromConfig = ({ secretAccessKey: 'secretAccessKey', }, bucketName, + bucketRootPath, }, }, legacyUseCaseSensitiveTripletPaths, @@ -153,6 +156,21 @@ describe('AwsS3Publish', () => { expect(await publisher.publish({ entity, directory })).toBeUndefined(); }); + it('should publish a directory when root path is specified', async () => { + const publisher = createPublisherFromConfig({ + bucketRootPath: 'backstage-data/techdocs', + }); + expect(await publisher.publish({ entity, directory })).toBeUndefined(); + }); + + it('should publish a directory when root path is specified and legacy casing is used', async () => { + const publisher = createPublisherFromConfig({ + bucketRootPath: 'backstage-data/techdocs', + legacyUseCaseSensitiveTripletPaths: true, + }); + expect(await publisher.publish({ entity, directory })).toBeUndefined(); + }); + it('should fail to publish a directory', async () => { const wrongPathToGeneratedDirectory = path.join( rootDir, @@ -214,6 +232,23 @@ describe('AwsS3Publish', () => { expect(await publisher.hasDocsBeenGenerated(entity)).toBe(true); }); + it('should return true if docs has been generated if root path is specified', async () => { + const publisher = createPublisherFromConfig({ + bucketRootPath: 'backstage-data/techdocs', + }); + await publisher.publish({ entity, directory }); + expect(await publisher.hasDocsBeenGenerated(entity)).toBe(true); + }); + + it('should return true if docs has been generated if root path is specified and legacy casing is used', async () => { + const publisher = createPublisherFromConfig({ + bucketRootPath: 'backstage-data/techdocs', + legacyUseCaseSensitiveTripletPaths: true, + }); + await publisher.publish({ entity, directory }); + expect(await publisher.hasDocsBeenGenerated(entity)).toBe(true); + }); + it('should return false if docs has not been generated', async () => { const publisher = createPublisherFromConfig(); expect( @@ -247,6 +282,27 @@ describe('AwsS3Publish', () => { ); }); + it('should return tech docs metadata even if root path is specified', async () => { + const publisher = createPublisherFromConfig({ + bucketRootPath: 'backstage-data/techdocs', + }); + await publisher.publish({ entity, directory }); + expect(await publisher.fetchTechDocsMetadata(entityName)).toStrictEqual( + techdocsMetadata, + ); + }); + + it('should return tech docs metadata if root path is specified and legacy casing is used', async () => { + const publisher = createPublisherFromConfig({ + bucketRootPath: 'backstage-data/techdocs', + legacyUseCaseSensitiveTripletPaths: true, + }); + await publisher.publish({ entity, directory }); + expect(await publisher.fetchTechDocsMetadata(entityName)).toStrictEqual( + techdocsMetadata, + ); + }); + it('should return tech docs metadata when json encoded with single quotes', async () => { const techdocsMetadataPath = path.join( directory, @@ -335,6 +391,47 @@ describe('AwsS3Publish', () => { expect(jsResponse.text).toEqual('found it too'); }); + it('should pass expected object path to bucket if root path is specified', async () => { + const rootPath = 'backstage-data/techdocs'; + const publisher = createPublisherFromConfig({ + bucketRootPath: rootPath, + }); + await publisher.publish({ entity, directory }); + app = express().use(publisher.docsRouter()); + + const pngResponse = await request(app).get( + `/${rootPath}/${entityTripletPath}/img/with%20spaces.png`, + ); + expect(Buffer.from(pngResponse.body).toString('utf8')).toEqual( + 'found it', + ); + const jsResponse = await request(app).get( + `/${rootPath}/${entityTripletPath}/some%20folder/also%20with%20spaces.js`, + ); + expect(jsResponse.text).toEqual('found it too'); + }); + + it('should pass expected object path to bucket if root path is specified and legacy case is enabled', async () => { + const rootPath = 'backstage-data/techdocs'; + const publisher = createPublisherFromConfig({ + bucketRootPath: rootPath, + legacyUseCaseSensitiveTripletPaths: true, + }); + await publisher.publish({ entity, directory }); + app = express().use(publisher.docsRouter()); + + const pngResponse = await request(app).get( + `/${rootPath}/${entityTripletPath}/img/with%20spaces.png`, + ); + expect(Buffer.from(pngResponse.body).toString('utf8')).toEqual( + 'found it', + ); + const jsResponse = await request(app).get( + `/${rootPath}/${entityTripletPath}/some%20folder/also%20with%20spaces.js`, + ); + expect(jsResponse.text).toEqual('found it too'); + }); + it('should pass text/plain content-type for html', async () => { const htmlResponse = await request(app).get( `/${entityTripletPath}/html/unsafe.html`, diff --git a/packages/techdocs-common/src/stages/publish/awsS3.ts b/packages/techdocs-common/src/stages/publish/awsS3.ts index f2e1b867ec..348a17e35a 100644 --- a/packages/techdocs-common/src/stages/publish/awsS3.ts +++ b/packages/techdocs-common/src/stages/publish/awsS3.ts @@ -33,6 +33,7 @@ import { getStaleFiles, lowerCaseEntityTriplet, lowerCaseEntityTripletInStoragePath, + normalizeExternalStorageRootPath, } from './helpers'; import { PublisherBase, @@ -66,6 +67,10 @@ export class AwsS3Publish implements PublisherBase { ); } + const bucketRootPath = normalizeExternalStorageRootPath( + config.getOptionalString('techdocs.publisher.awsS3.bucketRootPath') || '', + ); + // Credentials is an optional config. If missing, the default ways of authenticating AWS SDK V2 will be used. // 1. AWS environment variables // https://docs.aws.amazon.com/sdk-for-javascript/v2/developer-guide/loading-node-credentials-environment.html @@ -109,6 +114,7 @@ export class AwsS3Publish implements PublisherBase { return new AwsS3Publish( storageClient, bucketName, + bucketRootPath, legacyPathCasing, logger, ); @@ -148,11 +154,13 @@ export class AwsS3Publish implements PublisherBase { constructor( private readonly storageClient: aws.S3, private readonly bucketName: string, + private readonly bucketRootPath: string, private readonly legacyPathCasing: boolean, private readonly logger: Logger, ) { this.storageClient = storageClient; this.bucketName = bucketName; + this.bucketRootPath = bucketRootPath; this.legacyPathCasing = legacyPathCasing; this.logger = logger; } @@ -192,6 +200,8 @@ export class AwsS3Publish implements PublisherBase { */ async publish({ entity, directory }: PublishRequest): Promise { const useLegacyPathCasing = this.legacyPathCasing; + const bucketRootPath = this.bucketRootPath; + // First, try to retrieve a list of all individual files currently existing let existingFiles: string[] = []; try { @@ -199,6 +209,7 @@ export class AwsS3Publish implements PublisherBase { entity, undefined, useLegacyPathCasing, + bucketRootPath, ); existingFiles = await this.getAllObjectsFromBucket({ prefix: remoteFolder, @@ -228,6 +239,7 @@ export class AwsS3Publish implements PublisherBase { entity, relativeFilePath, useLegacyPathCasing, + bucketRootPath, ), Body: fileStream, }; @@ -255,6 +267,7 @@ export class AwsS3Publish implements PublisherBase { entity, path.relative(directory, absoluteFilePath), useLegacyPathCasing, + bucketRootPath, ), ); const staleFiles = getStaleFiles(relativeFilesToUpload, existingFiles); @@ -287,10 +300,12 @@ export class AwsS3Publish implements PublisherBase { try { return await new Promise(async (resolve, reject) => { const entityTriplet = `${entityName.namespace}/${entityName.kind}/${entityName.name}`; - const entityRootDir = this.legacyPathCasing + const entityDir = this.legacyPathCasing ? entityTriplet : lowerCaseEntityTriplet(entityTriplet); + const entityRootDir = path.join(this.bucketRootPath, entityDir); + const stream = this.storageClient .getObject({ Bucket: this.bucketName, @@ -329,10 +344,17 @@ export class AwsS3Publish implements PublisherBase { // Decode and trim the leading forward slash const decodedUri = decodeURI(req.path.replace(/^\//, '')); + // Root path is removed from the Uri so that legacy casing can be applied + // to the entity triplet without manipulating the root path + const decodedUriNoRoot = path.relative(this.bucketRootPath, decodedUri); + // filePath example - /default/component/documented-component/index.html - const filePath = this.legacyPathCasing - ? decodedUri - : lowerCaseEntityTripletInStoragePath(decodedUri); + const filePathNoRoot = this.legacyPathCasing + ? decodedUriNoRoot + : lowerCaseEntityTripletInStoragePath(decodedUriNoRoot); + + // Re-prepend the root path to the relative file path + const filePath = path.join(this.bucketRootPath, filePathNoRoot); // Files with different extensions (CSS, HTML) need to be served with different headers const fileExtension = path.extname(filePath); @@ -366,10 +388,12 @@ export class AwsS3Publish implements PublisherBase { async hasDocsBeenGenerated(entity: Entity): Promise { try { const entityTriplet = `${entity.metadata.namespace}/${entity.kind}/${entity.metadata.name}`; - const entityRootDir = this.legacyPathCasing + const entityDir = this.legacyPathCasing ? entityTriplet : lowerCaseEntityTriplet(entityTriplet); + const entityRootDir = path.join(this.bucketRootPath, entityDir); + await this.storageClient .headObject({ Bucket: this.bucketName, diff --git a/packages/techdocs-common/src/stages/publish/googleStorage.test.ts b/packages/techdocs-common/src/stages/publish/googleStorage.test.ts index 0190128e6c..0b20b5b42a 100644 --- a/packages/techdocs-common/src/stages/publish/googleStorage.test.ts +++ b/packages/techdocs-common/src/stages/publish/googleStorage.test.ts @@ -43,9 +43,11 @@ jest.spyOn(logger, 'error').mockReturnValue(logger); const createPublisherFromConfig = ({ bucketName = 'bucketName', + bucketRootPath = '/', legacyUseCaseSensitiveTripletPaths = false, }: { bucketName?: string; + bucketRootPath?: string; legacyUseCaseSensitiveTripletPaths?: boolean; } = {}) => { const config = new ConfigReader({ @@ -56,6 +58,7 @@ const createPublisherFromConfig = ({ googleGcs: { credentials: '{}', bucketName, + bucketRootPath, }, }, legacyUseCaseSensitiveTripletPaths, @@ -149,6 +152,21 @@ describe('GoogleGCSPublish', () => { expect(await publisher.publish({ entity, directory })).toBeUndefined(); }); + it('should publish a directory when root path is specified', async () => { + const publisher = createPublisherFromConfig({ + bucketRootPath: 'backstage-data/techdocs', + }); + expect(await publisher.publish({ entity, directory })).toBeUndefined(); + }); + + it('should publish a directory when root path is specified and legacy casing is used', async () => { + const publisher = createPublisherFromConfig({ + bucketRootPath: 'backstage-data/techdocs', + legacyUseCaseSensitiveTripletPaths: true, + }); + expect(await publisher.publish({ entity, directory })).toBeUndefined(); + }); + it('should fail to publish a directory', async () => { const wrongPathToGeneratedDirectory = path.join( rootDir, @@ -212,6 +230,23 @@ describe('GoogleGCSPublish', () => { expect(await publisher.hasDocsBeenGenerated(entity)).toBe(true); }); + it('should return true if docs has been generated if root path is specified', async () => { + const publisher = createPublisherFromConfig({ + bucketRootPath: 'backstage-data/techdocs', + }); + await publisher.publish({ entity, directory }); + expect(await publisher.hasDocsBeenGenerated(entity)).toBe(true); + }); + + it('should return true if docs has been generated if root path is specified and legacy casing is used', async () => { + const publisher = createPublisherFromConfig({ + bucketRootPath: 'backstage-data/techdocs', + legacyUseCaseSensitiveTripletPaths: true, + }); + await publisher.publish({ entity, directory }); + expect(await publisher.hasDocsBeenGenerated(entity)).toBe(true); + }); + it('should return false if docs has not been generated', async () => { const publisher = createPublisherFromConfig(); expect( @@ -245,6 +280,27 @@ describe('GoogleGCSPublish', () => { ); }); + it('should return tech docs metadata even if root path is specified', async () => { + const publisher = createPublisherFromConfig({ + bucketRootPath: 'backstage-data/techdocs', + }); + await publisher.publish({ entity, directory }); + expect(await publisher.fetchTechDocsMetadata(entityName)).toStrictEqual( + techdocsMetadata, + ); + }); + + it('should return tech docs metadata if root path is specified and legacy casing is used', async () => { + const publisher = createPublisherFromConfig({ + bucketRootPath: 'backstage-data/techdocs', + legacyUseCaseSensitiveTripletPaths: true, + }); + await publisher.publish({ entity, directory }); + expect(await publisher.fetchTechDocsMetadata(entityName)).toStrictEqual( + techdocsMetadata, + ); + }); + it('should return tech docs metadata when json encoded with single quotes', async () => { const techdocsMetadataPath = path.join( directory, @@ -291,6 +347,7 @@ describe('GoogleGCSPublish', () => { describe('docsRouter', () => { const entityTripletPath = `${entity.metadata.namespace}/${entity.kind}/${entity.metadata.name}`; + // const entityTripletPath = let app: Express.Application; @@ -334,6 +391,47 @@ describe('GoogleGCSPublish', () => { expect(jsResponse.text).toEqual('found it too'); }); + it('should pass expected object path to bucket if root path is specified', async () => { + const rootPath = 'backstage-data/techdocs'; + const publisher = createPublisherFromConfig({ + bucketRootPath: rootPath, + }); + await publisher.publish({ entity, directory }); + app = express().use(publisher.docsRouter()); + + const pngResponse = await request(app).get( + `/${rootPath}/${entityTripletPath}/img/with%20spaces.png`, + ); + expect(Buffer.from(pngResponse.body).toString('utf8')).toEqual( + 'found it', + ); + const jsResponse = await request(app).get( + `/${rootPath}/${entityTripletPath}/some%20folder/also%20with%20spaces.js`, + ); + expect(jsResponse.text).toEqual('found it too'); + }); + + it('should pass expected object path to bucket if root path is specified and legacy case is enabled', async () => { + const rootPath = 'backstage-data/techdocs'; + const publisher = createPublisherFromConfig({ + bucketRootPath: rootPath, + legacyUseCaseSensitiveTripletPaths: true, + }); + await publisher.publish({ entity, directory }); + app = express().use(publisher.docsRouter()); + + const pngResponse = await request(app).get( + `/${rootPath}/${entityTripletPath}/img/with%20spaces.png`, + ); + expect(Buffer.from(pngResponse.body).toString('utf8')).toEqual( + 'found it', + ); + const jsResponse = await request(app).get( + `/${rootPath}/${entityTripletPath}/some%20folder/also%20with%20spaces.js`, + ); + expect(jsResponse.text).toEqual('found it too'); + }); + it('should pass text/plain content-type for html', async () => { const htmlResponse = await request(app).get( `/${entityTripletPath}/html/unsafe.html`, diff --git a/packages/techdocs-common/src/stages/publish/googleStorage.ts b/packages/techdocs-common/src/stages/publish/googleStorage.ts index 81bbd556eb..e1c0a2b7ea 100644 --- a/packages/techdocs-common/src/stages/publish/googleStorage.ts +++ b/packages/techdocs-common/src/stages/publish/googleStorage.ts @@ -29,6 +29,7 @@ import { bulkStorageOperation, getCloudPathForLocalPath, getStaleFiles, + normalizeExternalStorageRootPath, } from './helpers'; import { MigrateWriteStream } from './migrations'; import { @@ -50,6 +51,11 @@ export class GoogleGCSPublish implements PublisherBase { ); } + const bucketRootPath = normalizeExternalStorageRootPath( + config.getOptionalString('techdocs.publisher.googleGcs.bucketRootPath') || + '', + ); + // Credentials is an optional config. If missing, default GCS environment variables will be used. // Read more here https://cloud.google.com/docs/authentication/production const credentials = config.getOptionalString( @@ -80,6 +86,7 @@ export class GoogleGCSPublish implements PublisherBase { return new GoogleGCSPublish( storageClient, bucketName, + bucketRootPath, legacyPathCasing, logger, ); @@ -88,11 +95,13 @@ export class GoogleGCSPublish implements PublisherBase { constructor( private readonly storageClient: Storage, private readonly bucketName: string, + private readonly bucketRootPath: string, private readonly legacyPathCasing: boolean, private readonly logger: Logger, ) { this.storageClient = storageClient; this.bucketName = bucketName; + this.bucketRootPath = bucketRootPath; this.legacyPathCasing = legacyPathCasing; this.logger = logger; } @@ -131,6 +140,7 @@ export class GoogleGCSPublish implements PublisherBase { async publish({ entity, directory }: PublishRequest): Promise { const useLegacyPathCasing = this.legacyPathCasing; const bucket = this.storageClient.bucket(this.bucketName); + const bucketRootPath = this.bucketRootPath; // First, try to retrieve a list of all individual files currently existing let existingFiles: string[] = []; @@ -139,6 +149,7 @@ export class GoogleGCSPublish implements PublisherBase { entity, undefined, useLegacyPathCasing, + bucketRootPath, ); existingFiles = await this.getFilesForFolder(remoteFolder); } catch (e) { @@ -163,6 +174,7 @@ export class GoogleGCSPublish implements PublisherBase { entity, relativeFilePath, useLegacyPathCasing, + bucketRootPath, ), }); }, @@ -187,6 +199,7 @@ export class GoogleGCSPublish implements PublisherBase { entity, path.relative(directory, absoluteFilePath), useLegacyPathCasing, + bucketRootPath, ), ); const staleFiles = getStaleFiles(relativeFilesToUpload, existingFiles); @@ -211,10 +224,12 @@ export class GoogleGCSPublish implements PublisherBase { fetchTechDocsMetadata(entityName: EntityName): Promise { return new Promise((resolve, reject) => { const entityTriplet = `${entityName.namespace}/${entityName.kind}/${entityName.name}`; - const entityRootDir = this.legacyPathCasing + const entityDir = this.legacyPathCasing ? entityTriplet : lowerCaseEntityTriplet(entityTriplet); + const entityRootDir = path.join(this.bucketRootPath, entityDir); + const fileStreamChunks: Array = []; this.storageClient .bucket(this.bucketName) @@ -243,10 +258,16 @@ export class GoogleGCSPublish implements PublisherBase { // Decode and trim the leading forward slash const decodedUri = decodeURI(req.path.replace(/^\//, '')); - // filePath example - /default/component/documented-component/index.html - const filePath = this.legacyPathCasing - ? decodedUri - : lowerCaseEntityTripletInStoragePath(decodedUri); + // Root path is removed from the Uri so that legacy casing can be applied + // to the entity triplet without manipulating the root path + const decodedUriNoRoot = path.relative(this.bucketRootPath, decodedUri); + + const filePathNoRoot = this.legacyPathCasing + ? decodedUriNoRoot + : lowerCaseEntityTripletInStoragePath(decodedUriNoRoot); + + // Re-prepend the root path to the relative file path + const filePath = path.join(this.bucketRootPath, filePathNoRoot); // Files with different extensions (CSS, HTML) need to be served with different headers const fileExtension = path.extname(filePath); @@ -282,10 +303,12 @@ export class GoogleGCSPublish implements PublisherBase { async hasDocsBeenGenerated(entity: Entity): Promise { return new Promise(resolve => { const entityTriplet = `${entity.metadata.namespace}/${entity.kind}/${entity.metadata.name}`; - const entityRootDir = this.legacyPathCasing + const entityDir = this.legacyPathCasing ? entityTriplet : lowerCaseEntityTriplet(entityTriplet); + const entityRootDir = path.join(this.bucketRootPath, entityDir); + this.storageClient .bucket(this.bucketName) .file(`${entityRootDir}/index.html`) diff --git a/packages/techdocs-common/src/stages/publish/helpers.test.ts b/packages/techdocs-common/src/stages/publish/helpers.test.ts index a3571ef0ab..6245898586 100644 --- a/packages/techdocs-common/src/stages/publish/helpers.test.ts +++ b/packages/techdocs-common/src/stages/publish/helpers.test.ts @@ -25,6 +25,7 @@ import { bulkStorageOperation, lowerCaseEntityTriplet, lowerCaseEntityTripletInStoragePath, + normalizeExternalStorageRootPath, } from './helpers'; describe('getHeadersForFileExtension', () => { @@ -107,6 +108,34 @@ describe('lowerCaseEntityTripletInStoragePath', () => { }); }); +describe('normalizeExternalStorageRootPath', () => { + it('returns an empty string when empty string provided', () => { + const originalPath = ''; + const normalPath = normalizeExternalStorageRootPath(originalPath); + expect(normalPath).toBe(''); + }); + it('returns an empty string when only separator is provided', () => { + const originalPath = '/'; + const normalPath = normalizeExternalStorageRootPath(originalPath); + expect(normalPath).toBe(''); + }); + it('returns normalized path from path with leading and trailing sep', () => { + const originalPath = '/backstage-data/techdocs/'; + const normalPath = normalizeExternalStorageRootPath(originalPath); + expect(normalPath).toBe('backstage-data/techdocs'); + }); + it('returns normalized path from path without leading and trailing sep', () => { + const originalPath = 'backstage-data/techdocs'; + const normalPath = normalizeExternalStorageRootPath(originalPath); + expect(normalPath).toBe('backstage-data/techdocs'); + }); + it('returns normalized path from path with trailing sep', () => { + const originalPath = 'backstage-data/techdocs/'; + const normalPath = normalizeExternalStorageRootPath(originalPath); + expect(normalPath).toBe('backstage-data/techdocs'); + }); +}); + describe('getStaleFiles', () => { const defaultFiles = [ 'default/Component/backstage/index.html', @@ -172,6 +201,60 @@ describe('getCloudPathForLocalPath', () => { it('should throw error when entity is invalid', () => { expect(() => getCloudPathForLocalPath({} as Entity)).toThrow(); }); + + it('should prepend root directory to destination', () => { + const localPath = 'index/html'; + const rootPath = 'backstage-data/techdocs/'; + const remoteBucket = getCloudPathForLocalPath( + entity, + localPath, + false, + rootPath, + ); + expect(remoteBucket).toBe( + `backstage-data/techdocs/custom/component/backstage/${localPath}`, + ); + }); + + it('should add trailing seperator to root directory', () => { + const localPath = 'index/html'; + const rootPath = 'backstage-data/techdocs'; + const remoteBucket = getCloudPathForLocalPath( + entity, + localPath, + false, + rootPath, + ); + expect(remoteBucket).toBe( + `backstage-data/techdocs/custom/component/backstage/${localPath}`, + ); + }); + + it('should remove leading seperator from root directory', () => { + const localPath = 'index/html'; + const rootPath = '/backstage-data/techdocs/'; + const remoteBucket = getCloudPathForLocalPath( + entity, + localPath, + false, + rootPath, + ); + expect(remoteBucket).toBe( + `backstage-data/techdocs/custom/component/backstage/${localPath}`, + ); + }); + + it('should ignore seperator if root directory is explicitly defined', () => { + const localPath = 'index/html'; + const rootPath = '/'; + const remoteBucket = getCloudPathForLocalPath( + entity, + localPath, + false, + rootPath, + ); + expect(remoteBucket).toBe(`custom/component/backstage/${localPath}`); + }); }); describe('bulkStorageOperation', () => { diff --git a/packages/techdocs-common/src/stages/publish/helpers.ts b/packages/techdocs-common/src/stages/publish/helpers.ts index 9b935ccbfd..c23c72af38 100644 --- a/packages/techdocs-common/src/stages/publish/helpers.ts +++ b/packages/techdocs-common/src/stages/publish/helpers.ts @@ -140,6 +140,29 @@ export const lowerCaseEntityTripletInStoragePath = ( return lowerCaseEntityTriplet(parts.join(path.posix.sep)); }; +/** + * Take a posix path and return a path without leading and trailing + * separators + * + * @example + * normalizeExternalStorageRootPath('/backstage-data/techdocs/') + * // return backstage-data/techdocs + */ +export const normalizeExternalStorageRootPath = (posixPath: string): string => { + // remove leading slash + let normalizedPath = posixPath; + if (posixPath.startsWith(path.posix.sep)) { + normalizedPath = posixPath.slice(1); + } + + // remove trailing slash + if (normalizedPath.endsWith(path.posix.sep)) { + normalizedPath = normalizedPath.slice(0, normalizedPath.length - 1); + } + + return normalizedPath; +}; + // Only returns the files that existed previously and are not present anymore. export const getStaleFiles = ( newFiles: string[], @@ -157,6 +180,7 @@ export const getCloudPathForLocalPath = ( entity: Entity, localPath = '', useLegacyPathCasing = false, + externalStorageRootPath = '', ): string => { // Convert destination file path to a POSIX path for uploading. // GCS expects / as path separator and relativeFilePath will contain \\ on Windows. @@ -169,11 +193,17 @@ export const getCloudPathForLocalPath = ( }/${entity.kind}/${entity.metadata.name}`; const relativeFilePathTriplet = `${entityRootDir}/${relativeFilePathPosix}`; + const destination = useLegacyPathCasing ? relativeFilePathTriplet : lowerCaseEntityTriplet(relativeFilePathTriplet); - return destination; // Remote storage file relative path + const destinationWithRoot = path.join( + ...externalStorageRootPath.split(path.posix.sep), + destination, + ); + + return destinationWithRoot; // Remote storage file relative path }; // Perform rate limited generic operations by passing a function and a list of arguments From b34a8365b1e4610a8c4f204e9c3520fa07f02439 Mon Sep 17 00:00:00 2001 From: Suzanne Daniels Date: Tue, 12 Oct 2021 10:53:41 +0200 Subject: [PATCH 09/41] Prettier changes --- docs/getting-started/index.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/getting-started/index.md b/docs/getting-started/index.md index 82c1f3c075..9632be71bf 100644 --- a/docs/getting-started/index.md +++ b/docs/getting-started/index.md @@ -21,7 +21,8 @@ guide to do a repository-based installation. ### Prerequisites -- Access to a Linux-based operating system, such as Linux, MacOS or [Windows Subsystem for Linux](https://docs.microsoft.com/en-us/windows/wsl/) +- Access to a Linux-based operating system, such as Linux, MacOS or + [Windows Subsystem for Linux](https://docs.microsoft.com/en-us/windows/wsl/) - An account with elevated rights - `curl` or `wget` installed - Node.js Active LTS Release installed (currently v14) using one of these From eaa78edcbc304370836a3cc5dbca792a20ce869d Mon Sep 17 00:00:00 2001 From: mclarke47 Date: Tue, 19 Oct 2021 19:49:45 +0100 Subject: [PATCH 10/41] refactor and refresh k8s plugin at interval Signed-off-by: mclarke47 --- .../src/components/Cluster/Cluster.test.tsx | 60 ++++++++ .../Cluster.tsx} | 120 +--------------- .../{KubernetesContent => Cluster}/index.ts | 2 +- .../ErrorPanel.test.tsx | 0 .../ErrorPanel.tsx | 0 .../src/components/ErrorPanel/index.ts | 16 +++ .../KubernetesContent.test.tsx | 8 +- .../src/components/KubernetesContent.tsx | 130 ++++++++++++++++++ .../src/hooks/useKubernetesObjects.ts | 86 ++++++------ 9 files changed, 259 insertions(+), 163 deletions(-) create mode 100644 plugins/kubernetes/src/components/Cluster/Cluster.test.tsx rename plugins/kubernetes/src/components/{KubernetesContent/KubernetesContent.tsx => Cluster/Cluster.tsx} (52%) rename plugins/kubernetes/src/components/{KubernetesContent => Cluster}/index.ts (91%) rename plugins/kubernetes/src/components/{KubernetesContent => ErrorPanel}/ErrorPanel.test.tsx (100%) rename plugins/kubernetes/src/components/{KubernetesContent => ErrorPanel}/ErrorPanel.tsx (100%) create mode 100644 plugins/kubernetes/src/components/ErrorPanel/index.ts rename plugins/kubernetes/src/components/{KubernetesContent => }/KubernetesContent.test.tsx (95%) create mode 100644 plugins/kubernetes/src/components/KubernetesContent.tsx diff --git a/plugins/kubernetes/src/components/Cluster/Cluster.test.tsx b/plugins/kubernetes/src/components/Cluster/Cluster.test.tsx new file mode 100644 index 0000000000..ddadd95272 --- /dev/null +++ b/plugins/kubernetes/src/components/Cluster/Cluster.test.tsx @@ -0,0 +1,60 @@ +/* + * Copyright 2021 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import React from 'react'; +import { render } from '@testing-library/react'; +import { wrapInTestApp } from '@backstage/test-utils'; +import { Cluster } from './Cluster'; + +jest.mock('../../hooks'); +import * as oneDeployment from '../../__fixtures__/1-deployments.json'; + +describe('Cluster', () => { + it('render 1 cluster', async () => { + const { getByText } = render( + wrapInTestApp( + (), + } as any)} + />, + ), + ); + + expect(getByText('cluster-1')).toBeInTheDocument(); + expect(getByText('10 pods')).toBeInTheDocument(); + }); +}); diff --git a/plugins/kubernetes/src/components/KubernetesContent/KubernetesContent.tsx b/plugins/kubernetes/src/components/Cluster/Cluster.tsx similarity index 52% rename from plugins/kubernetes/src/components/KubernetesContent/KubernetesContent.tsx rename to plugins/kubernetes/src/components/Cluster/Cluster.tsx index 260c77ed9e..d238396f53 100644 --- a/plugins/kubernetes/src/components/KubernetesContent/KubernetesContent.tsx +++ b/plugins/kubernetes/src/components/Cluster/Cluster.tsx @@ -23,32 +23,20 @@ import { Grid, Typography, } from '@material-ui/core'; -import { Entity } from '@backstage/catalog-model'; import { ClusterObjects } from '@backstage/plugin-kubernetes-common'; -import { ErrorPanel } from './ErrorPanel'; import ExpandMoreIcon from '@material-ui/icons/ExpandMore'; import { DeploymentsAccordions } from '../DeploymentsAccordions'; -import { ErrorReporting } from '../ErrorReporting'; import { groupResponses } from '../../utils/response'; -import { DetectedError, detectErrors } from '../../error-detection'; import { IngressesAccordions } from '../IngressesAccordions'; import { ServicesAccordions } from '../ServicesAccordions'; import { CustomResources } from '../CustomResources'; -import EmptyStateImage from '../../assets/emptystate.svg'; import { ClusterContext, GroupedResponsesContext, PodNamesWithErrorsContext, - useKubernetesObjects, } from '../../hooks'; -import { - Content, - Page, - Progress, - StatusError, - StatusOK, -} from '@backstage/core-components'; +import { StatusError, StatusOK } from '@backstage/core-components'; type ClusterSummaryProps = { clusterName: string; @@ -117,7 +105,7 @@ type ClusterProps = { children?: React.ReactNode; }; -const Cluster = ({ clusterObjects, podsWithErrors }: ClusterProps) => { +export const Cluster = ({ clusterObjects, podsWithErrors }: ClusterProps) => { const groupedResponses = groupResponses(clusterObjects.resources); return ( @@ -153,107 +141,3 @@ const Cluster = ({ clusterObjects, podsWithErrors }: ClusterProps) => { ); }; - -type KubernetesContentProps = { entity: Entity; children?: React.ReactNode }; - -export const KubernetesContent = ({ entity }: KubernetesContentProps) => { - const { kubernetesObjects, error } = useKubernetesObjects(entity); - - const clustersWithErrors = - kubernetesObjects?.items.filter(r => r.errors.length > 0) ?? []; - - const detectedErrors = - kubernetesObjects !== undefined - ? detectErrors(kubernetesObjects) - : new Map(); - - return ( - - - {kubernetesObjects === undefined && error === undefined && } - - {/* errors retrieved from the kubernetes clusters */} - {clustersWithErrors.length > 0 && ( - - - - - - )} - - {/* other errors */} - {error !== undefined && ( - - - - - - )} - - {kubernetesObjects && ( - - - - - - - - - Your Clusters - - - {kubernetesObjects?.items.length <= 0 && ( - - - - No resources on any known clusters for{' '} - {entity.metadata.name} - - - - EmptyState - - - )} - {kubernetesObjects?.items.length > 0 && - kubernetesObjects?.items.map((item, i) => { - const podsWithErrors = new Set( - detectedErrors - .get(item.cluster.name) - ?.filter(de => de.kind === 'Pod') - .map(de => de.names) - .flat() ?? [], - ); - - return ( - - - - ); - })} - - - )} - - - ); -}; diff --git a/plugins/kubernetes/src/components/KubernetesContent/index.ts b/plugins/kubernetes/src/components/Cluster/index.ts similarity index 91% rename from plugins/kubernetes/src/components/KubernetesContent/index.ts rename to plugins/kubernetes/src/components/Cluster/index.ts index 1a77bd40b2..dc9df63d42 100644 --- a/plugins/kubernetes/src/components/KubernetesContent/index.ts +++ b/plugins/kubernetes/src/components/Cluster/index.ts @@ -13,4 +13,4 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -export { KubernetesContent } from './KubernetesContent'; +export { Cluster } from './Cluster'; diff --git a/plugins/kubernetes/src/components/KubernetesContent/ErrorPanel.test.tsx b/plugins/kubernetes/src/components/ErrorPanel/ErrorPanel.test.tsx similarity index 100% rename from plugins/kubernetes/src/components/KubernetesContent/ErrorPanel.test.tsx rename to plugins/kubernetes/src/components/ErrorPanel/ErrorPanel.test.tsx diff --git a/plugins/kubernetes/src/components/KubernetesContent/ErrorPanel.tsx b/plugins/kubernetes/src/components/ErrorPanel/ErrorPanel.tsx similarity index 100% rename from plugins/kubernetes/src/components/KubernetesContent/ErrorPanel.tsx rename to plugins/kubernetes/src/components/ErrorPanel/ErrorPanel.tsx diff --git a/plugins/kubernetes/src/components/ErrorPanel/index.ts b/plugins/kubernetes/src/components/ErrorPanel/index.ts new file mode 100644 index 0000000000..2d3778e2c2 --- /dev/null +++ b/plugins/kubernetes/src/components/ErrorPanel/index.ts @@ -0,0 +1,16 @@ +/* + * Copyright 2020 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +export { ErrorPanel } from './ErrorPanel'; diff --git a/plugins/kubernetes/src/components/KubernetesContent/KubernetesContent.test.tsx b/plugins/kubernetes/src/components/KubernetesContent.test.tsx similarity index 95% rename from plugins/kubernetes/src/components/KubernetesContent/KubernetesContent.test.tsx rename to plugins/kubernetes/src/components/KubernetesContent.test.tsx index cd4b902f5f..db8cd06782 100644 --- a/plugins/kubernetes/src/components/KubernetesContent/KubernetesContent.test.tsx +++ b/plugins/kubernetes/src/components/KubernetesContent.test.tsx @@ -18,11 +18,11 @@ import React from 'react'; import { render } from '@testing-library/react'; import { wrapInTestApp } from '@backstage/test-utils'; import { KubernetesContent } from './KubernetesContent'; -import { useKubernetesObjects } from '../../hooks'; +import { useKubernetesObjects } from '../hooks'; -jest.mock('../../hooks'); -import * as oneDeployment from '../../__fixtures__/1-deployments.json'; -import * as twoDeployments from '../../__fixtures__/2-deployments.json'; +jest.mock('../hooks'); +import * as oneDeployment from '../__fixtures__/1-deployments.json'; +import * as twoDeployments from '../__fixtures__/2-deployments.json'; describe('KubernetesContent', () => { it('render empty response', async () => { diff --git a/plugins/kubernetes/src/components/KubernetesContent.tsx b/plugins/kubernetes/src/components/KubernetesContent.tsx new file mode 100644 index 0000000000..036bcdb608 --- /dev/null +++ b/plugins/kubernetes/src/components/KubernetesContent.tsx @@ -0,0 +1,130 @@ +/* + * Copyright 2021 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import React from 'react'; +import { Divider, Grid, Typography } from '@material-ui/core'; +import { Entity } from '@backstage/catalog-model'; +import { ErrorPanel } from './ErrorPanel'; +import { ErrorReporting } from './ErrorReporting'; +import { DetectedError, detectErrors } from '../error-detection'; +import { Cluster } from './Cluster'; +import EmptyStateImage from '../assets/emptystate.svg'; +import { useKubernetesObjects } from '../hooks'; +import { Content, Page, Progress } from '@backstage/core-components'; + +type KubernetesContentProps = { entity: Entity; children?: React.ReactNode }; + +export const KubernetesContent = ({ entity }: KubernetesContentProps) => { + const { kubernetesObjects, error } = useKubernetesObjects(entity); + + const clustersWithErrors = + kubernetesObjects?.items.filter(r => r.errors.length > 0) ?? []; + + const detectedErrors = + kubernetesObjects !== undefined + ? detectErrors(kubernetesObjects) + : new Map(); + + return ( + + + {kubernetesObjects === undefined && error === undefined && } + + {/* errors retrieved from the kubernetes clusters */} + {clustersWithErrors.length > 0 && ( + + + + + + )} + + {/* other errors */} + {error !== undefined && ( + + + + + + )} + + {kubernetesObjects && ( + + + + + + + + + Your Clusters + + + {kubernetesObjects?.items.length <= 0 && ( + + + + No resources on any known clusters for{' '} + {entity.metadata.name} + + + + EmptyState + + + )} + {kubernetesObjects?.items.length > 0 && + kubernetesObjects?.items.map((item, i) => { + const podsWithErrors = new Set( + detectedErrors + .get(item.cluster.name) + ?.filter(de => de.kind === 'Pod') + .map(de => de.names) + .flat() ?? [], + ); + + return ( + + + + ); + })} + + + )} + + + ); +}; diff --git a/plugins/kubernetes/src/hooks/useKubernetesObjects.ts b/plugins/kubernetes/src/hooks/useKubernetesObjects.ts index 4f19816296..51df92e8d2 100644 --- a/plugins/kubernetes/src/hooks/useKubernetesObjects.ts +++ b/plugins/kubernetes/src/hooks/useKubernetesObjects.ts @@ -18,6 +18,7 @@ import { Entity } from '@backstage/catalog-model'; import { kubernetesApiRef } from '../api/types'; import { kubernetesAuthProvidersApiRef } from '../kubernetes-auth-provider/types'; import { useEffect, useState } from 'react'; +import { useInterval } from 'react-use'; import { KubernetesRequestBody, ObjectsByEntityResponse, @@ -38,51 +39,56 @@ export const useKubernetesObjects = (entity: Entity): KubernetesObjects => { const [error, setError] = useState(undefined); + const getObjects = async () => { + let clusters = []; + + try { + clusters = await kubernetesApi.getClusters(); + } catch (e) { + setError(e.message); + return; + } + + const authProviders: string[] = [ + ...new Set(clusters.map(c => c.authProvider)), + ]; + // For each auth type, invoke decorateRequestBodyForAuth on corresponding KubernetesAuthProvider + let requestBody: KubernetesRequestBody = { + entity, + }; + for (const authProviderStr of authProviders) { + // Multiple asyncs done sequentially instead of all at once to prevent same requestBody from being modified simultaneously + try { + requestBody = + await kubernetesAuthProvidersApi.decorateRequestBodyForAuth( + authProviderStr, + requestBody, + ); + } catch (e) { + setError(e.message); + return; + } + } + + try { + setKubernetesObjects(await kubernetesApi.getObjectsByEntity(requestBody)); + } catch (e) { + setError(e.message); + return; + } + }; + useEffect(() => { - (async () => { - let clusters = []; - - try { - clusters = await kubernetesApi.getClusters(); - } catch (e) { - setError(e.message); - return; - } - - const authProviders: string[] = [ - ...new Set(clusters.map(c => c.authProvider)), - ]; - // For each auth type, invoke decorateRequestBodyForAuth on corresponding KubernetesAuthProvider - let requestBody: KubernetesRequestBody = { - entity, - }; - for (const authProviderStr of authProviders) { - // Multiple asyncs done sequentially instead of all at once to prevent same requestBody from being modified simultaneously - try { - requestBody = - await kubernetesAuthProvidersApi.decorateRequestBodyForAuth( - authProviderStr, - requestBody, - ); - } catch (e) { - setError(e.message); - return; - } - } - - try { - setKubernetesObjects( - await kubernetesApi.getObjectsByEntity(requestBody), - ); - } catch (e) { - setError(e.message); - return; - } - })(); + getObjects(); /* eslint-disable react-hooks/exhaustive-deps */ }, [entity.metadata.name, kubernetesApi, kubernetesAuthProvidersApi]); /* eslint-enable react-hooks/exhaustive-deps */ + useInterval(() => { + getObjects(); + // TODO make configurable + }, 10000); + return { kubernetesObjects, error, From 14df942bae7c2087493ce7346fc15856020c84ad Mon Sep 17 00:00:00 2001 From: mclarke47 Date: Tue, 19 Oct 2021 19:51:18 +0100 Subject: [PATCH 11/41] add changeset Signed-off-by: mclarke47 --- .changeset/bright-plants-travel.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/bright-plants-travel.md diff --git a/.changeset/bright-plants-travel.md b/.changeset/bright-plants-travel.md new file mode 100644 index 0000000000..cbfd73e648 --- /dev/null +++ b/.changeset/bright-plants-travel.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-kubernetes': patch +--- + +Refresh Kubernetes plugin on interval From 4c08c30178e24c0dac5092d2310c04cd402b85bf Mon Sep 17 00:00:00 2001 From: mclarke47 Date: Tue, 19 Oct 2021 19:59:16 +0100 Subject: [PATCH 12/41] add refresh test Signed-off-by: mclarke47 --- .../src/hooks/useKubernetesObjects.test.ts | 28 ++++++++++++++++--- .../src/hooks/useKubernetesObjects.ts | 8 ++++-- 2 files changed, 29 insertions(+), 7 deletions(-) diff --git a/plugins/kubernetes/src/hooks/useKubernetesObjects.test.ts b/plugins/kubernetes/src/hooks/useKubernetesObjects.test.ts index 1d46eb14ea..0daeb93d73 100644 --- a/plugins/kubernetes/src/hooks/useKubernetesObjects.test.ts +++ b/plugins/kubernetes/src/hooks/useKubernetesObjects.test.ts @@ -71,10 +71,10 @@ describe('useKubernetesObjects', () => { const mockGetObjectsByEntity = jest.fn(); const mockDecorateRequestBodyForAuth = jest.fn(); - const expectMocksCalledCorrectly = () => { - expect(mockGetClusters).toBeCalledTimes(1); + const expectMocksCalledCorrectly = (numOfCalls: number = 1) => { + expect(mockGetClusters).toBeCalledTimes(numOfCalls); expect(mockGetClusters).toHaveBeenLastCalledWith(); - expect(mockDecorateRequestBodyForAuth).toBeCalledTimes(2); + expect(mockDecorateRequestBodyForAuth).toBeCalledTimes(numOfCalls * 2); expect(mockDecorateRequestBodyForAuth).toHaveBeenCalledWith('google', { entity, }); @@ -82,7 +82,7 @@ describe('useKubernetesObjects', () => { 'authprovider2', entityWithAuthToken, ); - expect(mockGetObjectsByEntity).toBeCalledTimes(1); + expect(mockGetObjectsByEntity).toBeCalledTimes(numOfCalls); expect(mockGetObjectsByEntity).toHaveBeenLastCalledWith( entityWithAuthToken, ); @@ -110,6 +110,26 @@ describe('useKubernetesObjects', () => { expectMocksCalledCorrectly(); }); + it('should update on an interval', async () => { + (useApi as any).mockReturnValue({ + getClusters: mockGetClusters.mockResolvedValue(getClustersResponse), + getObjectsByEntity: + mockGetObjectsByEntity.mockResolvedValue(mockResponse), + decorateRequestBodyForAuth: + mockDecorateRequestBodyForAuth.mockResolvedValue(entityWithAuthToken), + }); + const { result, waitForNextUpdate } = renderHook(() => + useKubernetesObjects(entity, 100), + ); + + await waitForNextUpdate(); + await waitForNextUpdate(); + + expect(result.current.error).toBeUndefined(); + expect(result.current.kubernetesObjects).toStrictEqual(mockResponse); + + expectMocksCalledCorrectly(2); + }); it('should return error when getObjectsByEntity throws', async () => { (useApi as any).mockReturnValue({ getClusters: mockGetClusters.mockResolvedValue(getClustersResponse), diff --git a/plugins/kubernetes/src/hooks/useKubernetesObjects.ts b/plugins/kubernetes/src/hooks/useKubernetesObjects.ts index 51df92e8d2..8a8ec260fa 100644 --- a/plugins/kubernetes/src/hooks/useKubernetesObjects.ts +++ b/plugins/kubernetes/src/hooks/useKubernetesObjects.ts @@ -30,7 +30,10 @@ export interface KubernetesObjects { error: string | undefined; } -export const useKubernetesObjects = (entity: Entity): KubernetesObjects => { +export const useKubernetesObjects = ( + entity: Entity, + intervalMs: number = 10000, +): KubernetesObjects => { const kubernetesApi = useApi(kubernetesApiRef); const kubernetesAuthProvidersApi = useApi(kubernetesAuthProvidersApiRef); const [kubernetesObjects, setKubernetesObjects] = useState< @@ -86,8 +89,7 @@ export const useKubernetesObjects = (entity: Entity): KubernetesObjects => { useInterval(() => { getObjects(); - // TODO make configurable - }, 10000); + }, intervalMs); return { kubernetesObjects, From bf5dfa2708f685b56e11c14c449d5a2ba5413e24 Mon Sep 17 00:00:00 2001 From: Ivan Stoiev Date: Thu, 21 Oct 2021 09:38:28 -0300 Subject: [PATCH 13/41] update datatogRum browser agent version Signed-off-by: Ivan Stoiev Signed-off-by: Ivan Stoiev --- packages/app/public/index.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/app/public/index.html b/packages/app/public/index.html index da4d3cf3b8..d86f09f0b0 100644 --- a/packages/app/public/index.html +++ b/packages/app/public/index.html @@ -83,7 +83,7 @@ window, document, 'script', - 'https://www.datadoghq-browser-agent.com/datadog-rum.js', + 'https://www.datadoghq-browser-agent.com/datadog-rum-v3.js', 'DD_RUM', ); DD_RUM.onReady(function () { From 109a66a7c7d549cedc128e4e73541e9dad185952 Mon Sep 17 00:00:00 2001 From: Colton Padden Date: Thu, 21 Oct 2021 09:42:52 -0400 Subject: [PATCH 14/41] make bucketRootPath the last argument to publish constructors Signed-off-by: Colton Padden --- packages/techdocs-common/src/stages/publish/awsS3.ts | 6 +++--- .../techdocs-common/src/stages/publish/googleStorage.ts | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/packages/techdocs-common/src/stages/publish/awsS3.ts b/packages/techdocs-common/src/stages/publish/awsS3.ts index 348a17e35a..317f296fce 100644 --- a/packages/techdocs-common/src/stages/publish/awsS3.ts +++ b/packages/techdocs-common/src/stages/publish/awsS3.ts @@ -114,9 +114,9 @@ export class AwsS3Publish implements PublisherBase { return new AwsS3Publish( storageClient, bucketName, - bucketRootPath, legacyPathCasing, logger, + bucketRootPath, ); } @@ -154,15 +154,15 @@ export class AwsS3Publish implements PublisherBase { constructor( private readonly storageClient: aws.S3, private readonly bucketName: string, - private readonly bucketRootPath: string, private readonly legacyPathCasing: boolean, private readonly logger: Logger, + private readonly bucketRootPath: string, ) { this.storageClient = storageClient; this.bucketName = bucketName; - this.bucketRootPath = bucketRootPath; this.legacyPathCasing = legacyPathCasing; this.logger = logger; + this.bucketRootPath = bucketRootPath; } /** diff --git a/packages/techdocs-common/src/stages/publish/googleStorage.ts b/packages/techdocs-common/src/stages/publish/googleStorage.ts index e1c0a2b7ea..51be9eeea5 100644 --- a/packages/techdocs-common/src/stages/publish/googleStorage.ts +++ b/packages/techdocs-common/src/stages/publish/googleStorage.ts @@ -86,24 +86,24 @@ export class GoogleGCSPublish implements PublisherBase { return new GoogleGCSPublish( storageClient, bucketName, - bucketRootPath, legacyPathCasing, logger, + bucketRootPath, ); } constructor( private readonly storageClient: Storage, private readonly bucketName: string, - private readonly bucketRootPath: string, private readonly legacyPathCasing: boolean, private readonly logger: Logger, + private readonly bucketRootPath: string, ) { this.storageClient = storageClient; this.bucketName = bucketName; - this.bucketRootPath = bucketRootPath; this.legacyPathCasing = legacyPathCasing; this.logger = logger; + this.bucketRootPath = bucketRootPath; } /** From a9a8c6f7c51793fbc4727ca409ae52d89ea7e8ca Mon Sep 17 00:00:00 2001 From: Colton Padden Date: Thu, 21 Oct 2021 10:36:59 -0400 Subject: [PATCH 15/41] Scroll to the top of reader content when primary navigation link is clicked When navigating between pages using the primary sidebar navigation menu, scroll to the top of the generated markdown content via `.scrollIntoView()`. Signed-off-by: Colton Padden --- .changeset/dull-news-visit.md | 5 +++++ plugins/techdocs/src/reader/components/Reader.tsx | 5 +++++ 2 files changed, 10 insertions(+) create mode 100644 .changeset/dull-news-visit.md diff --git a/.changeset/dull-news-visit.md b/.changeset/dull-news-visit.md new file mode 100644 index 0000000000..e1fab41ebf --- /dev/null +++ b/.changeset/dull-news-visit.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-techdocs': patch +--- + +Reader will now scroll to the top of the page when navigating between pages diff --git a/plugins/techdocs/src/reader/components/Reader.tsx b/plugins/techdocs/src/reader/components/Reader.tsx index 7307961772..9bb0a7bbad 100644 --- a/plugins/techdocs/src/reader/components/Reader.tsx +++ b/plugins/techdocs/src/reader/components/Reader.tsx @@ -321,6 +321,7 @@ export const useTechDocsReaderDom = (): Element | null => { baseUrl: window.location.origin, onClick: (_: MouseEvent, url: string) => { const parsedUrl = new URL(url); + // hash exists when anchor is clicked on secondary sidebar if (parsedUrl.hash) { navigate(`${parsedUrl.pathname}${parsedUrl.hash}`); // Scroll to hash if it's on the current page @@ -329,6 +330,10 @@ export const useTechDocsReaderDom = (): Element | null => { ?.scrollIntoView(); } else { navigate(parsedUrl.pathname); + // Scroll to top of reader if primary sidebar link is clicked + transformedElement + ?.querySelector('.md-content__inner') + ?.scrollIntoView(); } }, }), From 97231f55816098607dd5d68823bf830568839bee Mon Sep 17 00:00:00 2001 From: rodion Date: Thu, 21 Oct 2021 21:39:47 +0300 Subject: [PATCH 16/41] fix: sentry plugin allows search query parameter specified by documentation https://docs.sentry.io/api/events/list-a-projects-issues/ Signed-off-by: rodion --- .changeset/cold-wolves-eat.md | 5 +++++ plugins/sentry/api-report.md | 14 ++++++++++++-- plugins/sentry/src/api/production-api.ts | 10 ++++++++-- plugins/sentry/src/api/sentry-api.ts | 6 +++++- .../SentryIssuesWidget/SentryIssuesWidget.tsx | 6 ++++-- 5 files changed, 34 insertions(+), 7 deletions(-) create mode 100644 .changeset/cold-wolves-eat.md diff --git a/.changeset/cold-wolves-eat.md b/.changeset/cold-wolves-eat.md new file mode 100644 index 0000000000..fa3a2180b2 --- /dev/null +++ b/.changeset/cold-wolves-eat.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-sentry': patch +--- + +feature: sentry-plugin allows passing search query for listing issues diff --git a/plugins/sentry/api-report.md b/plugins/sentry/api-report.md index 7143272284..89c1dd1bca 100644 --- a/plugins/sentry/api-report.md +++ b/plugins/sentry/api-report.md @@ -36,7 +36,11 @@ export class MockSentryApi implements SentryApi { export class ProductionSentryApi implements SentryApi { constructor(discoveryApi: DiscoveryApi, organization: string); // (undocumented) - fetchIssues(project: string, statsFor: string): Promise; + fetchIssues( + project: string, + statsFor: string, + query: string, + ): Promise; } // Warning: (ae-missing-release-tag) "Router" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) @@ -49,7 +53,11 @@ export const Router: ({ entity }: { entity: Entity }) => JSX.Element; // @public (undocumented) export interface SentryApi { // (undocumented) - fetchIssues(project: string, statsFor: string): Promise; + fetchIssues( + project: string, + statsFor: string, + query: string, + ): Promise; } // Warning: (ae-missing-release-tag) "sentryApiRef" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) @@ -100,10 +108,12 @@ export const SentryIssuesWidget: ({ entity, statsFor, variant, + query, }: { entity: Entity; statsFor?: '12h' | '24h' | undefined; variant?: InfoCardVariants | undefined; + query?: string | undefined; }) => JSX.Element; // Warning: (ae-missing-release-tag) "sentryPlugin" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) diff --git a/plugins/sentry/src/api/production-api.ts b/plugins/sentry/src/api/production-api.ts index e634650f96..d9ece065d3 100644 --- a/plugins/sentry/src/api/production-api.ts +++ b/plugins/sentry/src/api/production-api.ts @@ -24,15 +24,21 @@ export class ProductionSentryApi implements SentryApi { private readonly organization: string, ) {} - async fetchIssues(project: string, statsFor: string): Promise { + async fetchIssues( + project: string, + statsFor: string, + query: string, + ): Promise { if (!project) { return []; } const apiUrl = `${await this.discoveryApi.getBaseUrl('proxy')}/sentry/api`; + const queryPart = query ? `&query=${query}` : ''; + const response = await fetch( - `${apiUrl}/0/projects/${this.organization}/${project}/issues/?statsPeriod=${statsFor}`, + `${apiUrl}/0/projects/${this.organization}/${project}/issues/?statsPeriod=${statsFor}${queryPart}`, ); if (response.status >= 400 && response.status < 600) { diff --git a/plugins/sentry/src/api/sentry-api.ts b/plugins/sentry/src/api/sentry-api.ts index a755ca0941..5c0fb318a6 100644 --- a/plugins/sentry/src/api/sentry-api.ts +++ b/plugins/sentry/src/api/sentry-api.ts @@ -23,5 +23,9 @@ export const sentryApiRef = createApiRef({ }); export interface SentryApi { - fetchIssues(project: string, statsFor: string): Promise; + fetchIssues( + project: string, + statsFor: string, + query: string, + ): Promise; } diff --git a/plugins/sentry/src/components/SentryIssuesWidget/SentryIssuesWidget.tsx b/plugins/sentry/src/components/SentryIssuesWidget/SentryIssuesWidget.tsx index 46198e4b93..349ce61128 100644 --- a/plugins/sentry/src/components/SentryIssuesWidget/SentryIssuesWidget.tsx +++ b/plugins/sentry/src/components/SentryIssuesWidget/SentryIssuesWidget.tsx @@ -38,10 +38,12 @@ export const SentryIssuesWidget = ({ entity, statsFor = '24h', variant = 'gridItem', + query = '', }: { entity: Entity; statsFor?: '24h' | '12h'; variant?: InfoCardVariants; + query?: string; }) => { const errorApi = useApi(errorApiRef); const sentryApi = useApi(sentryApiRef); @@ -49,8 +51,8 @@ export const SentryIssuesWidget = ({ const projectId = useProjectSlug(entity); const { loading, value, error } = useAsync( - () => sentryApi.fetchIssues(projectId, statsFor), - [sentryApi, statsFor, projectId], + () => sentryApi.fetchIssues(projectId, statsFor, query), + [sentryApi, statsFor, projectId, query], ); useEffect(() => { From 9a9c630ad87e042b77b55616d0fedcceb61d60f8 Mon Sep 17 00:00:00 2001 From: mclarke47 Date: Thu, 21 Oct 2021 22:01:27 +0100 Subject: [PATCH 17/41] better changeset message Signed-off-by: mclarke47 --- .changeset/bright-plants-travel.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.changeset/bright-plants-travel.md b/.changeset/bright-plants-travel.md index cbfd73e648..ad8a77d17b 100644 --- a/.changeset/bright-plants-travel.md +++ b/.changeset/bright-plants-travel.md @@ -2,4 +2,4 @@ '@backstage/plugin-kubernetes': patch --- -Refresh Kubernetes plugin on interval +The Kubernetes plugin will now re-fetch the kubernetes objects every ten seconds (not current configurable), this allows users to track the progress of deployments without refreshing the browser. From 4f14d881c4972757e36a241317f06a0bc7cce984 Mon Sep 17 00:00:00 2001 From: Johan Haals Date: Thu, 21 Oct 2021 13:56:45 +0200 Subject: [PATCH 18/41] Move test-utils-core into test-utils - Deprecates methods in test-utils-core - Migrates code intotest-utils - Updates documentation - Export missing types Signed-off-by: Johan Haals --- packages/test-utils-core/api-report.md | 41 +--- .../test-utils-core/src/testUtils/Keyboard.js | 3 + .../src/testUtils/logCollector.ts | 41 +++- .../src/testUtils/testingLibrary.ts | 16 +- packages/test-utils/api-report.md | 138 +++++++++-- packages/test-utils/package.json | 1 - packages/test-utils/src/index.ts | 1 - packages/test-utils/src/testUtils/Keyboard.js | 225 ++++++++++++++++++ .../test-utils/src/testUtils/Keyboard.test.js | 108 +++++++++ .../apis/AnalyticsApi/MockAnalyticsApi.ts | 5 + .../testUtils/apis/ErrorApi/MockErrorApi.ts | 20 +- .../src/testUtils/apis/ErrorApi/index.ts | 1 + .../apis/StorageApi/MockStorageApi.ts | 8 + .../test-utils/src/testUtils/appWrappers.tsx | 15 +- packages/test-utils/src/testUtils/index.tsx | 4 + .../src/testUtils/logCollector.test.ts | 96 ++++++++ .../test-utils/src/testUtils/logCollector.ts | 140 +++++++++++ .../src/testUtils/mockBreakpoint.ts | 2 +- .../src/testUtils/testingLibrary.ts | 42 ++++ 19 files changed, 831 insertions(+), 76 deletions(-) create mode 100644 packages/test-utils/src/testUtils/Keyboard.js create mode 100644 packages/test-utils/src/testUtils/Keyboard.test.js create mode 100644 packages/test-utils/src/testUtils/logCollector.test.ts create mode 100644 packages/test-utils/src/testUtils/logCollector.ts create mode 100644 packages/test-utils/src/testUtils/testingLibrary.ts diff --git a/packages/test-utils-core/api-report.md b/packages/test-utils-core/api-report.md index 4dad7a3a8a..60d4b5b0f7 100644 --- a/packages/test-utils-core/api-report.md +++ b/packages/test-utils-core/api-report.md @@ -6,21 +6,17 @@ import { ReactElement } from 'react'; import { RenderResult } from '@testing-library/react'; -// Warning: (ae-missing-release-tag) "AsyncLogCollector" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) -// -// @public (undocumented) +// @public @deprecated (undocumented) export type AsyncLogCollector = () => Promise; -// Warning: (ae-missing-release-tag) "CollectedLogs" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) -// -// @public (undocumented) +// @public @deprecated (undocumented) export type CollectedLogs = { [key in T]: string[]; }; -// Warning: (ae-missing-release-tag) "Keyboard" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// Warning: (tsdoc-missing-deprecation-message) The @deprecated block must include a deprecation message, e.g. describing the recommended alternative // -// @public (undocumented) +// @public @deprecated (undocumented) export class Keyboard { constructor( target: any, @@ -66,48 +62,35 @@ export class Keyboard { static typeDebug(target: any, input: any): Promise; } -// Warning: (ae-missing-release-tag) "LogCollector" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) -// -// @public (undocumented) +// @public @deprecated (undocumented) export type LogCollector = AsyncLogCollector | SyncLogCollector; -// Warning: (ae-missing-release-tag) "LogFuncs" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) -// -// @public (undocumented) +// @public @deprecated (undocumented) export type LogFuncs = 'log' | 'warn' | 'error'; -// Warning: (ae-missing-release-tag) "renderWithEffects" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) -// -// @public (undocumented) +// @public @deprecated export function renderWithEffects(nodes: ReactElement): Promise; -// Warning: (ae-missing-release-tag) "SyncLogCollector" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) -// -// @public (undocumented) +// @public @deprecated (undocumented) export type SyncLogCollector = () => void; -// Warning: (ae-missing-release-tag) "withLogCollector" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) -// Warning: (ae-missing-release-tag) "withLogCollector" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) -// Warning: (ae-missing-release-tag) "withLogCollector" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) -// Warning: (ae-missing-release-tag) "withLogCollector" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) -// -// @public (undocumented) +// @public @deprecated export function withLogCollector( callback: AsyncLogCollector, ): Promise>; -// @public (undocumented) +// @public @deprecated export function withLogCollector( callback: SyncLogCollector, ): CollectedLogs; -// @public (undocumented) +// @public @deprecated export function withLogCollector( logsToCollect: T[], callback: AsyncLogCollector, ): Promise>; -// @public (undocumented) +// @public @deprecated export function withLogCollector( logsToCollect: T[], callback: SyncLogCollector, diff --git a/packages/test-utils-core/src/testUtils/Keyboard.js b/packages/test-utils-core/src/testUtils/Keyboard.js index 3f45ca90f6..b0600eb78d 100644 --- a/packages/test-utils-core/src/testUtils/Keyboard.js +++ b/packages/test-utils-core/src/testUtils/Keyboard.js @@ -23,6 +23,9 @@ const codes = { Esc: 27, }; +/** + * @public + * @deprecated because of no usages. */ export class Keyboard { static async type(target, input) { await new Keyboard(target).type(input); diff --git a/packages/test-utils-core/src/testUtils/logCollector.ts b/packages/test-utils-core/src/testUtils/logCollector.ts index 3180010529..22f06e172b 100644 --- a/packages/test-utils-core/src/testUtils/logCollector.ts +++ b/packages/test-utils-core/src/testUtils/logCollector.ts @@ -16,36 +16,69 @@ /* eslint-disable no-console */ +/** + * @public + * @deprecated import from test-utils instead */ export type LogFuncs = 'log' | 'warn' | 'error'; +/** + * @public + * @deprecated import from test-utils instead */ export type AsyncLogCollector = () => Promise; +/** + * @public + * @deprecated import from test-utils instead */ export type SyncLogCollector = () => void; +/** + * @public + * @deprecated import from test-utils instead */ export type LogCollector = AsyncLogCollector | SyncLogCollector; +/** + * @public + * @deprecated import from test-utils instead */ export type CollectedLogs = { [key in T]: string[] }; const allCategories = ['log', 'warn', 'error']; -// Asynchronous log collector with that collects all categories +/** + * Asynchronous log collector with that collects all categories + * @public + * @deprecated import from test-utils instead */ export function withLogCollector( callback: AsyncLogCollector, ): Promise>; -// Synchronous log collector with that collects all categories +/** + * Synchronous log collector with that collects all categories + * @public + * @deprecated import from test-utils instead */ export function withLogCollector( callback: SyncLogCollector, ): CollectedLogs; -// Asynchronous log collector with that only collects selected categories +/** + * Asynchronous log collector with that only collects selected categories + * @public + * @deprecated import from test-utils instead + */ + export function withLogCollector( logsToCollect: T[], callback: AsyncLogCollector, ): Promise>; -// Synchronous log collector with that only collects selected categories +/** + * Synchronous log collector with that only collects selected categories + * @public + * @deprecated import from test-utils instead */ export function withLogCollector( logsToCollect: T[], callback: SyncLogCollector, ): CollectedLogs; +/** + * @public + * @deprecated import from test-utils instead + * */ export function withLogCollector( logsToCollect: LogFuncs[] | LogCollector, callback?: LogCollector, diff --git a/packages/test-utils-core/src/testUtils/testingLibrary.ts b/packages/test-utils-core/src/testUtils/testingLibrary.ts index 48e5132825..953a414968 100644 --- a/packages/test-utils-core/src/testUtils/testingLibrary.ts +++ b/packages/test-utils-core/src/testUtils/testingLibrary.ts @@ -18,11 +18,17 @@ import { ReactElement } from 'react'; import { act } from 'react-dom/test-utils'; import { render, RenderResult } from '@testing-library/react'; -// Components using useEffect to perform an asynchronous action (such as fetch) must be rendered within an async -// act call to properly get the final state, even with mocked responses. This utility method makes the signature a bit -// cleaner, since act doesn't return the result of the evaluated function. -// https://github.com/testing-library/react-testing-library/issues/281 -// https://github.com/facebook/react/pull/14853 +/** + * Simplifies rendering of async components in by taking care of the wrapping inside act + * @remarks + * Components using useEffect to perform an asynchronous action (such as fetch) must be rendered within an async + * act call to properly get the final state, even with mocked responses. This utility method makes the signature a bit + * cleaner, since act doesn't return the result of the evaluated function. + * https://github.com/testing-library/react-testing-library/issues/281 + * https://github.com/facebook/react/pull/14853 + * @public + * @deprecated import from test-utils instead + */ export async function renderWithEffects( nodes: ReactElement, ): Promise { diff --git a/packages/test-utils/api-report.md b/packages/test-utils/api-report.md index f4b3fe12bb..b432141fa1 100644 --- a/packages/test-utils/api-report.md +++ b/packages/test-utils/api-report.md @@ -17,9 +17,73 @@ import { RouteRef } from '@backstage/core-plugin-api'; import { StorageApi } from '@backstage/core-plugin-api'; import { StorageValueChange } from '@backstage/core-plugin-api'; -// Warning: (ae-missing-release-tag) "MockAnalyticsApi" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) -// -// @public (undocumented) +// @public +export type AsyncLogCollector = () => Promise; + +// @public +export type CollectedLogs = { + [key in T]: string[]; +}; + +// @public +export type ErrorWithContext = { + error: Error; + context?: ErrorContext; +}; + +// @public @deprecated (undocumented) +export class Keyboard { + constructor( + target: any, + { + debug, + }?: { + debug?: boolean | undefined; + }, + ); + // (undocumented) + click(): Promise; + // (undocumented) + debug: boolean; + // (undocumented) + document: any; + // (undocumented) + enter(value: any): Promise; + // (undocumented) + escape(): Promise; + // (undocumented) + get focused(): any; + // (undocumented) + static fromReadableInput(input: any): any; + // (undocumented) + _log(message: any, ...args: any[]): void; + // (undocumented) + _pretty(element: any): string; + // (undocumented) + send(chars: any): Promise; + // (undocumented) + _sendKey(key: any, charCode: any, action: any): Promise; + // (undocumented) + tab(): Promise; + // (undocumented) + static toReadableInput(chars: any): any; + // (undocumented) + toString(): string; + // (undocumented) + static type(target: any, input: any): Promise; + // (undocumented) + type(input: any): Promise; + // (undocumented) + static typeDebug(target: any, input: any): Promise; +} + +// @public +export type LogCollector = AsyncLogCollector | SyncLogCollector; + +// @public +export type LogFuncs = 'log' | 'warn' | 'error'; + +// @public export class MockAnalyticsApi implements AnalyticsApi { // (undocumented) captureEvent({ @@ -33,9 +97,6 @@ export class MockAnalyticsApi implements AnalyticsApi { getEvents(): AnalyticsEvent[]; } -// Warning: (tsdoc-param-tag-missing-hyphen) The @param block should be followed by a parameter name and then a hyphen -// Warning: (ae-missing-release-tag) "mockBreakpoint" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) -// // @public export function mockBreakpoint({ matches, @@ -43,19 +104,14 @@ export function mockBreakpoint({ matches?: boolean | undefined; }): void; -// Warning: (ae-missing-release-tag) "MockErrorApi" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) -// -// @public (undocumented) +// @public export class MockErrorApi implements ErrorApi { - // Warning: (ae-forgotten-export) The symbol "Options" needs to be exported by the entry point index.d.ts - constructor(options?: Options); + constructor(options?: MockErrorApiOptions); // (undocumented) error$(): Observable<{ error: Error; context?: ErrorContext; }>; - // Warning: (ae-forgotten-export) The symbol "ErrorWithContext" needs to be exported by the entry point index.d.ts - // // (undocumented) getErrors(): ErrorWithContext[]; // (undocumented) @@ -64,9 +120,12 @@ export class MockErrorApi implements ErrorApi { waitForError(pattern: RegExp, timeoutMs?: number): Promise; } -// Warning: (ae-missing-release-tag) "MockStorageApi" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) -// -// @public (undocumented) +// @public +export type MockErrorApiOptions = { + collect?: boolean; +}; + +// @public export class MockStorageApi implements StorageApi { // (undocumented) static create(data?: MockStorageBucket): MockStorageApi; @@ -82,9 +141,7 @@ export class MockStorageApi implements StorageApi { set(key: string, data: T): Promise; } -// Warning: (ae-missing-release-tag) "MockStorageBucket" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) -// -// @public (undocumented) +// @public export type MockStorageBucket = { [key: string]: any; }; @@ -100,22 +157,51 @@ export const msw: { }) => void; }; -// Warning: (ae-forgotten-export) The symbol "TestAppOptions" needs to be exported by the entry point index.d.ts -// Warning: (ae-missing-release-tag) "renderInTestApp" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) -// // @public export function renderInTestApp( Component: ComponentType | ReactNode, options?: TestAppOptions, ): Promise; -// Warning: (ae-missing-release-tag) "wrapInTestApp" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) -// +// @public +export function renderWithEffects(nodes: ReactElement): Promise; + +// @public +export type SyncLogCollector = () => void; + +// @public +export type TestAppOptions = { + routeEntries?: string[]; + mountedRoutes?: { + [path: string]: RouteRef | ExternalRouteRef; + }; +}; + +// @public +export function withLogCollector( + callback: AsyncLogCollector, +): Promise>; + +// @public +export function withLogCollector( + callback: SyncLogCollector, +): CollectedLogs; + +// @public +export function withLogCollector( + logsToCollect: T[], + callback: AsyncLogCollector, +): Promise>; + +// @public +export function withLogCollector( + logsToCollect: T[], + callback: SyncLogCollector, +): CollectedLogs; + // @public export function wrapInTestApp( Component: ComponentType | ReactNode, options?: TestAppOptions, ): ReactElement; - -export * from '@backstage/test-utils-core'; ``` diff --git a/packages/test-utils/package.json b/packages/test-utils/package.json index 22dc950bd4..44a2bb1e15 100644 --- a/packages/test-utils/package.json +++ b/packages/test-utils/package.json @@ -31,7 +31,6 @@ "dependencies": { "@backstage/core-app-api": "^0.1.18", "@backstage/core-plugin-api": "^0.1.11", - "@backstage/test-utils-core": "^0.1.3", "@backstage/theme": "^0.2.11", "@material-ui/core": "^4.12.2", "@testing-library/jest-dom": "^5.10.1", diff --git a/packages/test-utils/src/index.ts b/packages/test-utils/src/index.ts index 545a5b9961..83a955baa7 100644 --- a/packages/test-utils/src/index.ts +++ b/packages/test-utils/src/index.ts @@ -21,4 +21,3 @@ */ export * from './testUtils'; -export * from '@backstage/test-utils-core'; diff --git a/packages/test-utils/src/testUtils/Keyboard.js b/packages/test-utils/src/testUtils/Keyboard.js new file mode 100644 index 0000000000..3f4724d562 --- /dev/null +++ b/packages/test-utils/src/testUtils/Keyboard.js @@ -0,0 +1,225 @@ +/* + * Copyright 2020 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { act, fireEvent } from '@testing-library/react'; + +const codes = { + Tab: 9, + Enter: 10, + Click: 17 /* This keyboard can click, deal with it */, + Esc: 27, +}; + +/** + * @public + * @deprecated because it has no usages. Perhaps resurfaced in the future when need be. + */ +export class Keyboard { + static async type(target, input) { + await new Keyboard(target).type(input); + } + + static async typeDebug(target, input) { + await new Keyboard(target, { debug: true }).type(input); + } + + static toReadableInput(chars) { + return chars.split('').map(char => { + switch (char.charCodeAt(0)) { + case codes.Tab: + return ''; + case codes.Enter: + return ''; + case codes.Click: + return ''; + case codes.Esc: + return ''; + default: + return char; + } + }); + } + + static fromReadableInput(input) { + return input.trim().replace(/\s*<([a-zA-Z]+)>\s*/g, (match, name) => { + if (name in codes) { + return String.fromCharCode(codes[name]); + } + throw new Error(`Unknown char name: '${name}'`); + }); + } + + constructor(target, { debug = false } = {}) { + this.debug = debug; + + if (target.ownerDocument) { + this.document = target.ownerDocument; + } else if (target.baseElement) { + this.document = target.baseElement.ownerDocument; + } else { + throw new TypeError( + 'Keyboard(target): target must be DOM node or react-testing-library render() output', + ); + } + } + + toString() { + return `Keyboard{document=${this.document}, debug=${this.debug}}`; + } + + _log(message, ...args) { + if (this.debug) { + // eslint-disable-next-line no-console + console.log(`[Keyboard] ${message}`, ...args); + } + } + + _pretty(element) { + const attrs = [...element.attributes] + .map(attr => `${attr.name}="${attr.value}"`) + .join(' '); + return `<${element.nodeName.toLocaleLowerCase('en-US')} ${attrs}>`; + } + + get focused() { + return this.document.activeElement; + } + + async type(input) { + this._log( + `sending sequence '${input}' with initial focus ${this._pretty( + this.focused, + )}`, + ); + await this.send(Keyboard.fromReadableInput(input)); + } + + async send(chars) { + for (const key of chars.split('')) { + const charCode = key.charCodeAt(0); + + if (charCode === codes.Tab) { + await this.tab(); + continue; + } + + const focused = this.focused; + if (!focused || focused === this.document.body) { + throw Error( + `No element focused in document while trying to type '${Keyboard.toReadableInput( + chars, + )}'`, + ); + } + const nextValue = (focused.value || '') + key; + + if (charCode >= 32) { + await this._sendKey(key, charCode, () => { + this._log( + `sending +${key} = '${nextValue}' to ${this._pretty(focused)}`, + ); + fireEvent.change(focused, { + target: { value: nextValue }, + bubbles: true, + cancelable: true, + }); + }); + } else if (charCode === codes.Enter) { + await this.enter(focused.value || ''); + } else if (charCode === codes.Esc) { + await this.escape(); + } else if (charCode === codes.Click) { + await this.click(); + } else { + throw new Error(`Unsupported char code, ${charCode}`); + } + } + } + + async click() { + this._log(`clicking ${this._pretty(this.focused)}`); + await act(async () => fireEvent.click(this.focused)); + } + + async tab() { + await this._sendKey('Tab', codes.Tab, () => { + const focusable = this.document.querySelectorAll( + [ + 'a[href]', + 'area[href]', + 'input:not([disabled])', + 'select:not([disabled])', + 'textarea:not([disabled])', + 'button:not([disabled])', + 'iframe', + 'object', + 'embed', + '*[tabindex]', + '*[contenteditable]', + ].join(','), + ); + + const tabbable = [...focusable].filter(el => { + return el.tabIndex >= 0; + }); + + const focused = this.document.activeElement; + const focusedIndex = tabbable.indexOf(focused); + const nextFocus = tabbable[focusedIndex + (1 % tabbable.length)]; + + this._log( + `tabbing to ${this._pretty(nextFocus)} ${this.focused.textContent}`, + ); + nextFocus.focus(); + }); + } + + async enter(value) { + this._log(`submitting '${value}' via ${this._pretty(this.focused)}`); + await act(() => + this._sendKey('Enter', codes.Enter, () => { + if (this.focused.type === 'button') { + fireEvent.click(this.focused, { target: { value } }); + } else { + fireEvent.submit(this.focused, { + target: { value }, + bubbles: true, + cancelable: true, + }); + } + }), + ); + } + + async escape() { + this._log(`escape from ${this._pretty(this.focused)}`); + await act(async () => this._sendKey('Escape', codes.Esc)); + } + + async _sendKey(key, charCode, action) { + const event = { key, charCode, keyCode: charCode, which: charCode }; + const focused = this.focused; + + if (fireEvent.keyDown(focused, event)) { + if (fireEvent.keyPress(focused, event)) { + if (action) { + action(); + } + } + } + fireEvent.keyUp(focused, event); + } +} diff --git a/packages/test-utils/src/testUtils/Keyboard.test.js b/packages/test-utils/src/testUtils/Keyboard.test.js new file mode 100644 index 0000000000..41ee3a12d6 --- /dev/null +++ b/packages/test-utils/src/testUtils/Keyboard.test.js @@ -0,0 +1,108 @@ +/* + * Copyright 2020 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import React from 'react'; +import { Keyboard } from './Keyboard'; +import { render } from '@testing-library/react'; + +describe('testUtils.Keyboard', () => { + it('types into some inputs with focus and submits a form', async () => { + const typed1 = []; + const typed2 = []; + const typed3 = []; + + let submitted = false; + const handleSubmit = event => { + event.preventDefault(); + submitted = true; + }; + + const rendered = render( +
+ typed1.push(value)} /> + typed2.push(value)} + /* eslint-disable-next-line jsx-a11y/no-autofocus */ + autoFocus + /> + typed3.push(value)} /> +
, + ); + + const keyboard = new Keyboard(rendered); + await keyboard.send('xy'); + await keyboard.tab(); + await keyboard.send('abc'); + await keyboard.enter(); + + expect(typed1).toEqual([]); + expect(typed2).toEqual(['x', 'xy']); + expect(typed3).toEqual(['a', 'ab', 'abc']); + expect(submitted).toBe(true); + }); + + it('can use Keyboard.type to send readable input', async () => { + const typed1 = []; + const typed2 = []; + const typed3 = []; + + let submitted = false; + const handleSubmit = event => { + event.preventDefault(); + submitted = true; + }; + + const rendered = render( +
+ typed1.push(value)} + /> + typed2.push(value)} + /> + typed3.push(value)} + /> +
, + ); + + await Keyboard.type(rendered, ' a b c '); + + expect(typed1).toEqual(['1a']); + expect(typed2).toEqual(['2b']); + expect(typed3).toEqual(['3c']); + expect(submitted).toBe(true); + }); + + it('should be able to navigate a radio input with click', async () => { + const selections = []; + + const rendered = render( +
selections.push(value)}> + + + +
, + ); + + await Keyboard.type(rendered, ' '); + + expect(selections).toEqual(['a', 'c']); + }); +}); diff --git a/packages/test-utils/src/testUtils/apis/AnalyticsApi/MockAnalyticsApi.ts b/packages/test-utils/src/testUtils/apis/AnalyticsApi/MockAnalyticsApi.ts index 28585145ad..3e2fc2a01c 100644 --- a/packages/test-utils/src/testUtils/apis/AnalyticsApi/MockAnalyticsApi.ts +++ b/packages/test-utils/src/testUtils/apis/AnalyticsApi/MockAnalyticsApi.ts @@ -16,6 +16,11 @@ import { AnalyticsApi, AnalyticsEvent } from '@backstage/core-plugin-api'; +/** + * Mock implementation of {@link core-plugin-api#AnalyticsApi} with helpers to ensure that events are sent correctly. + * Use getEvents in tests to verify captured events. + * @public + */ export class MockAnalyticsApi implements AnalyticsApi { private events: AnalyticsEvent[] = []; diff --git a/packages/test-utils/src/testUtils/apis/ErrorApi/MockErrorApi.ts b/packages/test-utils/src/testUtils/apis/ErrorApi/MockErrorApi.ts index 20b6bd1724..31f8aa25e3 100644 --- a/packages/test-utils/src/testUtils/apis/ErrorApi/MockErrorApi.ts +++ b/packages/test-utils/src/testUtils/apis/ErrorApi/MockErrorApi.ts @@ -16,11 +16,20 @@ import { ErrorApi, ErrorContext, Observable } from '@backstage/core-plugin-api'; -type Options = { +/** + * Constructor arguments for {@link MockErrorApi} + * @public + */ +export type MockErrorApiOptions = { + // Need to be true if getErrors is used in testing. collect?: boolean; }; -type ErrorWithContext = { +/** + * ErrorWithContext contains error and ErrorContext + * @public + */ +export type ErrorWithContext = { error: Error; context?: ErrorContext; }; @@ -38,11 +47,16 @@ const nullObservable = { }, }; +/** + * Mock implementation of the {@link core-plugin-api#ErrorApi} to be used in tests. + * Incudes withForError and getErrors methods for error testing. + * @public + */ export class MockErrorApi implements ErrorApi { private readonly errors = new Array(); private readonly waiters = new Set(); - constructor(private readonly options: Options = {}) {} + constructor(private readonly options: MockErrorApiOptions = {}) {} post(error: Error, context?: ErrorContext) { if (this.options.collect) { diff --git a/packages/test-utils/src/testUtils/apis/ErrorApi/index.ts b/packages/test-utils/src/testUtils/apis/ErrorApi/index.ts index 8a6b5031e5..1273a91531 100644 --- a/packages/test-utils/src/testUtils/apis/ErrorApi/index.ts +++ b/packages/test-utils/src/testUtils/apis/ErrorApi/index.ts @@ -15,3 +15,4 @@ */ export { MockErrorApi } from './MockErrorApi'; +export type { MockErrorApiOptions, ErrorWithContext } from './MockErrorApi'; diff --git a/packages/test-utils/src/testUtils/apis/StorageApi/MockStorageApi.ts b/packages/test-utils/src/testUtils/apis/StorageApi/MockStorageApi.ts index ab5d26afc5..3e51ed579f 100644 --- a/packages/test-utils/src/testUtils/apis/StorageApi/MockStorageApi.ts +++ b/packages/test-utils/src/testUtils/apis/StorageApi/MockStorageApi.ts @@ -21,8 +21,16 @@ import { } from '@backstage/core-plugin-api'; import ObservableImpl from 'zen-observable'; +/** + * Type for map holding data in {@link MockStorageApi} + * @public + */ export type MockStorageBucket = { [key: string]: any }; +/** + * Mock implementation of the {@link core-plugin-api#StorageApi} to be used in tests + * @public + */ export class MockStorageApi implements StorageApi { private readonly namespace: string; private readonly data: MockStorageBucket; diff --git a/packages/test-utils/src/testUtils/appWrappers.tsx b/packages/test-utils/src/testUtils/appWrappers.tsx index 09c9e5d0bf..6f55cc6190 100644 --- a/packages/test-utils/src/testUtils/appWrappers.tsx +++ b/packages/test-utils/src/testUtils/appWrappers.tsx @@ -27,7 +27,7 @@ import { createRouteRef, } from '@backstage/core-plugin-api'; import { RenderResult } from '@testing-library/react'; -import { renderWithEffects } from '@backstage/test-utils-core'; +import { renderWithEffects } from './testingLibrary'; import { mockApis } from './mockApis'; const ErrorBoundaryFallback = ({ error }: { error: Error }) => { @@ -43,8 +43,9 @@ const Progress = () =>
; /** * Options to customize the behavior of the test app wrapper. + * @public */ -type TestAppOptions = { +export type TestAppOptions = { /** * Initial route entries to pass along as `initialEntries` to the router. */ @@ -56,11 +57,11 @@ type TestAppOptions = { * used by `useRouteRef` in the rendered elements. * * @example - * wrapInTestApp(, { - * mountedRoutes: { + * wrapInTestApp(, \{ + * mountedRoutes: \{ * '/my-path': myRouteRef, - * } - * }) + * \} + * \}) * // ... * const link = useRouteRef(myRouteRef) */ @@ -80,6 +81,7 @@ function isExternalRouteRef( * * @param Component - A component or react node to render inside the test app. * @param options - Additional options for the rendering. + * @public */ export function wrapInTestApp( Component: ComponentType | ReactNode, @@ -171,6 +173,7 @@ export function wrapInTestApp( * * @param Component - A component or react node to render inside the test app. * @param options - Additional options for the rendering. + * @public */ export async function renderInTestApp( Component: ComponentType | ReactNode, diff --git a/packages/test-utils/src/testUtils/index.tsx b/packages/test-utils/src/testUtils/index.tsx index 859315313d..7d93d606cc 100644 --- a/packages/test-utils/src/testUtils/index.tsx +++ b/packages/test-utils/src/testUtils/index.tsx @@ -17,4 +17,8 @@ export * from './apis'; export { default as mockBreakpoint } from './mockBreakpoint'; export { wrapInTestApp, renderInTestApp } from './appWrappers'; +export type { TestAppOptions } from './appWrappers'; export * from './msw'; +export * from './Keyboard'; +export * from './logCollector'; +export * from './testingLibrary'; diff --git a/packages/test-utils/src/testUtils/logCollector.test.ts b/packages/test-utils/src/testUtils/logCollector.test.ts new file mode 100644 index 0000000000..d877e4d10b --- /dev/null +++ b/packages/test-utils/src/testUtils/logCollector.test.ts @@ -0,0 +1,96 @@ +/* + * Copyright 2020 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/* eslint-disable no-console */ + +import { withLogCollector } from './logCollector'; + +describe('logCollector', () => { + it('should collect some logs synchronously', () => { + const logs = withLogCollector(() => { + console.log('a'); + console.warn('b'); + console.error('c'); + console.error('3'); + console.warn('2'); + console.log('1'); + }); + + expect(logs.log).toEqual(['a', '1']); + expect(logs.warn).toEqual(['b', '2']); + expect(logs.error).toEqual(['c', '3']); + }); + + it('should collect some logs asynchrnously', async () => { + const logs = await withLogCollector(async () => { + console.log('a'); + console.warn('b'); + console.error('c'); + console.error('3'); + console.warn('2'); + console.log('1'); + }); + + expect(logs.log).toEqual(['a', '1']); + expect(logs.warn).toEqual(['b', '2']); + expect(logs.error).toEqual(['c', '3']); + }); + + it('should collect specific logs synchronously', () => { + const missedLogs = withLogCollector(() => { + const logs = withLogCollector(['warn', 'log'], () => { + console.log('a'); + console.warn('b'); + console.error('c'); + console.error('3'); + console.warn('2'); + console.log('1'); + }); + + expect(logs.log).toEqual(['a', '1']); + expect(logs.warn).toEqual(['b', '2']); + // @ts-ignore + expect(logs.error).toEqual([]); + }); + + expect(missedLogs.log).toEqual([]); + expect(missedLogs.warn).toEqual([]); + expect(missedLogs.error).toEqual(['c', '3']); + }); + + it('should collect specific logs asynchrnously', async () => { + const missedLogs = await withLogCollector(async () => { + const logs = await withLogCollector(['error'], async () => { + console.log('a'); + console.warn('b'); + console.error('c'); + console.error('3'); + console.warn('2'); + console.log('1'); + }); + + // @ts-ignore + expect(logs.log).toEqual([]); + // @ts-ignore + expect(logs.warn).toEqual([]); + expect(logs.error).toEqual(['c', '3']); + }); + + expect(missedLogs.log).toEqual(['a', '1']); + expect(missedLogs.warn).toEqual(['b', '2']); + expect(missedLogs.error).toEqual([]); + }); +}); diff --git a/packages/test-utils/src/testUtils/logCollector.ts b/packages/test-utils/src/testUtils/logCollector.ts new file mode 100644 index 0000000000..25629f2c13 --- /dev/null +++ b/packages/test-utils/src/testUtils/logCollector.ts @@ -0,0 +1,140 @@ +/* + * Copyright 2020 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/* eslint-disable no-console */ + +/** + * Severity levels of {@link CollectedLogs} + * @public */ +export type LogFuncs = 'log' | 'warn' | 'error'; +/** + * AsyncLogCollector type used in {@link (withLogCollector:1)} callback function. + * @public */ +export type AsyncLogCollector = () => Promise; +/** + * SyncLogCollector type used in {@link (withLogCollector:2)} callback function. + * @public */ +export type SyncLogCollector = () => void; +/** + * Union type used in {@link (withLogCollector:3)} callback function. + * @public */ +export type LogCollector = AsyncLogCollector | SyncLogCollector; +/** + * Map of severity level and corresponding log lines. + * @public */ +export type CollectedLogs = { [key in T]: string[] }; + +const allCategories = ['log', 'warn', 'error']; + +/** + * Asynchronous log collector with that collects all categories + * @public */ +export function withLogCollector( + callback: AsyncLogCollector, +): Promise>; + +/** + * Synchronous log collector with that collects all categories + * @public */ +export function withLogCollector( + callback: SyncLogCollector, +): CollectedLogs; + +/** + * Asynchronous log collector with that only collects selected categories + * @public + */ +export function withLogCollector( + logsToCollect: T[], + callback: AsyncLogCollector, +): Promise>; + +/** + * Synchronous log collector with that only collects selected categories + * @public */ +export function withLogCollector( + logsToCollect: T[], + callback: SyncLogCollector, +): CollectedLogs; + +/** + * Log collector that collect logs either from a sync or async collector. + * @public + * @deprecated import from test-utils instead + * */ +export function withLogCollector( + logsToCollect: LogFuncs[] | LogCollector, + callback?: LogCollector, +): CollectedLogs | Promise> { + const oneArg = !callback; + const actualCallback = (oneArg ? logsToCollect : callback) as LogCollector; + const categories = (oneArg ? allCategories : logsToCollect) as LogFuncs[]; + + const logs = { + log: new Array(), + warn: new Array(), + error: new Array(), + }; + + const origLog = console.log; + const origWarn = console.warn; + const origError = console.error; + + if (categories.includes('log')) { + console.log = (message: string) => { + logs.log.push(message); + }; + } + if (categories.includes('warn')) { + console.warn = (message: string) => { + logs.warn.push(message); + }; + } + if (categories.includes('error')) { + console.error = (message: string) => { + logs.error.push(message); + }; + } + + const restore = () => { + console.log = origLog; + console.warn = origWarn; + console.error = origError; + }; + + try { + const ret = actualCallback(); + + if (!ret || !ret.then) { + restore(); + return logs; + } + + return ret.then( + () => { + restore(); + return logs; + }, + error => { + restore(); + throw error; + }, + ); + } catch (error) { + restore(); + throw error; + } +} diff --git a/packages/test-utils/src/testUtils/mockBreakpoint.ts b/packages/test-utils/src/testUtils/mockBreakpoint.ts index 3335284f88..3bc285a81d 100644 --- a/packages/test-utils/src/testUtils/mockBreakpoint.ts +++ b/packages/test-utils/src/testUtils/mockBreakpoint.ts @@ -24,7 +24,7 @@ * If there are any updates from MUI React on testing `useMediaQuery` this mock should be replaced * https://material-ui.com/components/use-media-query/#testing * - * @param matchMediaOptions + * @public */ export default function mockBreakpoint({ matches = false }) { Object.defineProperty(window, 'matchMedia', { diff --git a/packages/test-utils/src/testUtils/testingLibrary.ts b/packages/test-utils/src/testUtils/testingLibrary.ts new file mode 100644 index 0000000000..44ea20a4cc --- /dev/null +++ b/packages/test-utils/src/testUtils/testingLibrary.ts @@ -0,0 +1,42 @@ +/* + * Copyright 2020 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { ReactElement } from 'react'; +import { act } from 'react-dom/test-utils'; +import { render, RenderResult } from '@testing-library/react'; + +/** + * @public + * Simplifies rendering of async components in by taking care of the wrapping inside act + * + * @remarks + * + * Components using useEffect to perform an asynchronous action (such as fetch) must be rendered within an async + * act call to properly get the final state, even with mocked responses. This utility method makes the signature a bit + * cleaner, since act doesn't return the result of the evaluated function. + * https://github.com/testing-library/react-testing-library/issues/281 + * https://github.com/facebook/react/pull/14853 + */ +export async function renderWithEffects( + nodes: ReactElement, +): Promise { + let value: RenderResult; + await act(async () => { + value = render(nodes); + }); + // @ts-ignore + return value; +} From 87a7cbdb6833cdd38b712eb7caaf52979f1e3e0f Mon Sep 17 00:00:00 2001 From: Johan Haals Date: Thu, 21 Oct 2021 14:14:35 +0200 Subject: [PATCH 19/41] replace msw with setupRequestMockHandlers Signed-off-by: Johan Haals --- packages/test-utils-core/api-report.md | 2 -- packages/test-utils/api-report.md | 11 ++++++++--- .../test-utils/src/testUtils/msw/index.ts | 19 +++++++++++++++++++ 3 files changed, 27 insertions(+), 5 deletions(-) diff --git a/packages/test-utils-core/api-report.md b/packages/test-utils-core/api-report.md index 60d4b5b0f7..a72e5d3038 100644 --- a/packages/test-utils-core/api-report.md +++ b/packages/test-utils-core/api-report.md @@ -14,8 +14,6 @@ export type CollectedLogs = { [key in T]: string[]; }; -// Warning: (tsdoc-missing-deprecation-message) The @deprecated block must include a deprecation message, e.g. describing the recommended alternative -// // @public @deprecated (undocumented) export class Keyboard { constructor( diff --git a/packages/test-utils/api-report.md b/packages/test-utils/api-report.md index b432141fa1..97fdbcc2d4 100644 --- a/packages/test-utils/api-report.md +++ b/packages/test-utils/api-report.md @@ -146,9 +146,7 @@ export type MockStorageBucket = { [key: string]: any; }; -// Warning: (ae-missing-release-tag) "msw" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) -// -// @public (undocumented) +// @public @deprecated (undocumented) export const msw: { setupDefaultHandlers: (worker: { listen: (t: any) => void; @@ -166,6 +164,13 @@ export function renderInTestApp( // @public export function renderWithEffects(nodes: ReactElement): Promise; +// @public +export function setupRequestMockHandlers(worker: { + listen: (t: any) => void; + close: () => void; + resetHandlers: () => void; +}): void; + // @public export type SyncLogCollector = () => void; diff --git a/packages/test-utils/src/testUtils/msw/index.ts b/packages/test-utils/src/testUtils/msw/index.ts index 337c2999fc..f4777e9ee5 100644 --- a/packages/test-utils/src/testUtils/msw/index.ts +++ b/packages/test-utils/src/testUtils/msw/index.ts @@ -14,6 +14,10 @@ * limitations under the License. */ +/** + * @deprecated use {@link setupRequestMockHandlers} instead which can be called directly with the worker. + * @public + */ export const msw = { setupDefaultHandlers: (worker: { listen: (t: any) => void; @@ -25,3 +29,18 @@ export const msw = { afterEach(() => worker.resetHandlers()); }, }; + +/** + * Sets up handlers for request mocking + * @public + * @param worker - service worker + */ +export function setupRequestMockHandlers(worker: { + listen: (t: any) => void; + close: () => void; + resetHandlers: () => void; +}) { + beforeAll(() => worker.listen({ onUnhandledRequest: 'error' })); + afterAll(() => worker.close()); + afterEach(() => worker.resetHandlers()); +} From 60a75ae833acfce424040e8f1f7f3df4834a9766 Mon Sep 17 00:00:00 2001 From: Johan Haals Date: Thu, 21 Oct 2021 14:31:42 +0200 Subject: [PATCH 20/41] chore: fix import Signed-off-by: Johan Haals --- packages/test-utils/src/testUtils/appWrappers.test.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/test-utils/src/testUtils/appWrappers.test.tsx b/packages/test-utils/src/testUtils/appWrappers.test.tsx index a5a60130f2..25809912ec 100644 --- a/packages/test-utils/src/testUtils/appWrappers.test.tsx +++ b/packages/test-utils/src/testUtils/appWrappers.test.tsx @@ -23,7 +23,7 @@ import { useApi, useRouteRef, } from '@backstage/core-plugin-api'; -import { withLogCollector } from '@backstage/test-utils-core'; +import { withLogCollector } from './logCollector'; import { render } from '@testing-library/react'; import React, { useEffect } from 'react'; import { Route, Routes } from 'react-router'; From bb12aae352eacd818a906511c50f7f89388026ea Mon Sep 17 00:00:00 2001 From: Johan Haals Date: Thu, 21 Oct 2021 14:31:54 +0200 Subject: [PATCH 21/41] Add changeset Signed-off-by: Johan Haals --- .changeset/dirty-bugs-care.md | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 .changeset/dirty-bugs-care.md diff --git a/.changeset/dirty-bugs-care.md b/.changeset/dirty-bugs-care.md new file mode 100644 index 0000000000..2b7a49556b --- /dev/null +++ b/.changeset/dirty-bugs-care.md @@ -0,0 +1,10 @@ +--- +'@backstage/test-utils': patch +'@backstage/test-utils-core': patch +--- + +Migrates all utility methods from `test-utils-core` into `test-utils`. +The entire `@backstage/test-utils-core` is considered deprecated. The package will be removed in a few weeks time. +This should have almost no impact since this package is primarily used internally by core packages. + +Notable changes are that the testing tool `msw.setupDefaultHandlers()` have been deprecated in favour of `setupRequestMockHandlers()`. From 925a967f363df311287eeb495adfe1cd145d3034 Mon Sep 17 00:00:00 2001 From: Johan Haals Date: Thu, 21 Oct 2021 14:49:42 +0200 Subject: [PATCH 22/41] Replace usage of test-utils-core with test-utils Signed-off-by: Johan Haals --- .changeset/rude-starfishes-walk.md | 7 +++++++ packages/config/package.json | 2 +- packages/config/src/reader.test.ts | 2 +- packages/core-app-api/package.json | 1 - packages/core-app-api/src/apis/system/ApiProvider.test.tsx | 2 +- packages/core-plugin-api/package.json | 3 +-- .../core-plugin-api/src/extensions/extensions.test.tsx | 2 +- 7 files changed, 12 insertions(+), 7 deletions(-) create mode 100644 .changeset/rude-starfishes-walk.md diff --git a/.changeset/rude-starfishes-walk.md b/.changeset/rude-starfishes-walk.md new file mode 100644 index 0000000000..87ec76fd0a --- /dev/null +++ b/.changeset/rude-starfishes-walk.md @@ -0,0 +1,7 @@ +--- +'@backstage/config': patch +'@backstage/core-app-api': patch +'@backstage/core-plugin-api': patch +--- + +Replace usage of test-utils-core with test-utils diff --git a/packages/config/package.json b/packages/config/package.json index ffa2404300..c5eb7a9958 100644 --- a/packages/config/package.json +++ b/packages/config/package.json @@ -33,7 +33,7 @@ "lodash": "^4.17.21" }, "devDependencies": { - "@backstage/test-utils-core": "^0.1.2", + "@backstage/test-utils": "^0.1.19", "@types/jest": "^26.0.7", "@types/node": "^14.14.32" }, diff --git a/packages/config/src/reader.test.ts b/packages/config/src/reader.test.ts index 0cea80dca1..3cbab17637 100644 --- a/packages/config/src/reader.test.ts +++ b/packages/config/src/reader.test.ts @@ -14,7 +14,7 @@ * limitations under the License. */ -import { withLogCollector } from '@backstage/test-utils-core'; +import { withLogCollector } from '@backstage/test-utils'; import { ConfigReader } from './reader'; const DATA = { diff --git a/packages/core-app-api/package.json b/packages/core-app-api/package.json index d11b7122ce..ea76a3863d 100644 --- a/packages/core-app-api/package.json +++ b/packages/core-app-api/package.json @@ -47,7 +47,6 @@ "devDependencies": { "@backstage/cli": "^0.8.0", "@backstage/test-utils": "^0.1.19", - "@backstage/test-utils-core": "^0.1.3", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^11.2.5", "@testing-library/react-hooks": "^7.0.2", diff --git a/packages/core-app-api/src/apis/system/ApiProvider.test.tsx b/packages/core-app-api/src/apis/system/ApiProvider.test.tsx index d1793f890e..c08674adfe 100644 --- a/packages/core-app-api/src/apis/system/ApiProvider.test.tsx +++ b/packages/core-app-api/src/apis/system/ApiProvider.test.tsx @@ -25,7 +25,7 @@ import { import { ApiProvider } from './ApiProvider'; import { ApiRegistry } from './ApiRegistry'; import { render } from '@testing-library/react'; -import { withLogCollector } from '@backstage/test-utils-core'; +import { withLogCollector } from '@backstage/test-utils'; import { useVersionedContext } from '@backstage/version-bridge'; describe('ApiProvider', () => { diff --git a/packages/core-plugin-api/package.json b/packages/core-plugin-api/package.json index 471e510d88..6a9c3c7a60 100644 --- a/packages/core-plugin-api/package.json +++ b/packages/core-plugin-api/package.json @@ -44,8 +44,7 @@ "devDependencies": { "@backstage/cli": "^0.8.0", "@backstage/core-app-api": "^0.1.18", - "@backstage/test-utils": "^0.1.18", - "@backstage/test-utils-core": "^0.1.3", + "@backstage/test-utils": "^0.1.19", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^11.2.5", "@testing-library/react-hooks": "^7.0.2", diff --git a/packages/core-plugin-api/src/extensions/extensions.test.tsx b/packages/core-plugin-api/src/extensions/extensions.test.tsx index fabf90eebb..29c696c71f 100644 --- a/packages/core-plugin-api/src/extensions/extensions.test.tsx +++ b/packages/core-plugin-api/src/extensions/extensions.test.tsx @@ -14,7 +14,7 @@ * limitations under the License. */ -import { withLogCollector } from '@backstage/test-utils-core'; +import { withLogCollector } from '@backstage/test-utils'; import { render, screen } from '@testing-library/react'; import React from 'react'; import { useAnalyticsContext } from '../analytics/AnalyticsContext'; From 379e1863323fdcb93049946449d465a34e4ba24a Mon Sep 17 00:00:00 2001 From: Johan Haals Date: Thu, 21 Oct 2021 14:59:19 +0200 Subject: [PATCH 23/41] Remove all exports from test-utils-core Signed-off-by: Johan Haals --- packages/test-utils-core/api-report.md | 91 +------ packages/test-utils-core/src/index.ts | 11 +- packages/test-utils-core/src/setupTests.ts | 17 -- .../test-utils-core/src/testUtils/Keyboard.js | 224 ------------------ .../src/testUtils/Keyboard.test.js | 108 --------- .../test-utils-core/src/testUtils/index.tsx | 19 -- .../src/testUtils/logCollector.test.ts | 96 -------- .../src/testUtils/logCollector.ts | 144 ----------- .../src/testUtils/testingLibrary.ts | 41 ---- 9 files changed, 5 insertions(+), 746 deletions(-) delete mode 100644 packages/test-utils-core/src/setupTests.ts delete mode 100644 packages/test-utils-core/src/testUtils/Keyboard.js delete mode 100644 packages/test-utils-core/src/testUtils/Keyboard.test.js delete mode 100644 packages/test-utils-core/src/testUtils/index.tsx delete mode 100644 packages/test-utils-core/src/testUtils/logCollector.test.ts delete mode 100644 packages/test-utils-core/src/testUtils/logCollector.ts delete mode 100644 packages/test-utils-core/src/testUtils/testingLibrary.ts diff --git a/packages/test-utils-core/api-report.md b/packages/test-utils-core/api-report.md index a72e5d3038..f21c749727 100644 --- a/packages/test-utils-core/api-report.md +++ b/packages/test-utils-core/api-report.md @@ -3,94 +3,5 @@ > Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/). ```ts -import { ReactElement } from 'react'; -import { RenderResult } from '@testing-library/react'; - -// @public @deprecated (undocumented) -export type AsyncLogCollector = () => Promise; - -// @public @deprecated (undocumented) -export type CollectedLogs = { - [key in T]: string[]; -}; - -// @public @deprecated (undocumented) -export class Keyboard { - constructor( - target: any, - { - debug, - }?: { - debug?: boolean | undefined; - }, - ); - // (undocumented) - click(): Promise; - // (undocumented) - debug: boolean; - // (undocumented) - document: any; - // (undocumented) - enter(value: any): Promise; - // (undocumented) - escape(): Promise; - // (undocumented) - get focused(): any; - // (undocumented) - static fromReadableInput(input: any): any; - // (undocumented) - _log(message: any, ...args: any[]): void; - // (undocumented) - _pretty(element: any): string; - // (undocumented) - send(chars: any): Promise; - // (undocumented) - _sendKey(key: any, charCode: any, action: any): Promise; - // (undocumented) - tab(): Promise; - // (undocumented) - static toReadableInput(chars: any): any; - // (undocumented) - toString(): string; - // (undocumented) - static type(target: any, input: any): Promise; - // (undocumented) - type(input: any): Promise; - // (undocumented) - static typeDebug(target: any, input: any): Promise; -} - -// @public @deprecated (undocumented) -export type LogCollector = AsyncLogCollector | SyncLogCollector; - -// @public @deprecated (undocumented) -export type LogFuncs = 'log' | 'warn' | 'error'; - -// @public @deprecated -export function renderWithEffects(nodes: ReactElement): Promise; - -// @public @deprecated (undocumented) -export type SyncLogCollector = () => void; - -// @public @deprecated -export function withLogCollector( - callback: AsyncLogCollector, -): Promise>; - -// @public @deprecated -export function withLogCollector( - callback: SyncLogCollector, -): CollectedLogs; - -// @public @deprecated -export function withLogCollector( - logsToCollect: T[], - callback: AsyncLogCollector, -): Promise>; - -// @public @deprecated -export function withLogCollector( - logsToCollect: T[], - callback: SyncLogCollector, -): CollectedLogs; +// (No @packageDocumentation comment for this package) ``` diff --git a/packages/test-utils-core/src/index.ts b/packages/test-utils-core/src/index.ts index 5658523c11..8f0a5b31e1 100644 --- a/packages/test-utils-core/src/index.ts +++ b/packages/test-utils-core/src/index.ts @@ -14,10 +14,7 @@ * limitations under the License. */ -/** - * Utilities to test Backstage core - * - * @packageDocumentation - */ - -export * from './testUtils'; +export {}; +throw new Error( + 'This module has been removed. Use @backstage/dev-utils instead', +); diff --git a/packages/test-utils-core/src/setupTests.ts b/packages/test-utils-core/src/setupTests.ts deleted file mode 100644 index 963c0f188b..0000000000 --- a/packages/test-utils-core/src/setupTests.ts +++ /dev/null @@ -1,17 +0,0 @@ -/* - * Copyright 2020 The Backstage Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import '@testing-library/jest-dom'; diff --git a/packages/test-utils-core/src/testUtils/Keyboard.js b/packages/test-utils-core/src/testUtils/Keyboard.js deleted file mode 100644 index b0600eb78d..0000000000 --- a/packages/test-utils-core/src/testUtils/Keyboard.js +++ /dev/null @@ -1,224 +0,0 @@ -/* - * Copyright 2020 The Backstage Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import { act, fireEvent } from '@testing-library/react'; - -const codes = { - Tab: 9, - Enter: 10, - Click: 17 /* This keyboard can click, deal with it */, - Esc: 27, -}; - -/** - * @public - * @deprecated because of no usages. */ -export class Keyboard { - static async type(target, input) { - await new Keyboard(target).type(input); - } - - static async typeDebug(target, input) { - await new Keyboard(target, { debug: true }).type(input); - } - - static toReadableInput(chars) { - return chars.split('').map(char => { - switch (char.charCodeAt(0)) { - case codes.Tab: - return ''; - case codes.Enter: - return ''; - case codes.Click: - return ''; - case codes.Esc: - return ''; - default: - return char; - } - }); - } - - static fromReadableInput(input) { - return input.trim().replace(/\s*<([a-zA-Z]+)>\s*/g, (match, name) => { - if (name in codes) { - return String.fromCharCode(codes[name]); - } - throw new Error(`Unknown char name: '${name}'`); - }); - } - - constructor(target, { debug = false } = {}) { - this.debug = debug; - - if (target.ownerDocument) { - this.document = target.ownerDocument; - } else if (target.baseElement) { - this.document = target.baseElement.ownerDocument; - } else { - throw new TypeError( - 'Keyboard(target): target must be DOM node or react-testing-library render() output', - ); - } - } - - toString() { - return `Keyboard{document=${this.document}, debug=${this.debug}}`; - } - - _log(message, ...args) { - if (this.debug) { - // eslint-disable-next-line no-console - console.log(`[Keyboard] ${message}`, ...args); - } - } - - _pretty(element) { - const attrs = [...element.attributes] - .map(attr => `${attr.name}="${attr.value}"`) - .join(' '); - return `<${element.nodeName.toLocaleLowerCase('en-US')} ${attrs}>`; - } - - get focused() { - return this.document.activeElement; - } - - async type(input) { - this._log( - `sending sequence '${input}' with initial focus ${this._pretty( - this.focused, - )}`, - ); - await this.send(Keyboard.fromReadableInput(input)); - } - - async send(chars) { - for (const key of chars.split('')) { - const charCode = key.charCodeAt(0); - - if (charCode === codes.Tab) { - await this.tab(); - continue; - } - - const focused = this.focused; - if (!focused || focused === this.document.body) { - throw Error( - `No element focused in document while trying to type '${Keyboard.toReadableInput( - chars, - )}'`, - ); - } - const nextValue = (focused.value || '') + key; - - if (charCode >= 32) { - await this._sendKey(key, charCode, () => { - this._log( - `sending +${key} = '${nextValue}' to ${this._pretty(focused)}`, - ); - fireEvent.change(focused, { - target: { value: nextValue }, - bubbles: true, - cancelable: true, - }); - }); - } else if (charCode === codes.Enter) { - await this.enter(focused.value || ''); - } else if (charCode === codes.Esc) { - await this.escape(); - } else if (charCode === codes.Click) { - await this.click(); - } else { - throw new Error(`Unsupported char code, ${charCode}`); - } - } - } - - async click() { - this._log(`clicking ${this._pretty(this.focused)}`); - await act(async () => fireEvent.click(this.focused)); - } - - async tab() { - await this._sendKey('Tab', codes.Tab, () => { - const focusable = this.document.querySelectorAll( - [ - 'a[href]', - 'area[href]', - 'input:not([disabled])', - 'select:not([disabled])', - 'textarea:not([disabled])', - 'button:not([disabled])', - 'iframe', - 'object', - 'embed', - '*[tabindex]', - '*[contenteditable]', - ].join(','), - ); - - const tabbable = [...focusable].filter(el => { - return el.tabIndex >= 0; - }); - - const focused = this.document.activeElement; - const focusedIndex = tabbable.indexOf(focused); - const nextFocus = tabbable[focusedIndex + (1 % tabbable.length)]; - - this._log( - `tabbing to ${this._pretty(nextFocus)} ${this.focused.textContent}`, - ); - nextFocus.focus(); - }); - } - - async enter(value) { - this._log(`submitting '${value}' via ${this._pretty(this.focused)}`); - await act(() => - this._sendKey('Enter', codes.Enter, () => { - if (this.focused.type === 'button') { - fireEvent.click(this.focused, { target: { value } }); - } else { - fireEvent.submit(this.focused, { - target: { value }, - bubbles: true, - cancelable: true, - }); - } - }), - ); - } - - async escape() { - this._log(`escape from ${this._pretty(this.focused)}`); - await act(async () => this._sendKey('Escape', codes.Esc)); - } - - async _sendKey(key, charCode, action) { - const event = { key, charCode, keyCode: charCode, which: charCode }; - const focused = this.focused; - - if (fireEvent.keyDown(focused, event)) { - if (fireEvent.keyPress(focused, event)) { - if (action) { - action(); - } - } - } - fireEvent.keyUp(focused, event); - } -} diff --git a/packages/test-utils-core/src/testUtils/Keyboard.test.js b/packages/test-utils-core/src/testUtils/Keyboard.test.js deleted file mode 100644 index 41ee3a12d6..0000000000 --- a/packages/test-utils-core/src/testUtils/Keyboard.test.js +++ /dev/null @@ -1,108 +0,0 @@ -/* - * Copyright 2020 The Backstage Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import React from 'react'; -import { Keyboard } from './Keyboard'; -import { render } from '@testing-library/react'; - -describe('testUtils.Keyboard', () => { - it('types into some inputs with focus and submits a form', async () => { - const typed1 = []; - const typed2 = []; - const typed3 = []; - - let submitted = false; - const handleSubmit = event => { - event.preventDefault(); - submitted = true; - }; - - const rendered = render( -
- typed1.push(value)} /> - typed2.push(value)} - /* eslint-disable-next-line jsx-a11y/no-autofocus */ - autoFocus - /> - typed3.push(value)} /> -
, - ); - - const keyboard = new Keyboard(rendered); - await keyboard.send('xy'); - await keyboard.tab(); - await keyboard.send('abc'); - await keyboard.enter(); - - expect(typed1).toEqual([]); - expect(typed2).toEqual(['x', 'xy']); - expect(typed3).toEqual(['a', 'ab', 'abc']); - expect(submitted).toBe(true); - }); - - it('can use Keyboard.type to send readable input', async () => { - const typed1 = []; - const typed2 = []; - const typed3 = []; - - let submitted = false; - const handleSubmit = event => { - event.preventDefault(); - submitted = true; - }; - - const rendered = render( -
- typed1.push(value)} - /> - typed2.push(value)} - /> - typed3.push(value)} - /> -
, - ); - - await Keyboard.type(rendered, ' a b c '); - - expect(typed1).toEqual(['1a']); - expect(typed2).toEqual(['2b']); - expect(typed3).toEqual(['3c']); - expect(submitted).toBe(true); - }); - - it('should be able to navigate a radio input with click', async () => { - const selections = []; - - const rendered = render( -
selections.push(value)}> - - - -
, - ); - - await Keyboard.type(rendered, ' '); - - expect(selections).toEqual(['a', 'c']); - }); -}); diff --git a/packages/test-utils-core/src/testUtils/index.tsx b/packages/test-utils-core/src/testUtils/index.tsx deleted file mode 100644 index 6f6aa43ea9..0000000000 --- a/packages/test-utils-core/src/testUtils/index.tsx +++ /dev/null @@ -1,19 +0,0 @@ -/* - * Copyright 2020 The Backstage Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -export * from './Keyboard'; -export * from './logCollector'; -export * from './testingLibrary'; diff --git a/packages/test-utils-core/src/testUtils/logCollector.test.ts b/packages/test-utils-core/src/testUtils/logCollector.test.ts deleted file mode 100644 index d877e4d10b..0000000000 --- a/packages/test-utils-core/src/testUtils/logCollector.test.ts +++ /dev/null @@ -1,96 +0,0 @@ -/* - * Copyright 2020 The Backstage Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/* eslint-disable no-console */ - -import { withLogCollector } from './logCollector'; - -describe('logCollector', () => { - it('should collect some logs synchronously', () => { - const logs = withLogCollector(() => { - console.log('a'); - console.warn('b'); - console.error('c'); - console.error('3'); - console.warn('2'); - console.log('1'); - }); - - expect(logs.log).toEqual(['a', '1']); - expect(logs.warn).toEqual(['b', '2']); - expect(logs.error).toEqual(['c', '3']); - }); - - it('should collect some logs asynchrnously', async () => { - const logs = await withLogCollector(async () => { - console.log('a'); - console.warn('b'); - console.error('c'); - console.error('3'); - console.warn('2'); - console.log('1'); - }); - - expect(logs.log).toEqual(['a', '1']); - expect(logs.warn).toEqual(['b', '2']); - expect(logs.error).toEqual(['c', '3']); - }); - - it('should collect specific logs synchronously', () => { - const missedLogs = withLogCollector(() => { - const logs = withLogCollector(['warn', 'log'], () => { - console.log('a'); - console.warn('b'); - console.error('c'); - console.error('3'); - console.warn('2'); - console.log('1'); - }); - - expect(logs.log).toEqual(['a', '1']); - expect(logs.warn).toEqual(['b', '2']); - // @ts-ignore - expect(logs.error).toEqual([]); - }); - - expect(missedLogs.log).toEqual([]); - expect(missedLogs.warn).toEqual([]); - expect(missedLogs.error).toEqual(['c', '3']); - }); - - it('should collect specific logs asynchrnously', async () => { - const missedLogs = await withLogCollector(async () => { - const logs = await withLogCollector(['error'], async () => { - console.log('a'); - console.warn('b'); - console.error('c'); - console.error('3'); - console.warn('2'); - console.log('1'); - }); - - // @ts-ignore - expect(logs.log).toEqual([]); - // @ts-ignore - expect(logs.warn).toEqual([]); - expect(logs.error).toEqual(['c', '3']); - }); - - expect(missedLogs.log).toEqual(['a', '1']); - expect(missedLogs.warn).toEqual(['b', '2']); - expect(missedLogs.error).toEqual([]); - }); -}); diff --git a/packages/test-utils-core/src/testUtils/logCollector.ts b/packages/test-utils-core/src/testUtils/logCollector.ts deleted file mode 100644 index 22f06e172b..0000000000 --- a/packages/test-utils-core/src/testUtils/logCollector.ts +++ /dev/null @@ -1,144 +0,0 @@ -/* - * Copyright 2020 The Backstage Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/* eslint-disable no-console */ - -/** - * @public - * @deprecated import from test-utils instead */ -export type LogFuncs = 'log' | 'warn' | 'error'; -/** - * @public - * @deprecated import from test-utils instead */ -export type AsyncLogCollector = () => Promise; -/** - * @public - * @deprecated import from test-utils instead */ -export type SyncLogCollector = () => void; -/** - * @public - * @deprecated import from test-utils instead */ -export type LogCollector = AsyncLogCollector | SyncLogCollector; -/** - * @public - * @deprecated import from test-utils instead */ -export type CollectedLogs = { [key in T]: string[] }; - -const allCategories = ['log', 'warn', 'error']; - -/** - * Asynchronous log collector with that collects all categories - * @public - * @deprecated import from test-utils instead */ -export function withLogCollector( - callback: AsyncLogCollector, -): Promise>; - -/** - * Synchronous log collector with that collects all categories - * @public - * @deprecated import from test-utils instead */ -export function withLogCollector( - callback: SyncLogCollector, -): CollectedLogs; - -/** - * Asynchronous log collector with that only collects selected categories - * @public - * @deprecated import from test-utils instead - */ - -export function withLogCollector( - logsToCollect: T[], - callback: AsyncLogCollector, -): Promise>; - -/** - * Synchronous log collector with that only collects selected categories - * @public - * @deprecated import from test-utils instead */ -export function withLogCollector( - logsToCollect: T[], - callback: SyncLogCollector, -): CollectedLogs; - -/** - * @public - * @deprecated import from test-utils instead - * */ -export function withLogCollector( - logsToCollect: LogFuncs[] | LogCollector, - callback?: LogCollector, -): CollectedLogs | Promise> { - const oneArg = !callback; - const actualCallback = (oneArg ? logsToCollect : callback) as LogCollector; - const categories = (oneArg ? allCategories : logsToCollect) as LogFuncs[]; - - const logs = { - log: new Array(), - warn: new Array(), - error: new Array(), - }; - - const origLog = console.log; - const origWarn = console.warn; - const origError = console.error; - - if (categories.includes('log')) { - console.log = (message: string) => { - logs.log.push(message); - }; - } - if (categories.includes('warn')) { - console.warn = (message: string) => { - logs.warn.push(message); - }; - } - if (categories.includes('error')) { - console.error = (message: string) => { - logs.error.push(message); - }; - } - - const restore = () => { - console.log = origLog; - console.warn = origWarn; - console.error = origError; - }; - - try { - const ret = actualCallback(); - - if (!ret || !ret.then) { - restore(); - return logs; - } - - return ret.then( - () => { - restore(); - return logs; - }, - error => { - restore(); - throw error; - }, - ); - } catch (error) { - restore(); - throw error; - } -} diff --git a/packages/test-utils-core/src/testUtils/testingLibrary.ts b/packages/test-utils-core/src/testUtils/testingLibrary.ts deleted file mode 100644 index 953a414968..0000000000 --- a/packages/test-utils-core/src/testUtils/testingLibrary.ts +++ /dev/null @@ -1,41 +0,0 @@ -/* - * Copyright 2020 The Backstage Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import { ReactElement } from 'react'; -import { act } from 'react-dom/test-utils'; -import { render, RenderResult } from '@testing-library/react'; - -/** - * Simplifies rendering of async components in by taking care of the wrapping inside act - * @remarks - * Components using useEffect to perform an asynchronous action (such as fetch) must be rendered within an async - * act call to properly get the final state, even with mocked responses. This utility method makes the signature a bit - * cleaner, since act doesn't return the result of the evaluated function. - * https://github.com/testing-library/react-testing-library/issues/281 - * https://github.com/facebook/react/pull/14853 - * @public - * @deprecated import from test-utils instead - */ -export async function renderWithEffects( - nodes: ReactElement, -): Promise { - let value: RenderResult; - await act(async () => { - value = render(nodes); - }); - // @ts-ignore - return value; -} From c976066b05017b472fc09fb98b916cd0c5a3889e Mon Sep 17 00:00:00 2001 From: Johan Haals Date: Thu, 21 Oct 2021 14:59:42 +0200 Subject: [PATCH 24/41] Update wording in changeset Signed-off-by: Johan Haals --- .changeset/dirty-bugs-care.md | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/.changeset/dirty-bugs-care.md b/.changeset/dirty-bugs-care.md index 2b7a49556b..4d90a9c939 100644 --- a/.changeset/dirty-bugs-care.md +++ b/.changeset/dirty-bugs-care.md @@ -3,8 +3,7 @@ '@backstage/test-utils-core': patch --- -Migrates all utility methods from `test-utils-core` into `test-utils`. -The entire `@backstage/test-utils-core` is considered deprecated. The package will be removed in a few weeks time. -This should have almost no impact since this package is primarily used internally by core packages. +Migrates all utility methods from `test-utils-core` into `test-utils` and delete exports from the old package. +This should have no impact since this package is considered internal and have no usages outside core packages. Notable changes are that the testing tool `msw.setupDefaultHandlers()` have been deprecated in favour of `setupRequestMockHandlers()`. From adb27441e6be45f7fb60feab3f1f245151da6ae5 Mon Sep 17 00:00:00 2001 From: Johan Haals Date: Thu, 21 Oct 2021 14:59:57 +0200 Subject: [PATCH 25/41] use setupRequestMockHandlers inside msw Signed-off-by: Johan Haals --- packages/test-utils/src/testUtils/msw/index.ts | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/packages/test-utils/src/testUtils/msw/index.ts b/packages/test-utils/src/testUtils/msw/index.ts index f4777e9ee5..40bc47e8f0 100644 --- a/packages/test-utils/src/testUtils/msw/index.ts +++ b/packages/test-utils/src/testUtils/msw/index.ts @@ -24,9 +24,7 @@ export const msw = { close: () => void; resetHandlers: () => void; }) => { - beforeAll(() => worker.listen({ onUnhandledRequest: 'error' })); - afterAll(() => worker.close()); - afterEach(() => worker.resetHandlers()); + setupRequestMockHandlers(worker); }, }; From 1ed3eb452774ba2ceaeac97b4a1dddf9575cce62 Mon Sep 17 00:00:00 2001 From: Johan Haals Date: Thu, 21 Oct 2021 15:28:26 +0200 Subject: [PATCH 26/41] remove unused dependencies Signed-off-by: Johan Haals --- packages/test-utils-core/package.json | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/packages/test-utils-core/package.json b/packages/test-utils-core/package.json index 474d62a670..a5b3df3ff3 100644 --- a/packages/test-utils-core/package.json +++ b/packages/test-utils-core/package.json @@ -28,13 +28,7 @@ "postpack": "backstage-cli postpack", "clean": "backstage-cli clean" }, - "dependencies": { - "@testing-library/jest-dom": "^5.10.1", - "@testing-library/react": "^11.2.5", - "@types/react": "*", - "react": "^16.12.0", - "react-dom": "^16.12.0" - }, + "dependencies": {}, "devDependencies": { "@types/jest": "^26.0.7", "@types/node": "^14.14.32" From 76a85113bc91eb29b8c117cb14ffc020ce40f06f Mon Sep 17 00:00:00 2001 From: Johan Haals Date: Thu, 21 Oct 2021 15:55:46 +0200 Subject: [PATCH 27/41] pass with no tests Signed-off-by: Johan Haals --- packages/test-utils-core/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/test-utils-core/package.json b/packages/test-utils-core/package.json index a5b3df3ff3..8256714560 100644 --- a/packages/test-utils-core/package.json +++ b/packages/test-utils-core/package.json @@ -23,7 +23,7 @@ "scripts": { "build": "backstage-cli build --outputs types,esm", "lint": "backstage-cli lint", - "test": "backstage-cli test", + "test": "backstage-cli test --passWithNoTests", "prepack": "backstage-cli prepack", "postpack": "backstage-cli postpack", "clean": "backstage-cli clean" From 89950060ef0282bf70f9eec80a4f6e77c4c4012e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fredrik=20Adel=C3=B6w?= Date: Fri, 22 Oct 2021 15:02:34 +0200 Subject: [PATCH 28/41] release @backstage/types MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Fredrik Adelöw --- packages/config/package.json | 2 +- packages/core-plugin-api/package.json | 2 +- packages/types/package.json | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/config/package.json b/packages/config/package.json index da741b7a3b..88c20a76ea 100644 --- a/packages/config/package.json +++ b/packages/config/package.json @@ -30,7 +30,7 @@ "clean": "backstage-cli clean" }, "dependencies": { - "@backstage/types": "^0.1.0", + "@backstage/types": "^0.1.1", "lodash": "^4.17.21" }, "devDependencies": { diff --git a/packages/core-plugin-api/package.json b/packages/core-plugin-api/package.json index aeb35faa2f..38e3f4aebe 100644 --- a/packages/core-plugin-api/package.json +++ b/packages/core-plugin-api/package.json @@ -31,7 +31,7 @@ "dependencies": { "@backstage/config": "^0.1.9", "@backstage/theme": "^0.2.9", - "@backstage/types": "^0.1.0", + "@backstage/types": "^0.1.1", "@backstage/version-bridge": "^0.1.0", "@material-ui/core": "^4.12.2", "@types/react": "*", diff --git a/packages/types/package.json b/packages/types/package.json index 9da8cd5e95..8632422a25 100644 --- a/packages/types/package.json +++ b/packages/types/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/types", "description": "Common TypeScript types used within Backstage", - "version": "0.1.0", + "version": "0.1.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", From 56f182dde2767d8e700d5ed0c16c052891f54626 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fredrik=20Adel=C3=B6w?= Date: Fri, 22 Oct 2021 15:52:51 +0200 Subject: [PATCH 29/41] Remove all internal usage of the Json types MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Fredrik Adelöw --- packages/backend-common/api-report.md | 2 +- packages/backend-common/package.json | 1 + packages/backend-common/src/cache/CacheClient.ts | 2 +- packages/backend-common/src/config.ts | 3 ++- packages/backend-common/src/database/DatabaseManager.ts | 3 ++- packages/backend-common/src/database/connection.ts | 3 ++- .../backend-common/src/reading/AwsS3UrlReader.test.ts | 4 +++- .../backend-common/src/reading/GoogleGcsUrlReader.test.ts | 3 ++- packages/catalog-model/api-report.md | 4 ++-- packages/catalog-model/package.json | 1 + packages/catalog-model/src/entity/Entity.ts | 2 +- packages/catalog-model/src/kinds/TemplateEntityV1beta2.ts | 2 +- packages/catalog-model/src/types.ts | 2 +- packages/cli/package.json | 1 + packages/cli/src/commands/config/docs.ts | 2 +- packages/cli/src/commands/config/schema.ts | 2 +- packages/cli/src/commands/install/types.ts | 2 +- packages/config-loader/api-report.md | 2 +- packages/config-loader/package.json | 1 + packages/config-loader/src/lib/env.ts | 3 ++- packages/config-loader/src/lib/schema/collect.ts | 2 +- packages/config-loader/src/lib/schema/filtering.test.ts | 2 +- packages/config-loader/src/lib/schema/filtering.ts | 2 +- packages/config-loader/src/lib/schema/load.ts | 3 ++- packages/config-loader/src/lib/schema/types.ts | 3 ++- packages/config-loader/src/lib/transform/apply.ts | 2 +- packages/config-loader/src/lib/transform/include.ts | 2 +- packages/config-loader/src/lib/transform/substitution.ts | 2 +- packages/config-loader/src/lib/transform/types.ts | 2 +- packages/config-loader/src/lib/transform/utils.ts | 2 +- packages/core-app-api/package.json | 1 + packages/core-app-api/src/app/createApp.tsx | 3 ++- packages/errors/api-report.md | 2 +- packages/errors/package.json | 2 +- packages/errors/src/serialization/error.ts | 2 +- packages/search-common/api-report.md | 2 +- packages/search-common/package.json | 2 +- packages/search-common/src/types.ts | 2 +- plugins/app-backend/package.json | 2 ++ plugins/app-backend/src/lib/config.ts | 3 ++- plugins/catalog-backend-module-ldap/api-report.md | 2 +- plugins/catalog-backend-module-ldap/package.json | 1 + plugins/catalog-backend-module-ldap/src/ldap/config.ts | 3 ++- plugins/catalog-backend/api-report.md | 4 ++-- plugins/catalog-backend/package.json | 1 + plugins/catalog-backend/src/database/types.ts | 2 +- .../src/ingestion/processors/PlaceholderProcessor.ts | 2 +- plugins/catalog-backend/src/ingestion/processors/types.ts | 2 +- .../processing/DefaultCatalogProcessingOrchestrator.ts | 2 +- .../src/processing/ProcessorCacheManager.ts | 2 +- plugins/catalog-backend/src/processing/types.ts | 2 +- plugins/catalog-backend/src/processing/util.ts | 2 +- plugins/catalog-graphql/package.json | 1 + plugins/catalog-graphql/src/service/client.ts | 2 +- plugins/config-schema/package.json | 1 + .../config-schema/src/components/SchemaView/ChildView.tsx | 2 +- .../src/components/SchemaView/MetadataView.tsx | 2 +- .../scaffolder-backend-module-cookiecutter/package.json | 1 + .../src/actions/fetch/cookiecutter.test.ts | 3 ++- .../src/actions/fetch/cookiecutter.ts | 2 +- plugins/scaffolder-backend-module-rails/package.json | 1 + .../src/actions/fetch/rails/index.ts | 2 +- .../src/actions/fetch/rails/railsNewRunner.ts | 2 +- plugins/scaffolder-backend-module-yeoman/package.json | 1 + .../src/actions/run/yeoman.test.ts | 2 +- .../src/actions/run/yeoman.ts | 2 +- .../src/actions/run/yeomanRun.ts | 2 +- plugins/scaffolder-backend/api-report.md | 8 +++----- plugins/scaffolder-backend/package.json | 1 + .../src/scaffolder/actions/builtin/fetch/helpers.ts | 2 +- .../src/scaffolder/actions/builtin/filesystem/rename.ts | 2 +- .../scaffolder-backend/src/scaffolder/actions/types.ts | 2 +- .../src/scaffolder/tasks/DatabaseTaskStore.ts | 2 +- .../src/scaffolder/tasks/DefaultWorkflowRunner.ts | 2 +- .../src/scaffolder/tasks/LegacyWorkflowRunner.ts | 2 +- .../src/scaffolder/tasks/StorageTaskBroker.ts | 2 +- plugins/scaffolder-backend/src/scaffolder/tasks/types.ts | 2 +- plugins/scaffolder-common/api-report.md | 2 +- plugins/scaffolder-common/package.json | 2 +- plugins/scaffolder-common/src/TemplateEntityV1beta3.ts | 2 +- plugins/scaffolder/api-report.md | 4 ++-- plugins/scaffolder/package.json | 1 + plugins/scaffolder/src/api.ts | 2 +- .../components/MultistepJsonForm/MultistepJsonForm.tsx | 2 +- .../scaffolder/src/components/MultistepJsonForm/schema.ts | 2 +- .../src/components/TemplatePage/TemplatePage.tsx | 2 +- plugins/scaffolder/src/types.ts | 2 +- plugins/search/api-report.md | 2 +- plugins/search/package.json | 1 + .../search/src/components/SearchContext/SearchContext.tsx | 2 +- plugins/search/src/components/SearchPage/SearchPage.tsx | 2 +- 91 files changed, 110 insertions(+), 82 deletions(-) diff --git a/packages/backend-common/api-report.md b/packages/backend-common/api-report.md index e2d68055bf..2336a57ec3 100644 --- a/packages/backend-common/api-report.md +++ b/packages/backend-common/api-report.md @@ -18,7 +18,7 @@ import { GithubCredentialsProvider } from '@backstage/integration'; import { GitHubIntegration } from '@backstage/integration'; import { GitLabIntegration } from '@backstage/integration'; import { isChildPath } from '@backstage/cli-common'; -import { JsonValue } from '@backstage/config'; +import { JsonValue } from '@backstage/types'; import { Knex } from 'knex'; import { Logger as Logger_2 } from 'winston'; import { MergeResult } from 'isomorphic-git'; diff --git a/packages/backend-common/package.json b/packages/backend-common/package.json index 8da4184f71..60824f0c40 100644 --- a/packages/backend-common/package.json +++ b/packages/backend-common/package.json @@ -34,6 +34,7 @@ "@backstage/config-loader": "^0.7.0", "@backstage/errors": "^0.1.3", "@backstage/integration": "^0.6.7", + "@backstage/types": "^0.1.1", "@google-cloud/storage": "^5.8.0", "@octokit/rest": "^18.5.3", "@types/cors": "^2.8.6", diff --git a/packages/backend-common/src/cache/CacheClient.ts b/packages/backend-common/src/cache/CacheClient.ts index 79f48a2757..8e046f7f19 100644 --- a/packages/backend-common/src/cache/CacheClient.ts +++ b/packages/backend-common/src/cache/CacheClient.ts @@ -14,7 +14,7 @@ * limitations under the License. */ -import { JsonValue } from '@backstage/config'; +import { JsonValue } from '@backstage/types'; import { createHash } from 'crypto'; import Keyv from 'keyv'; diff --git a/packages/backend-common/src/config.ts b/packages/backend-common/src/config.ts index 04cf1ac2bb..fa49d5f015 100644 --- a/packages/backend-common/src/config.ts +++ b/packages/backend-common/src/config.ts @@ -18,7 +18,8 @@ import { resolve as resolvePath } from 'path'; import parseArgs from 'minimist'; import { Logger } from 'winston'; import { findPaths } from '@backstage/cli-common'; -import { Config, ConfigReader, JsonValue } from '@backstage/config'; +import { Config, ConfigReader } from '@backstage/config'; +import { JsonValue } from '@backstage/types'; import { loadConfig } from '@backstage/config-loader'; export class ObservableConfigProxy implements Config { diff --git a/packages/backend-common/src/database/DatabaseManager.ts b/packages/backend-common/src/database/DatabaseManager.ts index de39279a4f..c0511c6b78 100644 --- a/packages/backend-common/src/database/DatabaseManager.ts +++ b/packages/backend-common/src/database/DatabaseManager.ts @@ -15,7 +15,8 @@ */ import { Knex } from 'knex'; import { omit } from 'lodash'; -import { Config, ConfigReader, JsonObject } from '@backstage/config'; +import { Config, ConfigReader } from '@backstage/config'; +import { JsonObject } from '@backstage/types'; import { createDatabaseClient, ensureDatabaseExists, diff --git a/packages/backend-common/src/database/connection.ts b/packages/backend-common/src/database/connection.ts index 8ea46070eb..1c5cce3718 100644 --- a/packages/backend-common/src/database/connection.ts +++ b/packages/backend-common/src/database/connection.ts @@ -14,7 +14,8 @@ * limitations under the License. */ -import { Config, JsonObject } from '@backstage/config'; +import { Config } from '@backstage/config'; +import { JsonObject } from '@backstage/types'; import { InputError } from '@backstage/errors'; import knexFactory, { Knex } from 'knex'; import { mergeDatabaseConfig } from './config'; diff --git a/packages/backend-common/src/reading/AwsS3UrlReader.test.ts b/packages/backend-common/src/reading/AwsS3UrlReader.test.ts index 6959edcc8b..301543e8c9 100644 --- a/packages/backend-common/src/reading/AwsS3UrlReader.test.ts +++ b/packages/backend-common/src/reading/AwsS3UrlReader.test.ts @@ -13,7 +13,9 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import { ConfigReader, JsonObject } from '@backstage/config'; + +import { ConfigReader } from '@backstage/config'; +import { JsonObject } from '@backstage/types'; import { getVoidLogger } from '../logging'; import { DefaultReadTreeResponseFactory } from './tree'; import { AwsS3UrlReader } from './AwsS3UrlReader'; diff --git a/packages/backend-common/src/reading/GoogleGcsUrlReader.test.ts b/packages/backend-common/src/reading/GoogleGcsUrlReader.test.ts index d8aac4886d..31cf2956f8 100644 --- a/packages/backend-common/src/reading/GoogleGcsUrlReader.test.ts +++ b/packages/backend-common/src/reading/GoogleGcsUrlReader.test.ts @@ -14,7 +14,8 @@ * limitations under the License. */ -import { ConfigReader, JsonObject } from '@backstage/config'; +import { ConfigReader } from '@backstage/config'; +import { JsonObject } from '@backstage/types'; import { getVoidLogger } from '../logging'; import { DefaultReadTreeResponseFactory } from './tree'; import { GoogleGcsUrlReader } from './GoogleGcsUrlReader'; diff --git a/packages/catalog-model/api-report.md b/packages/catalog-model/api-report.md index c9429f9bdb..52f36493b5 100644 --- a/packages/catalog-model/api-report.md +++ b/packages/catalog-model/api-report.md @@ -3,9 +3,9 @@ > Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/). ```ts -import { JsonObject } from '@backstage/config'; +import { JsonObject } from '@backstage/types'; import { JSONSchema7 } from 'json-schema'; -import { JsonValue } from '@backstage/config'; +import { JsonValue } from '@backstage/types'; import { SerializedError } from '@backstage/errors'; import * as yup from 'yup'; diff --git a/packages/catalog-model/package.json b/packages/catalog-model/package.json index 69d1c34ba9..615e80b684 100644 --- a/packages/catalog-model/package.json +++ b/packages/catalog-model/package.json @@ -32,6 +32,7 @@ "dependencies": { "@backstage/config": "^0.1.10", "@backstage/errors": "^0.1.3", + "@backstage/types": "^0.1.1", "@types/json-schema": "^7.0.5", "@types/yup": "^0.29.13", "ajv": "^7.0.3", diff --git a/packages/catalog-model/src/entity/Entity.ts b/packages/catalog-model/src/entity/Entity.ts index 7a4729c309..9d65d3e8f3 100644 --- a/packages/catalog-model/src/entity/Entity.ts +++ b/packages/catalog-model/src/entity/Entity.ts @@ -14,7 +14,7 @@ * limitations under the License. */ -import { JsonObject } from '@backstage/config'; +import { JsonObject } from '@backstage/types'; import { EntityName } from '../types'; import { UNSTABLE_EntityStatus } from './EntityStatus'; diff --git a/packages/catalog-model/src/kinds/TemplateEntityV1beta2.ts b/packages/catalog-model/src/kinds/TemplateEntityV1beta2.ts index 1b1966d05d..f4c2dfb5bc 100644 --- a/packages/catalog-model/src/kinds/TemplateEntityV1beta2.ts +++ b/packages/catalog-model/src/kinds/TemplateEntityV1beta2.ts @@ -14,7 +14,7 @@ * limitations under the License. */ -import { JsonObject } from '@backstage/config'; +import { JsonObject } from '@backstage/types'; import type { Entity } from '../entity/Entity'; import schema from '../schema/kinds/Template.v1beta2.schema.json'; import { ajvCompiledJsonSchemaValidator } from './util'; diff --git a/packages/catalog-model/src/types.ts b/packages/catalog-model/src/types.ts index 8ec1303a40..1a0fab267c 100644 --- a/packages/catalog-model/src/types.ts +++ b/packages/catalog-model/src/types.ts @@ -14,7 +14,7 @@ * limitations under the License. */ -import { JsonValue } from '@backstage/config'; +import { JsonValue } from '@backstage/types'; import { JSONSchema7 } from 'json-schema'; /** diff --git a/packages/cli/package.json b/packages/cli/package.json index da9e161fef..62a008087e 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -32,6 +32,7 @@ "@backstage/config": "^0.1.10", "@backstage/config-loader": "^0.7.0", "@backstage/errors": "^0.1.3", + "@backstage/types": "^0.1.1", "@hot-loader/react-dom": "^16.13.0", "@lerna/package-graph": "^4.0.0", "@lerna/project": "^4.0.0", diff --git a/packages/cli/src/commands/config/docs.ts b/packages/cli/src/commands/config/docs.ts index 198244b941..7a807f7c78 100644 --- a/packages/cli/src/commands/config/docs.ts +++ b/packages/cli/src/commands/config/docs.ts @@ -14,7 +14,7 @@ * limitations under the License. */ -import { JsonObject } from '@backstage/config'; +import { JsonObject } from '@backstage/types'; import { mergeConfigSchemas } from '@backstage/config-loader'; import { Command } from 'commander'; import { JSONSchema7 as JSONSchema } from 'json-schema'; diff --git a/packages/cli/src/commands/config/schema.ts b/packages/cli/src/commands/config/schema.ts index a36fc24f06..be228e1e7c 100644 --- a/packages/cli/src/commands/config/schema.ts +++ b/packages/cli/src/commands/config/schema.ts @@ -18,7 +18,7 @@ import { Command } from 'commander'; import { JSONSchema7 as JSONSchema } from 'json-schema'; import { stringify as stringifyYaml } from 'yaml'; import { loadCliConfig } from '../../lib/config'; -import { JsonObject } from '@backstage/config'; +import { JsonObject } from '@backstage/types'; import { mergeConfigSchemas } from '@backstage/config-loader'; export default async (cmd: Command) => { diff --git a/packages/cli/src/commands/install/types.ts b/packages/cli/src/commands/install/types.ts index 5479032de5..3105f78822 100644 --- a/packages/cli/src/commands/install/types.ts +++ b/packages/cli/src/commands/install/types.ts @@ -15,7 +15,7 @@ */ import { YarnInfoInspectData } from '../../lib/versioning'; -import { JsonObject } from '@backstage/config'; +import { JsonObject } from '@backstage/types'; /** * TODO: possible types diff --git a/packages/config-loader/api-report.md b/packages/config-loader/api-report.md index b47119d470..19b5ee9e27 100644 --- a/packages/config-loader/api-report.md +++ b/packages/config-loader/api-report.md @@ -4,7 +4,7 @@ ```ts import { AppConfig } from '@backstage/config'; -import { JsonObject } from '@backstage/config'; +import { JsonObject } from '@backstage/types'; import { JSONSchema7 } from 'json-schema'; // @public diff --git a/packages/config-loader/package.json b/packages/config-loader/package.json index 03ea61abe2..a731225e2b 100644 --- a/packages/config-loader/package.json +++ b/packages/config-loader/package.json @@ -33,6 +33,7 @@ "@backstage/cli-common": "^0.1.4", "@backstage/config": "^0.1.9", "@backstage/errors": "^0.1.3", + "@backstage/types": "^0.1.1", "@types/json-schema": "^7.0.6", "ajv": "^7.0.3", "chokidar": "^3.5.2", diff --git a/packages/config-loader/src/lib/env.ts b/packages/config-loader/src/lib/env.ts index 57cfc077a7..638b49dbc8 100644 --- a/packages/config-loader/src/lib/env.ts +++ b/packages/config-loader/src/lib/env.ts @@ -14,7 +14,8 @@ * limitations under the License. */ -import { AppConfig, JsonObject } from '@backstage/config'; +import { AppConfig } from '@backstage/config'; +import { JsonObject } from '@backstage/types'; import { assertError } from '@backstage/errors'; const ENV_PREFIX = 'APP_CONFIG_'; diff --git a/packages/config-loader/src/lib/schema/collect.ts b/packages/config-loader/src/lib/schema/collect.ts index de6aff376f..8e7f582e44 100644 --- a/packages/config-loader/src/lib/schema/collect.ts +++ b/packages/config-loader/src/lib/schema/collect.ts @@ -23,7 +23,7 @@ import { } from 'path'; import { ConfigSchemaPackageEntry } from './types'; import { getProgramFromFiles, generateSchema } from 'typescript-json-schema'; -import { JsonObject } from '@backstage/config'; +import { JsonObject } from '@backstage/types'; import { assertError } from '@backstage/errors'; type Item = { diff --git a/packages/config-loader/src/lib/schema/filtering.test.ts b/packages/config-loader/src/lib/schema/filtering.test.ts index 3b9e548026..0395c7da6a 100644 --- a/packages/config-loader/src/lib/schema/filtering.test.ts +++ b/packages/config-loader/src/lib/schema/filtering.test.ts @@ -14,7 +14,7 @@ * limitations under the License. */ -import { JsonObject } from '@backstage/config'; +import { JsonObject } from '@backstage/types'; import { ConfigVisibility } from './types'; import { filterByVisibility, filterErrorsByVisibility } from './filtering'; diff --git a/packages/config-loader/src/lib/schema/filtering.ts b/packages/config-loader/src/lib/schema/filtering.ts index 2b13f7ac3f..b4226d7dad 100644 --- a/packages/config-loader/src/lib/schema/filtering.ts +++ b/packages/config-loader/src/lib/schema/filtering.ts @@ -14,7 +14,7 @@ * limitations under the License. */ -import { JsonObject, JsonValue } from '@backstage/config'; +import { JsonObject, JsonValue } from '@backstage/types'; import { ConfigVisibility, DEFAULT_CONFIG_VISIBILITY, diff --git a/packages/config-loader/src/lib/schema/load.ts b/packages/config-loader/src/lib/schema/load.ts index f3ea0b900e..2d78785304 100644 --- a/packages/config-loader/src/lib/schema/load.ts +++ b/packages/config-loader/src/lib/schema/load.ts @@ -14,7 +14,8 @@ * limitations under the License. */ -import { AppConfig, JsonObject } from '@backstage/config'; +import { AppConfig } from '@backstage/config'; +import { JsonObject } from '@backstage/types'; import { compileConfigSchemas } from './compile'; import { collectConfigSchemas } from './collect'; import { filterByVisibility, filterErrorsByVisibility } from './filtering'; diff --git a/packages/config-loader/src/lib/schema/types.ts b/packages/config-loader/src/lib/schema/types.ts index d1c07f4dac..53f4dec88e 100644 --- a/packages/config-loader/src/lib/schema/types.ts +++ b/packages/config-loader/src/lib/schema/types.ts @@ -14,7 +14,8 @@ * limitations under the License. */ -import { AppConfig, JsonObject } from '@backstage/config'; +import { AppConfig } from '@backstage/config'; +import { JsonObject } from '@backstage/types'; /** * An sub-set of configuration schema. diff --git a/packages/config-loader/src/lib/transform/apply.ts b/packages/config-loader/src/lib/transform/apply.ts index 091f9c23c5..80ddad90d0 100644 --- a/packages/config-loader/src/lib/transform/apply.ts +++ b/packages/config-loader/src/lib/transform/apply.ts @@ -14,7 +14,7 @@ * limitations under the License. */ -import { JsonObject, JsonValue } from '@backstage/config'; +import { JsonObject, JsonValue } from '@backstage/types'; import { assertError } from '@backstage/errors'; import { TransformFunc } from './types'; import { isObject } from './utils'; diff --git a/packages/config-loader/src/lib/transform/include.ts b/packages/config-loader/src/lib/transform/include.ts index 5ea7161e5f..569b61c82c 100644 --- a/packages/config-loader/src/lib/transform/include.ts +++ b/packages/config-loader/src/lib/transform/include.ts @@ -16,7 +16,7 @@ import yaml from 'yaml'; import { extname, dirname, resolve as resolvePath } from 'path'; -import { JsonObject, JsonValue } from '@backstage/config'; +import { JsonObject, JsonValue } from '@backstage/types'; import { isObject } from './utils'; import { TransformFunc, EnvFunc, ReadFileFunc } from './types'; diff --git a/packages/config-loader/src/lib/transform/substitution.ts b/packages/config-loader/src/lib/transform/substitution.ts index 21edfb7e57..3c25784dc2 100644 --- a/packages/config-loader/src/lib/transform/substitution.ts +++ b/packages/config-loader/src/lib/transform/substitution.ts @@ -14,7 +14,7 @@ * limitations under the License. */ -import { JsonValue } from '@backstage/config'; +import { JsonValue } from '@backstage/types'; import { TransformFunc, EnvFunc } from './types'; /** diff --git a/packages/config-loader/src/lib/transform/types.ts b/packages/config-loader/src/lib/transform/types.ts index 20e5f88718..0b743cb0fe 100644 --- a/packages/config-loader/src/lib/transform/types.ts +++ b/packages/config-loader/src/lib/transform/types.ts @@ -14,7 +14,7 @@ * limitations under the License. */ -import { JsonValue } from '@backstage/config'; +import { JsonValue } from '@backstage/types'; export type EnvFunc = (name: string) => Promise; diff --git a/packages/config-loader/src/lib/transform/utils.ts b/packages/config-loader/src/lib/transform/utils.ts index a49e9b14bd..b28effa023 100644 --- a/packages/config-loader/src/lib/transform/utils.ts +++ b/packages/config-loader/src/lib/transform/utils.ts @@ -14,7 +14,7 @@ * limitations under the License. */ -import { JsonValue, JsonObject } from '@backstage/config'; +import { JsonValue, JsonObject } from '@backstage/types'; export function isObject(obj: JsonValue | undefined): obj is JsonObject { if (typeof obj !== 'object') { diff --git a/packages/core-app-api/package.json b/packages/core-app-api/package.json index d11b7122ce..1eca9249fc 100644 --- a/packages/core-app-api/package.json +++ b/packages/core-app-api/package.json @@ -33,6 +33,7 @@ "@backstage/config": "^0.1.10", "@backstage/core-plugin-api": "^0.1.11", "@backstage/theme": "^0.2.11", + "@backstage/types": "^0.1.1", "@backstage/version-bridge": "^0.1.0", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", diff --git a/packages/core-app-api/src/app/createApp.tsx b/packages/core-app-api/src/app/createApp.tsx index e9c37a1420..901697edba 100644 --- a/packages/core-app-api/src/app/createApp.tsx +++ b/packages/core-app-api/src/app/createApp.tsx @@ -14,7 +14,8 @@ * limitations under the License. */ -import { AppConfig, JsonObject } from '@backstage/config'; +import { AppConfig } from '@backstage/config'; +import { JsonObject } from '@backstage/types'; import { Button } from '@material-ui/core'; import { ErrorPage, ErrorPanel, Progress } from '@backstage/core-components'; import { darkTheme, lightTheme } from '@backstage/theme'; diff --git a/packages/errors/api-report.md b/packages/errors/api-report.md index ffb111884e..a96132cee7 100644 --- a/packages/errors/api-report.md +++ b/packages/errors/api-report.md @@ -3,7 +3,7 @@ > Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/). ```ts -import { JsonObject } from '@backstage/config'; +import { JsonObject } from '@backstage/types'; // @public export function assertError(value: unknown): asserts value is ErrorLike; diff --git a/packages/errors/package.json b/packages/errors/package.json index e3d49f55c7..b1f214e5af 100644 --- a/packages/errors/package.json +++ b/packages/errors/package.json @@ -30,7 +30,7 @@ "clean": "backstage-cli clean" }, "dependencies": { - "@backstage/config": "^0.1.9", + "@backstage/types": "^0.1.1", "cross-fetch": "^3.0.6", "serialize-error": "^8.0.1" }, diff --git a/packages/errors/src/serialization/error.ts b/packages/errors/src/serialization/error.ts index b1f63063cf..8d031949bf 100644 --- a/packages/errors/src/serialization/error.ts +++ b/packages/errors/src/serialization/error.ts @@ -14,7 +14,7 @@ * limitations under the License. */ -import { JsonObject } from '@backstage/config'; +import { JsonObject } from '@backstage/types'; import { deserializeError as deserializeErrorInternal, serializeError as serializeErrorInternal, diff --git a/packages/search-common/api-report.md b/packages/search-common/api-report.md index d8d9c2922a..c4950e3556 100644 --- a/packages/search-common/api-report.md +++ b/packages/search-common/api-report.md @@ -3,7 +3,7 @@ > Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/). ```ts -import { JsonObject } from '@backstage/config'; +import { JsonObject } from '@backstage/types'; // Warning: (ae-missing-release-tag) "DocumentCollator" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) // diff --git a/packages/search-common/package.json b/packages/search-common/package.json index 46e3518b51..fee0fe59dd 100644 --- a/packages/search-common/package.json +++ b/packages/search-common/package.json @@ -36,7 +36,7 @@ "url": "https://github.com/backstage/backstage/issues" }, "dependencies": { - "@backstage/config": "^0.1.6" + "@backstage/types": "^0.1.1" }, "devDependencies": { "@backstage/cli": "^0.8.0" diff --git a/packages/search-common/src/types.ts b/packages/search-common/src/types.ts index 063e0cb96c..f73665de5b 100644 --- a/packages/search-common/src/types.ts +++ b/packages/search-common/src/types.ts @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import { JsonObject } from '@backstage/config'; +import { JsonObject } from '@backstage/types'; export interface SearchQuery { term: string; diff --git a/plugins/app-backend/package.json b/plugins/app-backend/package.json index 6047b5aeb1..3483bfa8bd 100644 --- a/plugins/app-backend/package.json +++ b/plugins/app-backend/package.json @@ -33,6 +33,7 @@ "@backstage/backend-common": "^0.9.7", "@backstage/config-loader": "^0.7.0", "@backstage/config": "^0.1.8", + "@backstage/types": "^0.1.1", "@types/express": "^4.17.6", "express": "^4.17.1", "express-promise-router": "^4.1.0", @@ -42,6 +43,7 @@ }, "devDependencies": { "@backstage/cli": "^0.8.0", + "@backstage/types": "^0.1.1", "@types/supertest": "^2.0.8", "msw": "^0.29.0", "supertest": "^6.1.3" diff --git a/plugins/app-backend/src/lib/config.ts b/plugins/app-backend/src/lib/config.ts index 1ebd95a5c0..c37dc34dcc 100644 --- a/plugins/app-backend/src/lib/config.ts +++ b/plugins/app-backend/src/lib/config.ts @@ -17,7 +17,8 @@ import fs from 'fs-extra'; import { resolve as resolvePath } from 'path'; import { Logger } from 'winston'; -import { AppConfig, Config, JsonObject } from '@backstage/config'; +import { AppConfig, Config } from '@backstage/config'; +import { JsonObject } from '@backstage/types'; import { loadConfigSchema, readEnvConfig } from '@backstage/config-loader'; type InjectOptions = { diff --git a/plugins/catalog-backend-module-ldap/api-report.md b/plugins/catalog-backend-module-ldap/api-report.md index ae4a085649..bbf92944b9 100644 --- a/plugins/catalog-backend-module-ldap/api-report.md +++ b/plugins/catalog-backend-module-ldap/api-report.md @@ -10,7 +10,7 @@ import { Config } from '@backstage/config'; import { EntityProvider } from '@backstage/plugin-catalog-backend'; import { EntityProviderConnection } from '@backstage/plugin-catalog-backend'; import { GroupEntity } from '@backstage/catalog-model'; -import { JsonValue } from '@backstage/config'; +import { JsonValue } from '@backstage/types'; import { LocationSpec } from '@backstage/catalog-model'; import { Logger as Logger_2 } from 'winston'; import { SearchEntry } from 'ldapjs'; diff --git a/plugins/catalog-backend-module-ldap/package.json b/plugins/catalog-backend-module-ldap/package.json index 7236e780c4..51c8780a9d 100644 --- a/plugins/catalog-backend-module-ldap/package.json +++ b/plugins/catalog-backend-module-ldap/package.json @@ -33,6 +33,7 @@ "@backstage/config": "^0.1.10", "@backstage/errors": "^0.1.3", "@backstage/plugin-catalog-backend": "^0.17.1", + "@backstage/types": "^0.1.1", "@types/ldapjs": "^2.2.0", "ldapjs": "^2.2.0", "lodash": "^4.17.21", diff --git a/plugins/catalog-backend-module-ldap/src/ldap/config.ts b/plugins/catalog-backend-module-ldap/src/ldap/config.ts index 6dad7e087f..dc1ec4910d 100644 --- a/plugins/catalog-backend-module-ldap/src/ldap/config.ts +++ b/plugins/catalog-backend-module-ldap/src/ldap/config.ts @@ -14,7 +14,8 @@ * limitations under the License. */ -import { Config, JsonValue } from '@backstage/config'; +import { Config } from '@backstage/config'; +import { JsonValue } from '@backstage/types'; import { SearchOptions } from 'ldapjs'; import mergeWith from 'lodash/mergeWith'; import { RecursivePartial } from '@backstage/plugin-catalog-backend'; diff --git a/plugins/catalog-backend/api-report.md b/plugins/catalog-backend/api-report.md index d3c73afc91..cbef4c90a1 100644 --- a/plugins/catalog-backend/api-report.md +++ b/plugins/catalog-backend/api-report.md @@ -18,8 +18,8 @@ import { EntityRelationSpec } from '@backstage/catalog-model'; import express from 'express'; import { GitHubIntegrationConfig } from '@backstage/integration'; import { IndexableDocument } from '@backstage/search-common'; -import { JsonObject } from '@backstage/config'; -import { JsonValue } from '@backstage/config'; +import { JsonObject } from '@backstage/types'; +import { JsonValue } from '@backstage/types'; import { Knex } from 'knex'; import { Location as Location_2 } from '@backstage/catalog-model'; import { LocationSpec } from '@backstage/catalog-model'; diff --git a/plugins/catalog-backend/package.json b/plugins/catalog-backend/package.json index 896bbde592..9a44258958 100644 --- a/plugins/catalog-backend/package.json +++ b/plugins/catalog-backend/package.json @@ -37,6 +37,7 @@ "@backstage/errors": "^0.1.3", "@backstage/integration": "^0.6.8", "@backstage/search-common": "^0.2.0", + "@backstage/types": "^0.1.1", "@octokit/graphql": "^4.5.8", "@types/express": "^4.17.6", "aws-sdk": "^2.840.0", diff --git a/plugins/catalog-backend/src/database/types.ts b/plugins/catalog-backend/src/database/types.ts index 9d28387e2c..ac2ff07498 100644 --- a/plugins/catalog-backend/src/database/types.ts +++ b/plugins/catalog-backend/src/database/types.ts @@ -15,7 +15,7 @@ */ import { Entity, EntityRelationSpec } from '@backstage/catalog-model'; -import { JsonObject } from '@backstage/config'; +import { JsonObject } from '@backstage/types'; import { DateTime } from 'luxon'; import { DeferredEntity } from '../processing/types'; diff --git a/plugins/catalog-backend/src/ingestion/processors/PlaceholderProcessor.ts b/plugins/catalog-backend/src/ingestion/processors/PlaceholderProcessor.ts index 9ddef1ab3b..65f65a0479 100644 --- a/plugins/catalog-backend/src/ingestion/processors/PlaceholderProcessor.ts +++ b/plugins/catalog-backend/src/ingestion/processors/PlaceholderProcessor.ts @@ -16,7 +16,7 @@ import { UrlReader } from '@backstage/backend-common'; import { Entity, LocationSpec } from '@backstage/catalog-model'; -import { JsonValue } from '@backstage/config'; +import { JsonValue } from '@backstage/types'; import { ScmIntegrationRegistry } from '@backstage/integration'; import yaml from 'yaml'; import { CatalogProcessor } from './types'; diff --git a/plugins/catalog-backend/src/ingestion/processors/types.ts b/plugins/catalog-backend/src/ingestion/processors/types.ts index dccc60d42c..3e4e24b0fe 100644 --- a/plugins/catalog-backend/src/ingestion/processors/types.ts +++ b/plugins/catalog-backend/src/ingestion/processors/types.ts @@ -19,7 +19,7 @@ import { EntityRelationSpec, LocationSpec, } from '@backstage/catalog-model'; -import { JsonValue } from '@backstage/config'; +import { JsonValue } from '@backstage/types'; export type CatalogProcessor = { /** diff --git a/plugins/catalog-backend/src/processing/DefaultCatalogProcessingOrchestrator.ts b/plugins/catalog-backend/src/processing/DefaultCatalogProcessingOrchestrator.ts index d3ec162216..b42c8839cf 100644 --- a/plugins/catalog-backend/src/processing/DefaultCatalogProcessingOrchestrator.ts +++ b/plugins/catalog-backend/src/processing/DefaultCatalogProcessingOrchestrator.ts @@ -29,7 +29,7 @@ import { InputError, NotAllowedError, } from '@backstage/errors'; -import { JsonValue } from '@backstage/config'; +import { JsonValue } from '@backstage/types'; import { ScmIntegrationRegistry } from '@backstage/integration'; import path from 'path'; import { Logger } from 'winston'; diff --git a/plugins/catalog-backend/src/processing/ProcessorCacheManager.ts b/plugins/catalog-backend/src/processing/ProcessorCacheManager.ts index 378974e33e..472d6453ce 100644 --- a/plugins/catalog-backend/src/processing/ProcessorCacheManager.ts +++ b/plugins/catalog-backend/src/processing/ProcessorCacheManager.ts @@ -14,7 +14,7 @@ * limitations under the License. */ -import { JsonObject, JsonValue } from '@backstage/config'; +import { JsonObject, JsonValue } from '@backstage/types'; import { CatalogProcessor } from '../ingestion/processors'; import { CatalogProcessorCache } from '../ingestion/processors/types'; import { isObject } from './util'; diff --git a/plugins/catalog-backend/src/processing/types.ts b/plugins/catalog-backend/src/processing/types.ts index 4b16ccef32..7fb1157d3b 100644 --- a/plugins/catalog-backend/src/processing/types.ts +++ b/plugins/catalog-backend/src/processing/types.ts @@ -15,7 +15,7 @@ */ import { Entity, EntityRelationSpec } from '@backstage/catalog-model'; -import { JsonObject } from '@backstage/config'; +import { JsonObject } from '@backstage/types'; export type EntityProcessingRequest = { entity: Entity; diff --git a/plugins/catalog-backend/src/processing/util.ts b/plugins/catalog-backend/src/processing/util.ts index ad8fe8be60..9f5f23ed09 100644 --- a/plugins/catalog-backend/src/processing/util.ts +++ b/plugins/catalog-backend/src/processing/util.ts @@ -24,7 +24,7 @@ import { ORIGIN_LOCATION_ANNOTATION, stringifyEntityRef, } from '@backstage/catalog-model'; -import { JsonObject, JsonValue } from '@backstage/config'; +import { JsonObject, JsonValue } from '@backstage/types'; import { InputError } from '@backstage/errors'; import { ScmIntegrationRegistry } from '@backstage/integration'; import path from 'path'; diff --git a/plugins/catalog-graphql/package.json b/plugins/catalog-graphql/package.json index 80ad7f9a16..f5705dcc76 100644 --- a/plugins/catalog-graphql/package.json +++ b/plugins/catalog-graphql/package.json @@ -33,6 +33,7 @@ "dependencies": { "@backstage/catalog-model": "^0.9.5", "@backstage/config": "^0.1.8", + "@backstage/types": "^0.1.1", "@graphql-modules/core": "^0.7.17", "apollo-server": "^2.16.1", "cross-fetch": "^3.0.6", diff --git a/plugins/catalog-graphql/src/service/client.ts b/plugins/catalog-graphql/src/service/client.ts index 487762d5d7..4328a5bd5a 100644 --- a/plugins/catalog-graphql/src/service/client.ts +++ b/plugins/catalog-graphql/src/service/client.ts @@ -16,7 +16,7 @@ import { Entity, EntityMeta } from '@backstage/catalog-model'; import fetch from 'cross-fetch'; -import { JsonObject } from '@backstage/config'; +import { JsonObject } from '@backstage/types'; export interface ReaderEntityMeta extends EntityMeta { uid: string; diff --git a/plugins/config-schema/package.json b/plugins/config-schema/package.json index 1b2214de8b..1a6b39f0cb 100644 --- a/plugins/config-schema/package.json +++ b/plugins/config-schema/package.json @@ -26,6 +26,7 @@ "@backstage/core-plugin-api": "^0.1.11", "@backstage/errors": "^0.1.3", "@backstage/theme": "^0.2.11", + "@backstage/types": "^0.1.1", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.57", diff --git a/plugins/config-schema/src/components/SchemaView/ChildView.tsx b/plugins/config-schema/src/components/SchemaView/ChildView.tsx index 03cb1201a0..dcb446db5a 100644 --- a/plugins/config-schema/src/components/SchemaView/ChildView.tsx +++ b/plugins/config-schema/src/components/SchemaView/ChildView.tsx @@ -14,7 +14,7 @@ * limitations under the License. */ -import { JsonValue } from '@backstage/config'; +import { JsonValue } from '@backstage/types'; import { Box, Chip, Divider, makeStyles, Typography } from '@material-ui/core'; import { Schema } from 'jsonschema'; import React, { useEffect, useRef } from 'react'; diff --git a/plugins/config-schema/src/components/SchemaView/MetadataView.tsx b/plugins/config-schema/src/components/SchemaView/MetadataView.tsx index c7113950cc..157890ae6a 100644 --- a/plugins/config-schema/src/components/SchemaView/MetadataView.tsx +++ b/plugins/config-schema/src/components/SchemaView/MetadataView.tsx @@ -14,7 +14,7 @@ * limitations under the License. */ -import { JsonValue } from '@backstage/config'; +import { JsonValue } from '@backstage/types'; import { Paper, Table, diff --git a/plugins/scaffolder-backend-module-cookiecutter/package.json b/plugins/scaffolder-backend-module-cookiecutter/package.json index 7db57dbe6b..1f004b8804 100644 --- a/plugins/scaffolder-backend-module-cookiecutter/package.json +++ b/plugins/scaffolder-backend-module-cookiecutter/package.json @@ -25,6 +25,7 @@ "@backstage/integration": "^0.6.2", "@backstage/plugin-scaffolder-backend": "^0.15.10", "@backstage/config": "^0.1.8", + "@backstage/types": "^0.1.1", "command-exists": "^1.2.9", "fs-extra": "10.0.0", "winston": "^3.2.1", diff --git a/plugins/scaffolder-backend-module-cookiecutter/src/actions/fetch/cookiecutter.test.ts b/plugins/scaffolder-backend-module-cookiecutter/src/actions/fetch/cookiecutter.test.ts index bc3fe3eca2..bba51e3f01 100644 --- a/plugins/scaffolder-backend-module-cookiecutter/src/actions/fetch/cookiecutter.test.ts +++ b/plugins/scaffolder-backend-module-cookiecutter/src/actions/fetch/cookiecutter.test.ts @@ -29,7 +29,8 @@ import { UrlReader, ContainerRunner, } from '@backstage/backend-common'; -import { ConfigReader, JsonObject } from '@backstage/config'; +import { ConfigReader } from '@backstage/config'; +import { JsonObject } from '@backstage/types'; import { ScmIntegrations } from '@backstage/integration'; import mockFs from 'mock-fs'; import os from 'os'; diff --git a/plugins/scaffolder-backend-module-cookiecutter/src/actions/fetch/cookiecutter.ts b/plugins/scaffolder-backend-module-cookiecutter/src/actions/fetch/cookiecutter.ts index 1f6fbdb7d8..5120cd3b27 100644 --- a/plugins/scaffolder-backend-module-cookiecutter/src/actions/fetch/cookiecutter.ts +++ b/plugins/scaffolder-backend-module-cookiecutter/src/actions/fetch/cookiecutter.ts @@ -19,7 +19,7 @@ import { UrlReader, resolveSafeChildPath, } from '@backstage/backend-common'; -import { JsonObject, JsonValue } from '@backstage/config'; +import { JsonObject, JsonValue } from '@backstage/types'; import { InputError } from '@backstage/errors'; import { ScmIntegrations } from '@backstage/integration'; import commandExists from 'command-exists'; diff --git a/plugins/scaffolder-backend-module-rails/package.json b/plugins/scaffolder-backend-module-rails/package.json index c88e6d0f9f..5e1c9d0107 100644 --- a/plugins/scaffolder-backend-module-rails/package.json +++ b/plugins/scaffolder-backend-module-rails/package.json @@ -26,6 +26,7 @@ "@backstage/config": "^0.1.8", "@backstage/errors": "^0.1.3", "@backstage/integration": "^0.6.2", + "@backstage/types": "^0.1.1", "command-exists": "^1.2.9", "fs-extra": "^9.0.0" }, diff --git a/plugins/scaffolder-backend-module-rails/src/actions/fetch/rails/index.ts b/plugins/scaffolder-backend-module-rails/src/actions/fetch/rails/index.ts index e2dc8fd95a..5ce7d46689 100644 --- a/plugins/scaffolder-backend-module-rails/src/actions/fetch/rails/index.ts +++ b/plugins/scaffolder-backend-module-rails/src/actions/fetch/rails/index.ts @@ -15,7 +15,7 @@ */ import { ContainerRunner, UrlReader } from '@backstage/backend-common'; -import { JsonObject } from '@backstage/config'; +import { JsonObject } from '@backstage/types'; import { InputError } from '@backstage/errors'; import { ScmIntegrations } from '@backstage/integration'; import fs from 'fs-extra'; diff --git a/plugins/scaffolder-backend-module-rails/src/actions/fetch/rails/railsNewRunner.ts b/plugins/scaffolder-backend-module-rails/src/actions/fetch/rails/railsNewRunner.ts index a828800e84..27ce32dde2 100644 --- a/plugins/scaffolder-backend-module-rails/src/actions/fetch/rails/railsNewRunner.ts +++ b/plugins/scaffolder-backend-module-rails/src/actions/fetch/rails/railsNewRunner.ts @@ -23,7 +23,7 @@ import { railsArgumentResolver, RailsRunOptions, } from './railsArgumentResolver'; -import { JsonObject } from '@backstage/config'; +import { JsonObject } from '@backstage/types'; import { Writable } from 'stream'; export class RailsNewRunner { diff --git a/plugins/scaffolder-backend-module-yeoman/package.json b/plugins/scaffolder-backend-module-yeoman/package.json index eb339b90d5..a1f1635808 100644 --- a/plugins/scaffolder-backend-module-yeoman/package.json +++ b/plugins/scaffolder-backend-module-yeoman/package.json @@ -22,6 +22,7 @@ "dependencies": { "@backstage/config": "^0.1.8", "@backstage/plugin-scaffolder-backend": "^0.15.2", + "@backstage/types": "^0.1.1", "winston": "^3.2.1", "yeoman-environment": "^3.6.0" }, diff --git a/plugins/scaffolder-backend-module-yeoman/src/actions/run/yeoman.test.ts b/plugins/scaffolder-backend-module-yeoman/src/actions/run/yeoman.test.ts index 6e61ae77c4..ee5e8449f7 100644 --- a/plugins/scaffolder-backend-module-yeoman/src/actions/run/yeoman.test.ts +++ b/plugins/scaffolder-backend-module-yeoman/src/actions/run/yeoman.test.ts @@ -23,7 +23,7 @@ import os from 'os'; import { PassThrough } from 'stream'; import { createRunYeomanAction } from './yeoman'; import type { ActionContext } from '@backstage/plugin-scaffolder-backend'; -import { JsonObject } from '@backstage/config'; +import { JsonObject } from '@backstage/types'; describe('run:yeoman', () => { const mockTmpDir = os.tmpdir(); diff --git a/plugins/scaffolder-backend-module-yeoman/src/actions/run/yeoman.ts b/plugins/scaffolder-backend-module-yeoman/src/actions/run/yeoman.ts index c8bd49f3d3..f6a29037a3 100644 --- a/plugins/scaffolder-backend-module-yeoman/src/actions/run/yeoman.ts +++ b/plugins/scaffolder-backend-module-yeoman/src/actions/run/yeoman.ts @@ -14,7 +14,7 @@ * limitations under the License. */ -import { JsonObject } from '@backstage/config'; +import { JsonObject } from '@backstage/types'; import { createTemplateAction } from '@backstage/plugin-scaffolder-backend'; import { yeomanRun } from './yeomanRun'; diff --git a/plugins/scaffolder-backend-module-yeoman/src/actions/run/yeomanRun.ts b/plugins/scaffolder-backend-module-yeoman/src/actions/run/yeomanRun.ts index ff11634f81..a18ea38c46 100644 --- a/plugins/scaffolder-backend-module-yeoman/src/actions/run/yeomanRun.ts +++ b/plugins/scaffolder-backend-module-yeoman/src/actions/run/yeomanRun.ts @@ -14,7 +14,7 @@ * limitations under the License. */ -import { JsonObject } from '@backstage/config'; +import { JsonObject } from '@backstage/types'; /* * This module should use '@types/yeoman-environment' eventually as soon as '@types/yeoman-environment' supports diff --git a/plugins/scaffolder-backend/api-report.md b/plugins/scaffolder-backend/api-report.md index 07c6c7a57d..1a7aebf2f5 100644 --- a/plugins/scaffolder-backend/api-report.md +++ b/plugins/scaffolder-backend/api-report.md @@ -14,10 +14,8 @@ import { createFetchCookiecutterAction } from '@backstage/plugin-scaffolder-back import { createPullRequest } from 'octokit-plugin-create-pull-request'; import { Entity } from '@backstage/catalog-model'; import express from 'express'; -import { JsonObject } from '@backstage/config'; -import { JsonObject as JsonObject_2 } from '@backstage/types'; -import { JsonValue } from '@backstage/config'; -import { JsonValue as JsonValue_2 } from '@backstage/types'; +import { JsonObject } from '@backstage/types'; +import { JsonValue } from '@backstage/types'; import { LocationSpec } from '@backstage/catalog-model'; import { Logger as Logger_2 } from 'winston'; import { Octokit } from '@octokit/rest'; @@ -185,7 +183,7 @@ export function createRouter(options: RouterOptions): Promise; // @public (undocumented) export const createTemplateAction: < Input extends Partial<{ - [name: string]: JsonValue_2 | Partial | undefined; + [name: string]: JsonValue | Partial | undefined; }>, >( templateAction: TemplateAction, diff --git a/plugins/scaffolder-backend/package.json b/plugins/scaffolder-backend/package.json index ea29866485..cfea66284d 100644 --- a/plugins/scaffolder-backend/package.json +++ b/plugins/scaffolder-backend/package.json @@ -39,6 +39,7 @@ "@backstage/plugin-catalog-backend": "^0.17.1", "@backstage/plugin-scaffolder-common": "^0.1.0", "@backstage/plugin-scaffolder-backend-module-cookiecutter": "^0.1.2", + "@backstage/types": "^0.1.1", "@gitbeaker/core": "^30.2.0", "@gitbeaker/node": "^30.2.0", "@octokit/rest": "^18.5.3", diff --git a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/fetch/helpers.ts b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/fetch/helpers.ts index 5625989417..3946110d42 100644 --- a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/fetch/helpers.ts +++ b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/fetch/helpers.ts @@ -15,7 +15,7 @@ */ import { resolveSafeChildPath, UrlReader } from '@backstage/backend-common'; -import { JsonValue } from '@backstage/config'; +import { JsonValue } from '@backstage/types'; import { InputError } from '@backstage/errors'; import { ScmIntegrations } from '@backstage/integration'; import fs from 'fs-extra'; diff --git a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/filesystem/rename.ts b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/filesystem/rename.ts index aaadd5df57..4bdba96750 100644 --- a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/filesystem/rename.ts +++ b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/filesystem/rename.ts @@ -17,7 +17,7 @@ import { createTemplateAction } from '../../createTemplateAction'; import { resolveSafeChildPath } from '@backstage/backend-common'; import { InputError } from '@backstage/errors'; -import { JsonObject } from '@backstage/config'; +import { JsonObject } from '@backstage/types'; import fs from 'fs-extra'; interface FilesToRename extends JsonObject { diff --git a/plugins/scaffolder-backend/src/scaffolder/actions/types.ts b/plugins/scaffolder-backend/src/scaffolder/actions/types.ts index 3783359b95..ca3459d29c 100644 --- a/plugins/scaffolder-backend/src/scaffolder/actions/types.ts +++ b/plugins/scaffolder-backend/src/scaffolder/actions/types.ts @@ -16,7 +16,7 @@ import { Logger } from 'winston'; import { Writable } from 'stream'; -import { JsonValue, JsonObject } from '@backstage/config'; +import { JsonValue, JsonObject } from '@backstage/types'; import { Schema } from 'jsonschema'; type PartialJsonObject = Partial; diff --git a/plugins/scaffolder-backend/src/scaffolder/tasks/DatabaseTaskStore.ts b/plugins/scaffolder-backend/src/scaffolder/tasks/DatabaseTaskStore.ts index 09cba596b1..9c72a310c1 100644 --- a/plugins/scaffolder-backend/src/scaffolder/tasks/DatabaseTaskStore.ts +++ b/plugins/scaffolder-backend/src/scaffolder/tasks/DatabaseTaskStore.ts @@ -14,7 +14,7 @@ * limitations under the License. */ -import { JsonObject } from '@backstage/config'; +import { JsonObject } from '@backstage/types'; import { resolvePackagePath } from '@backstage/backend-common'; import { ConflictError, NotFoundError } from '@backstage/errors'; import { Knex } from 'knex'; diff --git a/plugins/scaffolder-backend/src/scaffolder/tasks/DefaultWorkflowRunner.ts b/plugins/scaffolder-backend/src/scaffolder/tasks/DefaultWorkflowRunner.ts index 2ac309a1d4..6c68e0c4c5 100644 --- a/plugins/scaffolder-backend/src/scaffolder/tasks/DefaultWorkflowRunner.ts +++ b/plugins/scaffolder-backend/src/scaffolder/tasks/DefaultWorkflowRunner.ts @@ -26,7 +26,7 @@ import * as winston from 'winston'; import nunjucks from 'nunjucks'; import fs from 'fs-extra'; import path from 'path'; -import { JsonObject, JsonValue } from '@backstage/config'; +import { JsonObject, JsonValue } from '@backstage/types'; import { InputError } from '@backstage/errors'; import { PassThrough } from 'stream'; import { isTruthy } from './helper'; diff --git a/plugins/scaffolder-backend/src/scaffolder/tasks/LegacyWorkflowRunner.ts b/plugins/scaffolder-backend/src/scaffolder/tasks/LegacyWorkflowRunner.ts index 97e3a4dec4..6d43ae978c 100644 --- a/plugins/scaffolder-backend/src/scaffolder/tasks/LegacyWorkflowRunner.ts +++ b/plugins/scaffolder-backend/src/scaffolder/tasks/LegacyWorkflowRunner.ts @@ -31,7 +31,7 @@ import { Logger } from 'winston'; import path from 'path'; import fs from 'fs-extra'; import { validate as validateJsonSchema } from 'jsonschema'; -import { JsonObject, JsonValue } from '@backstage/config'; +import { JsonObject, JsonValue } from '@backstage/types'; import { InputError } from '@backstage/errors'; type Options = { diff --git a/plugins/scaffolder-backend/src/scaffolder/tasks/StorageTaskBroker.ts b/plugins/scaffolder-backend/src/scaffolder/tasks/StorageTaskBroker.ts index 4cd1066fc9..2a99c3eb30 100644 --- a/plugins/scaffolder-backend/src/scaffolder/tasks/StorageTaskBroker.ts +++ b/plugins/scaffolder-backend/src/scaffolder/tasks/StorageTaskBroker.ts @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import { JsonObject } from '@backstage/config'; +import { JsonObject } from '@backstage/types'; import { assertError } from '@backstage/errors'; import { Logger } from 'winston'; import { diff --git a/plugins/scaffolder-backend/src/scaffolder/tasks/types.ts b/plugins/scaffolder-backend/src/scaffolder/tasks/types.ts index cd93404165..b91930c56a 100644 --- a/plugins/scaffolder-backend/src/scaffolder/tasks/types.ts +++ b/plugins/scaffolder-backend/src/scaffolder/tasks/types.ts @@ -14,7 +14,7 @@ * limitations under the License. */ -import { JsonValue, JsonObject } from '@backstage/config'; +import { JsonValue, JsonObject } from '@backstage/types'; export type Status = | 'open' diff --git a/plugins/scaffolder-common/api-report.md b/plugins/scaffolder-common/api-report.md index 722e746967..8485e224b2 100644 --- a/plugins/scaffolder-common/api-report.md +++ b/plugins/scaffolder-common/api-report.md @@ -4,7 +4,7 @@ ```ts import { Entity } from '@backstage/catalog-model'; -import { JsonObject } from '@backstage/config'; +import { JsonObject } from '@backstage/types'; import { JSONSchema } from '@backstage/catalog-model'; // @public (undocumented) diff --git a/plugins/scaffolder-common/package.json b/plugins/scaffolder-common/package.json index b0c8de30c7..3c1c444a78 100644 --- a/plugins/scaffolder-common/package.json +++ b/plugins/scaffolder-common/package.json @@ -37,7 +37,7 @@ }, "dependencies": { "@backstage/catalog-model": "^0.9.5", - "@backstage/config": "^0.1.10" + "@backstage/types": "^0.1.1" }, "devDependencies": { "@backstage/cli": "^0.8.0" diff --git a/plugins/scaffolder-common/src/TemplateEntityV1beta3.ts b/plugins/scaffolder-common/src/TemplateEntityV1beta3.ts index 6471fe0ca6..2aefa5fd6b 100644 --- a/plugins/scaffolder-common/src/TemplateEntityV1beta3.ts +++ b/plugins/scaffolder-common/src/TemplateEntityV1beta3.ts @@ -14,7 +14,7 @@ * limitations under the License. */ -import { JsonObject } from '@backstage/config'; +import { JsonObject } from '@backstage/types'; import { Entity } from '@backstage/catalog-model'; /** @public */ diff --git a/plugins/scaffolder/api-report.md b/plugins/scaffolder/api-report.md index 949f19a058..74abada9a8 100644 --- a/plugins/scaffolder/api-report.md +++ b/plugins/scaffolder/api-report.md @@ -19,9 +19,9 @@ import { FieldProps } from '@rjsf/core'; import { FieldValidation } from '@rjsf/core'; import { IconButton } from '@material-ui/core'; import { IdentityApi } from '@backstage/core-plugin-api'; -import { JsonObject } from '@backstage/config'; +import { JsonObject } from '@backstage/types'; import { JSONSchema } from '@backstage/catalog-model'; -import { JsonValue } from '@backstage/config'; +import { JsonValue } from '@backstage/types'; import { Observable } from '@backstage/core-plugin-api'; import { default as React_2 } from 'react'; import { RouteRef } from '@backstage/core-plugin-api'; diff --git a/plugins/scaffolder/package.json b/plugins/scaffolder/package.json index 10483f4807..aa4412204a 100644 --- a/plugins/scaffolder/package.json +++ b/plugins/scaffolder/package.json @@ -41,6 +41,7 @@ "@backstage/integration-react": "^0.1.12", "@backstage/plugin-catalog-react": "^0.6.1", "@backstage/theme": "^0.2.11", + "@backstage/types": "^0.1.1", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.57", diff --git a/plugins/scaffolder/src/api.ts b/plugins/scaffolder/src/api.ts index 3e0ac3eccb..1511899c65 100644 --- a/plugins/scaffolder/src/api.ts +++ b/plugins/scaffolder/src/api.ts @@ -15,7 +15,7 @@ */ import { EntityName } from '@backstage/catalog-model'; -import { JsonObject, JsonValue } from '@backstage/config'; +import { JsonObject, JsonValue } from '@backstage/types'; import { ResponseError } from '@backstage/errors'; import { ScmIntegrationRegistry } from '@backstage/integration'; import { Field, FieldValidation } from '@rjsf/core'; diff --git a/plugins/scaffolder/src/components/MultistepJsonForm/MultistepJsonForm.tsx b/plugins/scaffolder/src/components/MultistepJsonForm/MultistepJsonForm.tsx index 62c2881ab0..df5be2de56 100644 --- a/plugins/scaffolder/src/components/MultistepJsonForm/MultistepJsonForm.tsx +++ b/plugins/scaffolder/src/components/MultistepJsonForm/MultistepJsonForm.tsx @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import { JsonObject } from '@backstage/config'; +import { JsonObject } from '@backstage/types'; import { Box, Button, diff --git a/plugins/scaffolder/src/components/MultistepJsonForm/schema.ts b/plugins/scaffolder/src/components/MultistepJsonForm/schema.ts index dd86784275..39592d314d 100644 --- a/plugins/scaffolder/src/components/MultistepJsonForm/schema.ts +++ b/plugins/scaffolder/src/components/MultistepJsonForm/schema.ts @@ -14,7 +14,7 @@ * limitations under the License. */ -import { JsonObject } from '@backstage/config'; +import { JsonObject } from '@backstage/types'; import { FormProps } from '@rjsf/core'; function isObject(value: unknown): value is JsonObject { diff --git a/plugins/scaffolder/src/components/TemplatePage/TemplatePage.tsx b/plugins/scaffolder/src/components/TemplatePage/TemplatePage.tsx index 05533376db..0ea53212c2 100644 --- a/plugins/scaffolder/src/components/TemplatePage/TemplatePage.tsx +++ b/plugins/scaffolder/src/components/TemplatePage/TemplatePage.tsx @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import { JsonObject, JsonValue } from '@backstage/config'; +import { JsonObject, JsonValue } from '@backstage/types'; import { LinearProgress } from '@material-ui/core'; import { FormValidation, IChangeEvent } from '@rjsf/core'; import React, { useCallback, useState } from 'react'; diff --git a/plugins/scaffolder/src/types.ts b/plugins/scaffolder/src/types.ts index dc71d44f71..5597082f22 100644 --- a/plugins/scaffolder/src/types.ts +++ b/plugins/scaffolder/src/types.ts @@ -14,7 +14,7 @@ * limitations under the License. */ import { JSONSchema } from '@backstage/catalog-model'; -import { JsonValue } from '@backstage/config'; +import { JsonValue } from '@backstage/types'; export type Status = 'open' | 'processing' | 'failed' | 'completed' | 'skipped'; export type JobStatus = 'PENDING' | 'STARTED' | 'COMPLETED' | 'FAILED'; diff --git a/plugins/search/api-report.md b/plugins/search/api-report.md index b29149805c..c638fb4af6 100644 --- a/plugins/search/api-report.md +++ b/plugins/search/api-report.md @@ -9,7 +9,7 @@ import { ApiRef } from '@backstage/core-plugin-api'; import { AsyncState } from 'react-use/lib/useAsync'; import { BackstagePlugin } from '@backstage/core-plugin-api'; import { IndexableDocument } from '@backstage/search-common'; -import { JsonObject } from '@backstage/config'; +import { JsonObject } from '@backstage/types'; import { default as React_2 } from 'react'; import { ReactElement } from 'react'; import { RouteRef } from '@backstage/core-plugin-api'; diff --git a/plugins/search/package.json b/plugins/search/package.json index 9830d26e5c..ee8a2fb726 100644 --- a/plugins/search/package.json +++ b/plugins/search/package.json @@ -38,6 +38,7 @@ "@backstage/plugin-catalog-react": "^0.6.1", "@backstage/search-common": "^0.2.0", "@backstage/theme": "^0.2.11", + "@backstage/types": "^0.1.1", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.57", diff --git a/plugins/search/src/components/SearchContext/SearchContext.tsx b/plugins/search/src/components/SearchContext/SearchContext.tsx index 16d1371964..11d6a2786e 100644 --- a/plugins/search/src/components/SearchContext/SearchContext.tsx +++ b/plugins/search/src/components/SearchContext/SearchContext.tsx @@ -14,7 +14,7 @@ * limitations under the License. */ -import { JsonObject } from '@backstage/config'; +import { JsonObject } from '@backstage/types'; import { useApi } from '@backstage/core-plugin-api'; import { SearchResultSet } from '@backstage/search-common'; import React, { diff --git a/plugins/search/src/components/SearchPage/SearchPage.tsx b/plugins/search/src/components/SearchPage/SearchPage.tsx index fb18833da6..a0738b3466 100644 --- a/plugins/search/src/components/SearchPage/SearchPage.tsx +++ b/plugins/search/src/components/SearchPage/SearchPage.tsx @@ -19,7 +19,7 @@ import { usePrevious } from 'react-use'; import qs from 'qs'; import { useLocation, useOutlet } from 'react-router'; import { SearchContextProvider, useSearch } from '../SearchContext'; -import { JsonObject } from '@backstage/config'; +import { JsonObject } from '@backstage/types'; import { LegacySearchPage } from '../LegacySearchPage'; export const UrlUpdater = () => { From 10615525f364e7b91820334e5787226c9f5a9283 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fredrik=20Adel=C3=B6w?= Date: Fri, 22 Oct 2021 16:11:23 +0200 Subject: [PATCH 30/41] Do Observable too MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Fredrik Adelöw --- .changeset/popular-apples-sparkle.md | 26 +++++++++++++++++++ packages/core-app-api/api-report.md | 5 ++-- .../AlertApi/AlertApiForwarder.ts | 4 ++- .../AppThemeApi/AppThemeSelector.ts | 3 ++- .../ErrorApi/ErrorApiForwarder.ts | 4 ++- .../OAuthRequestApi/OAuthPendingRequests.ts | 2 +- .../OAuthRequestApi/OAuthRequestManager.ts | 2 +- .../implementations/StorageApi/WebStorage.ts | 3 ++- .../implementations/auth/github/GithubAuth.ts | 2 +- .../implementations/auth/oauth2/OAuth2.ts | 2 +- .../implementations/auth/saml/SamlAuth.ts | 2 +- .../OptionalRefreshSessionManagerMux.test.ts | 3 ++- .../OptionalRefreshSessionManagerMux.ts | 3 ++- .../AuthSessionManager/SessionStateTracker.ts | 3 ++- .../src/lib/AuthSessionManager/types.ts | 3 ++- packages/core-app-api/src/lib/subjects.ts | 2 +- packages/test-utils/api-report.md | 2 +- packages/test-utils/package.json | 1 + .../testUtils/apis/ErrorApi/MockErrorApi.ts | 3 ++- .../apis/StorageApi/MockStorageApi.ts | 7 ++--- plugins/catalog-react/api-report.md | 2 +- plugins/catalog-react/package.json | 1 + .../DefaultStarredEntitiesApi.ts | 3 ++- .../StarredEntitiesApi/StarredEntitiesApi.ts | 3 ++- plugins/config-schema/api-report.md | 2 +- .../src/api/StaticSchemaLoader.ts | 2 +- plugins/config-schema/src/api/types.ts | 3 ++- plugins/scaffolder/api-report.md | 2 +- plugins/scaffolder/src/api.ts | 3 +-- .../src/components/hooks/useEventStream.ts | 3 ++- plugins/shortcuts/api-report.md | 2 +- plugins/shortcuts/package.json | 1 + plugins/shortcuts/src/api/ShortcutApi.ts | 3 ++- 33 files changed, 76 insertions(+), 36 deletions(-) create mode 100644 .changeset/popular-apples-sparkle.md diff --git a/.changeset/popular-apples-sparkle.md b/.changeset/popular-apples-sparkle.md new file mode 100644 index 0000000000..b8437795da --- /dev/null +++ b/.changeset/popular-apples-sparkle.md @@ -0,0 +1,26 @@ +--- +'@backstage/backend-common': patch +'@backstage/catalog-model': patch +'@backstage/cli': patch +'@backstage/config-loader': patch +'@backstage/core-app-api': patch +'@backstage/errors': patch +'@backstage/search-common': patch +'@backstage/test-utils': patch +'@backstage/plugin-app-backend': patch +'@backstage/plugin-catalog-backend': patch +'@backstage/plugin-catalog-backend-module-ldap': patch +'@backstage/plugin-catalog-graphql': patch +'@backstage/plugin-catalog-react': patch +'@backstage/plugin-config-schema': patch +'@backstage/plugin-scaffolder': patch +'@backstage/plugin-scaffolder-backend': patch +'@backstage/plugin-scaffolder-backend-module-cookiecutter': patch +'@backstage/plugin-scaffolder-backend-module-rails': patch +'@backstage/plugin-scaffolder-backend-module-yeoman': patch +'@backstage/plugin-scaffolder-common': patch +'@backstage/plugin-search': patch +'@backstage/plugin-shortcuts': patch +--- + +Switch to use the json and observable types from `@backstage/types` diff --git a/packages/core-app-api/api-report.md b/packages/core-app-api/api-report.md index 594a0825a7..03c29daa01 100644 --- a/packages/core-app-api/api-report.md +++ b/packages/core-app-api/api-report.md @@ -40,8 +40,7 @@ import { IconComponent } from '@backstage/core-plugin-api'; import { microsoftAuthApiRef } from '@backstage/core-plugin-api'; import { OAuthApi } from '@backstage/core-plugin-api'; import { OAuthRequestApi } from '@backstage/core-plugin-api'; -import { Observable } from '@backstage/core-plugin-api'; -import { Observable as Observable_2 } from '@backstage/types'; +import { Observable } from '@backstage/types'; import { oktaAuthApiRef } from '@backstage/core-plugin-api'; import { oneloginAuthApiRef } from '@backstage/core-plugin-api'; import { OpenIdConnectApi } from '@backstage/core-plugin-api'; @@ -341,7 +340,7 @@ export const defaultConfigLoader: AppConfigLoader; export class ErrorAlerter implements ErrorApi { constructor(alertApi: AlertApi, errorApi: ErrorApi); // (undocumented) - error$(): Observable_2<{ + error$(): Observable<{ error: { name: string; message: string; diff --git a/packages/core-app-api/src/apis/implementations/AlertApi/AlertApiForwarder.ts b/packages/core-app-api/src/apis/implementations/AlertApi/AlertApiForwarder.ts index 0ba275ea4d..5e649e2f4c 100644 --- a/packages/core-app-api/src/apis/implementations/AlertApi/AlertApiForwarder.ts +++ b/packages/core-app-api/src/apis/implementations/AlertApi/AlertApiForwarder.ts @@ -13,7 +13,9 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import { AlertApi, AlertMessage, Observable } from '@backstage/core-plugin-api'; + +import { AlertApi, AlertMessage } from '@backstage/core-plugin-api'; +import { Observable } from '@backstage/types'; import { PublishSubject } from '../../../lib/subjects'; /** diff --git a/packages/core-app-api/src/apis/implementations/AppThemeApi/AppThemeSelector.ts b/packages/core-app-api/src/apis/implementations/AppThemeApi/AppThemeSelector.ts index 4dceed4749..3dfa43b661 100644 --- a/packages/core-app-api/src/apis/implementations/AppThemeApi/AppThemeSelector.ts +++ b/packages/core-app-api/src/apis/implementations/AppThemeApi/AppThemeSelector.ts @@ -14,7 +14,8 @@ * limitations under the License. */ -import { AppThemeApi, AppTheme, Observable } from '@backstage/core-plugin-api'; +import { AppThemeApi, AppTheme } from '@backstage/core-plugin-api'; +import { Observable } from '@backstage/types'; import { BehaviorSubject } from '../../../lib/subjects'; const STORAGE_KEY = 'theme'; diff --git a/packages/core-app-api/src/apis/implementations/ErrorApi/ErrorApiForwarder.ts b/packages/core-app-api/src/apis/implementations/ErrorApi/ErrorApiForwarder.ts index 9c9a6f20f1..0edbd2f353 100644 --- a/packages/core-app-api/src/apis/implementations/ErrorApi/ErrorApiForwarder.ts +++ b/packages/core-app-api/src/apis/implementations/ErrorApi/ErrorApiForwarder.ts @@ -13,7 +13,9 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import { ErrorApi, ErrorContext, Observable } from '@backstage/core-plugin-api'; + +import { ErrorApi, ErrorContext } from '@backstage/core-plugin-api'; +import { Observable } from '@backstage/types'; import { PublishSubject } from '../../../lib/subjects'; /** diff --git a/packages/core-app-api/src/apis/implementations/OAuthRequestApi/OAuthPendingRequests.ts b/packages/core-app-api/src/apis/implementations/OAuthRequestApi/OAuthPendingRequests.ts index d91cb0ebb0..be643d274b 100644 --- a/packages/core-app-api/src/apis/implementations/OAuthRequestApi/OAuthPendingRequests.ts +++ b/packages/core-app-api/src/apis/implementations/OAuthRequestApi/OAuthPendingRequests.ts @@ -14,7 +14,7 @@ * limitations under the License. */ -import { Observable } from '@backstage/core-plugin-api'; +import { Observable } from '@backstage/types'; import { BehaviorSubject } from '../../../lib/subjects'; type RequestQueueEntry = { diff --git a/packages/core-app-api/src/apis/implementations/OAuthRequestApi/OAuthRequestManager.ts b/packages/core-app-api/src/apis/implementations/OAuthRequestApi/OAuthRequestManager.ts index 6c00cd85cd..1cd25c4b56 100644 --- a/packages/core-app-api/src/apis/implementations/OAuthRequestApi/OAuthRequestManager.ts +++ b/packages/core-app-api/src/apis/implementations/OAuthRequestApi/OAuthRequestManager.ts @@ -19,8 +19,8 @@ import { PendingAuthRequest, AuthRequester, AuthRequesterOptions, - Observable, } from '@backstage/core-plugin-api'; +import { Observable } from '@backstage/types'; import { OAuthPendingRequests, PendingRequest } from './OAuthPendingRequests'; import { BehaviorSubject } from '../../../lib/subjects'; diff --git a/packages/core-app-api/src/apis/implementations/StorageApi/WebStorage.ts b/packages/core-app-api/src/apis/implementations/StorageApi/WebStorage.ts index d1f712e72a..08c4df7e8c 100644 --- a/packages/core-app-api/src/apis/implementations/StorageApi/WebStorage.ts +++ b/packages/core-app-api/src/apis/implementations/StorageApi/WebStorage.ts @@ -13,12 +13,13 @@ * See the License for the specific language governing permissions and * limitations under the License. */ + import { StorageApi, StorageValueChange, ErrorApi, - Observable, } from '@backstage/core-plugin-api'; +import { Observable } from '@backstage/types'; import ObservableImpl from 'zen-observable'; const buckets = new Map(); diff --git a/packages/core-app-api/src/apis/implementations/auth/github/GithubAuth.ts b/packages/core-app-api/src/apis/implementations/auth/github/GithubAuth.ts index 85e3e79ad5..72b4209a34 100644 --- a/packages/core-app-api/src/apis/implementations/auth/github/GithubAuth.ts +++ b/packages/core-app-api/src/apis/implementations/auth/github/GithubAuth.ts @@ -24,8 +24,8 @@ import { ProfileInfo, BackstageIdentity, AuthRequestOptions, - Observable, } from '@backstage/core-plugin-api'; +import { Observable } from '@backstage/types'; import { SessionManager } from '../../../../lib/AuthSessionManager/types'; import { AuthSessionStore, diff --git a/packages/core-app-api/src/apis/implementations/auth/oauth2/OAuth2.ts b/packages/core-app-api/src/apis/implementations/auth/oauth2/OAuth2.ts index 24db8d2560..8f685b9266 100644 --- a/packages/core-app-api/src/apis/implementations/auth/oauth2/OAuth2.ts +++ b/packages/core-app-api/src/apis/implementations/auth/oauth2/OAuth2.ts @@ -28,8 +28,8 @@ import { SessionState, SessionApi, BackstageIdentityApi, - Observable, } from '@backstage/core-plugin-api'; +import { Observable } from '@backstage/types'; import { OAuth2Session } from './types'; import { OAuthApiCreateOptions } from '../types'; diff --git a/packages/core-app-api/src/apis/implementations/auth/saml/SamlAuth.ts b/packages/core-app-api/src/apis/implementations/auth/saml/SamlAuth.ts index ae4f80c9b1..0a7fb50101 100644 --- a/packages/core-app-api/src/apis/implementations/auth/saml/SamlAuth.ts +++ b/packages/core-app-api/src/apis/implementations/auth/saml/SamlAuth.ts @@ -25,8 +25,8 @@ import { ProfileInfoApi, BackstageIdentityApi, SessionApi, - Observable, } from '@backstage/core-plugin-api'; +import { Observable } from '@backstage/types'; import { SamlSession } from './types'; import { AuthSessionStore, diff --git a/packages/core-app-api/src/lib/AuthSessionManager/OptionalRefreshSessionManagerMux.test.ts b/packages/core-app-api/src/lib/AuthSessionManager/OptionalRefreshSessionManagerMux.test.ts index 919948f531..35b9a808b2 100644 --- a/packages/core-app-api/src/lib/AuthSessionManager/OptionalRefreshSessionManagerMux.test.ts +++ b/packages/core-app-api/src/lib/AuthSessionManager/OptionalRefreshSessionManagerMux.test.ts @@ -14,7 +14,8 @@ * limitations under the License. */ -import { Observable, SessionState } from '@backstage/core-plugin-api'; +import { SessionState } from '@backstage/core-plugin-api'; +import { Observable } from '@backstage/types'; import { OptionalRefreshSessionManagerMux } from './OptionalRefreshSessionManagerMux'; import { MutableSessionManager, SessionManager } from './types'; diff --git a/packages/core-app-api/src/lib/AuthSessionManager/OptionalRefreshSessionManagerMux.ts b/packages/core-app-api/src/lib/AuthSessionManager/OptionalRefreshSessionManagerMux.ts index 221a7635ea..80dfa1879e 100644 --- a/packages/core-app-api/src/lib/AuthSessionManager/OptionalRefreshSessionManagerMux.ts +++ b/packages/core-app-api/src/lib/AuthSessionManager/OptionalRefreshSessionManagerMux.ts @@ -14,7 +14,8 @@ * limitations under the License. */ -import { Observable, SessionState } from '@backstage/core-plugin-api'; +import { SessionState } from '@backstage/core-plugin-api'; +import { Observable } from '@backstage/types'; import { SessionManager, MutableSessionManager, diff --git a/packages/core-app-api/src/lib/AuthSessionManager/SessionStateTracker.ts b/packages/core-app-api/src/lib/AuthSessionManager/SessionStateTracker.ts index b70b4bf4ca..4523a868b4 100644 --- a/packages/core-app-api/src/lib/AuthSessionManager/SessionStateTracker.ts +++ b/packages/core-app-api/src/lib/AuthSessionManager/SessionStateTracker.ts @@ -15,7 +15,8 @@ */ import { BehaviorSubject } from '../subjects'; -import { Observable, SessionState } from '@backstage/core-plugin-api'; +import { SessionState } from '@backstage/core-plugin-api'; +import { Observable } from '@backstage/types'; export class SessionStateTracker { private readonly subject = new BehaviorSubject( diff --git a/packages/core-app-api/src/lib/AuthSessionManager/types.ts b/packages/core-app-api/src/lib/AuthSessionManager/types.ts index 43655b8395..a2a5800974 100644 --- a/packages/core-app-api/src/lib/AuthSessionManager/types.ts +++ b/packages/core-app-api/src/lib/AuthSessionManager/types.ts @@ -14,7 +14,8 @@ * limitations under the License. */ -import { Observable, SessionState } from '@backstage/core-plugin-api'; +import { SessionState } from '@backstage/core-plugin-api'; +import { Observable } from '@backstage/types'; export type GetSessionOptions = { optional?: boolean; diff --git a/packages/core-app-api/src/lib/subjects.ts b/packages/core-app-api/src/lib/subjects.ts index e122da819b..79c2c25675 100644 --- a/packages/core-app-api/src/lib/subjects.ts +++ b/packages/core-app-api/src/lib/subjects.ts @@ -14,7 +14,7 @@ * limitations under the License. */ -import { Observable } from '@backstage/core-plugin-api'; +import { Observable } from '@backstage/types'; import ObservableImpl from 'zen-observable'; // TODO(Rugvip): These are stopgap and probably incomplete implementations of subjects. diff --git a/packages/test-utils/api-report.md b/packages/test-utils/api-report.md index f4b3fe12bb..9bd51c4795 100644 --- a/packages/test-utils/api-report.md +++ b/packages/test-utils/api-report.md @@ -9,7 +9,7 @@ import { ComponentType } from 'react'; import { ErrorApi } from '@backstage/core-plugin-api'; import { ErrorContext } from '@backstage/core-plugin-api'; import { ExternalRouteRef } from '@backstage/core-plugin-api'; -import { Observable } from '@backstage/core-plugin-api'; +import { Observable } from '@backstage/types'; import { ReactElement } from 'react'; import { ReactNode } from 'react'; import { RenderResult } from '@testing-library/react'; diff --git a/packages/test-utils/package.json b/packages/test-utils/package.json index 22dc950bd4..f6f4ac901a 100644 --- a/packages/test-utils/package.json +++ b/packages/test-utils/package.json @@ -33,6 +33,7 @@ "@backstage/core-plugin-api": "^0.1.11", "@backstage/test-utils-core": "^0.1.3", "@backstage/theme": "^0.2.11", + "@backstage/types": "^0.1.1", "@material-ui/core": "^4.12.2", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^11.2.5", diff --git a/packages/test-utils/src/testUtils/apis/ErrorApi/MockErrorApi.ts b/packages/test-utils/src/testUtils/apis/ErrorApi/MockErrorApi.ts index 20b6bd1724..01ee412182 100644 --- a/packages/test-utils/src/testUtils/apis/ErrorApi/MockErrorApi.ts +++ b/packages/test-utils/src/testUtils/apis/ErrorApi/MockErrorApi.ts @@ -14,7 +14,8 @@ * limitations under the License. */ -import { ErrorApi, ErrorContext, Observable } from '@backstage/core-plugin-api'; +import { ErrorApi, ErrorContext } from '@backstage/core-plugin-api'; +import { Observable } from '@backstage/types'; type Options = { collect?: boolean; diff --git a/packages/test-utils/src/testUtils/apis/StorageApi/MockStorageApi.ts b/packages/test-utils/src/testUtils/apis/StorageApi/MockStorageApi.ts index ab5d26afc5..d928c35435 100644 --- a/packages/test-utils/src/testUtils/apis/StorageApi/MockStorageApi.ts +++ b/packages/test-utils/src/testUtils/apis/StorageApi/MockStorageApi.ts @@ -14,11 +14,8 @@ * limitations under the License. */ -import { - Observable, - StorageApi, - StorageValueChange, -} from '@backstage/core-plugin-api'; +import { StorageApi, StorageValueChange } from '@backstage/core-plugin-api'; +import { Observable } from '@backstage/types'; import ObservableImpl from 'zen-observable'; export type MockStorageBucket = { [key: string]: any }; diff --git a/plugins/catalog-react/api-report.md b/plugins/catalog-react/api-report.md index e28b8b0d32..06dccf4b7f 100644 --- a/plugins/catalog-react/api-report.md +++ b/plugins/catalog-react/api-report.md @@ -16,7 +16,7 @@ import { Entity } from '@backstage/catalog-model'; import { EntityName } from '@backstage/catalog-model'; import { IconButton } from '@material-ui/core'; import { LinkProps } from '@backstage/core-components'; -import { Observable } from '@backstage/core-plugin-api'; +import { Observable } from '@backstage/types'; import { PropsWithChildren } from 'react'; import { default as React_2 } from 'react'; import { ReactNode } from 'react'; diff --git a/plugins/catalog-react/package.json b/plugins/catalog-react/package.json index 3373641d16..404ba6893f 100644 --- a/plugins/catalog-react/package.json +++ b/plugins/catalog-react/package.json @@ -36,6 +36,7 @@ "@backstage/core-plugin-api": "^0.1.11", "@backstage/errors": "^0.1.3", "@backstage/integration": "^0.6.8", + "@backstage/types": "^0.1.1", "@backstage/version-bridge": "^0.1.0", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", diff --git a/plugins/catalog-react/src/apis/StarredEntitiesApi/DefaultStarredEntitiesApi.ts b/plugins/catalog-react/src/apis/StarredEntitiesApi/DefaultStarredEntitiesApi.ts index 87d99c8904..46a8e63084 100644 --- a/plugins/catalog-react/src/apis/StarredEntitiesApi/DefaultStarredEntitiesApi.ts +++ b/plugins/catalog-react/src/apis/StarredEntitiesApi/DefaultStarredEntitiesApi.ts @@ -14,7 +14,8 @@ * limitations under the License. */ -import { Observable, StorageApi } from '@backstage/core-plugin-api'; +import { StorageApi } from '@backstage/core-plugin-api'; +import { Observable } from '@backstage/types'; import ObservableImpl from 'zen-observable'; import { performMigrationToTheNewBucket } from './migration'; import { StarredEntitiesApi } from './StarredEntitiesApi'; diff --git a/plugins/catalog-react/src/apis/StarredEntitiesApi/StarredEntitiesApi.ts b/plugins/catalog-react/src/apis/StarredEntitiesApi/StarredEntitiesApi.ts index 4c4c68d66a..56c7664bfb 100644 --- a/plugins/catalog-react/src/apis/StarredEntitiesApi/StarredEntitiesApi.ts +++ b/plugins/catalog-react/src/apis/StarredEntitiesApi/StarredEntitiesApi.ts @@ -14,7 +14,8 @@ * limitations under the License. */ -import { ApiRef, createApiRef, Observable } from '@backstage/core-plugin-api'; +import { ApiRef, createApiRef } from '@backstage/core-plugin-api'; +import { Observable } from '@backstage/types'; /** * An API to store starred entities diff --git a/plugins/config-schema/api-report.md b/plugins/config-schema/api-report.md index 15c00acc18..efeb1646eb 100644 --- a/plugins/config-schema/api-report.md +++ b/plugins/config-schema/api-report.md @@ -7,7 +7,7 @@ import { ApiRef } from '@backstage/core-plugin-api'; import { BackstagePlugin } from '@backstage/core-plugin-api'; -import { Observable } from '@backstage/core-plugin-api'; +import { Observable } from '@backstage/types'; import { RouteRef } from '@backstage/core-plugin-api'; import { Schema } from 'jsonschema'; diff --git a/plugins/config-schema/src/api/StaticSchemaLoader.ts b/plugins/config-schema/src/api/StaticSchemaLoader.ts index 8958f4cb5b..48a125f38e 100644 --- a/plugins/config-schema/src/api/StaticSchemaLoader.ts +++ b/plugins/config-schema/src/api/StaticSchemaLoader.ts @@ -18,7 +18,7 @@ import ObservableImpl from 'zen-observable'; import { ResponseError } from '@backstage/errors'; import { Schema } from 'jsonschema'; import { ConfigSchemaApi, ConfigSchemaResult } from './types'; -import { Observable } from '@backstage/core-plugin-api'; +import { Observable } from '@backstage/types'; const DEFAULT_URL = 'config-schema.json'; diff --git a/plugins/config-schema/src/api/types.ts b/plugins/config-schema/src/api/types.ts index 464ef970fb..13cd4f602b 100644 --- a/plugins/config-schema/src/api/types.ts +++ b/plugins/config-schema/src/api/types.ts @@ -15,7 +15,8 @@ */ import { Schema } from 'jsonschema'; -import { createApiRef, Observable } from '@backstage/core-plugin-api'; +import { createApiRef } from '@backstage/core-plugin-api'; +import { Observable } from '@backstage/types'; export interface ConfigSchemaResult { schema?: Schema; diff --git a/plugins/scaffolder/api-report.md b/plugins/scaffolder/api-report.md index 74abada9a8..740685e922 100644 --- a/plugins/scaffolder/api-report.md +++ b/plugins/scaffolder/api-report.md @@ -22,7 +22,7 @@ import { IdentityApi } from '@backstage/core-plugin-api'; import { JsonObject } from '@backstage/types'; import { JSONSchema } from '@backstage/catalog-model'; import { JsonValue } from '@backstage/types'; -import { Observable } from '@backstage/core-plugin-api'; +import { Observable } from '@backstage/types'; import { default as React_2 } from 'react'; import { RouteRef } from '@backstage/core-plugin-api'; import { ScmIntegrationRegistry } from '@backstage/integration'; diff --git a/plugins/scaffolder/src/api.ts b/plugins/scaffolder/src/api.ts index 1511899c65..1b531b652d 100644 --- a/plugins/scaffolder/src/api.ts +++ b/plugins/scaffolder/src/api.ts @@ -15,7 +15,7 @@ */ import { EntityName } from '@backstage/catalog-model'; -import { JsonObject, JsonValue } from '@backstage/types'; +import { JsonObject, JsonValue, Observable } from '@backstage/types'; import { ResponseError } from '@backstage/errors'; import { ScmIntegrationRegistry } from '@backstage/integration'; import { Field, FieldValidation } from '@rjsf/core'; @@ -25,7 +25,6 @@ import { createApiRef, DiscoveryApi, IdentityApi, - Observable, } from '@backstage/core-plugin-api'; export const scaffolderApiRef = createApiRef({ diff --git a/plugins/scaffolder/src/components/hooks/useEventStream.ts b/plugins/scaffolder/src/components/hooks/useEventStream.ts index 9eb1666db4..7414a35189 100644 --- a/plugins/scaffolder/src/components/hooks/useEventStream.ts +++ b/plugins/scaffolder/src/components/hooks/useEventStream.ts @@ -17,7 +17,8 @@ import { useImmerReducer } from 'use-immer'; import { useEffect } from 'react'; import { scaffolderApiRef, LogEvent } from '../../api'; import { ScaffolderTask, Status, TaskOutput } from '../../types'; -import { Subscription, useApi } from '@backstage/core-plugin-api'; +import { useApi } from '@backstage/core-plugin-api'; +import { Subscription } from '@backstage/types'; type Step = { id: string; diff --git a/plugins/shortcuts/api-report.md b/plugins/shortcuts/api-report.md index 0e1442b53f..d85d427c99 100644 --- a/plugins/shortcuts/api-report.md +++ b/plugins/shortcuts/api-report.md @@ -7,7 +7,7 @@ import { ApiRef } from '@backstage/core-plugin-api'; import { BackstagePlugin } from '@backstage/core-plugin-api'; -import { Observable } from '@backstage/core-plugin-api'; +import { Observable } from '@backstage/types'; import ObservableImpl from 'zen-observable'; import { StorageApi } from '@backstage/core-plugin-api'; diff --git a/plugins/shortcuts/package.json b/plugins/shortcuts/package.json index c9afe49c5a..14dfd16896 100644 --- a/plugins/shortcuts/package.json +++ b/plugins/shortcuts/package.json @@ -24,6 +24,7 @@ "@backstage/core-components": "^0.7.1", "@backstage/core-plugin-api": "^0.1.11", "@backstage/theme": "^0.2.11", + "@backstage/types": "^0.1.1", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.57", diff --git a/plugins/shortcuts/src/api/ShortcutApi.ts b/plugins/shortcuts/src/api/ShortcutApi.ts index c7802a0385..dcecc9945b 100644 --- a/plugins/shortcuts/src/api/ShortcutApi.ts +++ b/plugins/shortcuts/src/api/ShortcutApi.ts @@ -15,7 +15,8 @@ */ import { Shortcut } from '../types'; -import { createApiRef, Observable } from '@backstage/core-plugin-api'; +import { createApiRef } from '@backstage/core-plugin-api'; +import { Observable } from '@backstage/types'; export const shortcutsApiRef = createApiRef({ id: 'plugin.shortcuts.api', From 75a865215cd70a1bd41e136d56ea5240b749e464 Mon Sep 17 00:00:00 2001 From: Andre Wanlin Date: Sat, 23 Oct 2021 11:47:54 -0500 Subject: [PATCH 31/41] Added duration and identity as well as minor refactoring Signed-off-by: Andre Wanlin --- plugins/azure-devops-backend/api-report.md | 3 + .../src/api/AzureDevOpsApi.test.ts | 70 +++++++++++++++++-- .../src/api/AzureDevOpsApi.ts | 15 ++-- plugins/azure-devops-backend/src/api/types.ts | 3 + 4 files changed, 78 insertions(+), 13 deletions(-) diff --git a/plugins/azure-devops-backend/api-report.md b/plugins/azure-devops-backend/api-report.md index 4b49872161..fac6261a39 100644 --- a/plugins/azure-devops-backend/api-report.md +++ b/plugins/azure-devops-backend/api-report.md @@ -81,7 +81,10 @@ export type RepoBuild = { status?: BuildStatus; result?: BuildResult; queueTime?: Date; + startTime?: Date; + finishTime?: Date; source: string; + uniqueName?: string; }; // Warning: (ae-missing-release-tag) "RouterOptions" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) diff --git a/plugins/azure-devops-backend/src/api/AzureDevOpsApi.test.ts b/plugins/azure-devops-backend/src/api/AzureDevOpsApi.test.ts index fd9aa169d5..fdd49c0440 100644 --- a/plugins/azure-devops-backend/src/api/AzureDevOpsApi.test.ts +++ b/plugins/azure-devops-backend/src/api/AzureDevOpsApi.test.ts @@ -13,19 +13,20 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import { mappedPullRequest, mappedRepoBuild } from './AzureDevOpsApi'; -import { PullRequest, RepoBuild } from './types'; + import { Build, BuildResult, BuildStatus, - DefinitionReference, -} from 'azure-devops-node-api/interfaces/BuildInterfaces'; -import { GitPullRequest, + GitRepository, + PullRequest, PullRequestStatus, -} from 'azure-devops-node-api/interfaces/GitInterfaces'; -import { GitRepository } from 'azure-devops-node-api/interfaces/TfvcInterfaces'; + RepoBuild, +} from './types'; +import { mappedPullRequest, mappedRepoBuild } from './AzureDevOpsApi'; + +import { DefinitionReference } from 'azure-devops-node-api/interfaces/BuildInterfaces'; import { IdentityRef } from 'azure-devops-node-api/interfaces/common/VSSInterfaces'; describe('AzureDevOpsApi', () => { @@ -41,16 +42,24 @@ describe('AzureDevOpsApi', () => { }, }; + const inputIdentityRef: IdentityRef = { + displayName: 'Jane Doe', + uniqueName: 'DOMAINjdoe', + }; + const inputBuild: Build = { id: 1, buildNumber: 'Build-1', status: BuildStatus.Completed, result: BuildResult.Succeeded, queueTime: new Date('2020-09-12T06:10:23.9325232Z'), + startTime: new Date('2020-09-12T06:15:23.9325232Z'), + finishTime: new Date('2020-09-12T06:20:23.9325232Z'), sourceBranch: 'refs/heads/develop', sourceVersion: 'f4f78b3100b2923982bdf60c89c57ce6fd2d9a1c', definition: inputBuildDefinition, _links: inputLinks, + requestedFor: inputIdentityRef, }; const outputRepoBuild: RepoBuild = { @@ -60,7 +69,10 @@ describe('AzureDevOpsApi', () => { status: BuildStatus.Completed, result: BuildResult.Succeeded, queueTime: new Date('2020-09-12T06:10:23.9325232Z'), + startTime: new Date('2020-09-12T06:15:23.9325232Z'), + finishTime: new Date('2020-09-12T06:20:23.9325232Z'), source: 'refs/heads/develop (f4f78b31)', + uniqueName: 'DOMAINjdoe', }; expect(mappedRepoBuild(inputBuild)).toEqual(outputRepoBuild); @@ -75,16 +87,24 @@ describe('AzureDevOpsApi', () => { }, }; + const inputIdentityRef: IdentityRef = { + displayName: 'Jane Doe', + uniqueName: 'DOMAINjdoe', + }; + const inputBuild: Build = { id: 1, buildNumber: 'Build-1', status: BuildStatus.Completed, result: BuildResult.Succeeded, queueTime: new Date('2020-09-12T06:10:23.9325232Z'), + startTime: new Date('2020-09-12T06:15:23.9325232Z'), + finishTime: new Date('2020-09-12T06:20:23.9325232Z'), sourceBranch: 'refs/heads/develop', sourceVersion: 'f4f78b3100b2923982bdf60c89c57ce6fd2d9a1c', definition: undefined, _links: inputLinks, + requestedFor: inputIdentityRef, }; const outputRepoBuild: RepoBuild = { @@ -94,7 +114,10 @@ describe('AzureDevOpsApi', () => { status: BuildStatus.Completed, result: BuildResult.Succeeded, queueTime: new Date('2020-09-12T06:10:23.9325232Z'), + startTime: new Date('2020-09-12T06:15:23.9325232Z'), + finishTime: new Date('2020-09-12T06:20:23.9325232Z'), source: 'refs/heads/develop (f4f78b31)', + uniqueName: 'DOMAINjdoe', }; expect(mappedRepoBuild(inputBuild)).toEqual(outputRepoBuild); @@ -109,16 +132,24 @@ describe('AzureDevOpsApi', () => { }, }; + const inputIdentityRef: IdentityRef = { + displayName: 'Jane Doe', + uniqueName: 'DOMAINjdoe', + }; + const inputBuild: Build = { id: 1, buildNumber: 'Build-1', status: undefined, result: BuildResult.Succeeded, queueTime: new Date('2020-09-12T06:10:23.9325232Z'), + startTime: new Date('2020-09-12T06:15:23.9325232Z'), + finishTime: new Date('2020-09-12T06:20:23.9325232Z'), sourceBranch: 'refs/heads/develop', sourceVersion: 'f4f78b3100b2923982bdf60c89c57ce6fd2d9a1c', definition: undefined, _links: inputLinks, + requestedFor: inputIdentityRef, }; const outputRepoBuild: RepoBuild = { @@ -128,7 +159,10 @@ describe('AzureDevOpsApi', () => { status: BuildStatus.None, result: BuildResult.Succeeded, queueTime: new Date('2020-09-12T06:10:23.9325232Z'), + startTime: new Date('2020-09-12T06:15:23.9325232Z'), + finishTime: new Date('2020-09-12T06:20:23.9325232Z'), source: 'refs/heads/develop (f4f78b31)', + uniqueName: 'DOMAINjdoe', }; expect(mappedRepoBuild(inputBuild)).toEqual(outputRepoBuild); @@ -143,16 +177,24 @@ describe('AzureDevOpsApi', () => { }, }; + const inputIdentityRef: IdentityRef = { + displayName: 'Jane Doe', + uniqueName: 'DOMAINjdoe', + }; + const inputBuild: Build = { id: 1, buildNumber: 'Build-1', status: BuildStatus.InProgress, result: undefined, queueTime: new Date('2020-09-12T06:10:23.9325232Z'), + startTime: new Date('2020-09-12T06:15:23.9325232Z'), + finishTime: new Date('2020-09-12T06:20:23.9325232Z'), sourceBranch: 'refs/heads/develop', sourceVersion: 'f4f78b3100b2923982bdf60c89c57ce6fd2d9a1c', definition: undefined, _links: inputLinks, + requestedFor: inputIdentityRef, }; const outputRepoBuild: RepoBuild = { @@ -162,7 +204,10 @@ describe('AzureDevOpsApi', () => { status: BuildStatus.InProgress, result: BuildResult.None, queueTime: new Date('2020-09-12T06:10:23.9325232Z'), + startTime: new Date('2020-09-12T06:15:23.9325232Z'), + finishTime: new Date('2020-09-12T06:20:23.9325232Z'), source: 'refs/heads/develop (f4f78b31)', + uniqueName: 'DOMAINjdoe', }; expect(mappedRepoBuild(inputBuild)).toEqual(outputRepoBuild); @@ -171,16 +216,24 @@ describe('AzureDevOpsApi', () => { describe('mappedRepoBuild with undefined link', () => { it('should return empty string for link', () => { + const inputIdentityRef: IdentityRef = { + displayName: 'Jane Doe', + uniqueName: 'DOMAINjdoe', + }; + const inputBuild: Build = { id: 1, buildNumber: 'Build-1', status: BuildStatus.InProgress, result: undefined, queueTime: new Date('2020-09-12T06:10:23.9325232Z'), + startTime: new Date('2020-09-12T06:15:23.9325232Z'), + finishTime: new Date('2020-09-12T06:20:23.9325232Z'), sourceBranch: 'refs/heads/develop', sourceVersion: 'f4f78b3100b2923982bdf60c89c57ce6fd2d9a1c', definition: undefined, _links: undefined, + requestedFor: inputIdentityRef, }; const outputRepoBuild: RepoBuild = { @@ -190,7 +243,10 @@ describe('AzureDevOpsApi', () => { status: BuildStatus.InProgress, result: BuildResult.None, queueTime: new Date('2020-09-12T06:10:23.9325232Z'), + startTime: new Date('2020-09-12T06:15:23.9325232Z'), + finishTime: new Date('2020-09-12T06:20:23.9325232Z'), source: 'refs/heads/develop (f4f78b31)', + uniqueName: 'DOMAINjdoe', }; expect(mappedRepoBuild(inputBuild)).toEqual(outputRepoBuild); diff --git a/plugins/azure-devops-backend/src/api/AzureDevOpsApi.ts b/plugins/azure-devops-backend/src/api/AzureDevOpsApi.ts index 1a80a3d42b..26378496ea 100644 --- a/plugins/azure-devops-backend/src/api/AzureDevOpsApi.ts +++ b/plugins/azure-devops-backend/src/api/AzureDevOpsApi.ts @@ -111,7 +111,7 @@ export class AzureDevOpsApi { options: PullRequestOptions, ): Promise { this.logger?.debug( - `Calling Azure DevOps REST API, getting up to ${top} Pull Requests for Repository ${repoName} for Project ${projectName}`, + `Calling Azure DevOps REST API, getting up to ${options.top} Pull Requests for Repository ${repoName} for Project ${projectName}`, ); const gitRepository = await this.getGitRepository(projectName, repoName); @@ -144,11 +144,14 @@ export function mappedRepoBuild(build: Build): RepoBuild { title: [build.definition?.name, build.buildNumber] .filter(Boolean) .join(' - '), - link: build._links?.web.href ? build._links?.web.href : '', - status: build.status ? build.status : BuildStatus.None, - result: build.result ? build.result : BuildResult.None, + link: build._links?.web.href ?? '', + status: build.status ?? BuildStatus.None, + result: build.result ?? BuildResult.None, queueTime: build.queueTime, + startTime: build.startTime, + finishTime: build.finishTime, source: `${build.sourceBranch} (${build.sourceVersion?.substr(0, 8)})`, + uniqueName: build.requestedFor?.uniqueName ?? 'N/A', }; } @@ -160,8 +163,8 @@ export function mappedPullRequest( pullRequestId: pullRequest.pullRequestId, repoName: pullRequest.repository?.name, title: pullRequest.title, - uniqueName: pullRequest.createdBy?.uniqueName, - createdBy: pullRequest.createdBy?.displayName, + uniqueName: pullRequest.createdBy?.uniqueName ?? 'N/A', + createdBy: pullRequest.createdBy?.displayName ?? 'N/A', creationDate: pullRequest.creationDate, sourceRefName: pullRequest.sourceRefName, targetRefName: pullRequest.targetRefName, diff --git a/plugins/azure-devops-backend/src/api/types.ts b/plugins/azure-devops-backend/src/api/types.ts index 0fd30243af..fab61d26c9 100644 --- a/plugins/azure-devops-backend/src/api/types.ts +++ b/plugins/azure-devops-backend/src/api/types.ts @@ -41,7 +41,10 @@ export type RepoBuild = { status?: BuildStatus; result?: BuildResult; queueTime?: Date; + startTime?: Date; + finishTime?: Date; source: string; + uniqueName?: string; }; export type PullRequest = { From 2eebc9bac3d71ec387cf352b3b679fb0961c29af Mon Sep 17 00:00:00 2001 From: Andre Wanlin Date: Sat, 23 Oct 2021 11:50:43 -0500 Subject: [PATCH 32/41] Added changeset Signed-off-by: Andre Wanlin --- .changeset/kind-islands-attack.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/kind-islands-attack.md diff --git a/.changeset/kind-islands-attack.md b/.changeset/kind-islands-attack.md new file mode 100644 index 0000000000..a549839bc7 --- /dev/null +++ b/.changeset/kind-islands-attack.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-azure-devops-backend': patch +--- + +Added duration (startTime and finishTime) and identity (uniqueName) to the RepoBuild results. Also did a bit of refactoring to help finish up the backend items in issue #7641 From e1ebaff47a1f6e73437495eb1d6da6d015431012 Mon Sep 17 00:00:00 2001 From: Andre Wanlin Date: Sun, 24 Oct 2021 08:09:00 -0500 Subject: [PATCH 33/41] Removed router Signed-off-by: Andre Wanlin --- .../azure-devops/src/components/Router.tsx | 43 ------------------- plugins/azure-devops/src/index.ts | 7 ++- plugins/azure-devops/src/plugin.ts | 15 +++++-- 3 files changed, 17 insertions(+), 48 deletions(-) delete mode 100644 plugins/azure-devops/src/components/Router.tsx diff --git a/plugins/azure-devops/src/components/Router.tsx b/plugins/azure-devops/src/components/Router.tsx deleted file mode 100644 index 3000deb5cc..0000000000 --- a/plugins/azure-devops/src/components/Router.tsx +++ /dev/null @@ -1,43 +0,0 @@ -/* - * Copyright 2021 The Backstage Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import React from 'react'; -import { Routes, Route } from 'react-router'; -import { azureDevOpsRouteRef } from '../routes'; -import { EntityPageAzurePipelines } from './EntityPageAzurePipelines'; -import { AZURE_DEVOPS_ANNOTATION } from '../constants'; -import { Entity } from '@backstage/catalog-model'; -import { useEntity } from '@backstage/plugin-catalog-react'; -import { MissingAnnotationEmptyState } from '@backstage/core-components'; - -export const isAzureDevOpsAvailable = (entity: Entity) => - Boolean(entity.metadata.annotations?.[AZURE_DEVOPS_ANNOTATION]); - -export const Router = ({ defaultLimit }: { defaultLimit?: number }) => { - const { entity } = useEntity(); - - if (!isAzureDevOpsAvailable(entity)) { - return ; - } - - return ( - - } - /> - - ); -}; diff --git a/plugins/azure-devops/src/index.ts b/plugins/azure-devops/src/index.ts index 9a90d6ed6a..71d3b654fe 100644 --- a/plugins/azure-devops/src/index.ts +++ b/plugins/azure-devops/src/index.ts @@ -13,5 +13,8 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -export { azureDevOpsPlugin, EntityAzurePipelinesContent } from './plugin'; -export { isAzureDevOpsAvailable } from './components/Router'; +export { + azureDevOpsPlugin, + EntityAzurePipelinesContent, + isAzureDevOpsAvailable, +} from './plugin'; diff --git a/plugins/azure-devops/src/plugin.ts b/plugins/azure-devops/src/plugin.ts index 1cf6e680d0..ab6d816460 100644 --- a/plugins/azure-devops/src/plugin.ts +++ b/plugins/azure-devops/src/plugin.ts @@ -14,8 +14,6 @@ * limitations under the License. */ -import { azureDevOpsApiRef } from './api/AzureDevOpsApi'; -import { AzureDevOpsClient } from './api/AzureDevOpsClient'; import { createApiFactory, createPlugin, @@ -23,8 +21,16 @@ import { discoveryApiRef, identityApiRef, } from '@backstage/core-plugin-api'; + +import { AZURE_DEVOPS_ANNOTATION } from './constants'; +import { AzureDevOpsClient } from './api/AzureDevOpsClient'; +import { Entity } from '@backstage/catalog-model'; +import { azureDevOpsApiRef } from './api/AzureDevOpsApi'; import { azureDevOpsRouteRef } from './routes'; +export const isAzureDevOpsAvailable = (entity: Entity) => + Boolean(entity.metadata.annotations?.[AZURE_DEVOPS_ANNOTATION]); + export const azureDevOpsPlugin = createPlugin({ id: 'azureDevOps', apis: [ @@ -43,7 +49,10 @@ export const azureDevOpsPlugin = createPlugin({ export const EntityAzurePipelinesContent = azureDevOpsPlugin.provide( createRoutableExtension({ name: 'EntityAzurePipelinesContent', - component: () => import('./components/Router').then(m => m.Router), + component: () => + import('./components/EntityPageAzurePipelines').then( + m => m.EntityPageAzurePipelines, + ), mountPoint: azureDevOpsRouteRef, }), ); From 7adcfb4f764a3dc066f6f84cca3528fe4c40f8b6 Mon Sep 17 00:00:00 2001 From: Andre Wanlin Date: Sun, 24 Oct 2021 08:45:22 -0500 Subject: [PATCH 34/41] Refactored README Signed-off-by: Andre Wanlin --- plugins/azure-devops/README.md | 116 +++++++++------------------------ 1 file changed, 32 insertions(+), 84 deletions(-) diff --git a/plugins/azure-devops/README.md b/plugins/azure-devops/README.md index edf26ecfb3..47a0c4debd 100644 --- a/plugins/azure-devops/README.md +++ b/plugins/azure-devops/README.md @@ -2,74 +2,50 @@ Website: [https://dev.azure.com/](https://dev.azure.com/) -![Azure DevOps Builds Example](./docs/azure-devops-builds.png) +## Features + +### Azure Pipelines + +Lists the top _n_ builds for a given repository where _n_ is a configurable value + +![Azure Pipelines Builds Example](./docs/azure-devops-builds.png) ## Setup The following sections will help you get the Azure DevOps plugin setup and running -### Configuration +### Azure DevOps Backend -The Azure DevOps plugin requires the following YAML to be added to your app-config.yaml: +You need to setup the [Azure DevOps backend plugin](https://github.com/backstage/backstage/tree/master/plugins/azure-devops-backend) before you move forward with any of these steps if you haven't already + +### Entity Annotation + +To be able to use the Azure DevOps plugin you need to add the following annotation to any entities you want to use it with: ```yaml -azureDevOps: - host: dev.azure.com - token: ${AZURE_TOKEN} - organization: my-company +dev.azure.com/project-repo: / ``` -Configuration Details: +Let's break this down a little: `` will be the name of your Team Project and `` will be the name of your repository which needs to be part of the Team Project you entered for ``. -- `host` and `token` can be the same as the ones used for the `integration` section -- `AZURE_TOKEN` environment variable must be set to a [Personal Access Token](https://docs.microsoft.com/en-us/azure/devops/organizations/accounts/use-personal-access-tokens-to-authenticate?view=azure-devops&tabs=preview-page) with read access to both Code and Build -- `organization` is your Azure DevOps Organization name or for Azure DevOps Server (on-premise) this will be your Collection name +Here's what that will look like in action: -### Backend +```yaml +# Example catalog-info.yaml entity definition file +apiVersion: backstage.io/v1alpha1 +kind: Component +metadata: + # ... + annotations: + dev.azure.com/project-repo: my-project/my-repo +spec: + type: service + # ... +``` -Here's how to get the backend up and running: +### Azure Pipelines Component -1. First we need to add the `@backstage/plugin-azure-devops-backend` package to your backend: - - ```sh - # From the Backstage root directory - cd packages/backend - yarn add @backstage/plugin-azure-devops-backend - ``` - -2. Then we will create a new file named `packages/backend/src/plugins/azure-devops.ts`, and add the - following to it: - - ```ts - import { createRouter } from '@backstage/plugin-azure-devops-backend'; - import { Router } from 'express'; - import type { PluginEnvironment } from '../types'; - - export default function createPlugin({ - logger, - config, - }: PluginEnvironment): Promise { - return createRouter({ logger, config }); - } - ``` - -3. Next we wire this into the overall backend router, edit `packages/backend/src/index.ts`: - - ```ts - import azureDevOps from './plugins/azuredevops'; - // ... - async function main() { - // ... - const azureDevOpsEnv = useHotMemoize(module, () => createEnv('azure-devops')); - apiRouter.use('/azure-devops', await azureDevOps(azureDevOpsEnv)); - ``` - -4. Now run `yarn start-backend` from the repo root -5. Finally open `http://localhost:7000/api/azure-devops/health` in a browser and it should return `{"status":"ok"}` - -### Frontend - -To get the frontend working you'll need to do the following two steps: +To get the Azure Pipelines component working you'll need to do the following two steps: 1. First we need to add the @backstage/plugin-azure-devops package to your frontend app: @@ -101,35 +77,7 @@ To get the frontend working you'll need to do the following two steps: ``` -### Entity Annotation - -You need to add the following annotation to any entities you want to be able to use the Azure Devops plugin with: - -```yaml -dev.azure.com/project-repo: / -``` - -Let's break this down a little: `` will be the name of your Team Project and `` will be the name of your repository which needs to be part of the Team Project you entered for ``. - -Here's what that will look like in action: - -```yaml -# Example catalog-info.yaml entity definition file -apiVersion: backstage.io/v1alpha1 -kind: Component -metadata: - # ... - annotations: - dev.azure.com/project-repo: my-project/my-repo -spec: - type: service - # ... -``` - -## Features - -- Lists the top _n_ builds for a given repository where _n_ is the value configured for `top` - ## Limitations -- Currently multiple organizations is not supported +- Currently multiple organizations are not supported +- Mixing Azure DevOps Services (cloud) and Azure DevOps Server (on-premise) is not supported From 91e7f2eda8c8d168109c51b6643d4281940e4c29 Mon Sep 17 00:00:00 2001 From: Andre Wanlin Date: Sun, 24 Oct 2021 10:04:11 -0500 Subject: [PATCH 35/41] Added tests for state and result functions Signed-off-by: Andre Wanlin --- .../components/BuildTable/BuildTable.test.ts | 241 ++++++++++++++++++ .../src/components/BuildTable/BuildTable.tsx | 4 +- 2 files changed, 243 insertions(+), 2 deletions(-) create mode 100644 plugins/azure-devops/src/components/BuildTable/BuildTable.test.ts diff --git a/plugins/azure-devops/src/components/BuildTable/BuildTable.test.ts b/plugins/azure-devops/src/components/BuildTable/BuildTable.test.ts new file mode 100644 index 0000000000..42408f37b3 --- /dev/null +++ b/plugins/azure-devops/src/components/BuildTable/BuildTable.test.ts @@ -0,0 +1,241 @@ +/* + * Copyright 2021 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { + BuildResult, + BuildStatus, +} from 'azure-devops-node-api/interfaces/BuildInterfaces'; +import { getBuildResultComponent, getBuildStateComponent } from './BuildTable'; + +import { renderInTestApp } from '@backstage/test-utils'; + +describe('getBuildResultComponent', () => { + describe('getBuildResultComponent with Succeeded result', () => { + it('should return Status ok Succeeded', async () => { + const { getByLabelText, getByText } = await renderInTestApp( + getBuildResultComponent(BuildResult.Succeeded), + ); + + expect(getByLabelText('Status ok')).toBeInTheDocument(); + expect(getByText('Succeeded')).toBeInTheDocument(); + }); + }); + + describe('getBuildResultComponent with Partially Succeeded result', () => { + it('should return Status warning Partially Succeeded', async () => { + const { getByLabelText, getByText } = await renderInTestApp( + getBuildResultComponent(BuildResult.PartiallySucceeded), + ); + + expect(getByLabelText('Status warning')).toBeInTheDocument(); + expect(getByText('Partially Succeeded')).toBeInTheDocument(); + }); + }); + + describe('getBuildResultComponent with Failed result', () => { + it('should return Status error Failed', async () => { + const { getByLabelText, getByText } = await renderInTestApp( + getBuildResultComponent(BuildResult.Failed), + ); + + expect(getByLabelText('Status error')).toBeInTheDocument(); + expect(getByText('Failed')).toBeInTheDocument(); + }); + }); + + describe('getBuildResultComponent with Canceled result', () => { + it('should return Status aborted Canceled', async () => { + const { getByLabelText, getByText } = await renderInTestApp( + getBuildResultComponent(BuildResult.Canceled), + ); + + expect(getByLabelText('Status aborted')).toBeInTheDocument(); + expect(getByText('Canceled')).toBeInTheDocument(); + }); + }); + + describe('getBuildResultComponent with None result', () => { + it('should return Status warning Unknown', async () => { + const { getByLabelText, getByText } = await renderInTestApp( + getBuildResultComponent(BuildResult.None), + ); + + expect(getByLabelText('Status warning')).toBeInTheDocument(); + expect(getByText('Unknown')).toBeInTheDocument(); + }); + }); + + describe('getBuildResultComponent with undefined result', () => { + it('should return Status warning Unknown', async () => { + const { getByLabelText, getByText } = await renderInTestApp( + getBuildResultComponent(undefined), + ); + + expect(getByLabelText('Status warning')).toBeInTheDocument(); + expect(getByText('Unknown')).toBeInTheDocument(); + }); + }); +}); + +describe('getBuildStateComponent', () => { + describe('getBuildStateComponent with In Progress status and undefined result', () => { + it('should return Status running In Progress', async () => { + const { getByLabelText, getByText } = await renderInTestApp( + getBuildStateComponent(BuildStatus.InProgress, undefined), + ); + + expect(getByLabelText('Status running')).toBeInTheDocument(); + expect(getByText('In Progress')).toBeInTheDocument(); + }); + }); + + describe('getBuildStateComponent with Completed status and Succeeded result', () => { + it('should return Status ok Succeeded', async () => { + const { getByLabelText, getByText } = await renderInTestApp( + getBuildStateComponent(BuildStatus.Completed, BuildResult.Succeeded), + ); + + expect(getByLabelText('Status ok')).toBeInTheDocument(); + expect(getByText('Succeeded')).toBeInTheDocument(); + }); + }); + + describe('getBuildStateComponent with Completed status and Partially Succeeded result', () => { + it('should return Status warning Partially Succeeded', async () => { + const { getByLabelText, getByText } = await renderInTestApp( + getBuildStateComponent( + BuildStatus.Completed, + BuildResult.PartiallySucceeded, + ), + ); + + expect(getByLabelText('Status warning')).toBeInTheDocument(); + expect(getByText('Partially Succeeded')).toBeInTheDocument(); + }); + }); + + describe('getBuildStateComponent with Completed status and Failed result', () => { + it('should return Status error Failed', async () => { + const { getByLabelText, getByText } = await renderInTestApp( + getBuildStateComponent(BuildStatus.Completed, BuildResult.Failed), + ); + + expect(getByLabelText('Status error')).toBeInTheDocument(); + expect(getByText('Failed')).toBeInTheDocument(); + }); + }); + + describe('getBuildStateComponent with Completed status and Canceled result', () => { + it('should return Status aborted Canceled', async () => { + const { getByLabelText, getByText } = await renderInTestApp( + getBuildStateComponent(BuildStatus.Completed, BuildResult.Canceled), + ); + + expect(getByLabelText('Status aborted')).toBeInTheDocument(); + expect(getByText('Canceled')).toBeInTheDocument(); + }); + }); + + describe('getBuildStateComponent with Completed status and None result', () => { + it('should return Status warning Unknown', async () => { + const { getByLabelText, getByText } = await renderInTestApp( + getBuildStateComponent(BuildStatus.Completed, BuildResult.None), + ); + + expect(getByLabelText('Status warning')).toBeInTheDocument(); + expect(getByText('Unknown')).toBeInTheDocument(); + }); + }); + + describe('getBuildStateComponent with Completed status and undefined result', () => { + it('should return Status warning Unknown', async () => { + const { getByLabelText, getByText } = await renderInTestApp( + getBuildStateComponent(BuildStatus.Completed, undefined), + ); + + expect(getByLabelText('Status warning')).toBeInTheDocument(); + expect(getByText('Unknown')).toBeInTheDocument(); + }); + }); + + // TODO: Add remaining Completed iterations + + describe('getBuildStateComponent with Cancelling status and undefined result', () => { + it('should return Status aborted Cancelling', async () => { + const { getByLabelText, getByText } = await renderInTestApp( + getBuildStateComponent(BuildStatus.Cancelling, undefined), + ); + + expect(getByLabelText('Status aborted')).toBeInTheDocument(); + expect(getByText('Cancelling')).toBeInTheDocument(); + }); + }); + + describe('getBuildStateComponent with Postponed status and undefined result', () => { + it('should return Status pending Postponed', async () => { + const { getByLabelText, getByText } = await renderInTestApp( + getBuildStateComponent(BuildStatus.Postponed, undefined), + ); + + expect(getByLabelText('Status pending')).toBeInTheDocument(); + expect(getByText('Postponed')).toBeInTheDocument(); + }); + }); + + describe('getBuildStateComponent with Not Started status and undefined result', () => { + it('should return Status aborted Not Started', async () => { + const { getByLabelText, getByText } = await renderInTestApp( + getBuildStateComponent(BuildStatus.NotStarted, undefined), + ); + + expect(getByLabelText('Status aborted')).toBeInTheDocument(); + expect(getByText('Not Started')).toBeInTheDocument(); + }); + }); + + describe('getBuildStateComponent with None status and undefined result', () => { + it('should return Status warning Unknown', async () => { + const { getByLabelText, getByText } = await renderInTestApp( + getBuildStateComponent(BuildStatus.None, undefined), + ); + + expect(getByLabelText('Status warning')).toBeInTheDocument(); + expect(getByText('Unknown')).toBeInTheDocument(); + }); + }); + + describe('getBuildStateComponent with undefined and undefined result', () => { + it('should return Status warning Unknown', async () => { + const { getByLabelText, getByText } = await renderInTestApp( + getBuildStateComponent(undefined, undefined), + ); + + expect(getByLabelText('Status warning')).toBeInTheDocument(); + expect(getByText('Unknown')).toBeInTheDocument(); + }); + }); + + describe('getBuildStateComponent with undefined and any valid BuildResult', () => { + it('should return Status warning Unknown', async () => { + const { getByLabelText, getByText } = await renderInTestApp( + getBuildStateComponent(undefined, BuildResult.Succeeded), + ); + + expect(getByLabelText('Status warning')).toBeInTheDocument(); + expect(getByText('Unknown')).toBeInTheDocument(); + }); + }); +}); diff --git a/plugins/azure-devops/src/components/BuildTable/BuildTable.tsx b/plugins/azure-devops/src/components/BuildTable/BuildTable.tsx index 7516ae52a4..a308afb81b 100644 --- a/plugins/azure-devops/src/components/BuildTable/BuildTable.tsx +++ b/plugins/azure-devops/src/components/BuildTable/BuildTable.tsx @@ -36,7 +36,7 @@ import { DateTime } from 'luxon'; import React from 'react'; import { RepoBuild } from '../../api/types'; -const getBuildResultComponent = (result: number | undefined) => { +export const getBuildResultComponent = (result: number | undefined) => { switch (result) { case BuildResult.Succeeded: return ( @@ -72,7 +72,7 @@ const getBuildResultComponent = (result: number | undefined) => { } }; -const getBuildStateComponent = ( +export const getBuildStateComponent = ( status: number | undefined, result: number | undefined, ) => { From 7359623e8775a58479e79717a4cc470497f3cbd4 Mon Sep 17 00:00:00 2001 From: Andre Wanlin Date: Sun, 24 Oct 2021 10:13:28 -0500 Subject: [PATCH 36/41] Added changeset Signed-off-by: Andre Wanlin --- .changeset/green-parrots-thank.md | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 .changeset/green-parrots-thank.md diff --git a/.changeset/green-parrots-thank.md b/.changeset/green-parrots-thank.md new file mode 100644 index 0000000000..9296a5119a --- /dev/null +++ b/.changeset/green-parrots-thank.md @@ -0,0 +1,10 @@ +--- +'@backstage/plugin-azure-devops': patch +--- + +Azure DevOps frontend refactoring items from issue #7641 + +- Remove backend setup documentation and linked to the Azure DevOps backend plugin for these instructions +- Improved documentation to be easier to expand with new features in the future +- Removed Router based on feedback from maintainers +- Added tests for `getBuildResultComponent` and `getBuildStateComponent` from the BuildTable From 43b77e1e5e855335da997f74562c9fd13b924697 Mon Sep 17 00:00:00 2001 From: rodion Date: Mon, 25 Oct 2021 15:05:07 +0300 Subject: [PATCH 37/41] fix: sentry-plugin query parameter is optional Signed-off-by: rodion --- plugins/sentry/api-report.md | 4 ++-- plugins/sentry/src/api/production-api.ts | 2 +- plugins/sentry/src/api/sentry-api.ts | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/plugins/sentry/api-report.md b/plugins/sentry/api-report.md index 89c1dd1bca..078e89d96d 100644 --- a/plugins/sentry/api-report.md +++ b/plugins/sentry/api-report.md @@ -39,7 +39,7 @@ export class ProductionSentryApi implements SentryApi { fetchIssues( project: string, statsFor: string, - query: string, + query?: string, ): Promise; } @@ -56,7 +56,7 @@ export interface SentryApi { fetchIssues( project: string, statsFor: string, - query: string, + query?: string, ): Promise; } diff --git a/plugins/sentry/src/api/production-api.ts b/plugins/sentry/src/api/production-api.ts index d9ece065d3..5968d20011 100644 --- a/plugins/sentry/src/api/production-api.ts +++ b/plugins/sentry/src/api/production-api.ts @@ -27,7 +27,7 @@ export class ProductionSentryApi implements SentryApi { async fetchIssues( project: string, statsFor: string, - query: string, + query?: string, ): Promise { if (!project) { return []; diff --git a/plugins/sentry/src/api/sentry-api.ts b/plugins/sentry/src/api/sentry-api.ts index 5c0fb318a6..d2177cde2a 100644 --- a/plugins/sentry/src/api/sentry-api.ts +++ b/plugins/sentry/src/api/sentry-api.ts @@ -26,6 +26,6 @@ export interface SentryApi { fetchIssues( project: string, statsFor: string, - query: string, + query?: string, ): Promise; } From 1695c17b2e45a42288b695ef704c5e5e7a56096a Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Thu, 21 Oct 2021 15:18:18 +0200 Subject: [PATCH 38/41] storybook: support args for selecting a subset of packages Signed-off-by: Patrik Oldsberg --- packages/storybook/.storybook/main.js | 120 +++++++++++++++----------- packages/storybook/README.md | 10 +++ 2 files changed, 78 insertions(+), 52 deletions(-) diff --git a/packages/storybook/.storybook/main.js b/packages/storybook/.storybook/main.js index 4afcac335c..5bdc6b3a2f 100644 --- a/packages/storybook/.storybook/main.js +++ b/packages/storybook/.storybook/main.js @@ -1,61 +1,77 @@ const path = require('path'); const WebpackPluginFailBuildOnWarning = require('./webpack-plugin-fail-build-on-warning'); -module.exports = { - stories: [ - '../../core-components/src/**/*.stories.tsx', - '../../../plugins/**/src/**/*.stories.tsx', - ], - addons: [ - '@storybook/addon-a11y', - '@storybook/addon-actions', - '@storybook/addon-links', - '@storybook/addon-storysource', - 'storybook-dark-mode/register', - ], - webpackFinal: async config => { - // Mirror config in packages/cli/src/lib/bundler - config.resolve.mainFields = ['browser', 'module', 'main']; +module.exports = ({ args }) => { + // Calling storybook with no args causes our default list of stories to be used. + // This set of stories are the ones that we publish to backstage.io + // + // If it's called with args, each arg should be the path to a package that we will + // show the stories from, for example `yarn storybook plugins/catalog`. + let stories; + if (args.length === 0) { + stories = [ + '../../core-components/src/**/*.stories.tsx', + '../../../plugins/org/src/**/*.stories.tsx', + '../../../plugins/search/src/**/*.stories.tsx', + ]; + } else { + const rootDir = path.resolve(__dirname, '../../..'); + stories = args.map(arg => path.join(rootDir, arg, 'src/**/*.stories.tsx')); + } - // Remove the default babel-loader for js files, we're using sucrase instead - const [jsLoader] = config.module.rules.splice(0, 1); - if (!jsLoader.use[0].loader.includes('babel-loader')) { - throw new Error( - `Unexpected loader removed from storybook config, ${jsLoader.use[0].loader}`, + return { + stories, + addons: [ + '@storybook/addon-a11y', + '@storybook/addon-actions', + '@storybook/addon-links', + '@storybook/addon-storysource', + 'storybook-dark-mode/register', + ], + webpackFinal: async config => { + // Mirror config in packages/cli/src/lib/bundler + config.resolve.mainFields = ['browser', 'module', 'main']; + + // Remove the default babel-loader for js files, we're using sucrase instead + const [jsLoader] = config.module.rules.splice(0, 1); + if (!jsLoader.use[0].loader.includes('babel-loader')) { + throw new Error( + `Unexpected loader removed from storybook config, ${jsLoader.use[0].loader}`, + ); + } + + config.resolve.extensions.push('.ts', '.tsx'); + + config.module.rules.push( + { + test: /\.(tsx?)$/, + exclude: /node_modules/, + loader: require.resolve('@sucrase/webpack-loader'), + options: { + transforms: ['typescript', 'jsx', 'react-hot-loader'], + }, + }, + { + test: /\.(jsx?|mjs)$/, + exclude: /node_modules/, + loader: require.resolve('@sucrase/webpack-loader'), + options: { + transforms: ['jsx', 'react-hot-loader'], + }, + }, ); - } - config.resolve.extensions.push('.ts', '.tsx'); + // Disable ProgressPlugin which logs verbose webpack build progress. Warnings and Errors are still logged. + config.plugins = config.plugins.filter( + ({ constructor }) => constructor.name !== 'ProgressPlugin', + ); - config.module.rules.push( - { - test: /\.(tsx?)$/, - exclude: /node_modules/, - loader: require.resolve('@sucrase/webpack-loader'), - options: { - transforms: ['typescript', 'jsx', 'react-hot-loader'], - }, - }, - { - test: /\.(jsx?|mjs)$/, - exclude: /node_modules/, - loader: require.resolve('@sucrase/webpack-loader'), - options: { - transforms: ['jsx', 'react-hot-loader'], - }, - }, - ); + // Fail storybook build on CI if there are webpack warnings. + if (process.env.CI) { + config.plugins.push(new WebpackPluginFailBuildOnWarning()); + } - // Disable ProgressPlugin which logs verbose webpack build progress. Warnings and Errors are still logged. - config.plugins = config.plugins.filter( - ({ constructor }) => constructor.name !== 'ProgressPlugin', - ); - - // Fail storybook build on CI if there are webpack warnings. - if (process.env.CI) { - config.plugins.push(new WebpackPluginFailBuildOnWarning()); - } - - return config; - }, + return config; + }, + }; }; diff --git a/packages/storybook/README.md b/packages/storybook/README.md index f966a358d3..600e2409ab 100644 --- a/packages/storybook/README.md +++ b/packages/storybook/README.md @@ -2,6 +2,16 @@ This package provides a Storybook build for Backstage. See https://backstage.io/storybook/. +## Usage + +To run the storybook locally, call `yarn storybook` in repo root. This will show the default set of stories that we publish to https://backstage.io/storybook + +If you want to show stories other than the default set, you can pass one or more package paths as an argument when calling storybook, for example: + +```sh +yarn storybook plugins/search +``` + ## Why is this not part of `@backstage/core-components`? This separate storybook package exists because of dependency conflicts with `@backstage/cli`. It uses `nohoist` to avoid the conflicts, and since you can only use that in private packages it has to be separated out of `@backstage/core-components`. From e571311f8ade8607736a4feda7f05841cad7ffc4 Mon Sep 17 00:00:00 2001 From: Colton Padden Date: Mon, 25 Oct 2021 09:11:22 -0400 Subject: [PATCH 39/41] downgrade changeset impact to patch for bucketRootPath implementation Signed-off-by: Colton Padden --- .changeset/quick-walls-know.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.changeset/quick-walls-know.md b/.changeset/quick-walls-know.md index 6e7d7faa03..14dd78364f 100644 --- a/.changeset/quick-walls-know.md +++ b/.changeset/quick-walls-know.md @@ -1,5 +1,5 @@ --- -'@backstage/techdocs-common': minor +'@backstage/techdocs-common': patch --- -Support optional bucketRootPath in S3 and GCS publishers +Support optional bucketRootPath configuration parameter in S3 and GCS publishers From 5e10974af6c614df6f4828c5c97a2846d340e081 Mon Sep 17 00:00:00 2001 From: jrusso1020 Date: Sun, 24 Oct 2021 13:28:15 -0400 Subject: [PATCH 40/41] Export components so developers can customize the scaffolder page This is the first step to allow developers to customize the scaffolder page. With this work all the scaffolder page is now available to backstage developers and they can customize the current scaffolder page how they like similar to what is available for the catalog page and other plugin pages. Future work that has been discussed is possibly allowing for SwimLane components that will allow developers to surface specific templates or organize templates in specific ways Signed-off-by: jrusso1020 --- .changeset/friendly-olives-drop.md | 5 ++++ plugins/scaffolder/api-report.md | 23 +++++++++++++++++++ .../src/components/TemplateList/index.ts | 1 + plugins/scaffolder/src/index.ts | 3 +++ 4 files changed, 32 insertions(+) create mode 100644 .changeset/friendly-olives-drop.md diff --git a/.changeset/friendly-olives-drop.md b/.changeset/friendly-olives-drop.md new file mode 100644 index 0000000000..371cf0e4db --- /dev/null +++ b/.changeset/friendly-olives-drop.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-scaffolder': patch +--- + +Surfacing all components of the ScaffolderPage outside of the plugin so you can customize the page diff --git a/plugins/scaffolder/api-report.md b/plugins/scaffolder/api-report.md index 740685e922..554fccabb7 100644 --- a/plugins/scaffolder/api-report.md +++ b/plugins/scaffolder/api-report.md @@ -240,6 +240,29 @@ const scaffolderPlugin: BackstagePlugin< export { scaffolderPlugin as plugin }; export { scaffolderPlugin }; +// Warning: (ae-missing-release-tag) "TemplateList" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export const TemplateList: ({ + TemplateCardComponent, +}: TemplateListProps) => JSX.Element; + +// Warning: (ae-missing-release-tag) "TemplateListProps" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export type TemplateListProps = { + TemplateCardComponent?: + | ComponentType<{ + template: TemplateEntityV1beta2; + }> + | undefined; +}; + +// Warning: (ae-missing-release-tag) "TemplateTypePicker" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export const TemplateTypePicker: () => JSX.Element | null; + // Warning: (ae-missing-release-tag) "TextValuePicker" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) // // @public (undocumented) diff --git a/plugins/scaffolder/src/components/TemplateList/index.ts b/plugins/scaffolder/src/components/TemplateList/index.ts index b9ec700d74..0b62f9cbb1 100644 --- a/plugins/scaffolder/src/components/TemplateList/index.ts +++ b/plugins/scaffolder/src/components/TemplateList/index.ts @@ -14,3 +14,4 @@ * limitations under the License. */ export { TemplateList } from './TemplateList'; +export type { TemplateListProps } from './TemplateList'; diff --git a/plugins/scaffolder/src/index.ts b/plugins/scaffolder/src/index.ts index 4de701bf7a..0180c24b90 100644 --- a/plugins/scaffolder/src/index.ts +++ b/plugins/scaffolder/src/index.ts @@ -44,3 +44,6 @@ export { TextValuePicker, } from './components/fields'; export { FavouriteTemplate } from './components/FavouriteTemplate'; +export { TemplateList } from './components/TemplateList'; +export type { TemplateListProps } from './components/TemplateList'; +export { TemplateTypePicker } from './components/TemplateTypePicker'; From 61fe752dadfb5499e2ca6e225f551450f742eb68 Mon Sep 17 00:00:00 2001 From: rodion Date: Mon, 25 Oct 2021 22:48:14 +0300 Subject: [PATCH 41/41] fix: sentry plugin corrected allowed period values according https://docs.sentry.io/api/events/list-a-projects-issues/ Signed-off-by: rodion --- .changeset/tough-avocados-give.md | 5 +++++ plugins/sentry/api-report.md | 4 ++-- plugins/sentry/src/api/mock/mock-api.ts | 2 +- plugins/sentry/src/api/mock/sentry-issue-mock.json | 2 +- plugins/sentry/src/api/sentry-issue.ts | 2 +- plugins/sentry/src/components/ErrorGraph/ErrorGraph.tsx | 4 ++-- .../src/components/SentryIssuesTable/SentryIssuesTable.tsx | 2 +- .../src/components/SentryIssuesWidget/SentryIssuesWidget.tsx | 2 +- 8 files changed, 14 insertions(+), 9 deletions(-) create mode 100644 .changeset/tough-avocados-give.md diff --git a/.changeset/tough-avocados-give.md b/.changeset/tough-avocados-give.md new file mode 100644 index 0000000000..08b8a7ea72 --- /dev/null +++ b/.changeset/tough-avocados-give.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-sentry': patch +--- + +fix: sentry-plugin correction for allowed period values diff --git a/plugins/sentry/api-report.md b/plugins/sentry/api-report.md index 078e89d96d..a23fa112c1 100644 --- a/plugins/sentry/api-report.md +++ b/plugins/sentry/api-report.md @@ -75,7 +75,7 @@ export type SentryIssue = { userCount: number; stats: { '24h'?: EventPoint[]; - '12h'?: EventPoint[]; + '14d'?: EventPoint[]; }; culprit: string; title: string; @@ -111,7 +111,7 @@ export const SentryIssuesWidget: ({ query, }: { entity: Entity; - statsFor?: '12h' | '24h' | undefined; + statsFor?: '' | '14d' | '24h' | undefined; variant?: InfoCardVariants | undefined; query?: string | undefined; }) => JSX.Element; diff --git a/plugins/sentry/src/api/mock/mock-api.ts b/plugins/sentry/src/api/mock/mock-api.ts index 5f0c68c1d8..af64d8656a 100644 --- a/plugins/sentry/src/api/mock/mock-api.ts +++ b/plugins/sentry/src/api/mock/mock-api.ts @@ -20,7 +20,7 @@ import mockData from './sentry-issue-mock.json'; function getMockIssue(): SentryIssue { const randomizedStats = { - '12h': new Array(12) + '24h': new Array(24) .fill(0) .map(() => [0, Math.floor(Math.random() * 100)]), }; diff --git a/plugins/sentry/src/api/mock/sentry-issue-mock.json b/plugins/sentry/src/api/mock/sentry-issue-mock.json index 115be77b19..34201d56ee 100644 --- a/plugins/sentry/src/api/mock/sentry-issue-mock.json +++ b/plugins/sentry/src/api/mock/sentry-issue-mock.json @@ -4,7 +4,7 @@ "numComments": 0, "userCount": 0, "stats": { - "12h": [ + "24h": [ [1589450400, 7], [1589454000, 2], [1589457600, 6], diff --git a/plugins/sentry/src/api/sentry-issue.ts b/plugins/sentry/src/api/sentry-issue.ts index 4364edb502..ef0e99adb8 100644 --- a/plugins/sentry/src/api/sentry-issue.ts +++ b/plugins/sentry/src/api/sentry-issue.ts @@ -39,7 +39,7 @@ export type SentryIssue = { userCount: number; stats: { '24h'?: EventPoint[]; - '12h'?: EventPoint[]; + '14d'?: EventPoint[]; }; culprit: string; title: string; diff --git a/plugins/sentry/src/components/ErrorGraph/ErrorGraph.tsx b/plugins/sentry/src/components/ErrorGraph/ErrorGraph.tsx index 001b42f9f3..0448b7cfea 100644 --- a/plugins/sentry/src/components/ErrorGraph/ErrorGraph.tsx +++ b/plugins/sentry/src/components/ErrorGraph/ErrorGraph.tsx @@ -20,8 +20,8 @@ import { Sparklines, SparklinesBars } from 'react-sparklines'; export const ErrorGraph = ({ sentryIssue }: { sentryIssue: SentryIssue }) => { const data = - '12h' in sentryIssue.stats - ? sentryIssue.stats['12h'] + '14d' in sentryIssue.stats + ? sentryIssue.stats['14d'] : sentryIssue.stats['24h']; return ( diff --git a/plugins/sentry/src/components/SentryIssuesTable/SentryIssuesTable.tsx b/plugins/sentry/src/components/SentryIssuesTable/SentryIssuesTable.tsx index 637f2c4355..b6b7848dfa 100644 --- a/plugins/sentry/src/components/SentryIssuesTable/SentryIssuesTable.tsx +++ b/plugins/sentry/src/components/SentryIssuesTable/SentryIssuesTable.tsx @@ -59,7 +59,7 @@ const columns: TableColumn[] = [ type SentryIssuesTableProps = { sentryIssues: SentryIssue[]; - statsFor?: '24h' | '12h'; + statsFor?: '24h' | '14d' | ''; }; const SentryIssuesTable = ({ diff --git a/plugins/sentry/src/components/SentryIssuesWidget/SentryIssuesWidget.tsx b/plugins/sentry/src/components/SentryIssuesWidget/SentryIssuesWidget.tsx index 349ce61128..00f7ad0b0b 100644 --- a/plugins/sentry/src/components/SentryIssuesWidget/SentryIssuesWidget.tsx +++ b/plugins/sentry/src/components/SentryIssuesWidget/SentryIssuesWidget.tsx @@ -41,7 +41,7 @@ export const SentryIssuesWidget = ({ query = '', }: { entity: Entity; - statsFor?: '24h' | '12h'; + statsFor?: '24h' | '14d' | ''; variant?: InfoCardVariants; query?: string; }) => {