goatflow

module
v0.10.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 4, 2026 License: Apache-2.0

README ΒΆ

GoatFlow - Modern Open Source Ticketing System

Tests codecov License Go Version SLSA 2

GoatFlow is a GoatKit based ITSM system. It is a modern, secure, cloud-native ticketing and service management platform. Although it offers a seamless upgrade path for OTRS installations, it is built as a premier standalone solution for all organizations. Written in Go with a modular monolith architecture, GoatFlow provides enterprise-grade support ticketing, ITSM capabilities, and extensive customization options.

Key Features

  • πŸ”’ Security - Every route is checked by an authorization test in CI, admin rights come only from admin-group membership, two-factor login (TOTP, passkeys/security keys, recovery codes), and a hardened plugin sandbox (OS-level isolation, ed25519 signing, SQL table whitelisting)
  • πŸ”‘ Login Options - Database passwords, LDAP / Active Directory, single sign-on through OIDC / OAuth2 (any OIDC provider such as Keycloak or Azure AD / Entra ID, plus Google and GitHub) and SAML 2.0, and passkey login; OIDC uses PKCE (S256) and JWKS verification, with auto-provisioning and post-login 2FA
  • πŸš€ High Performance - Go-based backend with optimized database queries and caching
  • 🌐 Cloud Native - Containerized deployment supporting Docker, Podman, and Kubernetes
  • πŸ“± Responsive UI - Modern HTMX-powered interface with progressive enhancement
  • πŸ”„ OTRS Compatible - Database schema superset; goatflow-migrate imports OTRS 6 and Znuny 6.x databases, and the filesystem attachment store reads an OTRS var/article tree as-is
  • 🧭 Setup Assistant β€” First-run wizard auto-launches on clean installs and guides admins through teams, queues, agents, customers, and SLAs; re-runnable task catalog for ongoing operations with plugin-extensible tasks
  • 🌍 Multi-Language - Full i18n with 15 languages at 100% coverage including RTL support, even supports Klingon! πŸ––
  • 🎨 Theme Engine - 4 distinct themes (Synthwave, Classic, 70s Vibes, 90s Vibe) with dark/light modes and custom fonts
  • πŸ”Œ Plugin Platform - Dual-runtime (WASM + gRPC) plugin system with sandboxed execution, hot reload, admin UI, ed25519 plugin signing, OS-level process isolation, SQL table whitelisting, live policy updates, periodic health monitoring, and bounded graceful shutdown
  • πŸ”— Extensible - REST API, signed outbound webhooks (Admin -> Webhooks), outbound REST/SOAP web-service calls (Admin -> Web Services), and theme customization

Screenshot

Screenshot 1

Quick Start

Prerequisites
  • Docker with Compose plugin OR Docker Compose standalone OR Podman with Compose
  • Git
  • 4GB RAM minimum
  • Modern web browser with JavaScript enabled
Container Runtime Support

GoatFlow is designed for container-first workflows and supports the following runtimes:

  • Docker Engine
    • Docker Compose v1 (docker-compose) and v2 (Compose plugin: docker compose)
  • Podman
    • Podman with Docker-compatible Compose (e.g. podman compose / podman-docker)
  • Rootless containers
    • Supported for both Docker and Podman; may require additional host configuration for ports and volumes
  • SELinux-enabled hosts
    • Volumes and bind mounts are compatible; use standard SELinux options/labels as required by your distribution
  • Kubernetes
  • TrueNAS SCALE (24.10+)
    • Docker Compose-based app catalog; the official app store package is in submission (docs/truenas-app/, pins ghcr.io/goatkit/goatflow:0.10.0), so TrueNAS support is from GoatFlow 0.10.0 onwards; until it's merged, install via YAML with the standard Compose stack

All make targets (for example, make up, make down, make restart) automatically detect whether Docker or Podman is available and choose the appropriate Compose command.

Using Containers (Auto-detected)
# Clone the repository
git clone https://github.com/goatkit/goatflow.git
cd goatflow

# Set up environment variables (REQUIRED - containers won't start without this!)
cp .env.development .env    # For local development (includes safe demo credentials)
# OR for production:
cp .env.example .env        # Then edit ALL values before use

# Start all services (auto-detects docker/podman compose command)
make up

# Alternative methods:
./scripts/compose.sh up          # Auto-detect wrapper script
docker compose up        # Modern Docker
docker-compose up        # Legacy Docker
podman compose up        # Podman plugin
podman-compose up        # Podman standalone

# Check which commands are available on your system
make debug-env

# Services will be available at:
# - Frontend: http://localhost
# - Backend API: http://localhost/api
# - smtp4dev (email sandbox): http://localhost:8025
# - Adminer (database UI): http://localhost:8090 (optional)

Development Workflow
# Start services in background
make up-d

# View logs
make backend-logs

# Run database migrations
make db-migrate

# Stop services
make down

# Reset everything (including database)
make clean
Podman on Fedora Kinoite/Silverblue
# Install podman-compose if needed
sudo rpm-ostree install podman-compose

# The Makefile auto-detects podman
make up

# Generate systemd units (Podman only)
make podman-systemd
Demo Instance

Try GoatFlow without installation at https://try.goatflow.io

Demo data resets daily

Testing

GoatFlow has comprehensive test coverage across multiple layers:

# Fast unit/integration tests (Alpine toolbox, ~1 minute)
make toolbox-test

# Full browser E2E tests (Ubuntu + Chromium, ~3-5 minutes)
make test-e2e-playwright-go

# Run the full Go test suite (2,000+ test functions)
make test

Browser tests use Go + Playwright with the //go:build playwright tag and run in a dedicated Ubuntu container with Chromium. This separation keeps developer feedback fast while maintaining thorough browser coverage.

Architecture

GoatFlow uses a modern, hypermedia-driven architecture that scales from single-server deployments to large enterprise clusters:

  • Core Services: Authentication, Tickets, Users, Notifications
  • Data Layer: MariaDB/MySQL (default) or PostgreSQL, Valkey (cache); attachments in the database or an OTRS-compatible filesystem tree (Article Storage)
  • API: RESTful JSON APIs with HTMX hypermedia endpoints
  • Frontend: HTMX + Alpine.js for progressive enhancement with Tailwind CSS
  • Real-time: Server-Sent Events (SSE) for live updates

See ARCHITECTURE.md for detailed technical documentation.

Authentication

GoatFlow has these ways to sign in:

Method Who Where to set it up
Database password Agents and customers Default; always available
LDAP / Active Directory Agents AUTH_PROVIDERS + LDAP_* env vars, see docs/LDAP.md
OIDC / OAuth2 (generic OIDC, Google, GitHub) Agents and customers Admin -> Identity Providers (/admin/identity-providers)
SAML 2.0 Agents and customers Admin -> Identity Providers
Passkey (WebAuthn) Agents and customers Each user adds passkeys in their profile
Second factor: TOTP app, passkey/security key, recovery codes Agents and customers Each user turns on 2FA in their profile
Password provider order (AUTH_PROVIDERS)

Password logins try an ordered list of providers. The first one that accepts the login wins.

  • database - agents and customer users stored in the database
  • ldap - agents from an LDAP / Active Directory server (also set LDAP_ENABLED=true, see docs/LDAP.md)
  • static - in-memory users for demos and tests (see below)

The list is read once at startup, in this order:

  1. The AUTH_PROVIDERS environment variable, comma separated, e.g. AUTH_PROVIDERS=ldap,database.
  2. The Auth::Providers setting in config/Config.yaml.
  3. If neither is set: database only.

A provider that cannot be created is skipped with a log line. If none can be created, database is used. Restart GoatFlow after changing the list.

Static users (demos and tests only)

Add static to the provider list and set GOATFLOW_STATIC_USERS at runtime. Format:

GOATFLOW_STATIC_USERS="alice:password:Agent,bob:secret:Customer,carol:adminpass:Admin"
  • Do not put this variable (or sample secrets) in committed .env files. GitLeaks will flag them.
  • Passwords may be plain text or pre-hashed (bcrypt, or the OTRS SHA formats). The format is detected automatically.
  • Without the variable, the static provider is skipped.
Development Policies
  • Database access: This project uses database/sql with a thin database.ConvertPlaceholders wrapper to support PostgreSQL and MySQL. All SQL must be wrapped. See docs/development/DATABASE_ACCESS_PATTERNS.md.
  • Templating: Use Pongo2 templates exclusively. Do not use Go's html/template. Render user-facing views via Pongo2 with layouts/base.pongo2 and proper context.
  • Routing: Define all HTTP routes in YAML under routes/*.yaml using the YAML router. Do not register routes directly in Go code.
    • YAML is the single source of truth for routes; hardcoded Gin registrations are prohibited.
    • Health endpoints (including /healthz) are declared in YAML. Static files are served via YAML using handleStaticFiles.
    • In test mode (APP_ENV=test), legacy admin hardcoded routes are skipped so SSR/YAML tests don’t double-register paths.
    • YAML route loader is idempotent in dev/tests: it skips registering a route if the same method+path already exists and logs a dedupe message to avoid Gin panics.
SSR Smoke Tests
  • The SSR smoke test discovers GET routes with templates from YAML and ensures they render without 5xx errors.
  • Non-strict by default: logs 5xx; to fail on 5xx and on invalid/missing YAML-referenced templates, set SSR_SMOKE_STRICT=1.

CI/CD & Quality

GoatFlow maintains high code quality and security standards through comprehensive automated testing:

πŸ”’ Security Pipeline
  • Vulnerability Scanning: Go (govulncheck), NPM dependencies (npm audit), container images (Trivy)
  • Static Analysis: Security (gosec, Semgrep), code quality (golangci-lint, ESLint)
  • Secret Detection: GitLeaks scans for accidentally committed secrets
  • License Compliance: Automated license checking for all dependencies
  • SAST: GitHub CodeQL for comprehensive static application security testing
πŸ§ͺ Testing Pipeline
  • Unit Tests: Go backend with race detection, HTMX frontend
  • Integration Tests: End-to-end API testing with test database
  • Coverage: Automated coverage reporting via Codecov
  • Database: Full schema validation (MariaDB/PostgreSQL)
πŸš€ Build Pipeline
  • Multi-arch: AMD64 and ARM64 container builds
  • Supply Chain Security: SLSA Level 2 attestations, container signing
  • Automated Releases: Tagged releases with comprehensive release notes
  • Manual Builds: On-demand builds without registry pushing
πŸ“Š Quality Metrics
  • Comprehensive security scanning (8+ tools)
  • SLSA Level 2 compliant build process
  • Automated test coverage reporting via Codecov

Installation

System Requirements

Minimum (Development/Small Business)

  • 2 CPU cores
  • 4 GB RAM
  • 20 GB storage
  • MariaDB 11+ or PostgreSQL 14+
  • Docker 20+ or Podman 3+

Recommended (Enterprise)

  • 8+ CPU cores
  • 16+ GB RAM
  • 100+ GB SSD storage
  • MariaDB 11+ or PostgreSQL 14+ cluster
  • Kubernetes 1.25+
Production Deployment

For production deployments, see our comprehensive guides:

πŸ’‘ Tip: Start with Docker deployment for single-server setups, then scale to Kubernetes as your needs grow.

Documentation

User Guides
Technical Documentation
Additional Resources

Migration from OTRS

GoatFlow's database schema is a superset of the OTRS schema. The goatflow-migrate tool imports an OTRS 6 or Znuny 6.x database. Older OTRS versions (for example 5.x) are refused: upgrade them to OTRS 6 first.

The OTRS source can be either:

  • SQL= a mysqldump / mariadb-dump file, or
  • SOURCE= a live OTRS database: MySQL/MariaDB (user:pass@tcp(host:3306)/otrs) or PostgreSQL (postgres://user:pass@host:5432/otrs?sslmode=disable).
# List the source tables, row counts and what the import does with each
make migrate-analyze SQL=/path/to/otrs_dump.sql

# Dry run: print the import plan without writing (DRY_RUN=true is the default)
make migrate-import SQL=/path/to/otrs_dump.sql

# Import for real
make migrate-import SQL=/path/to/otrs_dump.sql DRY_RUN=false

# Validate migrated data
make migrate-validate

The import covers tickets, articles, agents, customers, queues, permissions, preferences, dynamic fields and changed settings, and runs in one transaction. It also resets id sequences and the ticket number counters.

Attachments:

  • Attachments stored in the OTRS database (ArticleStorageDB) are imported with the rest of the data.
  • Attachments stored on disk (ArticleStorageFS) are not copied by the import. Mount or copy the OTRS var/article tree to <STORAGE_PATH>/var/article and set STORAGE_TYPE=fs. See docs/ARTICLE_STORAGE.md.

See docs/MIGRATION.md for the complete migration guide.

Internationalization (i18n)

GoatFlow provides comprehensive multi-language support:

Language Support
Language Code Direction Status
English en LTR βœ… Base Language
Arabic ar RTL βœ… Complete
Chinese zh LTR βœ… Complete
French fr LTR βœ… Complete
German de LTR βœ… Complete
Hebrew he RTL βœ… Complete
Japanese ja LTR βœ… Complete
Persian fa RTL βœ… Complete
Polish pl LTR βœ… Complete
Portuguese pt LTR βœ… Complete
Russian ru LTR βœ… Complete
Spanish es LTR βœ… Complete
Ukrainian uk LTR βœ… Complete
Urdu ur RTL βœ… Complete
Klingon tlh LTR βœ… Complete (Qapla'! πŸ––)
i18n Features
  • Embedded translations - JSON files compiled into the binary for zero-config deployment
  • RTL support - Full right-to-left language support (Arabic, Hebrew, Persian, Urdu)
  • User preferences - Language selection persisted per-user in profile settings
  • Locale formatting - Date, time, number, and currency formatting per language
  • Validation tests - Automated coverage testing ensures 100% translation completeness
Adding New Languages
  1. Create translation file: internal/i18n/translations/xx.json
  2. Add language config to internal/i18n/rtl.go (single source of truth)
  3. Run tests: make check-i18n
  4. Rebuild: make build

See i18n Contributing Guide for detailed instructions.

Features Comparison

See FEATURES.md for the status of every feature in 0.10.0 and a comparison matrix of GoatFlow vs OTRS, Zendesk, and ServiceNow across 22 feature categories, including:

  • βœ… Core ticketing, email integration, reports
  • βœ… Theme engine with 4 built-in themes and dark mode
  • βœ… Cloud native, air-gapped deployment, 15 languages
  • βœ… REST API, source code access, self-hosted

Roadmap

See ROADMAP.md for the development timeline and planned features.

Contributing

See our Contributing Guide for details on:

  • Code of Conduct
  • Development setup
  • Coding standards
  • Pull request process
  • Issue reporting

For AI/Agent Contributors: See docs/development/AGENT_GUIDE.md for the canonical operating manual.

Community

License

GoatFlow Community Edition is licensed under the Apache License 2.0.

For enterprise licensing options, see LICENSING.md.

Support

Community Support

See the Community section above for forums, chat, and issue tracking.

Commercial Support
  • Professional support contracts
  • Implementation services
  • Custom development
  • Training and certification

Contact: hello@goatflow.io

Security

Security is our top priority. Please report security vulnerabilities to security@goatflow.io.

See SECURITY.md for our security policies and practices.

GoatFlow-CE is an independent, original implementation of a ticket management system. While we maintain database compatibility for interoperability purposes, all code is originally written. We are not affiliated with OTRS AG. See LEGAL.md for important legal information.

Acknowledgments

GoatFlow builds upon decades of open source ticketing system innovation. We acknowledge the contributions of the OTRS community and other open source projects that have paved the way.


GoatFlow - Enterprise Ticketing, Community Driven

Copyright Β© 2025-2026 Gibbsoft Ltd and Contributors

Directories ΒΆ

Path Synopsis
cmd
add-ticket-translations command
Package main provides a tool for adding ticket translations.
Package main provides a tool for adding ticket translations.
add-translations command
Package main provides a tool for adding translations.
Package main provides a tool for adding translations.
contract-runner command
Package main provides the contract test runner.
Package main provides the contract test runner.
gk command
Package main provides the GoatKit CLI tool for plugin development.
Package main provides the GoatKit CLI tool for plugin development.
gk-lint command
goatflow command
Package main provides the GoatFlow server application.
Package main provides the GoatFlow server application.
goatflow-babelfish command
Package main provides translation file processing.
Package main provides translation file processing.
goatflow-config command
Package main provides configuration management utilities.
Package main provides configuration management utilities.
goatflow-db command
Package main provides database utilities.
Package main provides database utilities.
goatflow-migrate command
Package main provides the OTRS/Znuny import for goatflow-migrate.
Package main provides the OTRS/Znuny import for goatflow-migrate.
goatflow-storage command
Package main is goatflow-storage: inspect, copy and verify article attachments and raw emails between the database (ArticleStorageDB) and an OTRS-layout filesystem tree (ArticleStorageFS).
Package main is goatflow-storage: inspect, copy and verify article attachments and raw emails between the database (ArticleStorageDB) and an OTRS-layout filesystem tree (ArticleStorageFS).
goats command
Package main β€” first-boot admin bootstrap.
Package main β€” first-boot admin bootstrap.
route-docs command
Package main generates route documentation (Markdown, OpenAPI route map, HTML) from the YAML route definitions in routes/.
Package main generates route documentation (Markdown, OpenAPI route map, HTML) from the YAML route definitions in routes/.
route-lint command
Package main provides route linting utilities.
Package main provides route linting utilities.
route-test command
Package main provides route testing utilities.
Package main provides route testing utilities.
route-version command
Package main provides route version management.
Package main provides route version management.
routes-diff command
Package main provides route diff utilities.
Package main provides route diff utilities.
routes-manifest command
Package main provides route manifest generation.
Package main provides route manifest generation.
schema-discovery command
Package main provides schema discovery utilities.
Package main provides schema discovery utilities.
test_i18n command
Package main provides i18n testing utilities.
Package main provides i18n testing utilities.
test_xlat command
Package main provides translation testing utilities.
Package main provides translation testing utilities.
xlat-extract command
Package main provides translation extraction.
Package main provides translation extraction.
docs
api
Package api Code generated by swaggo/swag.
Package api Code generated by swaggo/swag.
internal
api
Package api provides HTTP handlers for the GoatFlow application.
Package api provides HTTP handlers for the GoatFlow application.
components/dynamic
Package dynamic provides dynamic component rendering and field handling.
Package dynamic provides dynamic component rendering and field handling.
components/handlers
Package handlers provides base CRUD handlers for component operations.
Package handlers provides base CRUD handlers for component operations.
core
Package core provides core business logic for article type resolution.
Package core provides core business logic for article type resolution.
email
Package email provides email handling and processing utilities.
Package email provides email handling and processing utilities.
email/inbound/adapter
Package adapter provides mail account adapters for inbound email processing.
Package adapter provides mail account adapters for inbound email processing.
email/inbound/filters
Package filters provides email filter annotations and processing rules.
Package filters provides email filter annotations and processing rules.
email/inbound/postmaster
Package postmaster provides email parsing, filtering, and dispatch orchestration.
Package postmaster provides email parsing, filtering, and dispatch orchestration.
history
Package history provides ticket history formatting and display utilities.
Package history provides ticket history formatting and display utilities.
mailaccountmeta
Package mailaccountmeta provides mail account metadata parsing and serialization.
Package mailaccountmeta provides mail account metadata parsing and serialization.
mailqueue
Package mailqueue provides email queue storage and management.
Package mailqueue provides email queue storage and management.
models
Package models provides domain models and data structures.
Package models provides domain models and data structures.
notificationevents
Package notificationevents evaluates the ticket notification rules managed under Admin -> Ticket Notifications (the OTRS notification_event, notification_event_item and notification_event_message tables) and queues the resulting email on mail_queue for the email runner to send.
Package notificationevents evaluates the ticket notification rules managed under Admin -> Ticket Notifications (the OTRS notification_event, notification_event_item and notification_event_message tables) and queues the resulting email on mail_queue for the email runner to send.
platform/apierrors
Package apierrors provides structured API error codes and responses.
Package apierrors provides structured API error codes and responses.
platform/auth
Package auth provides authentication and JWT token handling.
Package auth provides authentication and JWT token handling.
platform/cache
Package cache provides caching utilities including compression support.
Package cache provides caching utilities including compression support.
platform/components/lambda
Package lambda provides JavaScript execution capabilities for dynamic modules
Package lambda provides JavaScript execution capabilities for dynamic modules
platform/config
Package config provides application configuration management.
Package config provides application configuration management.
platform/constants
Package constants provides application-wide constant definitions.
Package constants provides application-wide constant definitions.
platform/convert
Package convert provides type conversion utilities.
Package convert provides type conversion utilities.
platform/customfields
Package customfields implements GoatKit PaaS Core universal custom fields.
Package customfields implements GoatKit PaaS Core universal custom fields.
platform/data
Package data provides data access repositories for lookup tables.
Package data provides data access repositories for lookup tables.
platform/database
Package database provides database connection and adapter management.
Package database provides database connection and adapter management.
platform/dbconfig
Package dbconfig resolves the driver-scoped database connection environment.
Package dbconfig resolves the driver-scoped database connection environment.
platform/deletion
Package deletion implements the GoatKit PaaS Entity Deletion system.
Package deletion implements the GoatKit PaaS Entity Deletion system.
platform/email/inbound/connector
Package connector provides email server connection interfaces and implementations.
Package connector provides email server connection interfaces and implementations.
platform/ldap
Package ldap is GoatFlow's LDAP / Active Directory directory client.
Package ldap is GoatFlow's LDAP / Active Directory directory client.
platform/logging
Package logging configures process-wide structured logging for GoatFlow.
Package logging configures process-wide structured logging for GoatFlow.
platform/lookups
Package lookups provides static lookup data including country codes.
Package lookups provides static lookup data including country codes.
platform/lookups/lookupstest
Package lookupstest provides test helpers for lookup numbering.
Package lookupstest provides test helpers for lookup numbering.
platform/marketplace
Package marketplace provides plugin discovery, installation, and update functionality using GitHub Releases as the distribution backend.
Package marketplace provides plugin discovery, installation, and update functionality using GitHub Releases as the distribution backend.
platform/mcp
Package mcp implements the Model Context Protocol server for GoatFlow.
Package mcp implements the Model Context Protocol server for GoatFlow.
platform/middleware
Package middleware provides HTTP middleware for authentication and authorization.
Package middleware provides HTTP middleware for authentication and authorization.
platform/notifications
Package notifications provides notification context and delivery management.
Package notifications provides notification context and delivery management.
platform/organisation
Package organisation implements GoatKit PaaS Core multi-tenancy.
Package organisation implements GoatKit PaaS Core multi-tenancy.
platform/plugin
Package plugin re-exports the public plugin types from pkg/plugin.
Package plugin re-exports the public plugin types from pkg/plugin.
platform/plugin/core
Package core provides core built-in plugins for GoatFlow.
Package core provides core built-in plugins for GoatFlow.
platform/plugin/example
Package example provides example plugin implementations for testing.
Package example provides example plugin implementations for testing.
platform/plugin/grpc
Package grpc provides gRPC-based plugin runtime using HashiCorp go-plugin.
Package grpc provides gRPC-based plugin runtime using HashiCorp go-plugin.
platform/plugin/grpc/example command
Example gRPC plugin for GoatKit.
Example gRPC plugin for GoatKit.
platform/plugin/packaging
Package packaging provides ZIP-based plugin packaging and extraction.
Package packaging provides ZIP-based plugin packaging and extraction.
platform/plugin/wasm
Package wasm provides a WASM-based plugin runtime using wazero.
Package wasm provides a WASM-based plugin runtime using wazero.
platform/pluginui
Package pluginui implements the GoatKit PaaS Plugin UI System.
Package pluginui implements the GoatKit PaaS Plugin UI System.
platform/routing
Package routing provides HTTP routing and analytics endpoints.
Package routing provides HTTP routing and analytics endpoints.
platform/runner
Package runner provides background task runner and lifecycle management.
Package runner provides background task runner and lifecycle management.
platform/schema
Package schema provides database schema discovery and introspection.
Package schema provides database schema discovery and introspection.
platform/search
Package search implements GoatFlow's search backends: the application database (default) and an Elasticsearch-compatible index (Zinc or Elasticsearch) kept in sync with the database.
Package search implements GoatFlow's search backends: the application database (default) and an Elasticsearch-compatible index (Zinc or Elasticsearch) kept in sync with the database.
platform/secureconfig
Package secureconfig provides encrypted key-value storage for plugin secrets.
Package secureconfig provides encrypted key-value storage for plugin secrets.
platform/service
Package service provides business logic services for the application.
Package service provides business logic services for the application.
platform/services/adapter
Package adapter provides service adapters for database operations.
Package adapter provides service adapters for database operations.
platform/services/database
Package database provides database service interfaces and implementations.
Package database provides database service interfaces and implementations.
platform/services/k8s
Package k8s provides Kubernetes environment detection and integration.
Package k8s provides Kubernetes environment detection and integration.
platform/services/registry
Package registry provides service registration and lifecycle management.
Package registry provides service registration and lifecycle management.
platform/shared
Package shared provides shared types and utilities across packages.
Package shared provides shared types and utilities across packages.
platform/sqllex
Package sqllex is the SQL lexer shared by the plugin sandbox's table scope check and the organisation query scoper.
Package sqllex is the SQL lexer shared by the plugin sandbox's table scope check and the organisation query scoper.
platform/sysconfig
Package sysconfig provides system configuration management.
Package sysconfig provides system configuration management.
platform/ticketstate
Package ticketstate provides shared ticket-state operations used by both core API handlers and the plugin HostAPI, so state-change semantics live in exactly one place.
Package ticketstate provides shared ticket-state operations used by both core API handlers and the plugin HostAPI, so state-change semantics live in exactly one place.
platform/utils
Package utils provides utility functions including HTML sanitization.
Package utils provides utility functions including HTML sanitization.
platform/version
Package version provides build-time version information for GoatFlow.
Package version provides build-time version information for GoatFlow.
platform/webhook
Package webhook implements outbound webhooks: endpoint configuration stored in gk_webhook, a durable delivery log in gk_webhook_delivery, HMAC-signed HTTP delivery with bounded retries, and the event-source cursors product code uses to turn database changes into events exactly once.
Package webhook implements outbound webhooks: endpoint configuration stored in gk_webhook, a durable delivery log in gk_webhook_delivery, HMAC-signed HTTP delivery with bounded retries, and the event-source cursors product code uses to turn database changes into events exactly once.
repository
Package repository provides data access repositories for domain entities.
Package repository provides data access repositories for domain entities.
repository/memory
Package memory provides in-memory repository implementations for testing.
Package memory provides in-memory repository implementations for testing.
runner/tasks
Package tasks provides background task implementations for the runner.
Package tasks provides background task implementations for the runner.
selfservice
Package selfservice implements the public self-service account pages: forgotten-password reset for agents and customers, and customer self-registration with email verification.
Package selfservice implements the public self-service account pages: forgotten-password reset for agents and customers, and customer self-registration with email verification.
service
Package service provides business logic services.
Package service provides business logic services.
service/genericinterface
Package genericinterface provides the GenericInterface service for web service execution.
Package genericinterface provides the GenericInterface service for web service execution.
service/ticket_number
Package ticket_number provides ticket number generation strategies.
Package ticket_number provides ticket number generation strategies.
services/acl
Package acl provides the ACL (Access Control List) execution engine.
Package acl provides the ACL (Access Control List) execution engine.
services/escalation
Package escalation keeps the OTRS ticket escalation index (ticket.escalation_* columns) up to date and raises the OTRS escalation events.
Package escalation keeps the OTRS ticket escalation index (ticket.escalation_* columns) up to date and raises the OTRS escalation events.
services/genericagent
Package genericagent provides the Generic Agent execution engine.
Package genericagent provides the Generic Agent execution engine.
services/scheduler
Package scheduler provides task scheduling and job management.
Package scheduler provides task scheduling and job management.
services/ticket
Package ticket provides ticket domain models and business logic.
Package ticket provides ticket domain models and business logic.
services/ticketattributerelations
Package ticketattributerelations provides management of ticket attribute relationships.
Package ticketattributerelations provides management of ticket attribute relationships.
storage
Package storage stores article attachments and raw (plain) emails, following OTRS/Znuny's Ticket::Article::Backend::MIMEBase::ArticleStorage semantics.
Package storage stores article attachments and raw (plain) emails, following OTRS/Znuny's Ticket::Article::Backend::MIMEBase::ArticleStorage semantics.
testutil
Package testutil provides testing utilities and test environment setup.
Package testutil provides testing utilities and test environment setup.
ticketnumber
Package ticketnumber provides ticket number generation implementations.
Package ticketnumber provides ticket number generation implementations.
ticketutil
Package ticketutil provides utility functions for ticket operations.
Package ticketutil provides utility functions for ticket operations.
webhooks
Package webhooks defines the ticket and article events GoatFlow publishes to outbound webhooks and turns database changes into those events.
Package webhooks defines the ticket and article events GoatFlow publishes to outbound webhooks and turns database changes into those events.
pkg
markdown
Package markdown renders Markdown to sanitized HTML (goldmark GFM + bluemonday).
Package markdown renders Markdown to sanitized HTML (goldmark GFM + bluemonday).
plugin
Package plugin defines the unified interface for GoatKit plugins.
Package plugin defines the unified interface for GoatKit plugins.
plugin/grpcutil
Package grpcutil provides shared types for gRPC plugin communication.
Package grpcutil provides shared types for gRPC plugin communication.
tests

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL