Giter VIP home page Giter VIP logo

backstage / backstage Goto Github PK

View Code? Open in Web Editor NEW
26.4K 26.4K 5.4K 6.3 GB

Backstage is an open platform for building developer portals

Home Page: https://backstage.io

License: Apache License 2.0

JavaScript 2.03% HTML 0.06% TypeScript 95.41% Dockerfile 0.06% Shell 0.03% CSS 0.15% Handlebars 0.22% Mustache 0.08% Makefile 0.03% HCL 0.01% PowerShell 0.01% SCSS 0.06% MDX 1.85%
backstage cncf developer-experience developer-portal dx hacktoberfest infrastructure microservices service-catalog

backstage's Introduction

headline

English | 한국어 | 中文版

License CNCF Status Discord Code style Codecov Uffizzi OpenSSF Best Practices OpenSSF Scorecard

What is Backstage?

Backstage is an open source framework for building developer portals. Powered by a centralized software catalog, Backstage restores order to your microservices and infrastructure and enables your product teams to ship high-quality code quickly without compromising autonomy.

Backstage unifies all your infrastructure tooling, services, and documentation to create a streamlined development environment from end to end.

software-catalog

Out of the box, Backstage includes:

  • Backstage Software Catalog for managing all your software such as microservices, libraries, data pipelines, websites, and ML models
  • Backstage Software Templates for quickly spinning up new projects and standardizing your tooling with your organization’s best practices
  • Backstage TechDocs for making it easy to create, maintain, find, and use technical documentation, using a "docs like code" approach
  • Plus, a growing ecosystem of open source plugins that further expand Backstage’s customizability and functionality

Backstage was created by Spotify but is now hosted by the Cloud Native Computing Foundation (CNCF) as an Incubation level project. For more information, see the announcement.

Project roadmap

For information about the detailed project roadmap including delivered milestones, see the Roadmap.

Getting Started

To start using Backstage, see the Getting Started documentation.

Documentation

The documentation of Backstage includes:

Community

To engage with our community, you can use the following resources:

License

Copyright 2020-2024 © The Backstage Authors. All rights reserved. The Linux Foundation has registered trademarks and uses trademarks. For a list of trademarks of The Linux Foundation, please see our Trademark Usage page: https://www.linuxfoundation.org/trademark-usage

Licensed under the Apache License, Version 2.0: http://www.apache.org/licenses/LICENSE-2.0

Security

Please report sensitive security issues using Spotify's bug-bounty program rather than GitHub.

For further details, see our complete security release process.

backstage's People

Contributors

adamdmharvey avatar awanlin avatar backstage-goalie[bot] avatar benjdlambert avatar bih avatar camilaibs avatar dependabot-preview[bot] avatar dependabot[bot] avatar dhenneke avatar emmaindal avatar erikengervall avatar fox32 avatar freben avatar github-actions[bot] avatar iameap avatar jhaals avatar marcuseide avatar mtlewis avatar nek avatar orkohunter avatar punkle avatar renovate-bot avatar renovate[bot] avatar rugvip avatar sennyeya avatar shmidt-i avatar soapraj avatar timbonicus avatar tudi2d avatar vinzscam avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

backstage's Issues

Detail workflow for plugins that are not open source

So I create a plugin and it gets added to the main app. What if this plugin should not be open sourced? How do we I move it to an internal repo and stil use it in the main Backstage app?

This needs to be documented, and ideally supported in the CLI.

DataGrid has commercial license

Replace internal implementation of DataGrid with some other open alternative. Having a simple-to-use grid component is essential for easy development.

Broken flow for plugin

See console output

--- backstage/frontend ‹master* ?› » yarn create-plugin
yarn run v1.21.1
$ yarn workspace @spotify-backstage/cli build && backstage-cli create-plugin
$ web-scripts build
? Enter an ID for the plugin [required] testPlugin

🧩  Creating the plugin...

 Creating the plugin directory:
  creating	/packages/plugins/testPlugin ✓

 Reading template files:
  reading	14 files ✓

 Setting up the plugin files:
  processing	README.md.hbs ✓
  processing	package.json.hbs ✓
  processing	jest.config.js ✓
  processing	tsconfig.json ✓
  processing	jest.setup.ts ✓
  processing	index.ts ✓
  processing	plugin.ts.hbs ✓
  processing	plugin.test.ts.hbs ✓
  processing	ExampleFetchComponent.test.tsx.hbs ✓
  processing	ExampleFetchComponent.tsx.hbs ✓
  processing	index.ts ✓
  processing	ExampleComponent.test.tsx.hbs ✓
  processing	ExampleComponent.tsx.hbs ✓
  processing	index.ts ✓

 Building the plugin:
  executing	yarn ✓
  executing	yarn build ✗

Could not execute command yarn build: Command failed: yarn build
error Command failed with exit code 2.


🔥  Failed to create plugin!

? It seems that something went wrong when creating the plugin 🤔
Do you want to remove the following directory and all the files in it:
/Users/bil/Development/github.com/spotify/backstage/frontend/packages/plugins/testPlugin Yes

🧹  Cleaning up...

 Removing plugin:
  deleting	/packages/plugins/testPlugin ✗

Failed to cleanup: ENOTEMPTY: directory not empty, rmdir '/Users/bil/Development/github.com/spotify/backstage/frontend/packages/plugins/testPlugin'
✨  Done in 45.26s.

Automate adding of new plugin

Any reason why these steps could not be automated? I don't see any situations where you create a new plugin and don't want to try it out.

Screenshot 2020-02-28 at 12 33 44

Broken plugin layout

The following code does not render correctly:

   <Page theme={theme.home}>
      <Header
        title={profile ? `Hello, ${profile.givenName}` : 'Hello'}
        subtitle="Welcome to Backstage"
      >
        <HomePageTimer />
      </Header>
      <Content>
        <ContentHeader title="Current Set">Something</ContentHeader>
        <Grid container direction="row" spacing={3}>
          <Grid item xs={6}>
            <Typography variant="h3" style={{ padding: '8px 0 16px 0' }}>
              Things you own
            </Typography>
            <InfoCard maxWidth>
              <SortableTable data={data} columns={columns} orderBy="id" />
            </InfoCard>
          </Grid>
          <Grid item xs={6}>
            <SquadTechHealth />
          </Grid>
        </Grid>
      </Content>
    </Page>

Screenshot 2020-02-29 at 18 12 11

Design in the open

We should set permissions on our Figma files to world-viewable and allow public comments

Site configuration

Introduce a site config file (example) so that people deploying Backstage can customize things like:

  • Site name (everyone may not want to use "Backstage")
  • Site logo
  • Proxy URLs etc
  • Timezones for Homepage headers
  • GitHub URL
  • ...

Error when running `yarn start`

TypeError [ERR_INVALID_ARG_TYPE]: The "path" argument must be of type string. Received type undefined
    at validateString (internal/validators.js:112:11)
    at Object.join (path.js:1039:7)
    at noopServiceWorkerMiddleware (/Users/stefan/code/github/backstage/frontend/node_modules/react-dev-utils/noopServiceWorkerMiddleware.js:14:26)
    at Layer.handle [as handle_request] (/Users/stefan/code/github/backstage/frontend/node_modules/express/lib/router/layer.js:95:5)
    at trim_prefix (/Users/stefan/code/github/backstage/frontend/node_modules/express/lib/router/index.js:317:13)
    at /Users/stefan/code/github/backstage/frontend/node_modules/express/lib/router/index.js:284:7
    at Function.process_params (/Users/stefan/code/github/backstage/frontend/node_modules/express/lib/router/index.js:335:12)
    at next (/Users/stefan/code/github/backstage/frontend/node_modules/express/lib/router/index.js:275:10)
    at launchEditorMiddleware (/Users/stefan/code/github/backstage/frontend/node_modules/react-dev-utils/errorOverlayMiddleware.js:20:7)
    at Layer.handle [as handle_request] (/Users/stefan/code/github/backstage/frontend/node_modules/express/lib/router/layer.js:95:5)
    at trim_prefix (/Users/stefan/code/github/backstage/frontend/node_modules/express/lib/router/index.js:317:13)
    at /Users/stefan/code/github/backstage/frontend/node_modules/express/lib/router/index.js:284:7
    at Function.process_params (/Users/stefan/code/github/backstage/frontend/node_modules/express/lib/router/index.js:335:12)
    at next (/Users/stefan/code/github/backstage/frontend/node_modules/express/lib/router/index.js:275:10)
    at handleWebpackInternalMiddleware (/Users/stefan/code/github/backstage/frontend/node_modules/react-dev-utils/evalSourceMapMiddleware.js:42:7)
    at Layer.handle [as handle_request] (/Users/stefan/code/github/backstage/frontend/node_modules/express/lib/router/layer.js:95:5)

Plugin layout requires extra styling

Custom styling is required for a plugin to render correctly with a header and content:

const useStyles = makeStyles<Theme>(theme => ({
  mainContentArea: {
    overflowX: 'hidden',
    overflowY: 'auto',
  },
  pageBody: {
    padding: theme.spacing(3),
  },
}));

const ExampleComponent: FC<{}> = () => {
  const classes = useStyles();
  return (
    <Page theme={theme.home}>
      <div className={classes.mainContentArea}>
        <Header title="Welcome to stefan-demo!" subtitle="Example"></Header>
        <div className={classes.pageBody}>
          <Typography variant="h3" style={{ padding: '8px 0 16px 0' }}>
            Page title
          </Typography>
          <InfoCard title="Information card" maxWidth>
            <Typography variant="body1">
              All content should be wrapped in a card like this
            </Typography>
          </InfoCard>
        </div>
      </div>
    </Page>
  );
};

You should not need divs with custom styling. This should all be taken care of by the core components such as Page and Header.

Reset package versions back to 0.x

Better signal the alpha stage by staying below 1.0.

We need to reset versions back to 0.1.0 or similar, TBD, and unpublish all npm packages with higher versions.

Makefile only supports MacOS

For a properly nice open source project I think the makefile should support other platforms, or at the very least it should be documented what tools are needed to install.

Add test coverage tooling

It is useful for packages to be able to see their own test coverage, and to enforce limits on it.

Create a social media image for this repo

From repo Settings:

Social preview
You can upload a social image, but it will not be visible publicly while spotify/backstage is private.
Upload an image to customize your repository’s social media preview.
Images should be at least 640×320px (1280×640px for best display).

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.