Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/yurderi/savas
An http-service to serve updates for your applications
https://github.com/yurderi/savas
http-service plugin provallo-plugin release service software system
Last synced: 2 months ago
JSON representation
An http-service to serve updates for your applications
- Host: GitHub
- URL: https://github.com/yurderi/savas
- Owner: yurderi
- Created: 2018-08-10T06:44:29.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2020-12-03T22:25:21.000Z (about 4 years ago)
- Last Synced: 2024-10-20T14:58:31.874Z (3 months ago)
- Topics: http-service, plugin, provallo-plugin, release, service, software, system
- Language: Vue
- Homepage:
- Size: 11.7 MB
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# savas
Yet another package manager.
### Features
- Hosted on your own server
- HTTP/HTTPS Protocol
- Serves all type of packages
- Usability as good as functionality
- Minimalistic
Below you will find the idea/definition of the project before it was developed.
---
### Entities
Default columns every normal entity has.|Technical Field Name|Description|Validation|
|--|--|--|
|id|The unique id of the row|required, unique (auto-generated)|
|created|The timestamp of the creation|required
|changed|The timestamp when the row were changed|##### Package
Holds the technical name and description of your package. It also has custom API keys for external access.|Technical Field Name|Description|Validation|
|--|--|--|
|name|Technical package name|required, unique value (by namespace, where the namespace is the username)|
|description|Package description in Markdown-Format|
|visibility|Package visibility|required, expects "public" or "private"|
|access_token|In case the package is private the access_token is required to check for updates and download them|required is visibility equals "private" but the value is auto-generated|
|private_token|An access token for external manipulation of the package (creating releases etc)|auto-generated|The package entity is associated to a user entity using a separate entity (named user_package) to share a package between users. (n packages, n users)
##### Release
A release basically holds the package version and description. It also provides a "channel" of the release. This can be for example "alpha" or "beta" or similar. The channel entity is described somewhere below.|Technical Field Name|Description|Validation|
|--|--|--|
|active|Whether the release should be available for update checks. This can be useful when the release is planned but not yet released||
|version|The release version|required, unique per channel|
|description|The release notes||The release entity is directly associated to one parent package entity.(1 package, n releases)
##### Release File
A release file contains information about files which are associated to the package. Usually it is one file per platform. Platforms are defined in an extra entity defined somewhere below.|Technical Field Name|Description|Validation|
|--|--|--|
|filename|The filename used to locate the file in the filesystem|required, must_exists
|displayName|The original filename displayed for the user|required|
|size|The size of the file|required
|mime_type|The file mime type|required
|extension|The file extensionThe file entity is always associated to one release entity (1 release, n files)
##### Channel
A channel defines in which stage the package should be released.|Technical Field Name|Description|Validation|
|--|--|--|
|name|The technical channel name|required, unique per user|
|short|The shortcut for the channel|
|default|Whether this channel should be the default channel|A channel is basically associated to a user since every user should define their own channels. (1 user, n channels)
##### Platforms
A platform is used for release files to determine which files should be downloaded per file.|Technical Field Name|Description|Validation|
|--|--|--|
|name|The technical platform name|required, unique per user|A platform is basically associated to a user since every user should define their own platforms. (1 user, n platforms)