Static Update hosting standard.
Server-Side : Directory : Product List : Update List : Metadata : Package : NodeJS Server
Client-Side : Library
A list (list.json
) and all product directories are placed in the root directory. Each product directory contains an update list (updates.json
) and all version directories. Each version directory contains a metadata file (meta.json
) and an update package (package.7z
).
.
├── list.json
└── product
├── updates.json
└── x.x.x
├── meta.json
└── package.7z
An full example can be found here.
The product list (list.json
) placed in the root directory contains information for what version of the standard it follows (stdver
) and a list of products. Each item the product list (products
) contains the name of the product (name
), the name of it's directory (dir
), and a 32-character long ID (id
).
{
"stdver": [ 1, 0, 0 ],
"products": [
{ "name": "Product Name", "dir": "product", "id": "00000000000000000000000000000000" }
]
}
An example can be found here.
An update list (updates.json
) is placed in the root of each product directory and contains the version of the standard it follows (stdver
), and a list of avaliable updates. Each item in this list of updates (updates
), contains which version it's for (version
), and which directory it can be found in (dir
).
{
"stdver": [ 1, 0, 0 ],
"updates": [
{ "version": [ 2, 0, 0 ], "dir":"2.0.0" }
]
}
An example can be found here.
Each update directory contains metadata (meta.json
). This file contains the version of the standard it follows (stdver
), and information on the update package itself. It is required to contain the name of the executable to run (installer
) and an SHA256 checksum of the update package (sha256
).
{
"stdver": [ 1, 0, 0 ],
"installer": "file.exe",
"sha256": "0000000000000000000000000000000000000000000000000000000000000000"
}
An example can be found here.
Each update directory also contains a package (package.7z
). This compressed file should contain an installer (usually install.exe
, setup.exe
, etc) and any other required information (like a readme
).
package.7z
├── install.exe
└── readme.txt
An example can be found here.
Software for the server can be found here. The server simply statically hosts the root directory specified in it's config file.
Client library coming soon...