• 0.1.0 f8a4775bcc

    Erik released this 2021-12-19 19:29:15 +01:00 | 0 commits to main since this release

    • add initial SQLite support
    • add web server
    • add /graphql and /graphiql endpoints
    • add initial GraphQL API
    • add commandline interface
    • add config loading (TOML format)
    • add default config generation

    Options

    • -h, --help: prints out the help text and exits
    • -V, --version: prints out the version and exits
    • -c, --config <path>: specifies which config file to use (by default at /etc/noise-server/config.toml)
    • -C, --no-config: will disable the default config file and only use the default values and commandline options
    • --generate-config: will print a config using the current config file and the commandline options given and exit
    • -d, --database-path <path>: tells the server where the database file is located (by default at /var/lib/noise-server/noise-server.sqlite)
    • -a, --ip-address <ip>: will use the given IP for the web server (by default 0.0.0.0)
    • -p, --port <port>: will use the given port for the web server (by default in debug profile 8080, by default in release profile 80)

    Config

    • database-path: same as --database-path <path>
    • ip-address: same as --ip-address <ip>
    • port: same as --port <port>

    GraphQL API

    Use GraphiQL to inspect the schema. Schema documentation is still work in progress.

    Currently you can do the following things with the API.

    auth indicates you have to authenticate to access this data

    Query

    • registered users on the server
    • user ID of a user with given username
    • whether a certain username is already used
    • user preferences (auth)
    • user's chats (auth)
    • user's groups/group chats (auth)
    • messages in a certain (group) chat (auth)

    Mutation

    • register a new user
    • create a new chat (auth)
    • create a new group chat (auth)
    • send a message into a (group) chat (auth)

    Databases

    SQLite support is the minimum DB support at the moment. It is planned to also support PostgreSQL and MySQL. These will be available behind a feature flag like the sqlite feature (which is currently enabled by default).

    Extended DB support may not be available before the first stable release.

    Downloads