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