Merge branch 'master' of github.com:backstage/backstage into cost-insights-tweaks

This commit is contained in:
Adam Harvey
2021-01-07 10:25:19 -05:00
104 changed files with 669 additions and 389 deletions
-5
View File
@@ -1,5 +0,0 @@
---
'@backstage/plugin-scaffolder-backend': patch
---
Add scaffolding support for Bitbucket Cloud and Server.
-6
View File
@@ -1,6 +0,0 @@
---
'@backstage/techdocs-common': patch
'@backstage/plugin-techdocs-backend': patch
---
1. Added option to use AWS S3 as a choice to store the static generated files for TechDocs.
-5
View File
@@ -1,5 +0,0 @@
---
'@backstage/create-app': patch
---
Replace `register-component` plugin with new `catalog-import` plugin
-5
View File
@@ -1,5 +0,0 @@
---
'@backstage/backend-common': patch
---
Fix HTTPS certificate generation and add new config switch, enabling it simply by setting `backend.https = true`. Also introduces caching of generated certificates in order to avoid having to add a browser override every time the backend is restarted.
-5
View File
@@ -1,5 +0,0 @@
---
'@backstage/cli': patch
---
Use consistent file extensions for JS output when building packages.
-5
View File
@@ -1,5 +0,0 @@
---
'@backstage/plugin-catalog-backend': patch
---
Fixed a bug where the catalog would read back all entities when adding a location that already exists.
-5
View File
@@ -1,5 +0,0 @@
---
'@backstage/plugin-scaffolder': patch
---
Bug fix: User can retry creating a new component if an error occurs, without having to reload the page.
-5
View File
@@ -1,5 +0,0 @@
---
'@backstage/techdocs-common': patch
---
Fix for `integration.github.apiBaseUrl` configuration not properly overriding apiBaseUrl used by techdocs
-17
View File
@@ -1,17 +0,0 @@
---
'@backstage/plugin-auth-backend': patch
---
Add support for the majority of the Core configurations for Passport-SAML.
These configuration keys are supported:
- entryPoint
- issuer
- cert
- privateKey
- decryptionPvk
- signatureAlgorithm
- digestAlgorithm
As part of this change, there is also a fix to the redirection behaviour when doing load balancing and HTTPS termination - the application's baseUrl is used to generate the callback URL. For properly configured Backstage installations, no changes are necessary, and the baseUrl is respected.
-20
View File
@@ -1,20 +0,0 @@
---
'@backstage/config-loader': patch
---
Deprecate `$data` and replace it with `$include` which allows for any type of json value to be read from external files. In addition, `$include` can be used without a path, which causes the value at the root of the file to be loaded.
Most usages of `$data` can be directly replaced with `$include`, except if the referenced value is not a string, in which case the value needs to be changed. For example:
```yaml
# app-config.yaml
foo:
$data: foo.yaml#myValue # replacing with $include will turn the value into a number
$data: bar.yaml#myValue # replacing with $include is safe
# foo.yaml
myValue: 0xf00
# bar.yaml
myValue: bar
```
-5
View File
@@ -1,5 +0,0 @@
---
'@backstage/plugin-catalog-backend': patch
---
Change `location_update_log` columns from `nvarchar(255)` to `text`
-5
View File
@@ -1,5 +0,0 @@
---
'@backstage/plugin-sentry': patch
---
Port to new composability API by exporting new `EntitySentryContent` and `EntitySentryCard` component extensions.
-7
View File
@@ -1,7 +0,0 @@
---
'@backstage/backend-common': patch
'@backstage/techdocs-common': patch
'@backstage/plugin-scaffolder-backend': patch
---
Moving the Git actions to isomorphic-git instead of the node binding version of nodegit
-5
View File
@@ -1,5 +0,0 @@
---
'@backstage/plugin-catalog': patch
---
Remove the unused dependency to `@backstage/plugin-techdocs`.
-5
View File
@@ -1,5 +0,0 @@
---
'@backstage/plugin-search': patch
---
Fix Material-UI warning for search filtering
-5
View File
@@ -1,5 +0,0 @@
---
'@backstage/backend-common': patch
---
Tweaked development log formatter to include extra fields at the end of each log line
-5
View File
@@ -1,5 +0,0 @@
---
'@backstage/cli': patch
---
Add `backend:bundle` command for bundling a backend package with dependencies into a deployment archive.
-5
View File
@@ -1,5 +0,0 @@
---
'@backstage/plugin-catalog-backend': patch
---
Add processor for ingesting AWS accounts from AWS Organizations
-6
View File
@@ -1,6 +0,0 @@
---
'@backstage/backend-common': patch
'@backstage/integration': patch
---
Provide support for on-prem azure devops
-5
View File
@@ -1,5 +0,0 @@
---
'@backstage/plugin-scaffolder-backend': patch
---
Add config schema for Bitbucket scaffolder
-5
View File
@@ -1,5 +0,0 @@
---
'@backstage/plugin-pagerduty': patch
---
Optimize empty state image size.
-5
View File
@@ -1,5 +0,0 @@
---
'@backstage/plugin-tech-radar': patch
---
Updated example data in `README`.
+1 -1
View File
@@ -82,7 +82,7 @@ jobs:
# We can't re-use the output from the above step, but we'll have a guaranteed node_modules cache and
# only run the build steps that are necessary for publishing
release:
if: ${{ endsWith(github.event.head_commit.message, 'from backstage/changeset-release/master\n\nVersion Packages') }}
if: github.event.commits[0].author.username == 'backstage-service' && contains(github.event.head_commit.message, 'from backstage/changeset-release/master')
needs: build
runs-on: ubuntu-latest
+6 -6
View File
@@ -108,12 +108,12 @@ providers are used.
| GitLab | Yes ✅ |
| GitLab Enterprise | Yes ✅ |
| File Storage Provider | Support Status |
| --------------------------------- | -------------- |
| Local Filesystem of Backstage app | Yes ✅ |
| Google Cloud Storage (GCS) | Yes ✅ |
| Amazon Web Services (AWS) S3 | Yes ✅ |
| Azure Storage | No ❌ |
| File Storage Provider | Support Status |
| --------------------------------- | ----------------------------------------------------------------- |
| Local Filesystem of Backstage app | Yes ✅ |
| Google Cloud Storage (GCS) | Yes ✅ |
| Amazon Web Services (AWS) S3 | Yes ✅ |
| Azure Storage | No ❌ [#3938](https://github.com/backstage/backstage/issues/3938) |
[Reach out to us](#feedback) if you want to request more platforms.
+4 -12
View File
@@ -13,18 +13,15 @@ configuration options for TechDocs.
# File: app-config.yaml
techdocs:
# TechDocs makes API calls to techdocs-backend using this URL. e.g. get docs of an entity, get metadata, etc.
requestUrl: http://localhost:7000/api/techdocs
# Just another route in techdocs-backend where TechDocs requests the static files from. This URL uses an HTTP middleware
# to serve files from either a local directory or an External storage provider.
storageUrl: http://localhost:7000/api/techdocs/static/docs
# generators.techdocs can have two values: 'docker' or 'local'. This is to determine how to run the generator - whether to
# spin up the techdocs-container docker image or to run mkdocs locally (assuming all the dependencies are taken care of).
# You want to change this to 'local' if you are running Backstage using your own custom Docker setup and want to avoid running
@@ -34,7 +31,6 @@ techdocs:
generators:
techdocs: 'docker'
# techdocs.builder can be either 'local' or 'external.
# If builder is set to 'local' and you open a TechDocs page, techdocs-backend will try to generate the docs, publish to storage
# and show the generated docs afterwords. This is the "Basic" setup of the TechDocs Architecture.
@@ -44,32 +40,29 @@ techdocs:
builder: 'local'
# techdocs.publisher is used to configure the Storage option, whether you want to use the local filesystem to store generated docs
# or you want to use External storage providers like Google Cloud Storage, AWS S3, etc.
publisher:
# techdocs.publisher.type can be - 'local' or 'googleGcs' (awsS3, azureStorage, etc. to be available as well).
# techdocs.publisher.type can be - 'local' or 'googleGcs' or 'awsS3' (azureStorage to be available in future).
# When set to 'local', techdocs-backend will create a 'static' directory at its root to store generated documentation files.
# When set to 'googleGcs', techdocs-backend will use a Google Cloud Storage Bucket to store generated documentation files.
# When set to 'awsS3', techdocs-backend will use an Amazon Web Service (AWS) S3 bucket to store generated documentation files.
type: 'local'
# Required when techdocs.publisher.type is set to 'googleGcs'. Skip otherwise.
googleGcs:
# An API key is required to write to a storage bucket.
credentials:
$file: '/path/to/google_application_credentials.json',
$file: '/path/to/google_application_credentials.json'
# Your GCP Project ID where the Cloud Storage Bucket is hosted.
projectId: 'gcp-project-id'
# Cloud Storage Bucket Name
bucketName: 'techdocs-storage',
bucketName: 'techdocs-storage'
# Required when techdocs.publisher.type is set to 'awsS3'. Skip otherwise.
@@ -84,6 +77,5 @@ techdocs:
$env: AWSS3_REGION
# AWS S3 Bucket Name
bucketName: 'techdocs-storage',
bucketName: 'techdocs-storage'
```
+27
View File
@@ -1,5 +1,32 @@
# example-app
## 0.2.9
### Patch Changes
- Updated dependencies [ab0892358]
- Updated dependencies [37a7d26c4]
- Updated dependencies [8e083f41f]
- Updated dependencies [88da267cc]
- Updated dependencies [9c09a364f]
- Updated dependencies [01707438b]
- Updated dependencies [edb7d0775]
- Updated dependencies [818d45e94]
- Updated dependencies [0588be01f]
- Updated dependencies [b8abdda57]
- Updated dependencies [b7a124883]
- Updated dependencies [bc909178d]
- Updated dependencies [947d3c269]
- @backstage/plugin-cost-insights@0.5.5
- @backstage/plugin-tech-radar@0.3.2
- @backstage/cli@0.4.5
- @backstage/plugin-scaffolder@0.3.6
- @backstage/plugin-sentry@0.3.2
- @backstage/plugin-catalog@0.2.10
- @backstage/plugin-search@0.2.5
- @backstage/plugin-catalog-import@0.3.3
- @backstage/plugin-pagerduty@0.2.5
## 0.2.8
### Patch Changes
+11 -11
View File
@@ -1,18 +1,18 @@
{
"name": "example-app",
"version": "0.2.8",
"version": "0.2.9",
"private": true,
"bundled": true,
"dependencies": {
"@backstage/catalog-model": "^0.6.0",
"@backstage/cli": "^0.4.3",
"@backstage/cli": "^0.4.5",
"@backstage/core": "^0.4.2",
"@backstage/plugin-api-docs": "^0.4.1",
"@backstage/plugin-catalog": "^0.2.8",
"@backstage/plugin-catalog-import": "^0.3.2",
"@backstage/plugin-catalog": "^0.2.10",
"@backstage/plugin-catalog-import": "^0.3.3",
"@backstage/plugin-circleci": "^0.2.5",
"@backstage/plugin-cloudbuild": "^0.2.5",
"@backstage/plugin-cost-insights": "^0.5.2",
"@backstage/plugin-cost-insights": "^0.5.5",
"@backstage/plugin-explore": "^0.2.2",
"@backstage/plugin-gcp-projects": "^0.2.2",
"@backstage/plugin-github-actions": "^0.2.6",
@@ -23,17 +23,16 @@
"@backstage/plugin-kubernetes": "^0.3.3",
"@backstage/plugin-lighthouse": "^0.2.6",
"@backstage/plugin-newrelic": "^0.2.2",
"@backstage/plugin-pagerduty": "0.2.4",
"@backstage/plugin-pagerduty": "0.2.5",
"@backstage/plugin-register-component": "^0.2.5",
"@backstage/plugin-rollbar": "^0.2.7",
"@backstage/plugin-scaffolder": "^0.3.5",
"@backstage/plugin-sentry": "^0.3.1",
"@backstage/plugin-search": "^0.2.4",
"@backstage/plugin-tech-radar": "^0.3.1",
"@backstage/plugin-scaffolder": "^0.3.6",
"@backstage/plugin-sentry": "^0.3.2",
"@backstage/plugin-search": "^0.2.5",
"@backstage/plugin-tech-radar": "^0.3.2",
"@backstage/plugin-techdocs": "^0.5.1",
"@backstage/plugin-user-settings": "^0.2.3",
"@backstage/plugin-welcome": "^0.2.3",
"@backstage/test-utils": "^0.1.6",
"@backstage/theme": "^0.2.2",
"@material-ui/core": "^4.11.0",
"@material-ui/icons": "^4.9.1",
@@ -53,6 +52,7 @@
"zen-observable": "^0.8.15"
},
"devDependencies": {
"@backstage/test-utils": "^0.1.6",
"@testing-library/cypress": "^7.0.1",
"@testing-library/jest-dom": "^5.10.1",
"@testing-library/react": "^10.4.1",
+13
View File
@@ -1,5 +1,18 @@
# @backstage/backend-common
## 0.4.2
### Patch Changes
- 5ecd50f8a: Fix HTTPS certificate generation and add new config switch, enabling it simply by setting `backend.https = true`. Also introduces caching of generated certificates in order to avoid having to add a browser override every time the backend is restarted.
- 00042e73c: Moving the Git actions to isomorphic-git instead of the node binding version of nodegit
- 0829ff126: Tweaked development log formatter to include extra fields at the end of each log line
- 036a84373: Provide support for on-prem azure devops
- Updated dependencies [ad5c56fd9]
- Updated dependencies [036a84373]
- @backstage/config-loader@0.4.1
- @backstage/integration@0.1.5
## 0.4.1
### Patch Changes
+4 -5
View File
@@ -1,7 +1,7 @@
{
"name": "@backstage/backend-common",
"description": "Common functionality library for Backstage backends",
"version": "0.4.1",
"version": "0.4.2",
"main": "src/index.ts",
"types": "src/index.ts",
"private": false,
@@ -31,8 +31,8 @@
"dependencies": {
"@backstage/cli-common": "^0.1.1",
"@backstage/config": "^0.1.2",
"@backstage/config-loader": "^0.4.0",
"@backstage/integration": "^0.1.4",
"@backstage/config-loader": "^0.4.1",
"@backstage/integration": "^0.1.5",
"@types/cors": "^2.8.6",
"@types/express": "^4.17.6",
"archiver": "^5.0.2",
@@ -66,7 +66,7 @@
}
},
"devDependencies": {
"@backstage/cli": "^0.4.2",
"@backstage/cli": "^0.4.5",
"@backstage/test-utils": "^0.1.5",
"@types/archiver": "^5.1.0",
"@types/compression": "^1.7.0",
@@ -82,7 +82,6 @@
"@types/tar": "^4.0.3",
"@types/unzipper": "^0.10.3",
"@types/webpack-env": "^1.15.2",
"@types/yaml": "^1.9.7",
"get-port": "^5.1.1",
"http-errors": "^1.7.3",
"jest": "^26.0.1",
+11
View File
@@ -1,5 +1,16 @@
# @backstage/cli
## 0.4.5
### Patch Changes
- 37a7d26c4: Use consistent file extensions for JS output when building packages.
- 818d45e94: Fix detection of external package child directories
- 0588be01f: Add `backend:bundle` command for bundling a backend package with dependencies into a deployment archive.
- b8abdda57: Add color to output from `versions:bump` in order to make it easier to spot changes. Also highlight possible breaking changes and link to changelogs.
- Updated dependencies [ad5c56fd9]
- @backstage/config-loader@0.4.1
## 0.4.4
### Patch Changes
+3 -4
View File
@@ -1,7 +1,7 @@
{
"name": "@backstage/cli",
"description": "CLI for developing Backstage plugins and apps",
"version": "0.4.4",
"version": "0.4.5",
"private": false,
"publishConfig": {
"access": "public"
@@ -30,7 +30,7 @@
"dependencies": {
"@backstage/cli-common": "^0.1.1",
"@backstage/config": "^0.1.2",
"@backstage/config-loader": "^0.4.0",
"@backstage/config-loader": "^0.4.1",
"@hot-loader/react-dom": "^16.13.0",
"@lerna/package-graph": "^3.18.5",
"@lerna/project": "^3.18.0",
@@ -111,7 +111,7 @@
"yn": "^4.0.0"
},
"devDependencies": {
"@backstage/backend-common": "^0.4.1",
"@backstage/backend-common": "^0.4.2",
"@backstage/config": "^0.1.2",
"@backstage/core": "^0.4.3",
"@backstage/dev-utils": "^0.1.7",
@@ -125,7 +125,6 @@
"@types/mini-css-extract-plugin": "^0.9.1",
"@types/mock-fs": "^4.13.0",
"@types/node": "^13.7.2",
"@types/ora": "^3.2.0",
"@types/react-dev-utils": "^9.0.4",
"@types/recursive-readdir": "^2.2.0",
"@types/rollup-plugin-peer-deps-external": "^2.2.0",
+1
View File
@@ -215,6 +215,7 @@ function lazy(
try {
const actionFunc = await getActionFunc();
await actionFunc(...args);
process.exit(0);
} catch (error) {
exitWithError(error);
@@ -23,6 +23,15 @@ import * as runObj from '../../lib/run';
import bump from './bump';
import { withLogCollector } from '@backstage/test-utils';
// Remove log coloring to simplify log matching
jest.mock('chalk', () => ({
blue: (str: string) => str,
cyan: (str: string) => str,
green: (str: string) => str,
magenta: (str: string) => str,
yellow: (str: string) => str,
}));
const REGISTRY_VERSIONS: { [name: string]: string } = {
'@backstage/core': '1.0.6',
'@backstage/core-api': '1.0.7',
@@ -121,11 +130,15 @@ describe('bump', () => {
'Checking for updates of @backstage/core',
'Checking for updates of @backstage/core-api',
'Some packages are outdated, updating',
'Removing lockfile entry for @backstage/core@^1.0.3 to bump to 1.0.6',
'Removing lockfile entry for @backstage/core-api@^1.0.6 to bump to 1.0.7',
'Removing lockfile entry for @backstage/core-api@^1.0.3 to bump to 1.0.7',
'Bumping @backstage/theme in b to ^2.0.0',
"Running 'yarn install' to install new versions",
'unlocking @backstage/core@^1.0.3 ~> 1.0.6',
'unlocking @backstage/core-api@^1.0.6 ~> 1.0.7',
'unlocking @backstage/core-api@^1.0.3 ~> 1.0.7',
'bumping @backstage/theme in b to ^2.0.0',
'Running yarn install to install new versions',
'⚠️ The following packages may have breaking changes:',
' @backstage/theme',
' https://github.com/backstage/backstage/blob/master/packages/theme/CHANGELOG.md',
'Version bump complete!',
]);
expect(runObj.runPlain).toHaveBeenCalledTimes(3);
+61 -5
View File
@@ -15,6 +15,7 @@
*/
import fs from 'fs-extra';
import chalk from 'chalk';
import semver from 'semver';
import { resolve as resolvePath } from 'path';
import { run } from '../../lib/run';
@@ -35,6 +36,7 @@ const DEP_TYPES = [
type PkgVersionInfo = {
range: string;
target: string;
name: string;
location: string;
};
@@ -69,6 +71,7 @@ export default async () => {
name,
location: pkg.location,
range: `^${target}`, // TODO(Rugvip): Option to use something else than ^?
target,
}),
);
}
@@ -98,9 +101,9 @@ export default async () => {
// Write all discovered version bumps to package.json in this repo
if (versionBumps.size === 0 && unlocked.length === 0) {
console.log('All Backstage packages are up to date!');
console.log(chalk.green('All Backstage packages are up to date!'));
} else {
console.log('Some packages are outdated, updating');
console.log(chalk.yellow('Some packages are outdated, updating'));
console.log();
if (unlocked.length > 0) {
@@ -115,7 +118,9 @@ export default async () => {
if (!removed.has(key)) {
removed.add(key);
console.log(
`Removing lockfile entry for ${name}@${range} to bump to ${target}`,
`${chalk.magenta('unlocking')} ${name}@${chalk.yellow(
range,
)} ~> ${chalk.yellow(target)}`,
);
lockfile.remove(name, range);
}
@@ -123,16 +128,34 @@ export default async () => {
await lockfile.save();
}
const breakingUpdates = new Map<string, { from: string; to: string }>();
await workerThreads(16, versionBumps.entries(), async ([name, deps]) => {
const pkgPath = resolvePath(deps[0].location, 'package.json');
const pkgJson = await fs.readJson(pkgPath);
for (const dep of deps) {
console.log(`Bumping ${dep.name} in ${name} to ${dep.range}`);
console.log(
`${chalk.cyan('bumping')} ${dep.name} in ${chalk.cyan(
name,
)} to ${chalk.yellow(dep.range)}`,
);
for (const depType of DEP_TYPES) {
if (depType in pkgJson && dep.name in pkgJson[depType]) {
const oldRange = pkgJson[depType][dep.name];
pkgJson[depType][dep.name] = dep.range;
// Check if the update was at least a pre-v1 minor or post-v1 major release
const lockfileEntry = lockfile
.get(dep.name)
?.find(entry => entry.range === oldRange);
if (lockfileEntry) {
const from = lockfileEntry.version;
const to = dep.target;
if (!semver.satisfies(to, `^${from}`)) {
breakingUpdates.set(dep.name, { from, to });
}
}
}
}
}
@@ -141,9 +164,42 @@ export default async () => {
});
console.log();
console.log("Running 'yarn install' to install new versions");
console.log(
`Running ${chalk.blue('yarn install')} to install new versions`,
);
console.log();
await run('yarn', ['install']);
if (breakingUpdates.size > 0) {
console.log();
console.log(
chalk.yellow('⚠️ The following packages may have breaking changes:'),
);
console.log();
for (const name of Array.from(breakingUpdates.keys()).sort()) {
console.log(` ${chalk.yellow(name)}`);
let path;
if (name.startsWith('@backstage/plugin-')) {
path = `plugins/${name.replace('@backstage/plugin-', '')}`;
} else if (name.startsWith('@backstage/')) {
path = `packages/${name.replace('@backstage/', '')}`;
}
if (path) {
// TODO(Rugvip): Grab these URLs and paths from package.json, possibly verify existence
// Possibly invent new "changelog" field in package.json or some sh*t.
console.log(
` https://github.com/backstage/backstage/blob/master/${path}/CHANGELOG.md`,
);
}
console.log();
}
} else {
console.log();
}
console.log(chalk.green('Version bump complete!'));
}
console.log();
@@ -84,6 +84,23 @@ describe('LinkedPackageResolvePlugin', () => {
expect(callbackFalse).toHaveBeenCalledWith();
expect(doResolve).toHaveBeenCalledTimes(0);
// Internal modules with a path prefix of an external module
const callbackY = jest.fn();
tap(
{
request: path.resolve(root, 'external-aa/src/module.ts'),
path: path.resolve(root, 'external-aa/src'),
context: {
issuer: path.resolve(root, 'external-aa/src/index.ts'),
},
},
'some-context',
callbackY,
);
expect(callbackY).toHaveBeenCalledTimes(1);
expect(callbackY).toHaveBeenCalledWith();
expect(doResolve).toHaveBeenCalledTimes(0);
// External modules have their path and issuer context rewritten, but not the request
const callbackA = jest.fn();
tap(
@@ -16,6 +16,7 @@
import { resolve as resolvePath } from 'path';
import { ResolvePlugin } from 'webpack';
import { isChildPath } from './paths';
import { LernaPackage } from './types';
// Enables proper resolution of packages when linking in external packages.
@@ -40,7 +41,7 @@ export class LinkedPackageResolvePlugin implements ResolvePlugin {
callback: () => void,
) => {
const pkg = this.packages.find(
pkg => data.path && data.path.startsWith(pkg.location),
pkg => data.path && isChildPath(pkg.location, data.path),
);
if (!pkg) {
callback();
+7 -3
View File
@@ -24,7 +24,7 @@ import webpack from 'webpack';
import nodeExternals from 'webpack-node-externals';
import { optimization } from './optimization';
import { Config } from '@backstage/config';
import { BundlingPaths } from './paths';
import { BundlingPaths, isChildPath } from './paths';
import { transforms } from './transforms';
import { LinkedPackageResolvePlugin } from './LinkedPackageResolvePlugin';
import { BundlingOptions, BackendBundlingOptions, LernaPackage } from './types';
@@ -87,7 +87,9 @@ export async function createConfig(
const { plugins, loaders } = transforms(options);
// Any package that is part of the monorepo but outside the monorepo root dir need
// separate resolution logic.
const externalPkgs = packages.filter(p => !p.location.startsWith(paths.root));
const externalPkgs = packages.filter(
p => !isChildPath(paths.root, p.location),
);
const baseUrl = frontendConfig.getString('app.baseUrl');
const validBaseUrl = new URL(baseUrl);
@@ -199,7 +201,9 @@ export async function createBackendConfig(
const moduleDirs = packages.map((p: any) =>
resolvePath(p.location, 'node_modules'),
);
const externalPkgs = packages.filter(p => !p.location.startsWith(paths.root)); // See frontend config
const externalPkgs = packages.filter(
p => !isChildPath(paths.root, p.location),
); // See frontend config
const { loaders } = transforms(options);
+17
View File
@@ -15,8 +15,25 @@
*/
import fs from 'fs-extra';
import path from 'path';
import { paths } from '../paths';
/**
* Checks if dir is the same as or a child of base.
*/
export function isChildPath(base: string, dir: string): boolean {
const relativePath = path.relative(base, dir);
if (relativePath === '') {
// The same directory
return true;
}
const outsideBase = relativePath.startsWith('..'); // not outside base
const differentDrive = path.isAbsolute(relativePath); // on Windows, this means dir is on a different drive from base.
return !outsideBase && !differentDrive;
}
export type BundlingPathsOptions = {
// bundle entrypoint, e.g. 'src/index'
entry: string;
+21
View File
@@ -1,5 +1,26 @@
# @backstage/config-loader
## 0.4.1
### Patch Changes
- ad5c56fd9: Deprecate `$data` and replace it with `$include` which allows for any type of json value to be read from external files. In addition, `$include` can be used without a path, which causes the value at the root of the file to be loaded.
Most usages of `$data` can be directly replaced with `$include`, except if the referenced value is not a string, in which case the value needs to be changed. For example:
```yaml
# app-config.yaml
foo:
$data: foo.yaml#myValue # replacing with $include will turn the value into a number
$data: bar.yaml#myValue # replacing with $include is safe
# foo.yaml
myValue: 0xf00
# bar.yaml
myValue: bar
```
## 0.4.0
### Minor Changes
+1 -1
View File
@@ -1,7 +1,7 @@
{
"name": "@backstage/config-loader",
"description": "Config loading functionality used by Backstage backend, and CLI",
"version": "0.4.0",
"version": "0.4.1",
"private": false,
"publishConfig": {
"access": "public",
+6
View File
@@ -1,5 +1,11 @@
# @backstage/core-api
## 0.2.9
### Patch Changes
- ab0892358: Remove test dependencies from production package list
## 0.2.8
### Patch Changes
+3 -3
View File
@@ -1,7 +1,7 @@
{
"name": "@backstage/core-api",
"description": "Internal Core API used by Backstage plugins and apps",
"version": "0.2.8",
"version": "0.2.9",
"private": false,
"publishConfig": {
"access": "public",
@@ -30,7 +30,6 @@
},
"dependencies": {
"@backstage/config": "^0.1.2",
"@backstage/test-utils": "^0.1.6",
"@backstage/theme": "^0.2.2",
"@material-ui/core": "^4.11.0",
"@material-ui/icons": "^4.9.1",
@@ -43,7 +42,8 @@
"zen-observable": "^0.8.15"
},
"devDependencies": {
"@backstage/cli": "^0.4.4",
"@backstage/cli": "^0.4.5",
"@backstage/test-utils": "^0.1.6",
"@backstage/test-utils-core": "^0.1.1",
"@testing-library/jest-dom": "^5.10.1",
"@testing-library/react": "^10.4.1",
+31
View File
@@ -1,5 +1,36 @@
# @backstage/create-app
## 0.3.2
### Patch Changes
- c2b52d9c5: Replace `register-component` plugin with new `catalog-import` plugin
- fc6839f13: Bump `sqlite3` to v5.
To apply this change to an existing app, change the version of `sqlite3` in the `dependencies` of `packages/backend/package.json`:
```diff
"pg": "^8.3.0",
- "sqlite3": "^4.2.0",
+ "sqlite3": "^5.0.0",
"winston": "^3.2.1"
```
Note that the `sqlite3` dependency may not be preset if you chose to use PostgreSQL when creating the app.
- 8d68e4cdc: Removed the Circle CI sidebar item, since the target page does not exist.
To apply this change to an existing app, remove `"CircleCI"` sidebar item from `packages/app/src/sidebar.tsx`, and the `BuildIcon` import if it is unused.
- 1773a5182: Removed lighthouse plugin from the default set up plugins, as it requires a separate Backend to function.
To apply this change to an existing app, remove the following:
1. The `lighthouse` block from `app-config.yaml`.
2. The `@backstage/plugin-lighthouse` dependency from `packages/app/package.json`.
3. The `@backstage/plugin-lighthouse` re-export from `packages/app/src/plugins.ts`.
4. The Lighthouse sidebar item from `packages/app/src/sidebar.tsx`, and the `RuleIcon` import if it is unused.
## 0.3.1
### Patch Changes
+13 -14
View File
@@ -1,7 +1,7 @@
{
"name": "@backstage/create-app",
"description": "Create app package for Backstage",
"version": "0.3.1",
"version": "0.3.2",
"private": false,
"publishConfig": {
"access": "public"
@@ -37,35 +37,34 @@
"recursive-readdir": "^2.2.2"
},
"devDependencies": {
"@backstage/backend-common": "^0.4.1",
"@backstage/backend-common": "^0.4.2",
"@backstage/catalog-model": "^0.6.0",
"@backstage/cli": "^0.4.4",
"@backstage/cli": "^0.4.5",
"@backstage/config": "^0.1.2",
"@backstage/core": "^0.4.3",
"@backstage/plugin-api-docs": "^0.4.2",
"@backstage/plugin-app-backend": "^0.3.3",
"@backstage/plugin-auth-backend": "^0.2.8",
"@backstage/plugin-catalog": "^0.2.9",
"@backstage/plugin-catalog-backend": "^0.5.1",
"@backstage/plugin-catalog-import": "^0.3.2",
"@backstage/plugin-auth-backend": "^0.2.9",
"@backstage/plugin-catalog": "^0.2.10",
"@backstage/plugin-catalog-backend": "^0.5.2",
"@backstage/plugin-catalog-import": "^0.3.3",
"@backstage/plugin-circleci": "^0.2.5",
"@backstage/plugin-explore": "^0.2.2",
"@backstage/plugin-github-actions": "^0.2.6",
"@backstage/plugin-lighthouse": "^0.2.6",
"@backstage/plugin-proxy-backend": "^0.2.3",
"@backstage/plugin-rollbar-backend": "^0.1.5",
"@backstage/plugin-scaffolder": "^0.3.5",
"@backstage/plugin-search": "^0.2.4",
"@backstage/plugin-scaffolder-backend": "^0.3.6",
"@backstage/plugin-tech-radar": "^0.3.1",
"@backstage/plugin-rollbar-backend": "^0.1.6",
"@backstage/plugin-scaffolder": "^0.3.6",
"@backstage/plugin-search": "^0.2.5",
"@backstage/plugin-scaffolder-backend": "^0.3.7",
"@backstage/plugin-tech-radar": "^0.3.2",
"@backstage/plugin-techdocs": "^0.5.2",
"@backstage/plugin-techdocs-backend": "^0.5.1",
"@backstage/plugin-techdocs-backend": "^0.5.2",
"@backstage/plugin-user-settings": "^0.2.3",
"@backstage/test-utils": "^0.1.6",
"@backstage/theme": "^0.2.2",
"@types/fs-extra": "^9.0.1",
"@types/inquirer": "^7.3.1",
"@types/ora": "^3.2.0",
"@types/react-dev-utils": "^9.0.4",
"@types/recursive-readdir": "^2.2.0",
"ts-node": "^8.6.2"
@@ -65,9 +65,6 @@ techdocs:
publisher:
type: 'local'
lighthouse:
baseUrl: http://localhost:3003
auth:
# see https://backstage.io/docs/tutorials/quickstart-app-auth to know more about enabling auth providers
providers: {}
@@ -15,7 +15,6 @@
"@backstage/plugin-techdocs": "^{{version '@backstage/plugin-techdocs'}}",
"@backstage/catalog-model": "^{{version '@backstage/catalog-model'}}",
"@backstage/plugin-circleci": "^{{version '@backstage/plugin-circleci'}}",
"@backstage/plugin-lighthouse": "^{{version '@backstage/plugin-lighthouse'}}",
"@backstage/plugin-tech-radar": "^{{version '@backstage/plugin-tech-radar'}}",
"@backstage/plugin-github-actions": "^{{version '@backstage/plugin-github-actions'}}",
"@backstage/plugin-user-settings": "^{{version '@backstage/plugin-user-settings'}}",
@@ -3,7 +3,6 @@ export { plugin as CatalogPlugin } from '@backstage/plugin-catalog';
export { plugin as CatalogImport } from '@backstage/plugin-catalog-import';
export { plugin as Circleci } from '@backstage/plugin-circleci';
export { plugin as GithubActions } from '@backstage/plugin-github-actions';
export { plugin as LighthousePlugin } from '@backstage/plugin-lighthouse';
export { plugin as ScaffolderPlugin } from '@backstage/plugin-scaffolder';
export { plugin as TechDocsPlugin } from '@backstage/plugin-techdocs';
export { plugin as TechRadar } from '@backstage/plugin-tech-radar';
@@ -3,8 +3,6 @@ import HomeIcon from '@material-ui/icons/Home';
import LibraryBooks from '@material-ui/icons/LibraryBooks';
import ExtensionIcon from '@material-ui/icons/Extension';
import CreateComponentIcon from '@material-ui/icons/AddCircleOutline';
import BuildIcon from '@material-ui/icons/BuildRounded';
import RuleIcon from '@material-ui/icons/AssignmentTurnedIn';
import MapIcon from '@material-ui/icons/MyLocation';
import { Link, makeStyles } from '@material-ui/core';
import { NavLink } from 'react-router-dom';
@@ -34,8 +32,6 @@ export const AppSidebar = () => (
<SidebarItem icon={CreateComponentIcon} to="create" text="Create..." />
<SidebarDivider />
<SidebarItem icon={MapIcon} to="tech-radar" text="Tech Radar" />
<SidebarItem icon={RuleIcon} to="lighthouse" text="Lighthouse" />
<SidebarItem icon={BuildIcon} to="circleci" text="CircleCI" />
{/* End global nav */}
<SidebarDivider />
<SidebarSpace />
@@ -37,7 +37,7 @@
"pg": "^8.3.0",
{{/if}}
{{#if dbTypeSqlite}}
"sqlite3": "^4.2.0",
"sqlite3": "^5.0.0",
{{/if}}
"winston": "^3.2.1"
},
+6
View File
@@ -1,5 +1,11 @@
# @backstage/integration
## 0.1.5
### Patch Changes
- 036a84373: Provide support for on-prem azure devops
## 0.1.4
### Patch Changes
+2 -2
View File
@@ -1,6 +1,6 @@
{
"name": "@backstage/integration",
"version": "0.1.4",
"version": "0.1.5",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
@@ -34,7 +34,7 @@
"git-url-parse": "^11.4.3"
},
"devDependencies": {
"@backstage/cli": "^0.4.2",
"@backstage/cli": "^0.4.5",
"@backstage/test-utils": "^0.1.5",
"@types/jest": "^26.0.7",
"msw": "^0.21.2"
+14
View File
@@ -1,5 +1,19 @@
# @backstage/techdocs-common
## 0.3.2
### Patch Changes
- 7ec525481: 1. Added option to use AWS S3 as a choice to store the static generated files for TechDocs.
- f8ba88ded: Fix for `integration.github.apiBaseUrl` configuration not properly overriding apiBaseUrl used by techdocs
- 00042e73c: Moving the Git actions to isomorphic-git instead of the node binding version of nodegit
- Updated dependencies [5ecd50f8a]
- Updated dependencies [00042e73c]
- Updated dependencies [0829ff126]
- Updated dependencies [036a84373]
- @backstage/backend-common@0.4.2
- @backstage/integration@0.1.5
## 0.3.1
### Patch Changes
+4 -4
View File
@@ -1,7 +1,7 @@
{
"name": "@backstage/techdocs-common",
"description": "Common functionalities for TechDocs, to be shared between techdocs-backend plugin and techdocs-cli",
"version": "0.3.1",
"version": "0.3.2",
"main": "src/index.ts",
"types": "src/index.ts",
"private": false,
@@ -36,10 +36,10 @@
"url": "https://github.com/backstage/backstage/issues"
},
"dependencies": {
"@backstage/backend-common": "^0.4.1",
"@backstage/backend-common": "^0.4.2",
"@backstage/catalog-model": "^0.6.0",
"@backstage/config": "^0.1.2",
"@backstage/integration": "^0.1.4",
"@backstage/integration": "^0.1.5",
"@google-cloud/storage": "^5.6.0",
"@types/dockerode": "^3.2.1",
"@types/express": "^4.17.6",
@@ -56,7 +56,7 @@
"winston": "^3.2.1"
},
"devDependencies": {
"@backstage/cli": "^0.4.4",
"@backstage/cli": "^0.4.5",
"@types/fs-extra": "^9.0.5",
"@types/git-url-parse": "^9.0.0",
"@types/js-yaml": "^3.12.5",
@@ -14,12 +14,14 @@
* limitations under the License.
*/
import mockFs from 'mock-fs';
import path from 'path';
import * as winston from 'winston';
import { ConfigReader } from '@backstage/config';
import { AwsS3Publish } from './awsS3';
import { PublisherBase } from './types';
import type { Entity, EntityName } from '@backstage/catalog-model';
const createMockEntity = (annotations = {}) => {
const createMockEntity = (annotations = {}): Entity => {
return {
apiVersion: 'version',
kind: 'TestKind',
@@ -33,6 +35,21 @@ const createMockEntity = (annotations = {}) => {
};
};
const createMockEntityName = (): EntityName => ({
kind: 'TestKind',
name: 'test-component-name',
namespace: 'test-namespace',
});
const getEntityRootDir = (entity: Entity) => {
const {
kind,
metadata: { namespace, name },
} = entity;
const entityRootDir = path.join(namespace as string, kind, name);
return entityRootDir;
};
const logger = winston.createLogger();
jest.spyOn(logger, 'info').mockReturnValue(logger);
jest.spyOn(logger, 'error').mockReturnValue(logger);
@@ -63,12 +80,10 @@ describe('AwsS3Publish', () => {
describe('publish', () => {
it('should publish a directory', async () => {
const entity = createMockEntity();
const {
kind,
metadata: { namespace, name },
} = entity;
const entityRootDir = getEntityRootDir(entity);
mockFs({
[`${namespace}/${kind}/${name}`]: {
[entityRootDir]: {
'index.html': '',
'404.html': '',
assets: {
@@ -80,23 +95,24 @@ describe('AwsS3Publish', () => {
expect(
await publisher.publish({
entity,
directory: `${namespace}/${kind}/${name}`,
directory: entityRootDir,
}),
).toBeUndefined();
mockFs.restore();
});
it('should fail to publish a directory', async () => {
const wrongPathToGeneratedDirectory = '/wrong/path/to/generatedDirectory';
const wrongPathToGeneratedDirectory = path.join(
'wrong',
'path',
'to',
'generatedDirectory',
);
const entity = createMockEntity();
const {
kind,
metadata: { namespace, name },
} = entity;
const entityRootDir = getEntityRootDir(entity);
mockFs({
[`${namespace}/${kind}/${name}`]: {
[entityRootDir]: {
'index.html': '',
'404.html': '',
assets: {
@@ -123,47 +139,32 @@ describe('AwsS3Publish', () => {
describe('hasDocsBeenGenerated', () => {
it('should return true if docs has been generated', async () => {
const entityMock = {
apiVersion: 'apiVersion',
kind: 'kind',
metadata: {
namespace: '/namespace',
name: 'name',
},
};
const entityRootDir = `${entityMock.metadata.namespace}/${entityMock.kind}/${entityMock.metadata.name}`;
const entity = createMockEntity();
const entityRootDir = getEntityRootDir(entity);
mockFs({
[entityRootDir]: {
'index.html': 'file-content',
},
});
expect(await publisher.hasDocsBeenGenerated(entityMock)).toBe(true);
expect(await publisher.hasDocsBeenGenerated(entity)).toBe(true);
mockFs.restore();
});
it('should return false if docs has not been generated', async () => {
const entityMock = {
apiVersion: 'apiVersion',
kind: 'kind',
metadata: {
namespace: 'namespace',
name: 'name',
},
};
const entity = createMockEntity();
expect(await publisher.hasDocsBeenGenerated(entityMock)).toBe(false);
expect(await publisher.hasDocsBeenGenerated(entity)).toBe(false);
});
});
describe('fetchTechDocsMetadata', () => {
it('should return tech docs metadata', async () => {
const entityNameMock = {
name: 'name',
namespace: '/namespace',
kind: 'kind',
};
const entityRootDir = `${entityNameMock.namespace}/${entityNameMock.kind}/${entityNameMock.name}`;
const entityNameMock = createMockEntityName();
const entity = createMockEntity();
const entityRootDir = getEntityRootDir(entity);
mockFs({
[entityRootDir]: {
'techdocs_metadata.json': 'file-content',
@@ -177,12 +178,10 @@ describe('AwsS3Publish', () => {
});
it('should return an error if the techdocs_metadata.json file is not present', async () => {
const entityNameMock = {
name: 'name',
namespace: 'namespace',
kind: 'kind',
};
const entityRootDir = `${entityNameMock.namespace}/${entityNameMock.kind}/${entityNameMock.name}`;
const entityNameMock = createMockEntityName();
const entity = createMockEntity();
const entityRootDir = getEntityRootDir(entity);
await publisher
.fetchTechDocsMetadata(entityNameMock)
.catch(error =>
+1 -1
View File
@@ -49,7 +49,7 @@
"swagger-ui-react": "^3.37.2"
},
"devDependencies": {
"@backstage/cli": "^0.4.4",
"@backstage/cli": "^0.4.5",
"@backstage/dev-utils": "^0.1.7",
"@backstage/test-utils": "^0.1.6",
"@testing-library/jest-dom": "^5.10.1",
+24
View File
@@ -1,5 +1,29 @@
# @backstage/plugin-auth-backend
## 0.2.9
### Patch Changes
- 0289a059c: Add support for the majority of the Core configurations for Passport-SAML.
These configuration keys are supported:
- entryPoint
- issuer
- cert
- privateKey
- decryptionPvk
- signatureAlgorithm
- digestAlgorithm
As part of this change, there is also a fix to the redirection behaviour when doing load balancing and HTTPS termination - the application's baseUrl is used to generate the callback URL. For properly configured Backstage installations, no changes are necessary, and the baseUrl is respected.
- Updated dependencies [5ecd50f8a]
- Updated dependencies [00042e73c]
- Updated dependencies [0829ff126]
- Updated dependencies [036a84373]
- @backstage/backend-common@0.4.2
## 0.2.8
### Patch Changes
+3 -5
View File
@@ -1,6 +1,6 @@
{
"name": "@backstage/plugin-auth-backend",
"version": "0.2.8",
"version": "0.2.9",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
@@ -29,7 +29,7 @@
"clean": "backstage-cli clean"
},
"dependencies": {
"@backstage/backend-common": "^0.4.1",
"@backstage/backend-common": "^0.4.2",
"@backstage/catalog-client": "^0.3.4",
"@backstage/catalog-model": "^0.6.0",
"@backstage/config": "^0.1.2",
@@ -64,13 +64,11 @@
"yn": "^4.0.0"
},
"devDependencies": {
"@backstage/cli": "^0.4.4",
"@backstage/cli": "^0.4.5",
"@types/body-parser": "^1.19.0",
"@types/cookie-parser": "^1.4.2",
"@types/express-session": "^1.17.2",
"@types/jwt-decode": "^3.1.0",
"@types/nock": "^11.1.0",
"@types/openid-client": "^3.7.0",
"@types/passport": "^1.0.3",
"@types/passport-github2": "^1.2.4",
"@types/passport-google-oauth20": "^2.0.3",
+14
View File
@@ -1,5 +1,19 @@
# @backstage/plugin-catalog-backend
## 0.5.2
### Patch Changes
- 99be3057c: Fixed a bug where the catalog would read back all entities when adding a location that already exists.
- 49d2016a4: Change `location_update_log` columns from `nvarchar(255)` to `text`
- 73e75ea0a: Add processor for ingesting AWS accounts from AWS Organizations
- 071711d70: Remove `sqlite3` as a dependency. You may need to add `sqlite3` as a dependency of your backend if you were relying on this indirect dependency.
- Updated dependencies [5ecd50f8a]
- Updated dependencies [00042e73c]
- Updated dependencies [0829ff126]
- Updated dependencies [036a84373]
- @backstage/backend-common@0.4.2
## 0.5.1
### Patch Changes
+4 -4
View File
@@ -1,6 +1,6 @@
{
"name": "@backstage/plugin-catalog-backend",
"version": "0.5.1",
"version": "0.5.2",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
@@ -30,7 +30,7 @@
},
"dependencies": {
"@azure/msal-node": "^1.0.0-alpha.8",
"@backstage/backend-common": "^0.4.1",
"@backstage/backend-common": "^0.4.2",
"@backstage/catalog-model": "^0.6.0",
"@backstage/config": "^0.1.2",
"@octokit/graphql": "^4.5.6",
@@ -50,7 +50,6 @@
"morgan": "^1.10.0",
"p-limit": "^3.0.2",
"qs": "^6.9.4",
"sqlite3": "^5.0.0",
"uuid": "^8.0.0",
"winston": "^3.2.1",
"yaml": "^1.9.2",
@@ -58,7 +57,7 @@
"yup": "^0.29.3"
},
"devDependencies": {
"@backstage/cli": "^0.4.3",
"@backstage/cli": "^0.4.5",
"@backstage/test-utils": "^0.1.6",
"@types/core-js": "^2.5.4",
"@types/git-url-parse": "^9.0.0",
@@ -67,6 +66,7 @@
"@types/uuid": "^8.0.0",
"@types/yup": "^0.29.8",
"msw": "^0.21.2",
"sqlite3": "^5.0.0",
"supertest": "^4.0.2"
},
"files": [
+15
View File
@@ -1,5 +1,20 @@
# @backstage/plugin-catalog-import
## 0.3.3
### Patch Changes
- edb7d0775: Create "url" type location when registering using the catalog-import plugin.
- Updated dependencies [99be3057c]
- Updated dependencies [49d2016a4]
- Updated dependencies [9c09a364f]
- Updated dependencies [73e75ea0a]
- Updated dependencies [036a84373]
- Updated dependencies [071711d70]
- @backstage/plugin-catalog-backend@0.5.2
- @backstage/plugin-catalog@0.2.10
- @backstage/integration@0.1.5
## 0.3.2
### Patch Changes
+5 -5
View File
@@ -1,6 +1,6 @@
{
"name": "@backstage/plugin-catalog-import",
"version": "0.3.2",
"version": "0.3.3",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
@@ -32,9 +32,9 @@
"dependencies": {
"@backstage/catalog-model": "^0.6.0",
"@backstage/core": "^0.4.3",
"@backstage/plugin-catalog": "^0.2.7",
"@backstage/plugin-catalog-backend": "^0.5.0",
"@backstage/integration": "^0.1.4",
"@backstage/plugin-catalog": "^0.2.10",
"@backstage/plugin-catalog-backend": "^0.5.2",
"@backstage/integration": "^0.1.5",
"@backstage/theme": "^0.2.2",
"@material-ui/core": "^4.11.0",
"@material-ui/icons": "^4.9.1",
@@ -50,7 +50,7 @@
"yaml": "^1.10.0"
},
"devDependencies": {
"@backstage/cli": "^0.4.4",
"@backstage/cli": "^0.4.5",
"@backstage/dev-utils": "^0.1.7",
"@backstage/test-utils": "^0.1.6",
"@testing-library/jest-dom": "^5.10.1",
@@ -49,7 +49,7 @@ export class CatalogImportClient implements CatalogImportApi {
},
method: 'POST',
body: JSON.stringify({
location: { type: 'github', target: repo },
location: { type: 'url', target: repo },
}),
},
).catch(e => {
@@ -78,7 +78,7 @@ export class CatalogImportClient implements CatalogImportApi {
},
method: 'POST',
body: JSON.stringify({
type: 'github',
type: 'url',
target: location,
presence: 'optional',
}),
+9
View File
@@ -1,5 +1,14 @@
# @backstage/plugin-catalog
## 0.2.10
### Patch Changes
- 9c09a364f: Remove the unused dependency to `@backstage/plugin-techdocs`.
- Updated dependencies [8e083f41f]
- Updated dependencies [947d3c269]
- @backstage/plugin-scaffolder@0.3.6
## 0.2.9
### Patch Changes
+3 -3
View File
@@ -1,6 +1,6 @@
{
"name": "@backstage/plugin-catalog",
"version": "0.2.9",
"version": "0.2.10",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
@@ -33,7 +33,7 @@
"@backstage/catalog-client": "^0.3.4",
"@backstage/catalog-model": "^0.6.0",
"@backstage/core": "^0.4.3",
"@backstage/plugin-scaffolder": "^0.3.5",
"@backstage/plugin-scaffolder": "^0.3.6",
"@backstage/theme": "^0.2.2",
"@material-ui/core": "^4.11.0",
"@material-ui/icons": "^4.9.1",
@@ -51,7 +51,7 @@
"swr": "^0.3.0"
},
"devDependencies": {
"@backstage/cli": "^0.4.4",
"@backstage/cli": "^0.4.5",
"@backstage/dev-utils": "^0.1.7",
"@backstage/test-utils": "^0.1.6",
"@microsoft/microsoft-graph-types": "^1.25.0",
+1 -1
View File
@@ -50,7 +50,7 @@
"react-use": "^15.3.3"
},
"devDependencies": {
"@backstage/cli": "^0.4.4",
"@backstage/cli": "^0.4.5",
"@backstage/dev-utils": "^0.1.7",
"@backstage/test-utils": "^0.1.6",
"@testing-library/jest-dom": "^5.10.1",
+1 -1
View File
@@ -49,7 +49,7 @@
"react-use": "^15.3.3"
},
"devDependencies": {
"@backstage/cli": "^0.4.4",
"@backstage/cli": "^0.4.5",
"@backstage/dev-utils": "^0.1.7",
"@backstage/test-utils": "^0.1.6",
"@testing-library/jest-dom": "^5.10.1",
+6
View File
@@ -1,5 +1,11 @@
# @backstage/plugin-cost-insights
## 0.5.5
### Patch Changes
- ab0892358: Remove test dependencies from production package list
## 0.5.4
### Patch Changes
+2 -2
View File
@@ -1,6 +1,6 @@
{
"name": "@backstage/plugin-cost-insights",
"version": "0.5.4",
"version": "0.5.5",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
@@ -55,7 +55,7 @@
"yup": "^0.29.3"
},
"devDependencies": {
"@backstage/cli": "^0.4.4",
"@backstage/cli": "^0.4.5",
"@backstage/dev-utils": "^0.1.7",
"@backstage/test-utils": "^0.1.6",
"@testing-library/jest-dom": "^5.10.1",
+1 -1
View File
@@ -42,7 +42,7 @@
"react-use": "^15.3.3"
},
"devDependencies": {
"@backstage/cli": "^0.4.4",
"@backstage/cli": "^0.4.5",
"@backstage/dev-utils": "^0.1.7",
"@backstage/test-utils": "^0.1.6",
"@testing-library/jest-dom": "^5.10.1",
+1 -1
View File
@@ -43,7 +43,7 @@
"react-use": "^15.3.3"
},
"devDependencies": {
"@backstage/cli": "^0.4.4",
"@backstage/cli": "^0.4.5",
"@backstage/dev-utils": "^0.1.7",
"@backstage/test-utils": "^0.1.6",
"@testing-library/jest-dom": "^5.10.1",
+1 -1
View File
@@ -41,7 +41,7 @@
"react-use": "^15.3.3"
},
"devDependencies": {
"@backstage/cli": "^0.4.4",
"@backstage/cli": "^0.4.5",
"@backstage/dev-utils": "^0.1.7",
"@backstage/test-utils": "^0.1.6",
"@testing-library/jest-dom": "^5.10.1",
+1 -1
View File
@@ -51,7 +51,7 @@
"react-use": "^15.3.3"
},
"devDependencies": {
"@backstage/cli": "^0.4.4",
"@backstage/cli": "^0.4.5",
"@backstage/dev-utils": "^0.1.7",
"@backstage/test-utils": "^0.1.6",
"@testing-library/jest-dom": "^5.10.1",
+1 -1
View File
@@ -42,7 +42,7 @@
"react-use": "^15.3.3"
},
"devDependencies": {
"@backstage/cli": "^0.4.4",
"@backstage/cli": "^0.4.5",
"@backstage/dev-utils": "^0.1.7",
"@backstage/test-utils": "^0.1.6",
"@testing-library/jest-dom": "^5.10.1",
+1 -1
View File
@@ -43,7 +43,7 @@
"react-use": "^15.3.3"
},
"devDependencies": {
"@backstage/cli": "^0.4.4",
"@backstage/cli": "^0.4.5",
"@backstage/dev-utils": "^0.1.7",
"@backstage/test-utils": "^0.1.6",
"@testing-library/jest-dom": "^5.10.1",
+1 -1
View File
@@ -46,7 +46,7 @@
"react-use": "^15.3.3"
},
"devDependencies": {
"@backstage/cli": "^0.4.4",
"@backstage/cli": "^0.4.5",
"@backstage/dev-utils": "^0.1.7",
"@backstage/test-utils": "^0.1.6",
"@testing-library/jest-dom": "^5.10.1",
+1 -1
View File
@@ -46,7 +46,7 @@
"react-use": "^15.3.3"
},
"devDependencies": {
"@backstage/cli": "^0.4.4",
"@backstage/cli": "^0.4.5",
"@backstage/dev-utils": "^0.1.7",
"@backstage/test-utils": "^0.1.6",
"@testing-library/jest-dom": "^5.10.1",
+1 -1
View File
@@ -47,7 +47,7 @@
"react-use": "^15.3.3"
},
"devDependencies": {
"@backstage/cli": "^0.4.4",
"@backstage/cli": "^0.4.5",
"@backstage/dev-utils": "^0.1.7",
"@backstage/test-utils": "^0.1.6",
"@testing-library/jest-dom": "^5.10.1",
+1 -1
View File
@@ -41,7 +41,7 @@
"react-use": "^15.3.3"
},
"devDependencies": {
"@backstage/cli": "^0.4.4",
"@backstage/cli": "^0.4.5",
"@backstage/dev-utils": "^0.1.7",
"@backstage/test-utils": "^0.1.6",
"@testing-library/jest-dom": "^5.10.1",
+1 -1
View File
@@ -33,7 +33,7 @@
"react-use": "^15.3.3"
},
"devDependencies": {
"@backstage/cli": "^0.4.4",
"@backstage/cli": "^0.4.5",
"@backstage/dev-utils": "^0.1.7",
"@backstage/test-utils": "^0.1.6",
"@testing-library/jest-dom": "^5.10.1",
+6
View File
@@ -1,5 +1,11 @@
# @backstage/plugin-pagerduty
## 0.2.5
### Patch Changes
- b7a124883: Optimize empty state image size.
## 0.2.4
### Patch Changes
+2 -2
View File
@@ -1,6 +1,6 @@
{
"name": "@backstage/plugin-pagerduty",
"version": "0.2.4",
"version": "0.2.5",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
@@ -44,7 +44,7 @@
"react-use": "^15.3.3"
},
"devDependencies": {
"@backstage/cli": "^0.4.4",
"@backstage/cli": "^0.4.5",
"@backstage/dev-utils": "^0.1.7",
"@backstage/test-utils": "^0.1.6",
"@testing-library/jest-dom": "^5.10.1",
+1 -1
View File
@@ -45,7 +45,7 @@
"react-use": "^15.3.3"
},
"devDependencies": {
"@backstage/cli": "^0.4.4",
"@backstage/cli": "^0.4.5",
"@backstage/dev-utils": "^0.1.7",
"@backstage/test-utils": "^0.1.6",
"@testing-library/jest-dom": "^5.10.1",
+11
View File
@@ -1,5 +1,16 @@
# @backstage/plugin-rollbar-backend
## 0.1.6
### Patch Changes
- dde4ab398: Bump `axios` from `^0.20.0` to `^0.21.1`.
- Updated dependencies [5ecd50f8a]
- Updated dependencies [00042e73c]
- Updated dependencies [0829ff126]
- Updated dependencies [036a84373]
- @backstage/backend-common@0.4.2
## 0.1.5
### Patch Changes
+4 -4
View File
@@ -1,6 +1,6 @@
{
"name": "@backstage/plugin-rollbar-backend",
"version": "0.1.5",
"version": "0.1.6",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
@@ -30,10 +30,10 @@
"clean": "backstage-cli clean"
},
"dependencies": {
"@backstage/backend-common": "^0.4.0",
"@backstage/backend-common": "^0.4.2",
"@backstage/config": "^0.1.2",
"@types/express": "^4.17.6",
"axios": "^0.20.0",
"axios": "^0.21.1",
"camelcase-keys": "^6.2.2",
"compression": "^1.7.4",
"cors": "^2.8.5",
@@ -47,7 +47,7 @@
"yn": "^4.0.0"
},
"devDependencies": {
"@backstage/cli": "^0.4.1",
"@backstage/cli": "^0.4.5",
"@types/supertest": "^2.0.8",
"supertest": "^4.0.2"
},
+1 -1
View File
@@ -47,7 +47,7 @@
"react-use": "^15.3.3"
},
"devDependencies": {
"@backstage/cli": "^0.4.4",
"@backstage/cli": "^0.4.5",
"@backstage/dev-utils": "^0.1.7",
"@backstage/test-utils": "^0.1.6",
"@testing-library/jest-dom": "^5.10.1",
+14
View File
@@ -1,5 +1,19 @@
# @backstage/plugin-scaffolder-backend
## 0.3.7
### Patch Changes
- 37a5244ef: Add scaffolding support for Bitbucket Cloud and Server.
- 00042e73c: Moving the Git actions to isomorphic-git instead of the node binding version of nodegit
- 9efbc5585: Add config schema for Bitbucket scaffolder
- Updated dependencies [5ecd50f8a]
- Updated dependencies [00042e73c]
- Updated dependencies [0829ff126]
- Updated dependencies [036a84373]
- @backstage/backend-common@0.4.2
- @backstage/integration@0.1.5
## 0.3.6
### Patch Changes
+4 -4
View File
@@ -1,6 +1,6 @@
{
"name": "@backstage/plugin-scaffolder-backend",
"version": "0.3.6",
"version": "0.3.7",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
@@ -29,10 +29,10 @@
"clean": "backstage-cli clean"
},
"dependencies": {
"@backstage/backend-common": "^0.4.1",
"@backstage/backend-common": "^0.4.2",
"@backstage/catalog-model": "^0.6.0",
"@backstage/config": "^0.1.2",
"@backstage/integration": "^0.1.4",
"@backstage/integration": "^0.1.5",
"@gitbeaker/core": "^25.2.0",
"@gitbeaker/node": "^25.2.0",
"@octokit/rest": "^18.0.0",
@@ -58,7 +58,7 @@
"yaml": "^1.10.0"
},
"devDependencies": {
"@backstage/cli": "^0.4.3",
"@backstage/cli": "^0.4.5",
"@backstage/test-utils": "^0.1.5",
"@octokit/types": "^5.4.1",
"@types/fs-extra": "^9.0.1",
+9
View File
@@ -1,5 +1,14 @@
# @backstage/plugin-scaffolder
## 0.3.6
### Patch Changes
- 8e083f41f: Bug fix: User can retry creating a new component if an error occurs, without having to reload the page.
- 947d3c269: You can now maximize the logs into full-screen by clicking the button under each step of the job
- Updated dependencies [9c09a364f]
- @backstage/plugin-catalog@0.2.10
## 0.3.5
### Patch Changes
+3 -3
View File
@@ -1,6 +1,6 @@
{
"name": "@backstage/plugin-scaffolder",
"version": "0.3.5",
"version": "0.3.6",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
@@ -32,7 +32,7 @@
"dependencies": {
"@backstage/catalog-model": "^0.6.0",
"@backstage/core": "^0.4.3",
"@backstage/plugin-catalog": "^0.2.8",
"@backstage/plugin-catalog": "^0.2.10",
"@backstage/theme": "^0.2.2",
"@material-ui/core": "^4.11.0",
"@material-ui/icons": "^4.9.1",
@@ -50,7 +50,7 @@
"swr": "^0.3.0"
},
"devDependencies": {
"@backstage/cli": "^0.4.4",
"@backstage/cli": "^0.4.5",
"@backstage/dev-utils": "^0.1.7",
"@backstage/test-utils": "^0.1.6",
"@testing-library/jest-dom": "^5.10.1",
@@ -18,10 +18,12 @@ import {
Accordion,
AccordionDetails,
AccordionSummary,
AccordionActions,
Box,
CircularProgress,
LinearProgress,
Typography,
Button,
} from '@material-ui/core';
import { makeStyles } from '@material-ui/core/styles';
import ExpandMoreIcon from '@material-ui/icons/ExpandMore';
@@ -29,6 +31,7 @@ import ExpandLessIcon from '@material-ui/icons/ExpandLess';
import cn from 'classnames';
import moment from 'moment';
import React, { Suspense, useEffect, useState } from 'react';
import { LogModal } from './LogModal';
import { Job } from '../../types';
const LazyLog = React.lazy(() => import('react-lazylog/build/LazyLog'));
@@ -111,6 +114,9 @@ export const JobStage = ({ endedAt, startedAt, name, log, status }: Props) => {
.humanize()
: null;
const [logsFullScreen, setLogsFullScreen] = useState(false);
const toggleLogsFullScreen = () => setLogsFullScreen(!logsFullScreen);
return (
<Accordion
TransitionProps={{ unmountOnExit: true }}
@@ -142,12 +148,22 @@ export const JobStage = ({ endedAt, startedAt, name, log, status }: Props) => {
</Box>
) : (
<Suspense fallback={<LinearProgress />}>
<LogModal
open={logsFullScreen}
onClose={toggleLogsFullScreen}
log={log}
/>
<div style={{ height: '20vh', width: '100%' }}>
<LazyLog text={log.join('\n')} extraLines={1} follow />
<LazyLog text={`${log.join('\n')}`} extraLines={1} follow />
</div>
</Suspense>
)}
</AccordionDetails>
<AccordionActions>
<Button color="primary" onClick={toggleLogsFullScreen}>
Open in fullcreen
</Button>
</AccordionActions>
</Accordion>
);
};
@@ -0,0 +1,67 @@
/*
* Copyright 2020 Spotify AB
*
* 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 {
Dialog,
DialogTitle,
DialogContent,
IconButton,
} from '@material-ui/core';
import { makeStyles } from '@material-ui/core/styles';
import Close from '@material-ui/icons/Close';
import LazyLog from 'react-lazylog/build/LazyLog';
type Props = {
log: string[];
open?: boolean;
onClose(): void;
};
const useStyles = makeStyles(theme => ({
header: {
width: '100%',
padding: theme.spacing(1, 4),
},
closeIcon: {
float: 'right',
padding: theme.spacing(0.5, 0),
},
logs: {
boxShadow: '-3px -1px 7px 0px rgba(50, 50, 50, 0.59)',
height: '100%',
width: '100%',
},
}));
export const LogModal = ({ log, open = false, onClose }: Props) => {
const classes = useStyles();
return (
<Dialog open={open} onClose={onClose} fullScreen>
<DialogTitle id="responsive-dialog-title" className={classes.header}>
Logs
<IconButton onClick={onClose} className={classes.closeIcon}>
<Close />
</IconButton>
</DialogTitle>
<DialogContent>
<div className={classes.logs}>
<LazyLog text={log.join('\n')} extraLines={1} follow />
</div>
</DialogContent>
</Dialog>
);
};
+8
View File
@@ -1,5 +1,13 @@
# @backstage/plugin-search
## 0.2.5
### Patch Changes
- 01707438b: Fix Material-UI warning for search filtering
- Updated dependencies [9c09a364f]
- @backstage/plugin-catalog@0.2.10
## 0.2.4
### Patch Changes
+3 -3
View File
@@ -1,6 +1,6 @@
{
"name": "@backstage/plugin-search",
"version": "0.2.4",
"version": "0.2.5",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
@@ -30,7 +30,7 @@
},
"dependencies": {
"@backstage/core": "^0.4.3",
"@backstage/plugin-catalog": "^0.2.7",
"@backstage/plugin-catalog": "^0.2.10",
"@backstage/catalog-model": "^0.6.0",
"@backstage/theme": "^0.2.2",
"@material-ui/core": "^4.11.0",
@@ -43,7 +43,7 @@
"react-use": "^15.3.3"
},
"devDependencies": {
"@backstage/cli": "^0.4.4",
"@backstage/cli": "^0.4.5",
"@backstage/dev-utils": "^0.1.7",
"@backstage/test-utils": "^0.1.6",
"@testing-library/jest-dom": "^5.10.1",
+8
View File
@@ -1,5 +1,13 @@
# @backstage/plugin-sentry
## 0.3.2
### Patch Changes
- 88da267cc: Port to new composability API by exporting new `EntitySentryContent` and `EntitySentryCard` component extensions.
- Updated dependencies [9c09a364f]
- @backstage/plugin-catalog@0.2.10
## 0.3.1
### Patch Changes
+3 -3
View File
@@ -1,6 +1,6 @@
{
"name": "@backstage/plugin-sentry",
"version": "0.3.1",
"version": "0.3.2",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
@@ -33,7 +33,7 @@
"dependencies": {
"@backstage/catalog-model": "^0.6.0",
"@backstage/core": "^0.4.3",
"@backstage/plugin-catalog": "^0.2.9",
"@backstage/plugin-catalog": "^0.2.10",
"@backstage/theme": "^0.2.2",
"@material-ui/core": "^4.11.0",
"@material-ui/icons": "^4.9.1",
@@ -46,7 +46,7 @@
"timeago.js": "^4.0.2"
},
"devDependencies": {
"@backstage/cli": "^0.4.4",
"@backstage/cli": "^0.4.5",
"@backstage/dev-utils": "^0.1.7",
"@backstage/test-utils": "^0.1.6",
"@testing-library/jest-dom": "^5.10.1",
+1 -1
View File
@@ -46,7 +46,7 @@
"react-use": "^15.3.3"
},
"devDependencies": {
"@backstage/cli": "^0.4.4",
"@backstage/cli": "^0.4.5",
"@backstage/dev-utils": "^0.1.7",
"@backstage/test-utils": "^0.1.6",
"@testing-library/jest-dom": "^5.10.1",
+7
View File
@@ -1,5 +1,12 @@
# @backstage/plugin-tech-radar
## 0.3.2
### Patch Changes
- ab0892358: Remove test dependencies from production package list
- bc909178d: Updated example data in `README`.
## 0.3.1
### Patch Changes
+2 -3
View File
@@ -1,6 +1,6 @@
{
"name": "@backstage/plugin-tech-radar",
"version": "0.3.1",
"version": "0.3.2",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
@@ -31,7 +31,6 @@
},
"dependencies": {
"@backstage/core": "^0.4.3",
"@backstage/test-utils": "^0.1.5",
"@backstage/theme": "^0.2.2",
"@material-ui/core": "^4.11.0",
"@material-ui/icons": "^4.9.1",
@@ -44,7 +43,7 @@
"react-use": "^15.3.3"
},
"devDependencies": {
"@backstage/cli": "^0.4.4",
"@backstage/cli": "^0.4.5",
"@backstage/dev-utils": "^0.1.7",
"@backstage/test-utils": "^0.1.6",
"@testing-library/jest-dom": "^5.10.1",
+14
View File
@@ -1,5 +1,19 @@
# @backstage/plugin-techdocs-backend
## 0.5.2
### Patch Changes
- 7ec525481: 1. Added option to use AWS S3 as a choice to store the static generated files for TechDocs.
- Updated dependencies [7ec525481]
- Updated dependencies [5ecd50f8a]
- Updated dependencies [f8ba88ded]
- Updated dependencies [00042e73c]
- Updated dependencies [0829ff126]
- Updated dependencies [036a84373]
- @backstage/techdocs-common@0.3.2
- @backstage/backend-common@0.4.2
## 0.5.1
### Patch Changes
+4 -4
View File
@@ -1,6 +1,6 @@
{
"name": "@backstage/plugin-techdocs-backend",
"version": "0.5.1",
"version": "0.5.2",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
@@ -30,10 +30,10 @@
"clean": "backstage-cli clean"
},
"dependencies": {
"@backstage/backend-common": "^0.4.1",
"@backstage/backend-common": "^0.4.2",
"@backstage/catalog-model": "^0.6.0",
"@backstage/config": "^0.1.2",
"@backstage/techdocs-common": "^0.3.1",
"@backstage/techdocs-common": "^0.3.2",
"@types/dockerode": "^3.2.1",
"@types/express": "^4.17.6",
"cross-fetch": "^3.0.6",
@@ -44,7 +44,7 @@
"winston": "^3.2.1"
},
"devDependencies": {
"@backstage/cli": "^0.4.4",
"@backstage/cli": "^0.4.5",
"supertest": "^4.0.2"
},
"files": [

Some files were not shown because too many files have changed in this diff Show More