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

Reply via email to