Documentation
¶
Index ¶
- func DefaultDSLDir(baseDir, id string) string
- func DefaultDSLPackageName(id string) string
- func DefaultRepoArtifactPaths(baseDir, id string) (outDir, catalogPath, fkCatalogPath, methodRefsPath string)
- func DefaultRepoOutDir(baseDir, id string) string
- func DefaultRepoPackageName(id string) string
- func PackageIdent(raw string) string
- type BootstrapBinding
- type BuildConfig
- type DSLConfig
- type DependencyPolicy
- type Job
- type LoggingOptions
- type ScaffoldMode
- type ScaffoldPreset
- type Selection
- type TablePreset
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func DefaultDSLDir ¶
DefaultDSLDir returns the default directory for generated DSL artifacts.
func DefaultDSLPackageName ¶
DefaultDSLPackageName returns the default package for generated DSL artifacts.
func DefaultRepoArtifactPaths ¶
func DefaultRepoArtifactPaths(baseDir, id string) (outDir, catalogPath, fkCatalogPath, methodRefsPath string)
DefaultRepoArtifactPaths returns the default build output layout for a repo job.
func DefaultRepoOutDir ¶
DefaultRepoOutDir returns the default directory for generated repository client artifacts.
func DefaultRepoPackageName ¶
DefaultRepoPackageName returns the default package for generated repository client artifacts.
func PackageIdent ¶
PackageIdent normalizes an arbitrary identifier into a Go package-friendly name.
Types ¶
type BootstrapBinding ¶
type BootstrapBinding struct {
// Optional.
//
// Target points to bootstrap job ID.
// Empty is allowed only when project has exactly one bootstrap job.
//
// RU: Target указывает на bootstrap job ID.
// Пустое значение допустимо только если в проекте ровно один bootstrap job.
Target string
// Optional.
//
// ComponentID overrides component ID inside bootstrap manifest.
// When empty, runtime uses job ID.
//
// RU: ComponentID переопределяет component ID внутри bootstrap manifest.
// Если поле пустое, runtime использует job ID.
ComponentID string
}
BootstrapBinding links a generated repo to a bootstrap job for auto-sync. All fields are optional. Use nil Job.Bootstrap to disable bootstrap sync entirely.
RU: BootstrapBinding связывает generated repo с bootstrap job для auto-sync. RU: Все поля опциональны. Используйте nil в Job.Bootstrap, чтобы полностью отключить bootstrap sync.
type BuildConfig ¶
type BuildConfig struct {
// Optional.
//
// Disabled turns off final repository build generation for this repo job.
// Zero value keeps build generation enabled.
//
// RU: Disabled выключает генерацию финальных repository-артефактов для этого repo job.
// Нулевое значение оставляет build generation включённой.
Disabled bool
// Optional.
//
// OutDir is the output directory for generated repository files.
// When empty, the runtime uses `<repo dir>/generated/gen<repo-id>repo`.
//
// RU: OutDir — директория вывода для generated repository-файлов.
// Если поле пустое, runtime использует `<repo dir>/generated/gen<repo-id>repo`.
OutDir string
// Optional.
//
// CatalogPath is the output path for the generated table catalog.
// When empty, the runtime uses `<repo dir>/generated/gen<repo-id>dsl/catalog_gen.go`.
//
// RU: CatalogPath — путь к generated table catalog.
// Если поле пустое, runtime использует `<repo dir>/generated/gen<repo-id>dsl/catalog_gen.go`.
CatalogPath string
// Optional.
//
// FKCatalogPath is the output path for the generated FK catalog.
// When empty, the runtime uses `<repo dir>/generated/gen<repo-id>dsl/fk_catalog_gen.go`.
//
// RU: FKCatalogPath — путь к generated FK catalog.
// Если поле пустое, runtime использует `<repo dir>/generated/gen<repo-id>dsl/fk_catalog_gen.go`.
FKCatalogPath string
// Optional.
//
// MethodRefsPath is the output path for generated method references.
// When empty, the runtime uses `<repo dir>/generated/gen<repo-id>dsl/method_refs_gen.go`.
//
// RU: MethodRefsPath — путь к generated method refs.
// Если поле пустое, runtime использует `<repo dir>/generated/gen<repo-id>dsl/method_refs_gen.go`.
MethodRefsPath string
// Optional.
//
// DSLPackageName is the Go package name used in generated DSL artifacts
// such as catalog, FK catalog and method refs.
// When empty, the runtime uses `gen<repo-id>dsl`.
//
// RU: DSLPackageName — имя Go package для generated DSL-артефактов
// вроде catalog, FK catalog и method refs.
// Если поле пустое, runtime использует `gen<repo-id>dsl`.
DSLPackageName string
// Optional.
//
// PackageName is the Go package name used in generated repository files.
// When empty, the runtime uses `gen<repo-id>repo`.
//
// RU: PackageName — имя Go package для generated repository-файлов.
// Если поле пустое, runtime использует `gen<repo-id>repo`.
PackageName string
// Optional.
//
// Prepared enables prepared-statements generation mode markers.
//
// RU: Prepared включает режим generated prepared-statements markers.
Prepared bool
// Optional.
//
// InputSuffix is appended to generated input DTO types.
//
// RU: InputSuffix добавляется к generated input DTO типам.
InputSuffix string
// Optional.
//
// RowSuffix is appended to generated row/select DTO types.
//
// RU: RowSuffix добавляется к generated row/select DTO типам.
RowSuffix string
// Optional.
//
// ReturningSuffix is appended to generated returning DTO types.
//
// RU: ReturningSuffix добавляется к generated returning DTO типам.
ReturningSuffix string
// Optional.
//
// OpsPackage points to a Go package with user-maintained DSL operations.
// When empty, the runtime can build schema-only artifacts or use the repo DSL package
// from the same job when that phase is enabled by the runner.
//
// RU: OpsPackage указывает на Go package с пользовательскими DSL-операциями.
// Если поле пустое, runtime может собирать schema-only артефакты или использовать
// repo DSL package из того же job, если эта фаза включена runner'ом.
OpsPackage string
// Optional.
//
// Logging configures privacy rules for generated repository SQL/input/output logging.
//
// RU: Logging настраивает privacy-правила для generated repository SQL/input/output logging.
Logging *LoggingOptions
// Optional.
//
// Bootstrap is deprecated. Use Job.Bootstrap instead.
//
// RU: Bootstrap устарел. Используйте Job.Bootstrap.
Bootstrap *BootstrapBinding
}
BuildConfig controls final repository artifact generation. RU: BuildConfig управляет генерацией финальных repository-артефактов.
All fields are optional. Zero value keeps the build phase enabled with conventional output paths. RU: Все поля опциональны. Нулевое значение оставляет build phase включённой со стандартными путями.
type DSLConfig ¶
type DSLConfig struct {
// Optional.
//
// Disabled turns off scaffold generation for this repo job.
// Zero value keeps scaffold generation enabled.
//
// RU: Disabled выключает scaffold-генерацию для этого repo job.
// Нулевое значение оставляет scaffold-генерацию включённой.
Disabled bool
// Optional.
//
// Dir points to the editable scaffold directory near the schema.
// When empty, the runtime uses BaseDir.
//
// RU: Dir указывает на директорию editable scaffold рядом со схемой.
// Если поле пустое, runtime использует BaseDir.
Dir string
// Optional.
//
// Package is the Go package name used in scaffold files.
// When empty and Dir is set, the runtime uses the directory basename.
//
// RU: Package — имя Go package для scaffold-файлов.
// RU: Если поле пустое и задан Dir, runtime использует basename директории.
Package string
// Optional.
//
// Presets selects which scaffold templates should be generated.
// When empty, the runtime defaults to `auto`.
//
// RU: Presets выбирает, какие scaffold-шаблоны нужно сгенерировать.
// Если поле пустое, runtime по умолчанию использует `auto`.
Presets []ScaffoldPreset
// Optional.
//
// Mode controls how scaffold files are written.
// When empty, the runtime uses `init`.
//
// RU: Mode управляет тем, как записываются scaffold-файлы.
// Если поле пустое, runtime использует `init`.
Mode ScaffoldMode
}
DSLConfig controls editable DSL scaffold generation. RU: DSLConfig управляет генерацией editable DSL scaffold.
All fields are optional. Zero value keeps the DSL phase enabled and convention-driven. RU: Все поля опциональны. Нулевое значение оставляет DSL phase включённой и convention-driven.
type DependencyPolicy ¶
type DependencyPolicy string
DependencyPolicy controls FK parent expansion when resolving selected tables. RU: DependencyPolicy управляет расширением FK parent tables при выборе набора таблиц.
const ( // DependencyRequiredOnly adds only required FK parents. // // RU: DependencyRequiredOnly добавляет только обязательные FK parent tables. DependencyRequiredOnly DependencyPolicy = "required_only" // DependencyRequiredAndOptional adds both required and optional FK parents. // // RU: DependencyRequiredAndOptional добавляет и обязательные, и optional FK parent tables. DependencyRequiredAndOptional DependencyPolicy = "required_and_optional" // DependencyStrict does not auto-add any parent tables. // // RU: DependencyStrict не добавляет parent tables автоматически. DependencyStrict DependencyPolicy = "strict" // DependencyOptionalOnly adds only optional FK parents. // // RU: DependencyOptionalOnly добавляет только optional FK parent tables. DependencyOptionalOnly DependencyPolicy = "optional_only" )
type Job ¶
type Job struct {
// Optional.
//
// ID is an optional stable job identifier used by TUI and runners.
// When empty, the runtime derives it from SchemaPath.
//
// RU: ID — необязательный стабильный идентификатор job для TUI и runner'ов.
// Если поле пустое, runtime вычисляет его из SchemaPath.
ID string
// Optional.
//
// BaseDir points to the repository domain directory that contains `schema.sql`.
// When set, the runtime can derive SchemaPath, generated output paths, ScaffoldDir
// and ScaffoldPackage by convention.
// Can be omitted when SchemaPath is set.
//
// RU: BaseDir указывает на директорию домена repository, где лежит `schema.sql`.
// Если поле задано, runtime может по конвенции вывести SchemaPath, generated output paths,
// ScaffoldDir и ScaffoldPackage.
// Можно не задавать, если указан SchemaPath.
BaseDir string
// Optional.
//
// SchemaPath points to the source SQL schema file.
// When empty and BaseDir is set, the runtime uses `<BaseDir>/schema.sql`.
// Can be omitted when BaseDir is set.
//
// RU: SchemaPath указывает на исходный SQL schema-файл.
// Если поле пустое и задан BaseDir, runtime использует `<BaseDir>/schema.sql`.
// Можно не задавать, если указан BaseDir.
SchemaPath string
// Optional.
//
// Selection controls which schema tables participate in generation.
//
// RU: Selection управляет тем, какие таблицы схемы участвуют в генерации.
Selection Selection
// Optional.
//
// Bootstrap enables auto-sync into a bootstrap Definition() manifest.
// Leave nil when this repo should not appear in bootstrap managed inventory.
//
// RU: Bootstrap включает auto-sync в bootstrap Definition() manifest.
// Оставьте nil, если этот repo не должен попадать в bootstrap managed inventory.
Bootstrap *BootstrapBinding
// Optional.
//
// DSL controls editable DSL scaffold generation.
// Zero value enables DSL scaffold generation with convention defaults.
//
// RU: DSL управляет генерацией editable DSL scaffold.
// Нулевое значение включает DSL scaffold generation со стандартными значениями.
DSL DSLConfig
// Optional.
//
// Build controls final repository artifact generation.
// Zero value enables final build generation with convention defaults.
//
// RU: Build управляет генерацией финальных repository-артефактов.
// Нулевое значение включает финальную build generation со стандартными значениями.
Build BuildConfig
}
Job describes one repository generation unit driven by a SQL schema. Required: set BaseDir or SchemaPath. BaseDir is the preferred happy path. Optional fields: ID, Selection, Bootstrap, DSL, Build.
RU: Job описывает одну задачу генерации repository-кода на основе SQL-схемы. RU: Обязательно: задайте BaseDir или SchemaPath. BaseDir — предпочтительный happy path. RU: Опциональные поля: ID, Selection, Bootstrap, DSL, Build.
type LoggingOptions ¶
type LoggingOptions struct {
// Optional.
//
// RedactedFields lists JSON object keys that should be redacted in logged input/output payloads.
// Matching is case-insensitive and ignores punctuation differences such as `_`, `-` and spaces.
//
// RU: RedactedFields задаёт список JSON-ключей, которые нужно редактировать в логируемых input/output payloads.
// RU: Сопоставление нечувствительно к регистру и игнорирует различия в `_`, `-` и пробелах.
RedactedFields []string
// Optional.
//
// RedactionReplacement overrides the marker value written for redacted fields.
// When empty, the runtime uses `this field was redacted`.
//
// RU: RedactionReplacement переопределяет marker-значение, которое записывается вместо скрытых полей.
// Если поле пустое, runtime использует `this field was redacted`.
RedactionReplacement string
}
LoggingOptions controls privacy rules for generated repository logging.
RU: LoggingOptions управляет privacy-правилами для generated repository logging.
All fields are optional.
type ScaffoldMode ¶
type ScaffoldMode string
ScaffoldMode controls editable ops scaffold write behavior.
RU: ScaffoldMode управляет режимом записи editable ops scaffold.
const ( // ScaffoldInit creates scaffold files only when they do not exist yet. // // RU: ScaffoldInit создаёт scaffold-файлы только если их ещё нет. ScaffoldInit ScaffoldMode = "init" // ScaffoldSync updates only autogenerated scaffold blocks and preserves manual sections. // // RU: ScaffoldSync обновляет только autogenerated-блоки scaffold и сохраняет ручные секции. ScaffoldSync ScaffoldMode = "sync" // ScaffoldForce fully rewrites scaffold files. // // RU: ScaffoldForce полностью перезаписывает scaffold-файлы. ScaffoldForce ScaffoldMode = "force" )
type ScaffoldPreset ¶
type ScaffoldPreset string
ScaffoldPreset controls which operation templates are scaffolded.
RU: ScaffoldPreset управляет тем, какие шаблоны операций попадают в scaffold.
const ( // ScaffoldAuto generates an opinionated baseline based on the inferred table kind. // // RU: ScaffoldAuto генерирует opinionated baseline на основе автоматически определённого типа таблицы. ScaffoldAuto ScaffoldPreset = "auto" // ScaffoldCRUD generates Create/Get/List/Update/Delete templates. // // RU: ScaffoldCRUD генерирует шаблоны Create/Get/List/Update/Delete. ScaffoldCRUD ScaffoldPreset = "crud" // ScaffoldSearch generates filter, sort and keyset-search templates. // // RU: ScaffoldSearch генерирует шаблоны фильтрации, сортировки и keyset-search. ScaffoldSearch ScaffoldPreset = "search" // ScaffoldAnalytics generates count/sum/avg/group-by analytics templates. // // RU: ScaffoldAnalytics генерирует шаблоны аналитики count/sum/avg/group-by. ScaffoldAnalytics ScaffoldPreset = "analytics" // ScaffoldTimeline generates event/feed-style templates based on FK links. // // RU: ScaffoldTimeline генерирует event/feed шаблоны на основе FK-связей. ScaffoldTimeline ScaffoldPreset = "timeline" )
type Selection ¶
type Selection struct {
// Optional.
//
// Tables explicitly selects root tables for generation.
//
// RU: Tables явно задаёт корневые таблицы для генерации.
Tables []string
// Optional.
//
// Preset selects root tables when Tables is empty.
//
// When both Tables and Preset are empty, the runtime passes no table selector and the
// generator keeps its default behavior: include all tables.
//
// RU: Preset выбирает корневые таблицы, когда Tables не заданы.
// Если Tables и Preset пустые, runtime не передаёт селектор таблиц, и генератор
// сохраняет поведение по умолчанию: включает все таблицы.
Preset TablePreset
// Optional.
//
// DependencyPolicy controls FK-based dependency expansion for selected tables.
// When empty, the runtime uses `required_only`.
//
// RU: DependencyPolicy управляет FK-based расширением зависимостей для выбранных таблиц.
// Если поле пустое, runtime использует `required_only`.
DependencyPolicy DependencyPolicy
}
Selection controls which schema tables participate in generation. RU: Selection управляет тем, какие таблицы схемы участвуют в генерации.
All fields are optional. RU: Все поля опциональны.
type TablePreset ¶
type TablePreset string
TablePreset controls the default table root selection when explicit Tables are not set. RU: TablePreset управляет выбором корневых таблиц по умолчанию, если Tables не заданы явно.
const ( // TablePresetAll selects all schema tables. // // RU: TablePresetAll выбирает все таблицы схемы. TablePresetAll TablePreset = "all" // TablePresetRoots selects dependency roots. // // RU: TablePresetRoots выбирает корни графа зависимостей. TablePresetRoots TablePreset = "roots" // TablePresetLeaves selects dependency leaves. // // RU: TablePresetLeaves выбирает листья графа зависимостей. TablePresetLeaves TablePreset = "leaves" )