Haiku Depot Server

License

Distributed under the terms of the MIT License.


Table of Contents

1. Overview and General Information
Introduction
Icon
Hosted Source Code
Prerequisites
Basic Postgres Setup
2. Data Model
Unique Identifiers
Repositories
Package Supplement
Package Supplement Modification
User Usage Conditions
3. Web / Application Server Architecture
Elements
Application Server Infrastructure
Logging
Object-Relational / Data
Multi-Page Web Interface
Single-Page Web Interface
Security
Email
Jobs
Feeds
Captcha
4. User Rating
Package Rating Derivation
Finding Ratings for the Derivation
Triggering Derived Rating Calculations
Storage of the Sample Size
5. Repositories
On-Net / On-Disk Haiku Package Repositories
repo
repo.info
packages
Haiku Depot Server Repositories
Refreshing Repositories
6. Application Localization
Dates, Times and Numerics
General Messages and Text
Formatted HTML / Passive Content
Emails
Contributors
7. Data Localization
Package Version Localization
Package / Fallback Localization
Choosing Localization Items
8. Security
Authentication
Token Bearer
Authorization
9. Configuration
Application
Logging
10. Deployment
Understanding Versions
Undertaking a Release
Obtaining Source for a Release and then Building Docker Image
Haiku Vector Icon Rendering
11. Development
hvif2png Rendering Tool
Run from Apache Maven
Database Setup from Blank State
Building Locally On-Host and Run
Automated Testing
Integration Testing
Docker Image
Testing the Docker Image
12. API
General
Clients
API Version
Object References
Reference Data
Date and Time Data
Invocations and Transport
Security
If-Modified-Since Header
RPC-over-HTTP API
Error Codes
Generating RPC-over-REST API Client for Python
Raising, Waiting and Fetching Data for Background Jobs
Schema
REST API
Entry Point
Trigger Import Repository Data
Get Package Icon
Get All Packages' Icons as an Archive
Get All Package Versions Details
Get Reference Data
Get All Repositories' Details
Get Screenshot Image
Get Raw Screenshot Image
Add Screenshot Image
13. Integrations
Localization
Obtaining Data from HDS

List of Figures

2.1. The persisted data model for the application server.
3.1. Overview of the elements of the system's architecture and how they inter-relate.
3.2. Screenshot of the running HaikuDepot desktop application.
3.3. Diagram of Apache Cayenne elements
3.4. Class-diagram related to the jobs infrastructure.
5.1. HDS Repositories and how they relate to On-Net Repositories.

List of Examples

12.1. Example: Prompt Repository Update