core/

directory
v0.2.0 Latest Latest
Warning

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

Go to latest
Published: Feb 14, 2026 License: MIT

README

pdf-forge / core

Backend API for the pdf-forge multi-tenant PDF template engine.

Quick Start

make run        # Start API server (requires PostgreSQL + Typst)
make migrate    # Apply database migrations
make dev        # Hot reload with air

Structure

cmd/api/
  main.go              Entrypoint (server / migrate subcommand)
  bootstrap/           Engine, DI wiring, preflight checks
internal/              Domain logic, adapters, infrastructure
  core/port/           Extension interfaces (Injector, RequestMapper, etc.)
  core/entity/         Domain types (InjectableValue, InjectorContext, etc.)
  core/service/        Business logic
  adapters/            HTTP controllers, PostgreSQL repositories
  infra/               Config, server, logging, registry
  migrations/          Embedded SQL migrations
extensions/            User customization point
  register.go          Registers all extensions with Engine
  injectors/           Custom injectors
  mapper.go            RequestMapper stub
  provider.go          WorkspaceInjectableProvider stub
  middleware.go        Middleware examples
settings/app.yaml      Default configuration

Extending

All user code goes in extensions/. Edit extensions/register.go:

func Register(engine *bootstrap.Engine) {
    engine.RegisterInjector(&injectors.MyInjector{})
    engine.SetMapper(&MyMapper{})
    // ...
}

Import types directly:

  • internal/core/port — interfaces
  • internal/core/entity — domain types
  • cmd/api/bootstrap — Engine type

Configuration

YAML (settings/app.yaml) + environment variables (DOC_ENGINE_* prefix).

Key settings:

  • server.port (default: 8080)
  • server.cors.allowed_origins (default: ["*"])
  • database.* — PostgreSQL connection
  • auth.panel — OIDC provider
  • typst.bin_path, typst.max_concurrent (default: 20)

API

All routes under /api/v1/*. Health at /health, /ready.

See docs/ for detailed documentation on authorization, configuration, and architecture.

Directories

Path Synopsis
cmd
api command
Package docs Code generated by swaggo/swag.
Package docs Code generated by swaggo/swag.
internal
adapters/secondary/database/postgres/common
Package common provides shared utilities for PostgreSQL repositories.
Package common provides shared utilities for PostgreSQL repositories.
core/entity/portabledoc
Package portabledoc defines types for the Portable Document Format (PDF-JSON).
Package portabledoc defines types for the Portable Document Format (PDF-JSON).
core/service/template/contentvalidator
Package contentvalidator provides content structure validation for template versions.
Package contentvalidator provides content structure validation for template versions.
Package sdk is the public API surface of pdf-forge.
Package sdk is the public API surface of pdf-forge.

Jump to

Keyboard shortcuts

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