Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 26 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,32 @@ Each entry starts with a **plain-language summary** (what changed, in
everyday words) before any technical detail — written so someone outside
engineering can understand what shipped and why it matters.

## [0.7.16] - 2026-08-31

**In plain terms:** the help text now tells you `[<repo>]` is optional
when you're inside a `deltix init`-ed working tree, and `deltix version`
finally shows the server version (the probe now passes TLS options).

### Fixed

- **`deltix version` reported "server version probe unavailable"** on TLS
servers with self-signed certs even though `push`, `log`, and every
data command worked fine. The probe path used a raw `fetch()` without
passing the CA cert / SNI override that the data API threads through.
Now uses the same `buildFetchTlsOptions(...)` helper, so the probe
succeeds against the same TLS server as everything else.

### Changed

- **Help text now shows optionality.** The `deltix` top-level help
switched `<repo>` to `[<repo>]` for every command that autodetects
via v0.7.14's `resolveRepo` (repo get, branch list/create/checkout/
delete/current, merge, diff, roles, sync-prefs). All `[--flag]`
patterns unified to `[--flag=value|-f value]` so the short forms
shipped in v0.7.13 are discoverable. New top-level note: "When run
from a `deltix init`-ed working tree, [<repo>] becomes optional —
the cwd project wins."

## [0.7.15] - 2026-08-31

**In plain terms:** two small operator-pain reductions reported in one
Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "deltix-client",
"version": "0.7.15",
"version": "0.7.16",
"private": true,
"license": "MIT",
"type": "module",
Expand Down
41 changes: 26 additions & 15 deletions src/cli/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,7 @@ import {
} from '../contexts/versioning-local';
import { getClientBuildInfo } from '../shared/build-info';
import { applyPersistedConfigDefaults, loadEnv } from '../shared/env';
import { buildFetchTlsOptions } from '../shared/http-tls';
import {
printError,
printInfo,
Expand Down Expand Up @@ -1123,6 +1124,14 @@ async function runVersion(): Promise<number> {
});

const env = loadEnv();
// Same TLS config the data API uses — otherwise the probe fails with
// "self signed certificate" against a TLS server with a self-signed
// cert even though /api/v1/* requests succeed, just because the probe
// passes through raw `fetch()` without a CA override.
const tls = buildFetchTlsOptions({
caCertPath: env.DELTIX_HTTP_TLS_CA_PATH,
serverNameOverride: env.DELTIX_HTTP_TLS_SERVER_NAME_OVERRIDE,
});
// /status is a best-effort probe — the actual server isn't down just
// because the status endpoint happened to time out or return non-2xx
// (the API endpoints under /api/v1/* are a separate surface and were
Expand All @@ -1133,6 +1142,7 @@ async function runVersion(): Promise<number> {
try {
const response = await fetch(new URL('/status', env.DELTIX_SERVER_URL), {
signal: AbortSignal.timeout(3000),
...(tls ? { tls } : {}),
});
if (response.ok) {
const server = (await response.json()) as {
Expand Down Expand Up @@ -1442,6 +1452,7 @@ export async function runCli(argv: string[]): Promise<number> {
printLines([
'Deltix-Client versioning parity with Deltix-Server Fase 5',
'Usage: deltix <version|configure|init|clone|import|commit|login|logout|whoami|push|pull|fetch|repo|branch|merge|log|diff|roles|sync-prefs|start|stop|status> [...args]',
'When run from a `deltix init`-ed working tree, [<repo>] becomes optional — the cwd project wins.',
' deltix configure',
' deltix init <repo>',
' deltix clone <repo>',
Expand All @@ -1455,22 +1466,22 @@ export async function runCli(argv: string[]): Promise<number> {
' deltix status [<repo>]',
' deltix repo create <repo>',
' deltix repo list',
' deltix repo get <repo>',
' deltix branch list <repo>',
' deltix repo get [<repo>]',
' deltix branch list [<repo>]',
' deltix branch local [<repo>]',
' deltix branch create <repo> <name>',
' deltix branch checkout <repo> <name>',
' deltix branch delete <repo> <name>',
' deltix branch current <repo>',
' deltix merge <repo> <sourceBranch> [targetBranch]',
' deltix log <repo> [--branch=name] [--limit=N]',
' deltix diff <repo> <from> <to>',
' deltix roles list <repo>',
' deltix roles grant <repo> <username> <reader|writer|admin>',
' deltix roles revoke <repo> <username>',
' deltix sync-prefs get <repo>',
' deltix sync-prefs set <repo> <schema-only|schema-and-data> [tables...]',
' deltix sync-prefs dry-run <repo> [tables...]',
' deltix branch create [<repo>] <name>',
' deltix branch checkout [<repo>] <name>',
' deltix branch delete [<repo>] <name>',
' deltix branch current [<repo>]',
' deltix merge [<repo>] <sourceBranch> [targetBranch]',
' deltix log [<repo>] [--branch=name|-b name] [--limit=N|-n N]',
' deltix diff [<repo>] <from> <to>',
' deltix roles list [<repo>]',
' deltix roles grant [<repo>] <username> <reader|writer|admin>',
' deltix roles revoke [<repo>] <username>',
' deltix sync-prefs get [<repo>]',
' deltix sync-prefs set [<repo>] <schema-only|schema-and-data> [tables...]',
' deltix sync-prefs dry-run [<repo>] [tables...]',
]);
return command ? 1 : 0;
}
Expand Down