8ceb5332972658406bebac98a3f4a12b6a72afa0
Projects/xq/Concepts.md
... | ... | @@ -39,3 +39,33 @@ |
39 | 39 | - This should be designed as a plugin |
40 | 40 | - Artifacts can be put into an "index", which is just a group of artifacts |
41 | 41 | - Each index has a specialized rendering surface, so tools like `npm`, `NuGet` or others can use the index to get a list of all available artifacts (mostly packages in that case) |
42 | + |
|
43 | +## Implementation |
|
44 | + |
|
45 | +- As this is a pretty high-level application, an implementation in `dotnet` or `go` might be the right choice. |
|
46 | +- Uploads should be interlocked against each other, so they don't accidently override themselves |
|
47 | +- Data should be stored hybrid in a regular database (sqlite, mysql, ...) and the file system (blobs) |
|
48 | +- Artifact declaration should be easy, but doesn't require a "nice" frontend |
|
49 | + - Artifact declaration can be done with a "bad" web frontend, a regular yaml-like config file + diff might be the right choice here (example see below) |
|
50 | + - Alternative would be a very basic web frontend, doesn't even need special styling. This would require some kind of authentication. |
|
51 | + - Alternative would be a "EDITOR" styled CLI frontend, where user can use their text editor to edit a single artifact |
|
52 | + |
|
53 | +### Example for yaml file |
|
54 | + |
|
55 | +```yaml |
|
56 | +- name: "kristall-windows-x86_64.zip" |
|
57 | + description: "Windows-x64 standalone installation of the Kristall Small Internet Browser" |
|
58 | + access tokens: |
|
59 | + - "MVMOo7bOFSUeQhOcC2Dlhp2GhwazBfYIjaO0Vx4Vn/d1" |
|
60 | + - "fHIQ38OvQ2rvDcsU91vBvknTscZDePPDPnP9/5JoGgm6" |
|
61 | + uploaders: |
|
62 | + - public: "adN2sVOZgFwZ0DjDxrZ1MkRTovCsHZIQ+YRrajNNLr7v" |
|
63 | + security: "AjgCbq2LY/pe2JMJZ9Y2MsQflK2XUVQaWHxOurda7iKU" |
|
64 | + - public: "qvS4EsjvihTGAFsJt95NQ7H2hT2vKHhvWOy68f8UB02i" |
|
65 | + security: "IBCW4/O8FFPHW8UFex0zap+MMjmJX9eaRnCoNC4ersjW" |
|
66 | +- name: "pkgs/zig/zig-opengl.tar.gz" |
|
67 | + description: "Zig package for the zig-opengl repository." |
|
68 | + uploaders: |
|
69 | + - public: "2og5PyOjdh4+rpS9C3fGjwfTwckiEaTT5d7A+wPAfCkG" |
|
70 | + security: "8Jb1FVHmrVWnGRDxq7m2DTJCoZ1/WQkfMIx1gytvXXXQ" |
|
71 | +``` |
|
42 | 72 | \ No newline at end of file |