Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Offer a mechanism to bootstrap / provision a new Dependency-Track instance #1189

Open
2 tasks done
nscuro opened this issue Apr 12, 2024 · 0 comments
Open
2 tasks done
Labels
component/api-server enhancement New feature or request help wanted Extra attention is needed p2 Non-critical bugs, and features that help organizations to identify and reduce risk size/L High effort spike/research Requires more research before implementation

Comments

@nscuro
Copy link
Member

nscuro commented Apr 12, 2024

Current Behavior

Currently, the majority of settings in Dependency-Track is managed via ConfigProperty records in the database. Available options and their defaults are listed in ConfigPropertyConstants.

The database is populated with default values upon startup, via DefaultObjectGenerator:

https://github.com/DependencyTrack/hyades-apiserver/blob/794e9eaa2991f961223653b293c46ce64bc7e0ce/src/main/java/org/dependencytrack/persistence/DefaultObjectGenerator.java#L225-L235

Properties can be updated at runtime via the POST /api/v1/configProperty endpoint, or via UI (which calls the same endpoint behind the scenes).

A major downside of this behavior is that configuration of new instances requires manual or heavily automated steps. Even though automation is possible, it is not straightforward, and there is no ready-made solution that users can adopt.

Proposed Behavior

Offer a mechanism that allows users to bootstrap new instances with custom configuration, for example by passing a YAML file that contains the desired values.

The mechanism could be further extended to include:

  • Initial user credentials
  • Users, teams, and potentially API keys
  • Notification configurations
  • Repository configurations
  • Policies

For reference, Grafana has a provisioning feature with which datasources, dashboard, and alerts can be pre-configured.

Checklist

@nscuro nscuro added enhancement New feature or request help wanted Extra attention is needed p2 Non-critical bugs, and features that help organizations to identify and reduce risk size/L High effort component/api-server spike/research Requires more research before implementation labels Apr 12, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
component/api-server enhancement New feature or request help wanted Extra attention is needed p2 Non-critical bugs, and features that help organizations to identify and reduce risk size/L High effort spike/research Requires more research before implementation
Projects
None yet
Development

No branches or pull requests

1 participant