Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
34 commits
Select commit Hold shift + click to select a range
d772ada
Cleanup deps
isbm Mar 21, 2026
8890e63
Implement TLS config
isbm Mar 21, 2026
dcd06f4
Update docs
isbm Mar 21, 2026
6a1e36a
dotfiles
isbm Mar 21, 2026
d08f03f
Remove the Web API application-layer libsodium
isbm Mar 21, 2026
2af16b4
Update makefile
isbm Mar 21, 2026
d039266
Update docs
isbm Mar 21, 2026
abf43f4
Add dev-tls target to Makefile
isbm Mar 21, 2026
43b99e8
Update dependencies
isbm Mar 21, 2026
54303f3
Update docs for WebAPI TLS
isbm Mar 21, 2026
b0f8129
Update config, make better logging
isbm Mar 21, 2026
29d8500
Add more unit tests
isbm Mar 21, 2026
2b5237d
Regenerate client over TLS
isbm Mar 21, 2026
1f2a128
Introduce protocol version negotiation via ephemeral key
isbm Mar 21, 2026
1aa0b04
Add proto bootstrap UT
isbm Mar 21, 2026
e0266f8
Adjust UTs
isbm Mar 21, 2026
7c85d48
Bugfix: key no longer symmetric after nego (sometimes)
isbm Mar 21, 2026
86f1d76
Adjust UT
isbm Mar 21, 2026
7ae9937
Update docs for transport and config
isbm Mar 21, 2026
8b832b5
Update confing sample
isbm Mar 21, 2026
f26ab2f
Update logging on transpoirt errors
isbm Mar 21, 2026
7effb33
Update dependencies
isbm Mar 21, 2026
5d08a0c
Add bootstrap UT
isbm Mar 21, 2026
787a112
Add secure channel UT
isbm Mar 21, 2026
50d13dd
Add secure transport contract InT
isbm Mar 21, 2026
3a9085b
Add more bootstrap UT
isbm Mar 21, 2026
5f1389a
Add webapi UT
isbm Mar 21, 2026
fb13962
Add WebAPI contract/proto InT and data
isbm Mar 21, 2026
c08c6e3
Add sysclient UT
isbm Mar 21, 2026
826adbb
Add sysclient InT
isbm Mar 21, 2026
1ab9374
Add minion transport UT
isbm Mar 21, 2026
d93cccc
Update documentation
isbm Mar 21, 2026
e853417
Add proto examples
isbm Mar 21, 2026
24b5ed1
Update proto README guide
isbm Mar 21, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -13,3 +13,4 @@ package/
**/build/
TODO.txt
DESIGN.txt
.vscode/
13 changes: 11 additions & 2 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,19 @@
"libsysinspect",
"Sysinspect"
],
"python.defaultInterpreterPath": "/usr/bin/python3",
"files.associations": {
"*.cfg": "yaml"
},
"makefile.configureOnOpen": false,
"esbonio.sphinx.confDir": "${workspaceFolder}/docs",
"esbonio.sphinx.srcDir": "${workspaceFolder}/docs",
"python-envs.defaultEnvManager": "ms-python.python:system",
"python-envs.pythonProjects": []
}
"python-envs.pythonProjects": [],
"esbonio.sphinx.pythonCommand": {
"command": [
"/usr/bin/python3"
],
"cwd": "${workspaceFolder}"
}
}
32 changes: 28 additions & 4 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

16 changes: 9 additions & 7 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ include Makefile.in

.PHONY: build devel all all-devel modules modules-dev modules-dist-devel modules-refresh-devel clean check fix setup \
musl-aarch64-dev musl-aarch64 musl-x86_64-dev musl-x86_64 \
stats man test test-core test-modules test-sensors test-integration tar
stats man test test-core test-modules test-sensors test-integration tar dev-tls

setup:
$(call deps)
Expand Down Expand Up @@ -90,20 +90,22 @@ stats:
man:
pandoc --standalone --to man docs/manpages/sysinspect.8.md -o docs/manpages/sysinspect.8

test: setup
CARGO_BUILD_JOBS=$(TEST_BUILD_JOBS) cargo nextest run --workspace $(PLATFORM_WORKSPACE_EXCLUDES) --test-threads $(TEST_RUN_THREADS)
dev-tls:
./scripts/dev-tls.sh

test: setup
@CARGO_BUILD_JOBS=$(TEST_BUILD_JOBS) cargo nextest run --workspace $(PLATFORM_WORKSPACE_EXCLUDES) --test-threads $(TEST_RUN_THREADS)
test-core: setup
CARGO_BUILD_JOBS=$(TEST_BUILD_JOBS) cargo nextest run $(foreach pkg,$(CORE_PACKAGE_SPECS),-p $(pkg)) --lib --bins --test-threads $(TEST_RUN_THREADS)
@CARGO_BUILD_JOBS=$(TEST_BUILD_JOBS) cargo nextest run $(foreach pkg,$(CORE_PACKAGE_SPECS),-p $(pkg)) --lib --bins --test-threads $(TEST_RUN_THREADS)

test-modules: setup
CARGO_BUILD_JOBS=$(TEST_BUILD_JOBS) cargo nextest run $(foreach pkg,$(MODULE_PACKAGE_SPECS),-p $(pkg)) --bins --test-threads $(TEST_RUN_THREADS)
@CARGO_BUILD_JOBS=$(TEST_BUILD_JOBS) cargo nextest run $(foreach pkg,$(MODULE_PACKAGE_SPECS),-p $(pkg)) --bins --test-threads $(TEST_RUN_THREADS)

test-sensors: setup
CARGO_BUILD_JOBS=$(TEST_BUILD_JOBS) cargo nextest run $(foreach pkg,$(SENSOR_PACKAGE_SPECS),-p $(pkg)) --lib --bins --test-threads $(TEST_RUN_THREADS)
@CARGO_BUILD_JOBS=$(TEST_BUILD_JOBS) cargo nextest run $(foreach pkg,$(SENSOR_PACKAGE_SPECS),-p $(pkg)) --lib --bins --test-threads $(TEST_RUN_THREADS)

test-integration: setup
CARGO_BUILD_JOBS=$(TEST_BUILD_JOBS) cargo nextest run $(INTEGRATION_TEST_TARGETS) --test-threads $(TEST_RUN_THREADS)
@CARGO_BUILD_JOBS=$(TEST_BUILD_JOBS) cargo nextest run $(INTEGRATION_TEST_TARGETS) --test-threads $(TEST_RUN_THREADS)

tar:
# Cleanup
Expand Down
65 changes: 56 additions & 9 deletions docs/apidoc/overview.rst
Original file line number Diff line number Diff line change
@@ -1,18 +1,65 @@
Web API
=======

This section provides an overview of the Web API for SysInspect, including its structure, endpoints, and usage.
This section provides an overview of the Web API for SysInspect, including its
HTTPS/TLS access pattern, endpoints, and request flow.

Accessing the Documentation
---------------------------

The Web API is automatically documented using Swagger, which provides a user-friendly interface to explore the available endpoints
and their parameters. You can access the Swagger UI at the following URL:
The Web API is automatically documented using Swagger, which provides a
user-friendly interface to explore the available endpoints and their
parameters. You can access the Swagger UI at:

```
http://<your-server-address>:4202/doc/
```
``https://<your-server-address>:4202/doc/``

This interface, running on default port **4202**, allows you to interact with the API, view the available endpoints,
and test them directly from your browser. You can change the port and API version in the general ``sysinspect.conf``
configuration file.
This interface runs on default port **4202**.

The embedded Web API only starts when TLS is configured correctly under
``api.tls.*`` in ``sysinspect.conf``.

Authentication And Requests
---------------------------

The Web API uses:

- HTTPS/TLS for transport protection
- bearer tokens for authentication
- plain JSON request and response bodies

Typical flow:

1. ``POST /api/v1/authenticate`` with JSON credentials
2. receive ``access_token``
3. call later endpoints with ``Authorization: Bearer <token>``

Example authentication request body:

.. code-block:: json

{
"username": "operator",
"password": "secret"
}

Example query request body:

.. code-block:: json

{
"model": "cm/file-ops",
"query": "*",
"traits": "",
"mid": "",
"context": {
"reason": "manual-run"
}
}

Related Material
----------------

- :doc:`../global_config`
- :doc:`../genusage/operator_security`
- ``examples/transport-fixtures/webapi_auth_request.json``
- ``examples/transport-fixtures/webapi_query_request.json``
6 changes: 6 additions & 0 deletions docs/conf.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,9 @@
"""Sphinx configuration for the Sysinspect documentation."""

from __future__ import annotations

# pylint: disable=invalid-name,redefined-builtin

project = "Sysinspect"
copyright = "2026, Bo Maryniuk"
author = "Bo Maryniuk"
Expand Down
Loading
Loading