manifest

package
v0.1.9 Latest Latest
Warning

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

Go to latest
Published: Apr 13, 2026 License: MIT Imports: 7 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Auth

type Auth struct {
	Type      string              `yaml:"type"` // "jwt" (required when auth is present)
	SecretEnv string              `yaml:"secret_env"`
	RawClaims map[string]string   `yaml:"claims"` // YAML original: FieldName → "claim_key" or "claim_key:go_type"
	Claims    map[string]ClaimDef `yaml:"-"`      // Parsed from RawClaims after Load()
	Roles     []string            `yaml:"roles"`  // valid role names (e.g. ["client", "freelancer"])
}

type AuthzConfig

type AuthzConfig struct {
	Package string `yaml:"package"` // custom authz package path, default: github.com/park-jun-woo/fullend/pkg/authz
}

AuthzConfig configures the authorization package.

type Backend

type Backend struct {
	Lang       string   `yaml:"lang"`
	Framework  string   `yaml:"framework"`
	Module     string   `yaml:"module"`
	Middleware []string `yaml:"middleware"`
	Auth       *Auth    `yaml:"auth"`
}

type BuiltinBackend

type BuiltinBackend struct {
	Backend string `yaml:"backend"` // "postgres" or "memory"
}

BuiltinBackend configures session/cache backend (postgres | memory).

type ClaimDef

type ClaimDef struct {
	Key    string // JWT claim key (e.g. "org_id")
	GoType string // Go type (e.g. "int64"), default "string"
}

ClaimDef describes a single JWT claim with its key and Go type.

type Deploy

type Deploy struct {
	Image  string `yaml:"image"`
	Domain string `yaml:"domain"`
}

type FileBackend

type FileBackend struct {
	Backend string       `yaml:"backend"` // "s3" or "local"
	S3      *S3Config    `yaml:"s3"`
	Local   *LocalConfig `yaml:"local"`
}

FileBackend configures file storage backend (s3 | local).

type Frontend

type Frontend struct {
	Lang      string `yaml:"lang"`
	Framework string `yaml:"framework"`
	Bundler   string `yaml:"bundler"`
	Name      string `yaml:"name"`
}

type LocalConfig

type LocalConfig struct {
	Root string `yaml:"root"`
}

type Metadata

type Metadata struct {
	Name string `yaml:"name"`
}

type ProjectConfig

type ProjectConfig struct {
	APIVersion string          `yaml:"apiVersion"`
	Kind       string          `yaml:"kind"`
	Metadata   Metadata        `yaml:"metadata"`
	Backend    Backend         `yaml:"backend"`
	Frontend   Frontend        `yaml:"frontend"`
	Deploy     Deploy          `yaml:"deploy"`
	Session    *BuiltinBackend `yaml:"session"`
	Cache      *BuiltinBackend `yaml:"cache"`
	File       *FileBackend    `yaml:"file"`
	Queue      *QueueBackend   `yaml:"queue"`
	Authz      *AuthzConfig    `yaml:"authz"`
}

ProjectConfig represents the fullend.yaml project configuration.

func Load

func Load(specsDir string) (*ProjectConfig, []diagnostic.Diagnostic)

Load reads and parses fullend.yaml from the given specs directory root.

type QueueBackend

type QueueBackend struct {
	Backend string `yaml:"backend"` // "postgres" or "memory"
}

QueueBackend configures queue backend (postgres | memory).

type S3Config

type S3Config struct {
	Bucket string `yaml:"bucket"`
	Region string `yaml:"region"`
}

Jump to

Keyboard shortcuts

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