Cover what Dokploy v0.30 added
build / build (push) Successful in 3m56s
release / release (push) Successful in 15m2s

Six new resources, all backed by endpoints that did not exist before v0.30.0
and verified end-to-end against a live v0.30.2 instance:

  dokploy_network         Docker networks, now first-class. Services attach
                          through network_ids, which is what deprecates
                          Compose's isolated_deployment upstream.
  dokploy_dns_provider    Cloudflare or Route53, so adding a domain creates
                          its DNS record.
  dokploy_vault_provider  Env values resolved from HashiCorp Vault, Infisical,
                          AWS, Doppler, Azure or Scaleway at deploy time, so
                          the secret never lands in Dokploy or in state.
  dokploy_schedule        Cron jobs in a container, a stack, or on a server.
  dokploy_volume_backup   Scheduled backups of a named volume — the companion
                          to a mount that persists.
  dokploy_libsql          The sixth managed database engine.

libsql.create is the strictest endpoint in the API: eleven keys required to
be present, several only meaningfully null, no generated service name, and it
returns `true` rather than the row. CreateDefaults and ListIDs absorb all
three so the resource behaves like every other database.

Also filled the gaps a field-by-field diff against the live schema turned up:
domain gains `enabled` (the v0.30.0 park-a-domain toggle), compose gains
create_env_file, icon and service_networks, application gains icon and
preview_require_collaborator_permissions, and mounts accept libsql.

DNS and vault credentials are masked by Dokploy on read, so `config` is
tagged noread and keeps the configured value, as the basic-auth password
already does.
This commit is contained in:
max-voitcov
2026-08-26 00:40:27 +03:00
parent 3ddce62647
commit 2d1caf6e73
23 changed files with 1297 additions and 12 deletions
+6 -1
View File
@@ -75,6 +75,7 @@ type applicationModel struct {
MemoryLimit types.String `tfsdk:"memory_limit" dokploy:"memoryLimit,nullable"`
CPUReserve types.String `tfsdk:"cpu_reservation" dokploy:"cpuReservation,nullable"`
CPULimit types.String `tfsdk:"cpu_limit" dokploy:"cpuLimit,nullable"`
Icon types.String `tfsdk:"icon" dokploy:"icon,nullable"`
Title types.String `tfsdk:"title" dokploy:"title,nullable"`
Subtitle types.String `tfsdk:"subtitle" dokploy:"subtitle,nullable"`
Enabled types.Bool `tfsdk:"enabled" dokploy:"enabled,nullable"`
@@ -113,6 +114,7 @@ type applicationModel struct {
PreviewCertType types.String `tfsdk:"preview_certificate_type" dokploy:"previewCertificateType,nullable"`
PreviewCertResolver types.String `tfsdk:"preview_custom_cert_resolver" dokploy:"previewCustomCertResolver,nullable"`
PreviewLimit types.Int64 `tfsdk:"preview_limit" dokploy:"previewLimit,nullable"`
PreviewCollabPerms types.Bool `tfsdk:"preview_require_collaborator_permissions" dokploy:"previewRequireCollaboratorPermissions,nullable"`
PreviewLabels types.List `tfsdk:"preview_labels" dokploy:"previewLabels,nullable"`
// Computed
@@ -211,6 +213,7 @@ func applicationResource() ResourceSpec {
"memory_limit": optionalString("Hard memory limit, for example `512m`."),
"cpu_reservation": optionalString("Soft CPU reservation, for example `0.5`."),
"cpu_limit": optionalString("Hard CPU limit, for example `1`."),
"icon": optionalString("Icon shown next to the service in the Dokploy UI."),
"title": optionalString("Display title shown in the Dokploy UI."),
"subtitle": optionalString("Display subtitle shown in the Dokploy UI."),
"enabled": optionalComputedBool("Whether the application is enabled."),
@@ -247,7 +250,9 @@ func applicationResource() ResourceSpec {
"preview_certificate_type": enumString("Certificate strategy for preview deployments.", certificateTypes, false),
"preview_custom_cert_resolver": optionalString("Traefik certificate resolver for preview deployments."),
"preview_limit": optionalComputedInt("Maximum number of concurrent preview deployments."),
"preview_labels": optionalComputedStringList("Pull request labels that opt into preview deployments."),
"preview_require_collaborator_permissions": optionalComputedBool("Only build previews for pull " +
"requests opened by users with repository collaborator permissions."),
"preview_labels": optionalComputedStringList("Pull request labels that opt into preview deployments."),
"application_status": computedString("Current status reported by Dokploy: `idle`, `running`, `done` or `error`."),
"created_at": computedString("RFC 3339 timestamp of when the application was created."),