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

4.x (branch) #2254

Draft
wants to merge 7 commits into
base: main
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 0 additions & 3 deletions .github/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -173,9 +173,6 @@ Recommended tool to develop backend module is IntelliJ IDE, for frontend it migh
# Run only backend through CLI
$ ./gradlew run

# Run only frontend
$ cd reposilite-frontend && npm i && npm run full

# Run only Reposilite site
$ cd reposilite-site/website && npm i && npm run start
```
Expand Down
4 changes: 0 additions & 4 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,6 @@ updates:
directory: "/reposilite-backend"
schedule:
interval: "monthly"
- package-ecosystem: "npm"
directory: "/reposilite-frontend"
schedule:
interval: "monthly"
- package-ecosystem: "npm"
directory: "/reposilite-site"
schedule:
Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/gradle.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,9 @@ name: "Reposilite CI"

on:
push:
branches: [ "main", "3.0" ]
branches: [ "main", "3.0", "4.x" ]
pull_request:
branches: [ "main", "3.0" ]
branches: [ "main", "3.0", "4.x" ]

jobs:
build:
Expand All @@ -14,7 +14,7 @@ jobs:
strategy:
matrix:
# Use 11 LTS releases and the latest one
java-version: [ 11, 21 ]
java-version: [ 17, 21 ]
steps:
- name: "Checkout repository"
uses: actions/checkout@v3
Expand Down
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ reposilite-test/workspace/javadocs/
reposilite-test/workspace/logs/
reposilite-test/workspace/plugins/*.jar
reposilite-backend/src/generated/kotlin/com/reposilite/ReposiliteProperties.kt
.build/

### Kotlin ###
.kotlin/
Expand Down
2 changes: 0 additions & 2 deletions Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,6 @@
FROM openjdk:21-slim AS build
COPY . /home/reposilite-build
WORKDIR /home/reposilite-build
RUN \
rm -rf reposilite-frontend/node_modules
RUN \
apt-get update; apt-get install -y curl
RUN \
Expand Down
Empty file added adr/v4/.gitkeep
Empty file.
15 changes: 15 additions & 0 deletions adr/v4/authentication.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
# Authentication

## Basic

Standard

## LDAP

Standard

## OIDC

New: We want to provide generic OIDC support, so users can use any OIDC provider.
For test purposes, Authentik seems to be a reasonable choice, for a real-world scenario, it might be a good idea to test it with GitHub.

163 changes: 163 additions & 0 deletions adr/v4/dashboard.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,163 @@
# Management

```
Users {
Existing users[] {
Edit
Delete
}
Add new user {
Username
Email
Password
OAuth
Permissions {
Manage settings
Manage teams and users
Create/delete repositories
Create/write content
}
}
}

Teams[] {
Existing teams[] {
Edit
Delete
}
Add new team {
Name
Permissions {
Manage settings
Manage teams and users
Create/delete repositories
Create/write content
}
}
}

Repositories[] {
Name (Identifier)
Redeployments Enabled
Type (Genric, Maven, Docker)
Owner (user)
Enable API
Storage provider {
Local {
Quota
Mount
}
S3 {
Authentication {
Bucket
Region
Access Key
Secret Key
}
Custom prefix
Method: Restream / Redirect
}
}
...on Maven {
Preserve snapshots
Mirrors[] {
Link (URL or local id)
Store
Groups # GAVs that can be requested from this mirror
Allowed extensions
Timeouts {
Connect
Read
}
Authentication {
Basic {
Username
Password
}
Header {
Name
Value
}
}
HTTP Proxy {
HTTP or Socks
}
}
}
...on Docker {
Mirrors {
Link (URL or local id)
Store
Filter
Authentication {
Basic {
Username
Password
}
}
HTTP Proxy {

}
}
}
}

Projects {
Identifier
Owner (user)
Display Name
Pinned (on front page)
Logo (optional)
Routes[] {
Repository
Path
}
}

Settings {
Authentication {
Local {
Allow registration
}
SSO {
Google {
Client ID
Client Secret
// todo: check extra fields
}
}
LDAP {
Host
Port
Base DN
Search-User DN
Search-User Password
Type attribute
User attribute
User filter
User type (persistent, temporary)
}
}

UI {
Id
Title
Description
Website
Logo
Search {
Enabled
}
ICP License
}

Statistics {
Enabled
Accuracy (daily, weekly, monthly, yearly)
}

Other {
Forwarded IP (header)
}
}
```
34 changes: 34 additions & 0 deletions adr/v4/database.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
# Database

We want to try out Sqiffy for the database layer, so we can reduce codebase size + have something more stable than Exposed.

### Schema

We'll figure out the schema as we go, but we'll start with the following entities:

```
Repository

^
|
|
|

Project <---------- Route

^
|
|
|
v

RouteAccess <------- Token <-------- User <------> Team

^
|
|
|

Authentication

```
19 changes: 19 additions & 0 deletions adr/v4/repositories.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
# Repositories

### Generic

Can store any kind of file, a little bit like a regular FTP.

### Maven

Pretty much a generic repository, but with filter for Maven-specific files + API.

### Docker

New type of repository, with Docker-specific API.

* https://github.com/reposilite-playground/oci-repository-prototype - for more details

### NPM (not confirmed)

New type of repository, with NPM-specific API.
27 changes: 27 additions & 0 deletions adr/v4/ui.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
# UI

We want to try to build a "simple" UI using JTE (compiled) + HTMX + TailwindCSS + JS (client-side, JSDoc only).
The color scheme should be +/- the same as the current one.

## Views

### Initial setup

1. Setup database (SQLite: local no credentials, Remote: PostgreSQL/MySQL credentials)
2. Setup admin account
3. Finish

### Home page

1. Logo
2. Search bar
3. Pinned projects
4. Repositories

### Login

1. Via credentials / SSO

### Dashboard

See [Dashboard](dashboard.md)
Loading
Loading