chore: seed migration objects batch 18

This commit is contained in:
dev
2026-10-18 13:16:10 +08:00
parent 7d84a81a6f
commit 018a3673a3
35 changed files with 10336 additions and 0 deletions
+40
View File
@@ -0,0 +1,40 @@
# keygen: API key generator
A command-line utility to generate an API key for [Tinode server](../server/)
**Parameters:**
* `sequence`: Sequential number of the API key. This value can be used to reject previously issued keys.
* `isroot`: Currently unused. Intended to designate key of a system administrator.
* `validate`: Key to validate: check previously issued key for validity.
* `salt`: [HMAC](https://en.wikipedia.org/wiki/HMAC) salt, 32 random bytes base64 standard encoded; must be present for key validation; optional when generating the key: if missing, a cryptographically-strong salt will be automatically generated.
## Usage
The API key is used to provide some protection from automatic scraping of server API and for identification of client applications.
* `API key` is used on the client side.
* `HMAC salt` is used on the server side to verify the API key.
Run the generator:
```sh
./keygen
```
Sample output:
```text
API key v1 seq1 [ordinary]: AQAAAAABAACGOIyP2vh5avSff5oVvMpk
HMAC salt: TC0Jzr8f28kAspXrb4UYccJUJ63b7CSA16n1qMxxGpw=
```
Copy `HMAC salt` to `api_key_salt` parameter in your server [config file](https://github.com/tinode/chat/blob/master/server/tinode.conf).
Copy `API key` to the client applications:
* TinodeWeb: `API_KEY` in [config.js](https://github.com/tinode/webapp/blob/master/src/config.js)
* Tindroid: `API_KEY` in [Cache.java](https://github.com/tinode/tindroid/blob/master/app/src/main/java/co/tinode/tindroid/Cache.java)
* Tinodious: `kApiKey` in [SharedUtils.swift](https://github.com/tinode/ios/blob/master/TinodiosDB/SharedUtils.swift)
Rebuild the clients after changing the API key.