docs: add a central glossary
Signed-off-by: Aramis <sennyeyaramis@gmail.com>
This commit is contained in:
@@ -1,30 +0,0 @@
|
||||
---
|
||||
id: glossary
|
||||
title: Glossary
|
||||
description: All Glossaries related to auth
|
||||
---
|
||||
|
||||
- **Popup** - A separate browser window opened on top of the previous one.
|
||||
- **OAuth** - More specifically OAuth 2.0, a standard protocol for
|
||||
authorization. See [oauth.net/2/](https://oauth.net/2/).
|
||||
- **OpenID Connect** - A layer on top of OAuth which standardises
|
||||
authentication. See
|
||||
[en.wikipedia.org/wiki/OpenID_Connect](https://en.wikipedia.org/wiki/OpenID_Connect).
|
||||
- **JWT** - JSON Web Token, a popular JSON based token format that is commonly
|
||||
encrypted and/or signed, see
|
||||
[en.wikipedia.org/wiki/JSON_Web_Token](https://en.wikipedia.org/wiki/JSON_Web_Token)
|
||||
- **Scope** - A string that describes a certain type of access that can be
|
||||
granted to a user using OAuth.
|
||||
- **Access token** - A token that gives access to perform actions on behalf of a
|
||||
user. It will commonly have a short expiry time, and be limited to a set of
|
||||
scopes. Part of the OAuth protocol.
|
||||
- **ID token** - A JWT used to prove a user's identity, containing for example
|
||||
the user's email. Part of OpenID Connect.
|
||||
- **Offline access** - OAuth flow that results in both a refresh and access
|
||||
token, where the refresh token has a long expiration or never expires, and can
|
||||
be used to request more access tokens in the future. This lets the user go
|
||||
"offline" with respect to the token issuer, but still be able to request more
|
||||
tokens at a later time without further direct interaction for the user.
|
||||
- **Code grant** - OAuth flow where the client receives an authorization code
|
||||
that is passed to the backend to be exchanged for an access token and possibly
|
||||
refresh token.
|
||||
@@ -258,7 +258,7 @@ When building CommonJS or ESM output, the build commands will always use
|
||||
`src/index.ts` as the entrypoint. All non-relative modules imports are considered
|
||||
external, meaning the Rollup build will only compile the source code of the package
|
||||
itself. All import statements of external dependencies, even within the same
|
||||
monorepo, will stay intact.
|
||||
[monorepo](../references/glossary.md#monorepo), will stay intact.
|
||||
|
||||
The build of the type definitions works quite differently. The entrypoint of the
|
||||
type definition build is the relative location of the package within the
|
||||
@@ -307,11 +307,12 @@ support for them instead.
|
||||
|
||||
### Frontend Production
|
||||
|
||||
The frontend production bundling creates your typical web content bundle, all
|
||||
contained within a single folder, ready for static serving. It is used when building
|
||||
packages with the `'frontend'` role, and unlike the development bundling there is no way to
|
||||
build a production bundle of an individual plugin. The output of the bundling
|
||||
process is written to the `dist` folder in the package.
|
||||
The frontend production bundling creates your typical web content
|
||||
[bundle](../references/glossary.md#bundle), all contained within a single
|
||||
folder, ready for static serving. It is used when building packages with the
|
||||
`'frontend'` role, and unlike the development bundling there is no way to
|
||||
build a production [bundle](../references/glossary.md#bundle) of an individual plugin.
|
||||
The output of the bundling process is written to the `dist` folder in the package.
|
||||
|
||||
Just like the development bundling, the production bundling is based on
|
||||
[Webpack](https://webpack.js.org/). It uses the
|
||||
|
||||
@@ -7,11 +7,12 @@ description: Overview of the Backstage CLI
|
||||
## Introduction
|
||||
|
||||
A goal of Backstage is to provide a delightful developer experience in and
|
||||
around the project. Creating new apps and plugins should be simple, iteration
|
||||
around the project. Creating new [apps](../references/glossary.md#app) and
|
||||
[plugins](../references/glossary.md#plugin) should be simple, iteration
|
||||
speed should be fast, and the overhead of maintaining custom tooling should be
|
||||
minimal. As a part of accomplishing this goal, Backstage provides its own build
|
||||
system and tooling, delivered primarily through the
|
||||
[`@backstage/cli`](https://www.npmjs.com/package/@backstage/cli) package. When
|
||||
[`@backstage/cli`](https://www.npmjs.com/package/@backstage/cli) [package](../references/glossary.md#package). When
|
||||
creating an app using
|
||||
[`@backstage/create-app`](https://www.npmjs.com/package/@backstage/create-app),
|
||||
you receive a project that's already prepared with a typical setup and package
|
||||
@@ -36,18 +37,3 @@ The Backstage CLI intentionally does not provide many hooks for overriding or
|
||||
customizing the build process. This is to allow for evolution of the CLI without
|
||||
having to take a wide API surface into account. This allows us to iterate and
|
||||
improve the tooling, as well as to more easily keep the system up to date.
|
||||
|
||||
## Glossary
|
||||
|
||||
- **Package** - A package in the Node.js ecosystem, often published to a package
|
||||
registry such as [NPM](https://www.npmjs.com/).
|
||||
- **Monorepo** - A project layout that consists of multiple packages within a
|
||||
single project, where packages are able to have local dependencies on each
|
||||
other. Often enabled through tooling such as [lerna](https://lerna.js.org/)
|
||||
and [yarn workspaces](https://classic.yarnpkg.com/en/docs/workspaces/)
|
||||
- **Local Package** - One of the packages within a monorepo. These package may
|
||||
or may not also be published to a package registry.
|
||||
- **Bundle** - A collection of the deployment artifacts. The output of the
|
||||
bundling process, which brings a collection of packages into a single
|
||||
collection of deployment artifacts.
|
||||
- **Package Role** - The declared role of a package, see [package roles](./cli-build-system.md#package-roles).
|
||||
|
||||
@@ -1,26 +0,0 @@
|
||||
---
|
||||
id: glossary
|
||||
title: Backstage Glossary
|
||||
# prettier-ignore
|
||||
description: List of terms, abbreviations, and phrases used in Backstage, together with their explanations.
|
||||
---
|
||||
|
||||
The Backstage Glossary lists terms, abbreviations, and phrases used in
|
||||
Backstage, together with their explanations. We encourage you to use the
|
||||
terminology below for clarity and consistency when discussing Backstage.
|
||||
|
||||
See also [Authentication Glossary](../auth/glossary.md), a separate glossary of terms and phrases
|
||||
specifically related to the authentication and identity section of Backstage.
|
||||
|
||||
### Backstage User Profiles
|
||||
|
||||
There are three main user profiles for Backstage: the integrator, the
|
||||
contributor, and the end user (typically a software engineer).
|
||||
|
||||
| Term | Explanation |
|
||||
| ----------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| Integrator | The **integrator** hosts the Backstage app and configures which plugins are available to use in the app. |
|
||||
| Contributor | The **contributor** adds functionality to the app by writing plugins. |
|
||||
| End user | The **end user** uses the app's functionality and interacts with its plugins. This profile covers the various roles that help deliver software. The typical end user is a **software engineer**, but users might also consider themselves _designers_, _data scientists_, _product owners_, _engineering managers_, _technical writers_, and so on. |
|
||||
| Software engineer | The **software engineer** is an **end user** who uses the app's functionality and interacts with its plugins in the course of writing and documenting code. This user is more likely to embed documentation in the code files they produce, and create rough drafts of conceptual pages in collaboration with a **technical writer** or _technical editor_. |
|
||||
| Technical writer | The **technical writer** is an **end user** who uses the app's functionality and interacts with its plugins in the course of writing and editing documentation. This user is more likely to produce and customize templates and produce conceptual pages to supplement documentation embedded in code files. |
|
||||
@@ -4,22 +4,16 @@ title: Concepts
|
||||
description: A list of important permission framework concepts
|
||||
---
|
||||
|
||||
### Permission
|
||||
|
||||
Any action that a user performs within Backstage may be represented as a permission. More complex actions, like executing a software template, may require authorization for multiple permissions throughout the flow. Permissions are identified by a unique name and optionally include a set of attributes that describe the corresponding action. Plugins are responsible for defining and exposing the permissions they enforce.
|
||||
|
||||
### Policy
|
||||
|
||||
User permissions are authorized by a central, user-defined permission policy. At a high level, a policy is a function that receives a Backstage user and permission, and returns a decision to allow or deny. Policies are expressed as code, which decouples the framework from any particular authorization model, like role-based access control (RBAC) or attribute-based access control (ABAC).
|
||||
|
||||
### Policy decision versus enforcement
|
||||
|
||||
Two important responsibilities of any authorization system are to decide if a user can do something, and to enforce that decision. In the Backstage permission framework, policies are responsible for decisions and plugins (typically backends) are responsible for enforcing them.
|
||||
|
||||
### Resources and rules
|
||||
|
||||
In many cases, a permission represents a user's interaction with another object. This object likely has information that policy authors can use to define more granular access. The permission framework introduces two abstractions to account for this: resources and rules. Resources represent the objects that users interact with. Rules are predicate-based controls that tap into a resource's data. For example, the catalog plugin defines a resource for catalog entities and a rule to check if an entity has a given annotation.
|
||||
In many cases, a permission represents a user's interaction with another object. This object likely has information that policy authors can use to define more granular access. The permission framework introduces two abstractions to account for this: [resources](../references/glossary.md#permission-resource) and [rules](../references/glossary.md#permission-rule). For example, the catalog plugin defines a resource for catalog entities and a rule to check if an entity has a given annotation.
|
||||
|
||||
### Conditional decisions
|
||||
|
||||
Rules need additional data before they can be used in a decision. For example, the catalog plugin's "has annotation" rule needs to know what annotation to look for on a given entity. Once a rule is bound to relevant information it forms a condition. Conditions are then used to return a conditional decision from a policy. Conditional decisions tell the permission framework to delegate evaluation to the plugin that owns the corresponding resource. Permission requests that result in a conditional decision are allowed if all of the provided conditions evaluate to be true. This conditional behavior avoids coupling between policies and resource schemas, and allows plugins to evaluate complex rules in an efficient way. For example, a plugin may convert a conditional decision to a database query instead of loading and filtering objects in memory.
|
||||
See [Conditional decisions](../references/glossary.md#conditional-decisions).
|
||||
|
||||
A good example would be the catalog plugin's "has annotation" rule needs to know what annotation to look for on a given entity. The permission framework would respond to a request by the catalog plugin in this case with a condition decision. The catalog plugin would then need to correctly filter for entities matching the "has annotations" condition. This conditional behavior avoids coupling between policies and resource schemas, and allows plugins to evaluate complex rules in an efficient way. For example, a plugin may convert a conditional decision to a database query instead of loading and filtering objects in memory.
|
||||
|
||||
@@ -4,7 +4,7 @@ title: Defining custom permission rules
|
||||
description: How to define custom permission rules for existing resources
|
||||
---
|
||||
|
||||
For some use cases, you may want to define custom [rules](./concepts.md#resources-and-rules) in addition to the ones provided by a plugin. In the [previous section](./writing-a-policy.md) we used the `isEntityOwner` rule to control access for catalog entities. Let's extend this policy with a custom rule that checks what [system](https://backstage.io/docs/features/software-catalog/system-model#system) an entity is part of.
|
||||
For some use cases, you may want to define custom [rules](../references/glossary.md#permission-rules) in addition to the ones provided by a plugin. In the [previous section](./writing-a-policy.md) we used the `isEntityOwner` rule to control access for catalog entities. Let's extend this policy with a custom rule that checks what [system](https://backstage.io/docs/features/software-catalog/system-model#system) an entity is part of.
|
||||
|
||||
## Define a custom rule
|
||||
|
||||
|
||||
@@ -4,9 +4,9 @@ title: 2. Adding a basic permission check
|
||||
description: Explains how to add a basic permission check to a Backstage plugin
|
||||
---
|
||||
|
||||
If the outcome of a permission check doesn't need to change for different [resources](../concepts.md#resources-and-rules), you can use a _basic permission check_. For this kind of check, we simply need to define a [permission](../concepts.md#resources-and-rules), and call `authorize` with it.
|
||||
If the outcome of a permission check doesn't need to change for different [resources](../../references/glossary#permission-resource), you can use a _basic permission check_. For this kind of check, we simply need to define a [permission](../../references/glossary.md#permission), and call `authorize` with it.
|
||||
|
||||
For this tutorial, we'll use a basic permission check to authorize the `create` endpoint in our todo-backend. This will allow Backstage integrators to control whether each of their users is authorized to create todos by adjusting their [permission policy](../concepts.md#policy).
|
||||
For this tutorial, we'll use a basic permission check to authorize the `create` endpoint in our todo-backend. This will allow Backstage integrators to control whether each of their users is authorized to create todos by adjusting their [permission policy](../../references/glossary.md#policy).
|
||||
|
||||
We'll start by creating a new permission, and then we'll use the permission api to call `authorize` with it during todo creation.
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@ title: 3. Adding a resource permission check
|
||||
description: Explains how to add a resource permission check to a Backstage plugin
|
||||
---
|
||||
|
||||
When performing updates (or other operations) on specific [resources](../concepts.md#resources-and-rules), the permissions framework allows for the decision to be based on characteristics of the resource itself. This means that it's possible to write policies that (for example) allow the operation for users that own a resource, and deny the operation otherwise.
|
||||
When performing updates (or other operations) on specific [resources](../../references/glossary.md#permission-resource), the permissions framework allows for the decision to be based on characteristics of the resource itself. This means that it's possible to write policies that (for example) allow the operation for users that own a resource, and deny the operation otherwise.
|
||||
|
||||
## Creating the update permission
|
||||
|
||||
|
||||
@@ -0,0 +1,310 @@
|
||||
---
|
||||
id: glossary
|
||||
title: Glossary
|
||||
# prettier-ignore
|
||||
description: List of terms, abbreviations, and phrases used in Backstage, together with their explanations.
|
||||
---
|
||||
|
||||
## Access token
|
||||
|
||||
A [token](#token) that gives access to perform actions on behalf of a user. It will commonly have a short expiry time, and be limited to a set of [scopes](#scope). Part of the [OAuth](#oauth) protocol.
|
||||
|
||||
https://oauth.net/2/access-tokens/
|
||||
|
||||
## Administrator
|
||||
|
||||
Someone responsible for installing and maintaining a Backstage [app](#app) for an organization. A [user role](#user-role).
|
||||
|
||||
## API
|
||||
|
||||
In the Backstage [Catalog](#catalog), an API is an [entity](#entity) representing a boundary between two [components](#component).
|
||||
|
||||
https://backstage.io/docs/features/software-catalog/system-model
|
||||
|
||||
## App
|
||||
|
||||
An installed instance of Backstage. An app can be local, intended for a single development group or individual developer, or organizational, for use by an entire enterprise.
|
||||
|
||||
## Authorization Code
|
||||
|
||||
A type of [OAuth flow](#oauth) used by confidential and public clients to get an [access token](#access-token).
|
||||
|
||||
https://oauth.net/2/grant-types/authorization-code/
|
||||
|
||||
## Backstage
|
||||
|
||||
A platform for creating and deploying [developer portals](#developer-portal), originally created at Spotify.
|
||||
|
||||
Backstage is an incubation-stage open source project of the [Cloud Native Computing Foundation](#cloud-native-computing-foundation).
|
||||
|
||||
## Bundle
|
||||
|
||||
A collection of [deployment artifacts](#deployment-artifacts).
|
||||
|
||||
Can also be: The output of the bundling process, which brings a collection of [packages](#package) into a single collection of [deployment artifacts](#deployment-artifacts).
|
||||
|
||||
## Catalog
|
||||
|
||||
An organization's portfolio of software products managed in Backstage.
|
||||
|
||||
## Cloud Native Computing
|
||||
|
||||
A set of technologies that "empower organizations to build and run scalable applications in modern, dynamic environments such as public, private, and hybrid clouds. Containers, service meshes, microservices, immutable infrastructure, and declarative APIs exemplify this approach." ([CNCF Cloud Native Definition v1.0](https://github.com/cncf/toc/blob/main/DEFINITION.md)).
|
||||
|
||||
## Cloud Native Computing Foundation
|
||||
|
||||
A foundation dedicated to the promotion and advancement of [Cloud Native Computing](#Cloud-Native-Computing). The mission of the Cloud Native Computing Foundation (CNCF) is "to make cloud native computing ubiquitous" ([CNCF Charter](https://github.com/cncf/foundation/blob/main/charter.md)).
|
||||
|
||||
CNCF is part of the [Linux Foundation](https://www.linuxfoundation.org/).
|
||||
|
||||
## CNCF
|
||||
|
||||
Cloud Native Computing Foundation.
|
||||
|
||||
## Code Grant
|
||||
|
||||
[OAuth](#oauth) flow where the client receives an [authorization code](#code) that is passed to the backend to be exchanged for an [access token](#access-token) and possibly a [refresh token](#refresh-token).
|
||||
|
||||
## Collators
|
||||
|
||||
Collators transform streams of [documents](#documents) into searchable texts. They're usually responsible for the data transformation and definition and collection process for specific [documents](#documents). Part of [Backstage Search](#search).
|
||||
|
||||
## Component
|
||||
|
||||
A software product that is managed in the Backstage [Software Catalog](#software-catalog). A component can be a service, website, library, data pipeline, or any other piece of software managed as a single project.
|
||||
|
||||
https://backstage.io/docs/features/software-catalog/system-model
|
||||
|
||||
## Condition
|
||||
|
||||
Conditions are used to return a conditional decision from a policy. They contain information about a given entity and restrictions on what types of users can view that entity.
|
||||
|
||||
## Conditional decisions
|
||||
|
||||
[Rules](#permission-rules) need additional data before they can be used in a decision. Once a [rule](#permission-rule) is bound to relevant information it forms a [condition](#condition). Conditional decisions tell the [permission framework](#permission) to delegate evaluation to the [plugin](#plugin) that owns the corresponding [resource](#permission-resource). Permission requests that result in a conditional decision are allowed if all of the provided conditions evaluate to be true.
|
||||
|
||||
## Contributor
|
||||
|
||||
A volunteer who helps to improve an OSS product such as Backstage. This volunteer effort includes coding, testing, technical writing, user support, and other work. A [user role](#user-role).
|
||||
|
||||
## Decorators
|
||||
|
||||
A transform stream. Decorators allow you to add additional information to documents outside of the [collator](#collators). They sit between the [collators](#collators) and the [indexers](#indexer) and can add extra fields to documents as they're being collated and indexed.
|
||||
|
||||
Possible use cases for a decorator could be to bias search results or otherwise improve the search experience in your Backstage instance. Decorators can also be used to remove [metadata](#metadata), filter out, or even add extra documents at index-time. Part of [Backstage Search](#search).
|
||||
|
||||
## Deployment Artifacts
|
||||
|
||||
An executable or package file with all of the necessary information required to deploy the application at runtime. Deployment artifacts can be hosted on [package registries](#package-registry).
|
||||
|
||||
## Developer
|
||||
|
||||
Someone who writes code and develops software.
|
||||
|
||||
A [user role](#user-role) defined as someone who uses a Backstage [app](#app). Might or might not actually be a software developer.
|
||||
|
||||
## Developer Portal
|
||||
|
||||
A centralized system comprising a user interface and database used to facilitate and document all the software projects within an organization. Backstage is both a developer portal and (by virtue of being based on plugins) a platform for creating developer portals.
|
||||
|
||||
## Documents
|
||||
|
||||
An abstract concept representing something that can be found by searching for it. A document can represent a software entity, a TechDocs page, etc. Documents are made up of metadata fields, at a minimum -- a title, text, and location (as in a URL). Part of [Backstage Search](#search).
|
||||
|
||||
## Domain
|
||||
|
||||
In the Backstage Catalog, a domain is an area that relates systems or entities to a business unit.
|
||||
|
||||
https://backstage.io/docs/features/software-catalog/system-model
|
||||
|
||||
## Entity
|
||||
|
||||
What is cataloged in the Backstage Software Catalog. An entity is identified by a unique combination of [kind](#Kind), [namespace](#Namespace), and name.
|
||||
|
||||
## Evaluator
|
||||
|
||||
Someone who assesses whether Backstage is a suitable solution for their organization. The only [user role](#user-role) with a pre-deployment [use case](#use-case).
|
||||
|
||||
## ID Token
|
||||
|
||||
A [JWT](#jwt) used to prove a user's identity, containing for example the user's email. Part of [OpenID Connect](#openid-connect).
|
||||
|
||||
## Index
|
||||
|
||||
An index is a collection of [documents](#documents) of a given type. Part of [Backstage Search](#search).
|
||||
|
||||
## Indexer
|
||||
|
||||
A write stream of [documents](#documents). Part of [Backstage Search](#search).
|
||||
|
||||
## Integrator
|
||||
|
||||
Someone who develops one or more plugins that enable Backstage to interoperate with another software system. A [user role](#user-role).
|
||||
|
||||
## JWT
|
||||
|
||||
JSON Web Token.
|
||||
|
||||
A popular JSON based token format that is commonly encrypted and/or signed, see [en.wikipedia.org/wiki/JSON_Web_Token](https://en.wikipedia.org/wiki/JSON_Web_Token)
|
||||
|
||||
## Kind
|
||||
|
||||
Classification of an [entity](#Entity) in the Backstage Software Catalog, for example _service_, _database_, and _team_.
|
||||
|
||||
## Kubernetes Plugin
|
||||
|
||||
A plugin enabling configuration of Backstage on a Kubernetes cluster. Kubernetes plugin has been promoted to a Backstage core feature.
|
||||
|
||||
## Local Package
|
||||
|
||||
One of the [packages](#package) within a [monorepo](#monorepo). These package may or may not also be published to a [package registry](#package-registry).
|
||||
|
||||
## Monorepo
|
||||
|
||||
A single repository for a collection of related software projects, such as all projects belonging to an organization.
|
||||
|
||||
Can also mean: A project layout that consists of multiple [packages](#package) within a single project, where packages are able to have local dependencies on each other. Often enabled through tooling such as [lerna](https://lerna.js.org/) and [yarn workspaces](https://classic.yarnpkg.com/en/docs/workspaces/)
|
||||
|
||||
## Namespace
|
||||
|
||||
In the Backstage Software Catalog, an optional attribute that can be used to organize [entities](#entity).
|
||||
|
||||
## Objective
|
||||
|
||||
A high level goal of a [user role](#User-Role) interacting with Backstage. Some goals of the _administrator_ user role, for example, are to maintain an instance ("app") of Backstage; to add and update functionality via plugins; and to troubleshoot issues.
|
||||
|
||||
## OAuth
|
||||
|
||||
Refers to: OAuth 2.0, a standard protocol for authorization. See [oauth.net/2/](https://oauth.net/2/).
|
||||
|
||||
## Offline Access
|
||||
|
||||
[OAuth](#oauth) flow that results in both a refresh token and [access token](#access-token), where the refresh token has a long expiration or never expires, and can be used to request more access tokens in the future. This lets the user go "offline" with respect to the token issuer, but still be able to request more tokens at a later time without further direct interaction for the user.
|
||||
|
||||
## OpenID Connect
|
||||
|
||||
A layer on top of [OAuth](#oauth) which standardises authentication. See [en.wikipedia.org/wiki/OpenID_Connect](https://en.wikipedia.org/wiki/OpenID_Connect).
|
||||
|
||||
## OSS
|
||||
|
||||
Open source software.
|
||||
|
||||
## Package
|
||||
|
||||
A package in the Node.js ecosystem, often published to a [package registry](#package-registry).
|
||||
|
||||
## Package Registry
|
||||
|
||||
A service that hosts packages. The most prominent example is [NPM](https://www.npmjs.com/).
|
||||
|
||||
## Package Role
|
||||
|
||||
The declared role of a package, see [package roles](../local-dev/cli-build-system.md#package-roles).
|
||||
|
||||
## Permission
|
||||
|
||||
A core Backstage plugin and framework that allows restriction of actions to specific users.
|
||||
|
||||
Any action that a user performs within Backstage may be represented as a permission. More complex actions, like executing a [software template](#software-templates), may require [authorization](#authorization) for multiple permissions throughout the flow. Permissions are identified by a unique name and optionally include a set of attributes that describe the corresponding action. [Plugins](#plugin) are responsible for defining and exposing the permissions they enforce as well as enforcing restrictions from the permission framework.
|
||||
|
||||
https://backstage.io/docs/permissions/overview
|
||||
|
||||
## Permission Resource
|
||||
|
||||
Not to be confused with [Software Catalog resources](#resource). Permission resources represent the objects that users interact with and that can be permissioned.
|
||||
|
||||
## Permission Rule
|
||||
|
||||
Rules are predicate-based controls that tap into a [resource](#permission-resource)'s data.
|
||||
|
||||
## Persona
|
||||
|
||||
Alternative term for a [User Role](#user-role).
|
||||
|
||||
## Plugin
|
||||
|
||||
A module in Backstage that adds a feature. All functionality in Backstage, even the core features, are implemented as plugins.
|
||||
|
||||
## Policy
|
||||
|
||||
User [permissions](#permission) are authorized by a central, user-defined [permission](#permission) policy. At a high level, a policy is a function that receives a Backstage user and [permission](#permission), and returns a decision to allow or deny. Policies are expressed as code, which decouples the framework from any particular [authorization](#authorization) model, like role-based access control (RBAC) or attribute-based access control (ABAC).
|
||||
|
||||
## Policy decision
|
||||
|
||||
Two important responsibilities of any authorization system are to decide if a user can do something, and to enforce that decision. In the Backstage permission framework, policies are responsible for decisions and plugins (typically backends) are responsible for enforcing them.
|
||||
|
||||
## Popup
|
||||
|
||||
A separate browser window opened on top of the previous one.
|
||||
|
||||
## Procedure
|
||||
|
||||
A set of actions that accomplish a goal, usually as part of a [use case](#Use-Case). A procedure can be high-level, containing other procedures, or can be as simple as a single [task](#Task).
|
||||
|
||||
## Query Translators
|
||||
|
||||
An abstraction layer between a search engine and the [Backstage Search](#search) backend. Allows for translation into queries against your search engine. Part of [Backstage Search](#search).
|
||||
|
||||
## Refresh Token
|
||||
|
||||
A string that an [OAuth](#oauth) client can use to get a new access token.
|
||||
|
||||
https://oauth.net/2/refresh-tokens/
|
||||
|
||||
## Resource
|
||||
|
||||
In the Backstage Catalog, an [entity](#entity) that represents a piece of physical or virtual infrastructure, for example a database, required by a component.
|
||||
|
||||
https://backstage.io/docs/features/software-catalog/system-model
|
||||
|
||||
## Role
|
||||
|
||||
See [User Role](#User-Role).
|
||||
|
||||
## Scope
|
||||
|
||||
A string that describes a certain type of access that can be granted to a user using OAuth.
|
||||
|
||||
## Search
|
||||
|
||||
A Backstage plugin that provides a framework for searching a Backstage [app](#app), including the [Software Catalog](#Software-Catalog) and [TechDocs](#TechDocs). A core feature of Backstage.
|
||||
|
||||
## Search Engines
|
||||
|
||||
Existing search technology that [Backstage Search](#search) can take advantage of through its modular design. Lunr is the default search in [Backstage Search](#search). Part of [Backstage Search](#search).
|
||||
|
||||
## Software Catalog
|
||||
|
||||
A Backstage plugin that provides a framework to keep track of ownership and metadata for any number and type of software [components](#component). A core feature of Backstage.
|
||||
|
||||
## Software Templates
|
||||
|
||||
A Backstage plugin with which to create [components](#component) in Backstage. A core feature of Backstage.
|
||||
|
||||
Can also refer to: A "skeleton" software project created and managed in the Backstage Software Templates tool.
|
||||
|
||||
## System
|
||||
|
||||
In the Backspace Catalog, a system is a collection of [entities](#entity) that cooperate to perform a function. A system generally provides one or a few public APIs and consists of a handful of components, resources and private APIs.
|
||||
|
||||
https://backstage.io/docs/features/software-catalog/system-model
|
||||
|
||||
## Task
|
||||
|
||||
A low-level step-by-step [Procedure](#Procedure).
|
||||
|
||||
## TechDocs
|
||||
|
||||
A documentation solution that manages and generates a technical documentation from Markdown files stored with software component code. A core feature of Backstage.
|
||||
|
||||
## Token
|
||||
|
||||
A string containing information.
|
||||
|
||||
## Use Case
|
||||
|
||||
A purpose for which a [user role](#User-Role) interacts with Backstage. Related to [Objective](#objective): An objective is _what_ the user wants to do; a use case is _how_ the user does it.
|
||||
|
||||
## User Role
|
||||
|
||||
A class of Backspace user for purposes of analyzing [use cases](#use-case). One of: evaluator; administrator; developer; integrator; and contributor.
|
||||
@@ -144,6 +144,14 @@ module.exports = {
|
||||
from: '/docs/features/software-templates/testing-scaffolder-alpha',
|
||||
to: '/docs/features/software-templates/migrating-to-rjsf-v5',
|
||||
},
|
||||
{
|
||||
from: '/docs/auth/glossary',
|
||||
to: '/docs/references/glossary'
|
||||
},
|
||||
{
|
||||
from: '/docs/overview/glossary',
|
||||
to: '/docs/references/glossary'
|
||||
}
|
||||
],
|
||||
},
|
||||
],
|
||||
|
||||
@@ -37,7 +37,6 @@
|
||||
"overview/versioning-policy",
|
||||
"overview/threat-model",
|
||||
"overview/support",
|
||||
"overview/glossary",
|
||||
"overview/logos"
|
||||
],
|
||||
"Getting Started": [
|
||||
@@ -318,8 +317,7 @@
|
||||
"auth/add-auth-provider",
|
||||
"auth/service-to-service-auth",
|
||||
"auth/autologout",
|
||||
"auth/troubleshooting",
|
||||
"auth/glossary"
|
||||
"auth/troubleshooting"
|
||||
],
|
||||
"Permissions": [
|
||||
"permissions/overview",
|
||||
@@ -479,6 +477,9 @@
|
||||
"architecture-decisions/adrs-adr013"
|
||||
],
|
||||
"FAQ": ["faq/index", "faq/product", "faq/technical"],
|
||||
"Accessibility": ["accessibility/index"]
|
||||
"Accessibility": ["accessibility/index"],
|
||||
"References": [
|
||||
"references/glossary"
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user