Documentation
¶
Overview ¶
Package jsonschema defines the versioned JSON output schema for the dbc CLI. It is the single source of truth for every --json payload emitted by the CLI and consumed by the Rust GUI. Field names MUST NOT be renamed without updating both consumers.
Index ¶
- Constants
- type AddResponse
- type AddResponseDriver
- type AuthDeviceCodeEvent
- type AuthLicenseInstallResponse
- type AuthLoginResponse
- type AuthLogoutResponse
- type AuthRegistryStatus
- type AuthStatus
- type DriverInfo
- type Envelope
- type ErrorResponse
- type InitResponse
- type InstallProgressEvent
- type InstallStatus
- type ListDriverEntry
- type ListResponse
- type RemoveResponse
- type RemoveResponseDriver
- type SearchDriverBasic
- type SearchDriverVerbose
- type SearchResponse
- type SyncError
- type SyncProgressEvent
- type SyncStatus
- type SyncedDriver
- type UninstallStatus
Constants ¶
const SchemaVersion = 1
SchemaVersion is the current JSON schema version. Increment when making backward-incompatible changes to any payload type.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type AddResponse ¶
type AddResponse struct {
// DriverListPath is the filesystem path of the driver list that was modified.
DriverListPath string `json:"driver_list_path"`
// Drivers lists every driver entry that was added or updated.
Drivers []AddResponseDriver `json:"drivers"`
}
AddResponse is the JSON payload emitted after adding drivers to a driver list.
type AddResponseDriver ¶
type AddResponseDriver struct {
// Name is the driver identifier.
Name string `json:"name"`
// VersionConstraint is the optional semver constraint that was recorded.
VersionConstraint string `json:"version_constraint,omitempty"`
}
AddResponseDriver carries the driver entry that was appended to the driver list.
type AuthDeviceCodeEvent ¶
type AuthDeviceCodeEvent struct {
// VerificationURI is the URL the user should visit to authorise the device.
VerificationURI string `json:"verification_uri"`
// VerificationURIComplete is the URL with the user code pre-filled.
VerificationURIComplete string `json:"verification_uri_complete"`
// UserCode is the short code the user must enter at the verification URI.
UserCode string `json:"user_code"`
// ExpiresIn is the number of seconds until the code expires.
ExpiresIn int `json:"expires_in"`
// Interval is the minimum polling interval in seconds.
Interval int `json:"interval"`
}
AuthDeviceCodeEvent is the JSON payload emitted during OAuth device-code flow. The CLI emits this once so the user can open a browser to complete auth.
type AuthLicenseInstallResponse ¶
type AuthLicenseInstallResponse struct {
// Status is the outcome: "success" or "error".
Status string `json:"status"`
// LicensePath is the filesystem path where the license was written.
LicensePath string `json:"license_path"`
}
AuthLicenseInstallResponse is the JSON payload emitted after installing a license file.
type AuthLoginResponse ¶
type AuthLoginResponse struct {
// Status is the outcome: "success" or "failed".
Status string `json:"status"`
// Registry is the registry URL that was authenticated against.
Registry string `json:"registry"`
// Message is an optional detail string (e.g. failure reason).
Message string `json:"message,omitempty"`
}
AuthLoginResponse is the JSON payload emitted after an auth login attempt.
type AuthLogoutResponse ¶
type AuthLogoutResponse struct {
// Status is the outcome: "success" or "error".
Status string `json:"status"`
// Registry is the registry URL from which credentials were removed.
Registry string `json:"registry"`
}
AuthLogoutResponse is the JSON payload emitted after an auth logout.
type AuthRegistryStatus ¶
type AuthRegistryStatus struct {
// URL is the registry URL.
URL string `json:"url"`
// Authenticated indicates whether valid credentials exist for this registry.
Authenticated bool `json:"authenticated"`
// AuthType is the credential type in use: "oauth" or "api_key". Empty when not authenticated.
AuthType string `json:"auth_type,omitempty"`
// LicenseValid indicates whether a valid Columnar license is present.
LicenseValid bool `json:"license_valid"`
}
AuthRegistryStatus describes the authentication state for a single registry.
type AuthStatus ¶
type AuthStatus struct {
// Registries lists the status for each known registry.
Registries []AuthRegistryStatus `json:"registries"`
}
AuthStatus is the JSON payload for the auth status command. It summarises the authentication state across all known registries.
type DriverInfo ¶
type DriverInfo struct {
// Driver is the driver identifier path.
Driver string `json:"driver"`
// Version is the latest version string.
Version string `json:"version"`
// Title is the human-readable display name of the driver.
Title string `json:"title"`
// License is the SPDX license identifier.
License string `json:"license"`
// Description is a detailed description of the driver.
Description string `json:"description"`
// Packages lists the supported platform tuples.
Packages []string `json:"packages"`
}
DriverInfo is the JSON payload for the info command. It corresponds to the inline struct in cmd/dbc/info.go.
type Envelope ¶
type Envelope struct {
// SchemaVersion identifies the schema revision for forward-compatibility checks.
SchemaVersion int `json:"schema_version"`
// Kind names the payload type (e.g. "install.status", "search.response").
Kind string `json:"kind"`
// Payload is the raw JSON-encoded type-specific data.
Payload json.RawMessage `json:"payload"`
}
Envelope is the top-level wrapper for every structured JSON response emitted by the CLI. The payload field contains a type-specific JSON object identified by the kind field.
type ErrorResponse ¶
type ErrorResponse struct {
// Code is a machine-readable error identifier (e.g. "not_found", "permission_denied").
Code string `json:"code"`
// Message is a human-readable error description.
Message string `json:"message"`
// OwnerPID is the PID of the process holding a lock, when applicable.
OwnerPID int `json:"owner_pid,omitempty"`
}
ErrorResponse is the JSON payload emitted when a command fails with an error. It is used in place of all other payloads when Kind == "error".
type InitResponse ¶
type InitResponse struct {
// DriverListPath is the filesystem path of the created or existing driver list.
DriverListPath string `json:"driver_list_path"`
// Created is true when the file was newly created, false if it already existed.
Created bool `json:"created"`
}
InitResponse is the JSON payload emitted when a driver list file is initialised.
type InstallProgressEvent ¶
type InstallProgressEvent struct {
// Event identifies the progress step. Valid values:
// "download.start", "download.progress", "download.complete",
// "extract.start", "extract.complete",
// "verify.start", "verify.complete", "verify.checksum.ok", "verify.checksum.mismatch",
// "manifest.create", "install.complete".
Event string `json:"event"`
// Driver is the driver identifier being installed.
Driver string `json:"driver"`
// Bytes is the number of bytes transferred so far (download events only).
Bytes int64 `json:"bytes,omitempty"`
// Total is the expected total byte count (download events only).
Total int64 `json:"total,omitempty"`
// Checksum is the computed or expected checksum value (verify events only).
Checksum string `json:"checksum,omitempty"`
}
InstallProgressEvent is a single line in the NDJSON progress stream emitted during a driver installation. Clients should consume a stream of these events until install.complete is received.
type InstallStatus ¶
type InstallStatus struct {
// Status is the outcome: "installed", "already installed", or "error".
Status string `json:"status"`
// Driver is the driver identifier (e.g. "snowflake").
Driver string `json:"driver"`
// Version is the installed driver version string.
Version string `json:"version"`
// Location is the filesystem path where the driver was installed.
Location string `json:"location"`
// Message is an optional post-install notice provided by the driver manifest.
Message string `json:"message,omitempty"`
// Conflict describes any pre-existing driver that was replaced, if applicable.
Conflict string `json:"conflict,omitempty"`
// Checksum is the hex-encoded checksum of the installed artifact (added for T7).
Checksum string `json:"checksum,omitempty"`
}
InstallStatus is the final JSON payload emitted after a driver installation attempt. It corresponds to the inline struct in cmd/dbc/install.go.
type ListDriverEntry ¶
type ListDriverEntry struct {
// Driver is the driver identifier path.
Driver string `json:"driver"`
// Name is the human-readable driver name from its manifest.
Name string `json:"name"`
// Version is the installed driver version string.
Version string `json:"version"`
// Level is the config level where the driver is installed: "system", "user", or "env".
Level string `json:"level"`
// Location is the filesystem path containing the driver's manifest.
Location string `json:"location"`
}
ListDriverEntry is a single installed driver entry in a list response.
type ListResponse ¶
type ListResponse struct {
// Drivers is the list of installed drivers across all inspected config levels.
Drivers []ListDriverEntry `json:"drivers"`
}
ListResponse is the top-level JSON payload for the list command.
type RemoveResponse ¶
type RemoveResponse struct {
// DriverListPath is the filesystem path of the driver list that was modified.
DriverListPath string `json:"driver_list_path"`
// Driver is the entry that was removed.
Driver RemoveResponseDriver `json:"driver"`
}
RemoveResponse is the JSON payload emitted after removing a driver from a list.
type RemoveResponseDriver ¶
type RemoveResponseDriver struct {
// Name is the driver identifier.
Name string `json:"name"`
}
RemoveResponseDriver carries the driver entry that was removed from the list.
type SearchDriverBasic ¶
type SearchDriverBasic struct {
// Driver is the driver identifier path.
Driver string `json:"driver"`
// Description is a human-readable summary of the driver.
Description string `json:"description"`
// Installed lists the installed versions of this driver, if any.
Installed []string `json:"installed,omitempty"`
// Registry is the source registry name, if not the default.
Registry string `json:"registry,omitempty"`
}
SearchDriverBasic is a single driver entry in a non-verbose search response. It corresponds to the basic output struct in cmd/dbc/search.go.
type SearchDriverVerbose ¶
type SearchDriverVerbose struct {
// Driver is the driver identifier path.
Driver string `json:"driver"`
// Description is a human-readable summary of the driver.
Description string `json:"description"`
// License is the SPDX license identifier for the driver.
License string `json:"license"`
// Registry is the source registry name, if not the default.
Registry string `json:"registry,omitempty"`
// InstalledVersions maps platform tuple to a list of installed versions.
InstalledVersions map[string][]string `json:"installed_versions,omitempty"`
// AvailableVersions lists all versions available for the current platform.
AvailableVersions []string `json:"available_versions,omitempty"`
}
SearchDriverVerbose is a single driver entry in a verbose search response. It corresponds to the verbose output struct in cmd/dbc/search.go.
type SearchResponse ¶
type SearchResponse struct {
// Drivers is the raw JSON array of driver entries (basic or verbose).
Drivers json.RawMessage `json:"drivers"`
// Warning is an optional message when some registries were unavailable.
Warning string `json:"warning,omitempty"`
}
SearchResponse is the top-level JSON payload for the search command. The drivers field is raw JSON to accommodate both SearchDriverBasic and SearchDriverVerbose slices without a common interface.
type SyncError ¶
type SyncError struct {
// Name is the driver identifier.
Name string `json:"name"`
// Error is a human-readable description of the failure.
Error string `json:"error"`
}
SyncError records a driver that failed to install during sync.
type SyncProgressEvent ¶
type SyncProgressEvent struct {
// Phase is the current sync step: "resolving", "downloading", "verifying", or "installed".
Phase string `json:"phase"`
// Driver is the driver identifier being synced.
Driver string `json:"driver"`
// Bytes is the number of bytes transferred so far (downloading phase only).
Bytes int64 `json:"bytes,omitempty"`
// Total is the expected total byte count (downloading phase only).
Total int64 `json:"total,omitempty"`
// Version is the resolved version string (available after resolving phase).
Version string `json:"version,omitempty"`
}
SyncProgressEvent is a single NDJSON line in the sync progress stream.
type SyncStatus ¶
type SyncStatus struct {
// Installed lists drivers that were newly installed.
Installed []SyncedDriver `json:"installed"`
// Skipped lists drivers that were already present and required no action.
Skipped []SyncedDriver `json:"skipped"`
// Errors lists drivers that failed to install.
Errors []SyncError `json:"errors"`
}
SyncStatus is the final JSON payload emitted after a sync operation completes.
type SyncedDriver ¶
type SyncedDriver struct {
// Name is the driver identifier.
Name string `json:"name"`
// Version is the version that was installed or already present.
Version string `json:"version"`
}
SyncedDriver records a driver that was successfully installed or skipped during sync.
type UninstallStatus ¶
type UninstallStatus struct {
// Status is the outcome: "success" or "error".
Status string `json:"status"`
// Driver is the driver identifier that was uninstalled.
Driver string `json:"driver"`
}
UninstallStatus is the JSON payload emitted after a driver uninstallation. It corresponds to the inline format in cmd/dbc/uninstall.go.