This is an automated email from the ASF dual-hosted git repository. wave pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/tooling-docs.git
The following commit(s) were added to refs/heads/main by this push: new 53abfe8 Add a Data Model Section 53abfe8 is described below commit 53abfe8fca430252dceaa1cd310d3dac5360aebd Author: Dave Fisher <dave2w...@comcast.net> AuthorDate: Sat Feb 1 15:49:20 2025 -0800 Add a Data Model Section --- apache-trusted-release/platform.md | 84 +++++++++++++++++++++++--------------- 1 file changed, 50 insertions(+), 34 deletions(-) diff --git a/apache-trusted-release/platform.md b/apache-trusted-release/platform.md index c288c52..a0cdf8d 100644 --- a/apache-trusted-release/platform.md +++ b/apache-trusted-release/platform.md @@ -3,7 +3,7 @@ 1. Datastore: https://releases.apache.org 2. Task Runner: https://artifacts.apache.org -> Willing to debate if the service stack split is necessary and start with a unitary monolith. +> Monitoring the service stack will indicate if the stack split is indicated. Let's make sure that such a split is relatively quick. ## Datastore @@ -52,37 +52,55 @@ The co-ordinates make up the external path to objects. The metadata database pro - Latest product release: `/<stage>/<project>/<product>/latest/<file>` - Product release by version: `/<stage>/<project>/<product>/<version>/<file>` -### User Roles +### Data Model + +Here is an introduction to the ATR's data model. + +> The following needs some work, but I wanted to have nomenclature for discussion. + +#### Projects. + +Projects are run by a PMC with members and committers, have metadata, vote policy settings, and products. + +4. **Products**. Zero or more products with separate releases from the main one. A product may override vote policy settings. +3. **Public Signing Keys**. Release Managers have signing keys that are applied to all of packages in a release. +2. **Release Manager**. One or more Release Managers who may sign the release packages. +1. **Vote Policy Settings**. These are a set of choices which control how a release vote is conducted by the ATR. + +Products that are not the main one have metadata, separate releases, and vote policy settings. + +#### Releases + +Releases have stage and state, packages, votes and vote policy, cves both impacted and solved, and metadata. +A release may override vote policy settings. The vote policy settings and signing keys used become release metadata. + +7. **CVEs**. For each release there are zero or more CVEs that impact this release. There may be CVEs that are solved this release. +3. **Packages**. One or more triples of file, signature, and checksum that is a downloadable component of a release. +6. **SBOMs**. Are in one or more acceptable SBOM formats and should be maintained using standard python libraries. +1. **Stage**. A release is in one of three stages: Candidate, Current, or Revoked. +2. **State**. A release state is either "at rest" or is performing a task in the release lifecycle. +5. **Votes**. A release Vote is a monitored task of email communication and vote recording. Vote policy choices will provide choices. + +#### User Roles Multiple roles are possible and available actions are composed. -1. Project PMC Member - - binding vote - - manage release - - manage metadata - - manage their keys - - perform actions -2. Release Manager - - manage release - - manage metadata - - manage their keys - - perform actions -3. Project Committer - - vote -4. Viewer - - download - - vote with optional email - - view release events -5. ASF Member - - view all events -6. Admin (“root”) - - manage release - - manage metadata - - manage keys - - perform actions - - view all events - -> The authorization and authentication for `GitHub PATs` will be specific and fine-grained. The details are to be developed during implementation. +| Activity | PMC Member | Release Manager | Committer | Visiter | ASF Member | Admin +| ---------- | ---------- | --------------- | --------- | ------- | ---------- | ----- +| binding vote | yes | | | | | +| vote | yes | | yes | yes | yes | +| manage release | yes | yes | | | | yes +| manage policy | yes | yes | | | | yes +| manage metadata | yes | yes | | | | yes +| manage keys | yes | | | | | yes +| manage own key | yes | yes | | | | +| perform actions | yes | yes | | | | yes +| view release events | yes | yes | yes | yes | yes | yes +| view all events | | | | | yes | yes + +> To vote _visiters_ must provide PII and we'll need to assure that this is affirmatively agreed and revocable. + +> The authorization and authentication for `GitHub PATs` will be specific and fine-grained, but should be similar to a "release manager" ### Restful API @@ -105,7 +123,7 @@ Multiple roles are possible and available actions are composed. - Vote Monitor - Distribute - Push to Package Repositories - Push / Pull with dist.apache.org - - <not an exhaustive list> + - others? See [Release Lifecycle](./lifecycle.md) for how Actions are chained together to perform a Release. @@ -147,9 +165,7 @@ Multiple roles are possible and available actions are composed. 1. Runner for processes taking more than a few seconds. 2. Manages an array of concurrent tasks. 3. Provides operational status. -4. Horizontally scalable. -5. Stateful tracking of tasks on disk w/backup in Datastore. -6. Monitor load to avoid saturation and find true limits. +4. Monitor load to avoid saturation and find true limits. ### Web Service @@ -174,6 +190,6 @@ See [Release Lifecycle](./lifecycle.md) for how Action Tasks are chained togethe - Vote Monitor - Distribution - Monitor Manual Distribution - - CVE Process Monitor - Push / Pull with dist.apache.org + - others? --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tooling.apache.org For additional commands, e-mail: dev-h...@tooling.apache.org