Tactical Defense Software’s API is the main interface into the system. You can fetch logs, rules, and logs that have matched rules.
Authentication#
The authentication flow is fairly simple. Access tokens are requested via the API key provided. A JWT (JSON Web Token)
is created for the MSP specified, and is sent with each request as a Bearer
token.
Auth Flow#
- Request an access token for an MSP by making a
POST
request to the/authentication
endpoint with the following JSON payload:
{ "vendor": "vendor", "msp": msp_uuid, "key": api_key }
- Assuming the API key matches the one provided to the vendor, and the MSP UUID belongs to the vendor, then a JWT is issued and returned in the response. The expiration of the JWT is specified in the JWT, but is typically 12 hours.
- With each subsequent request to an endpoint, the JWT is sent in the
Authorization
header as follows:Authorization: Bearer <JWT>
If the token is invalid (which can include being expired), a 401 response is sent without a body.
Because JWTs are linked to a specific MSP, it is safe to put these JWTs into HTML/Javascript, and use them directly from your site. The API key should NEVER be placed in HTML or Javascript used to render your site.
API Documentation#
All documentation for the API is located at api-docs.tacticaldefense.software. All API endpoints are versioned, and clients should always strive to use the latest version of an endpoint.
Auto-Generating Clients#
An OpenAPI JSON file is provided for the API. This allows automatic client generation using the OpenAPI Generator for any of the supported languages.