Back to capabilities

Tools

tinysystems/http-module

v0.5.24
View source

Components

3 available
  • http_auth_parse

    Extracts Basic Auth credentials from HTTP headers. In port receives: context + headers array. Out port always emits: {context, found, user, password}. If Authorization header with 'Basic' scheme found, decodes base64 and sets found=true with user/password. Otherwise found=false.

  • http_request

    Outbound HTTP request maker. Request port receives: context, method, timeout, URL, headers, contentType, body. Blocks until HTTP response received. On success (status < 400): emits context + response on Response port. On failure or status >= 400: returns error, or if enableErrorPort=true in settings, emits on Error port instead.

  • http_server

    HTTP request handler. The server does NOT run until a message arrives on the Start port — wire a signal (or cron) into Start to launch it (a cron would re-launch on every tick, so prefer signal for a long-running server). On start it exposes a public URL; read that URL from the _control port's ListenAddr (or enable the status port) — never guess the address. Each incoming HTTP request emits on Request port. Wire Request to processing logic, then wire result to Response port with statusCode (required), contentType (required), headers, body. To stop the server, enable the Stop port in settings and send it any message (context cancellation alone will NOT stop it — the runtime is distributed and durable).

Release notes

Tiny Systems HTTP Module

HTTP server and client components for building web-facing automations.

Components

Component Description
HTTP Server Embedded HTTP server with configurable routes and TLS support
HTTP Client Make outbound HTTP requests with full header and body control
Basic Auth Parser Parse and validate HTTP Basic Authentication headers
OpenAPI Request Make HTTP calls driven by an OpenAPI/Swagger specification

Installation

helm repo add tinysystems https://tiny-systems.github.io/module/
helm install http-module tinysystems/tinysystems-operator \
  --set controllerManager.manager.image.repository=ghcr.io/tiny-systems/http-module

Run locally

go run cmd/main.go run --name=http-module --namespace=tinysystems --version=1.0.0

Part of Tiny Systems

This module is part of the Tiny Systems platform -- a visual flow-based automation engine running on Kubernetes.

License

This module's source code is MIT-licensed. It depends on the Tiny Systems Module SDK (BSL 1.1). See LICENSE for details.

Required permissions

This module requires elevated Kubernetes RBAC permissions.

API GroupResourcesVerbs
core
pods
get
core
services
getlistupdate
networking.k8s.io
ingresses
getlistupdate