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 88ae097  Platform Requirements
88ae097 is described below

commit 88ae0974bffff3d4775f73a6837cad40182317f7
Author: Dave Fisher <dave2w...@comcast.net>
AuthorDate: Fri Jan 31 13:52:08 2025 -0800

    Platform Requirements
---
 apache-trusted-release/platform.md | 129 +++++++++++++++++++++++++++++++++++++
 1 file changed, 129 insertions(+)

diff --git a/apache-trusted-release/platform.md 
b/apache-trusted-release/platform.md
new file mode 100644
index 0000000..6acf5e3
--- /dev/null
+++ b/apache-trusted-release/platform.md
@@ -0,0 +1,129 @@
+# Platform
+
+https://releases.apache.org
+
+OR
+
+https://artifacts.apache.org
+
+## Web Service
+
+1. `asfquart` based asynchronous python web service.
+2. Fronted by `httpd`.
+   
+## Storage
+
+1. Release Storage. A large filesystem with folders for each release's files. 
The release folder path is immutable.
+2. Metadata Database. An sql database on the server with the metadata schema.
+
+## Store metadata and files for Releases
+
+1. Current Releases
+2. Candidate Releases
+3. Revoked / EOL / Attic Releases
+4. “Nightlies” is it in or out of scope?
+
+## Store metadata and public signing keys of Release Managers
+
+1. Collate Keys by Committer
+2. Link Committer Keys to Signed Releases
+
+## Store metadata about Release CVEs
+
+1. CVE metadata
+2. Effected releases
+3. Release that resolves CV
+
+## Release co-ordinates
+
+The co-ordinates make up the external path to objects. The metadata database 
provides the map to the local path.
+
+1. Stage (Candidate, Current, Revoked, …)
+2. Project (Responsible TLP)
+3. Product (Main, Sub-projects)
+4. Version (String, latest)
+5. Files, Metadata (A release is a folder of one or more files or sub-folders)
+
+- Latest main product release: `/<stage>/<project>/latest/<file>`
+- Main product by version: `/<stage>/<project>/<version>/<file>`
+- Latest product release: `/<stage>/<project>/<product>/latest/<file>`
+- Product release by version: `/<stage>/<project>/<product>/<version>/<file>`
+
+## Roles
+
+1. Project PMC Member
+   - binding vote
+   - manage release
+   - manage metadata
+   - manage keys
+   - perform actions
+2. Project Committer
+   - vote
+   - manage their keys
+3. Individual (“anonymous”, “none”)
+   - download
+   - vote with optional email
+   - view release events
+4. ASF Member
+   - view all events
+5. Admin (“root”)
+   - manage release
+   - manage metadata
+   - manage keys
+   - perform actions
+   - view all events
+
+## Restful API
+
+1. GET/HEAD
+   - Metadata
+   - Release
+   - Package files including SBOMs
+   - Signing keys
+   - CVEs
+
+2. CRUD
+   - Releases - Delete is not removal. It is a stage.
+   - Public Signing Keys - Delete only if unused.
+   - Votes - Store each vote in metadata.
+   - SBOMs - Special files stored in the release folder.
+   - CVEs - CVE metadata and release linkage.
+
+3. Asynchronous Actions - several transformative actions as POST/PUT/GET
+   - Analyze
+   - Vote
+   - Distribute - Push to Package Repositories
+   - Stage transitions
+   - Push / Pull with dist.apache.org
+   - Emails
+     - Votes
+     - Status
+     - Transitions
+   - _Not an exhaustive list._
+
+## Web UI
+
+1. Directory Pages
+   - Project directory (_main page_)
+   - Project release directory
+
+2. Release Page
+   - Changes according to Stage and Role.
+   - Release level metadata
+   - CVE metadata
+   - Download package from directory of release
+   - Maintenance actions
+   - History of events
+
+3. Project Configuration Page
+   - Project level metadata and releases
+   - Product level metadata and releases
+
+4. Audit Page
+   - ASF event history
+   - Project event history
+   - Product event history
+
+5. Page Template
+   - Responsive with Header(Hamburger)/Content/Footer.
+   - Include Search in Header(Hamburger)


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@tooling.apache.org
For additional commands, e-mail: dev-h...@tooling.apache.org

Reply via email to