postman-cli 1.59.0 → 1.60.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/man/postman.1 +395 -59
  2. package/package.json +6 -6
package/man/postman.1 CHANGED
@@ -1,4 +1,4 @@
1
- .TH POSTMAN 1 "2026-09-18" "v1.59.0" "Postman CLI Manual"
1
+ .TH POSTMAN 1 "2026-09-21" "v1.60.0" "Postman CLI Manual"
2
2
  .SH NAME
3
3
  postman \- Command\-line companion utility for Postman
4
4
  .SH SYNOPSIS
@@ -8,6 +8,13 @@ postman \- Command\-line companion utility for Postman
8
8
  The Postman CLI is a command\-line companion utility that brings the power of Postman platform directly to your terminal. It enables you to run collections, lint APIs, manage monitors, and integrate API testing into CI/CD pipelines.
9
9
  .br
10
10
  Note: All commands support the --help option for more information..
11
+ .SH CLAUDE CODE PLUGIN
12
+ Claude Code users and agents can use the Postman Plugin for Claude Code for full API lifecycle management including documentation, collections, workspaces, environments, mocks, monitors right from your repository.
13
+ .br
14
+ Install it with: claude plugin install postman@claude\-plugins\-official
15
+ .br
16
+ Then start Claude Code and run: /postman:setup
17
+ .br
11
18
  .SH OPTIONS
12
19
  .TP
13
20
  .B \-v, \-\-version
@@ -48,14 +55,8 @@ Sign up to keep the work you created as a guest (claims your guest workspace). W
48
55
 
49
56
  .B Options:
50
57
  .TP
51
- .B \-\-browser
52
- Always open the sign\-up URL in a browser here, rather than printing it.
53
- .TP
54
- .B \-\-wait
55
- Wait for the sign\-up to complete even if no local browser is detected.
56
- .TP
57
- .B \-\-no\-wait
58
- Print the sign\-up URL and exit without waiting. Leaves this CLI a guest.
58
+ .B \-\-guest
59
+ Start working as an anonymous guest instead of signing up — no account or browser needed, so it works anywhere. Your work is saved to a temporary workspace you can keep later by running `postman signup`.
59
60
  .TP
60
61
  .B \-\-json
61
62
  Print the sign\-up details as machine\-readable JSON.
@@ -150,6 +151,11 @@ Update Postman CLI using the original installation method.
150
151
  .B Usage:
151
152
  [options]
152
153
 
154
+ .B Options:
155
+ .TP
156
+ .B \-\-check
157
+ Check whether a Postman CLI update is available.
158
+
153
159
  .SS "skills"
154
160
  Check and update the agent skills in this repository.
155
161
 
@@ -914,7 +920,7 @@ Eg. postman api publish <apiId> \-\-name v1\e
914
920
 
915
921
 
916
922
  .SS "runner"
917
- Where your monitors execute: run and inspect your own self\-hosted runners, and list the Postman\-operated regions available to your team
923
+ Where your monitors execute: run and inspect your own self\-hosted runners, and list the Postman\-operated regions available to your team.
918
924
 
919
925
  .B Usage:
920
926
  [options] [command]
@@ -922,16 +928,16 @@ Where your monitors execute: run and inspect your own self\-hosted runners, and
922
928
  .B Subcommands:
923
929
  .TP
924
930
  .B runner start
925
- Start a runner
931
+ Start a self\-hosted runner in your own network.
926
932
  .TP
927
933
  .B runner list
928
- List the team's registered self\-hosted runners
934
+ List the team's registered self\-hosted runners.
929
935
  .TP
930
936
  .B runner regions
931
- List the region and private\-runner values valid for monitor create/update \-\-runner, including a static IP where configured
937
+ List the region and private\-runner values valid for monitor create/update \-\-runner, with the static IP Postman runs each one from, where your team has access to it.
932
938
 
933
939
  .SS "runner start"
934
- Start a runner
940
+ Start a self\-hosted runner in your own network.
935
941
 
936
942
  .B Usage:
937
943
  [options]
@@ -945,10 +951,10 @@ The ID of the runner to execute
945
951
  The secret key for the runner
946
952
  .TP
947
953
  .B \-\-region <region>
948
- Specify the region for the runner. Use "eu" for EU region.
954
+ Region this runner reports to \-\- use "eu" for the EU region
949
955
  .TP
950
956
  .B \-\-proxy <url>
951
- External proxy URL (e.g., http://proxy.com or http://proxy.com:8080)
957
+ External proxy URL, for example http://proxy.com or http://proxy.com:8080
952
958
  .TP
953
959
  .B \-\-egress\-proxy
954
960
  Enable built\-in egress proxy
@@ -959,6 +965,9 @@ Custom egress proxy authorization service base URL
959
965
  .B \-\-ssl\-extra\-ca\-certs <path>
960
966
  Additional trusted CA certificates (PEM file, can contain multiple certs)
961
967
  .TP
968
+ .B \-\-dataset\-jdbc\-driver\-dir <path>
969
+ Folder on this machine holding the JDBC driver .jar files you put there. Required to run a dataset that uses a JDBC source. Drivers are loaded only from this folder and matched by file name; driver paths saved in the dataset are ignored
970
+ .TP
962
971
  .B \-\-metrics
963
972
  Enable the metrics server for health checks
964
973
  .TP
@@ -966,13 +975,13 @@ Enable the metrics server for health checks
966
975
  Port for the metrics server (default: 9090)
967
976
  .TP
968
977
  .B \-\-report\-events
969
- Accepted for compatibility; analytics are sent by default
978
+ Accepted for compatibility; run events are reported by default
970
979
  .TP
971
980
  .B \-\-no\-report\-events
972
- Do not send analytics to Postman
981
+ Do not report run events to Postman
973
982
 
974
983
  .SS "runner list"
975
- List the team's registered self\-hosted runners
984
+ List the team's registered self\-hosted runners.
976
985
 
977
986
  .B Usage:
978
987
  [options]
@@ -989,7 +998,7 @@ Filter to runners in this workspace
989
998
  Output the runner list as JSON instead of a table
990
999
 
991
1000
  .SS "runner regions"
992
- List the region and private\-runner values valid for monitor create/update \-\-runner, including a static IP where configured
1001
+ List the region and private\-runner values valid for monitor create/update \-\-runner, with the static IP Postman runs each one from, where your team has access to it.
993
1002
 
994
1003
  .B Usage:
995
1004
  [options]
@@ -1349,7 +1358,7 @@ Invoke a monitor run and display results.
1349
1358
  .B Options:
1350
1359
  .TP
1351
1360
  .B \-\-api\-key <key>
1352
- Postman API key (defaults to the `postman login` session)
1361
+ Postman API key (defaults to POSTMAN_API_KEY, then the `postman login` session)
1353
1362
  .TP
1354
1363
  .B \-x, \-\-suppress\-exit\-code
1355
1364
  Specify whether or not to override the default exit code for the current run
@@ -1377,7 +1386,7 @@ Collection to monitor \-\- accepts the id shown in the Postman app, prefixed or
1377
1386
  .B \-\-name <name>
1378
1387
  Monitor name (defaults to the linked collection's own name)
1379
1388
  .TP
1380
- .B \-\-environment <id>
1389
+ .B \-e, \-\-environment <id>
1381
1390
  Environment to run the monitored collection with
1382
1391
  .TP
1383
1392
  .B \-w, \-\-workspace <id>
@@ -1387,7 +1396,7 @@ Workspace to create the monitor in (defaults to the workspace named in the local
1387
1396
  Cron expression for the monitor's schedule
1388
1397
  .TP
1389
1398
  .B \-\-timezone <tz>
1390
- Time zone for \-\-schedule, e.g. America/New_York (defaults to the host machine's own zone)
1399
+ Time zone for \-\-schedule, for example America/New_York (defaults to the host machine's own zone)
1391
1400
  .TP
1392
1401
  .B \-\-runner <value>
1393
1402
  A Postman region name (see `postman runner regions`) or the id of a self\-hosted runner created in Postman (list existing ones with `postman runner list`) to run from (repeatable) (default: )
@@ -1396,10 +1405,10 @@ A Postman region name (see `postman runner regions`) or the id of a self\-hosted
1396
1405
  Email to notify on a run failure or error (repeatable) (default: )
1397
1406
  .TP
1398
1407
  .B \-\-notification\-limit <n>
1399
- Cap consecutive notifications before they are muted (service range: 1\-99)
1408
+ Consecutive failure notifications to send before muting them
1400
1409
  .TP
1401
1410
  .B \-\-retry <n>
1402
- Retries on a failed run (service caps this at 2)
1411
+ Times to retry a failed run
1403
1412
  .TP
1404
1413
  .B \-\-timeout <ms>
1405
1414
  Request timeout in milliseconds
@@ -1429,7 +1438,7 @@ Dataset view to iterate (used together with \-\-dataset\-id)
1429
1438
  Number of iterations to run
1430
1439
  .TP
1431
1440
  .B \-\-iteration\-strategy <strategy>
1432
- How iteration data is consumed, e.g. round_robin, repeat_last, stop_at_end (requires \-\-iteration\-count, \-\-dataset\-id and \-\-dataset\-view\-id)
1441
+ How iteration data is consumed, for example round_robin, repeat_last or stop_at_end (requires \-\-iteration\-count, \-\-dataset\-id and \-\-dataset\-view\-id)
1433
1442
  .TP
1434
1443
  .B \-\-no\-run\-now
1435
1444
  Do not trigger an immediate run after creating the monitor
@@ -1465,7 +1474,7 @@ New monitor name
1465
1474
  New cron expression for the monitor's schedule
1466
1475
  .TP
1467
1476
  .B \-\-timezone <tz>
1468
- Time zone for \-\-schedule, e.g. America/New_York (defaults to the host machine's own zone)
1477
+ Time zone for \-\-schedule, for example America/New_York (defaults to the host machine's own zone)
1469
1478
  .TP
1470
1479
  .B \-\-runner <value>
1471
1480
  A Postman region name (see `postman runner regions`) or the id of a self\-hosted runner created in Postman (list existing ones with `postman runner list`) to run from (repeatable; replaces the current set) (default: )
@@ -1476,11 +1485,17 @@ Email to notify on a run failure or error (repeatable; replaces the current list
1476
1485
  .B \-\-clear\-notifications
1477
1486
  Remove every notification recipient
1478
1487
  .TP
1488
+ .B \-e, \-\-environment <id>
1489
+ Environment to run the monitored collection with (replaces the current one)
1490
+ .TP
1491
+ .B \-\-clear\-environment
1492
+ Run the monitored collection with no environment
1493
+ .TP
1479
1494
  .B \-\-notification\-limit <n>
1480
- Cap consecutive notifications before they are muted (service range: 1\-99)
1495
+ Consecutive failure notifications to send before muting them
1481
1496
  .TP
1482
1497
  .B \-\-retry <n>
1483
- Retries on a failed run (service caps this at 2)
1498
+ Times to retry a failed run
1484
1499
  .TP
1485
1500
  .B \-\-timeout <ms>
1486
1501
  Request timeout in milliseconds
@@ -1510,7 +1525,7 @@ Dataset view to iterate (used together with \-\-dataset\-id)
1510
1525
  Number of iterations to run
1511
1526
  .TP
1512
1527
  .B \-\-iteration\-strategy <strategy>
1513
- How iteration data is consumed, e.g. round_robin, repeat_last, stop_at_end (requires \-\-iteration\-count, \-\-dataset\-id and \-\-dataset\-view\-id)
1528
+ How iteration data is consumed, for example round_robin, repeat_last or stop_at_end (requires \-\-iteration\-count, \-\-dataset\-id and \-\-dataset\-view\-id)
1514
1529
  .TP
1515
1530
  .B \-\-api\-key <key>
1516
1531
  Postman API key (defaults to POSTMAN_API_KEY, then the `postman login` session)
@@ -1525,8 +1540,9 @@ Examples:
1525
1540
  postman monitor update <id> \-\-notify\-email a@example.com \-\-notify\-email b@example.com
1526
1541
  postman monitor update <id> \-\-clear\-notifications
1527
1542
  postman monitor update <id> \-\-runner us\-east \-\-runner <self\-hosted\-runner\-id>
1543
+ postman monitor update <id> \-\-environment 12345678\-90ab\-cdef\-1234\-567890abcdef
1528
1544
 
1529
- This command cannot change a monitor's linked collection or environment \-\- delete and recreate the monitor instead \-\- and does not pause or resume it; use `monitor pause`/`monitor resume` for that.
1545
+ This command cannot change a monitor's linked collection \-\- that is fixed when the monitor is created, so run a different collection by creating a new monitor. It does not pause or resume a monitor either; use `monitor pause`/`monitor resume` for that.
1530
1546
 
1531
1547
 
1532
1548
  .SS "monitor delete"
@@ -1578,13 +1594,13 @@ List a monitor's recent jobs.
1578
1594
  .B Options:
1579
1595
  .TP
1580
1596
  .B \-\-api\-key <key>
1581
- Postman API key (defaults to the `postman login` session)
1597
+ Postman API key (defaults to POSTMAN_API_KEY, then the `postman login` session)
1582
1598
  .TP
1583
1599
  .B \-\-result <value>
1584
- Filter by outcome, e.g. success, failure, error, abort (server\-validated, not a fixed list)
1600
+ Filter by outcome, for example success, failure, error or abort
1585
1601
  .TP
1586
1602
  .B \-\-trigger <value>
1587
- Filter by trigger, e.g. api, schedule, webhook, postman\-cli (server\-validated, not a fixed list)
1603
+ Filter by trigger, for example api, schedule, webhook or postman\-cli
1588
1604
  .TP
1589
1605
  .B \-\-since <dateTime>
1590
1606
  Only jobs that finished at or after this ISO 8601 date\-time
@@ -1607,7 +1623,7 @@ Report one job's terminal state and its per\-region run outcomes.
1607
1623
  .B Options:
1608
1624
  .TP
1609
1625
  .B \-\-api\-key <key>
1610
- Postman API key (defaults to the `postman login` session)
1626
+ Postman API key (defaults to POSTMAN_API_KEY, then the `postman login` session)
1611
1627
  .TP
1612
1628
  .B \-\-json
1613
1629
  Output as JSON instead of a table
@@ -1632,10 +1648,10 @@ Report which test assertions ran during one attempt of a run, which failed, and
1632
1648
  .B Options:
1633
1649
  .TP
1634
1650
  .B \-\-api\-key <key>
1635
- Postman API key (defaults to the `postman login` session)
1651
+ Postman API key (defaults to POSTMAN_API_KEY, then the `postman login` session)
1636
1652
  .TP
1637
1653
  .B \-\-attempt <n>
1638
- Which attempt of the run to show, counting from 0 (default: the latest)
1654
+ Which attempt of the run to show, where 0 is the first (default: the most recent)
1639
1655
  .TP
1640
1656
  .B \-\-failed\-only
1641
1657
  Show only failed assertions
@@ -1660,11 +1676,11 @@ Filter to monitors in this workspace
1660
1676
  .B \-c, \-\-collection <id>
1661
1677
  Filter to monitors on this collection
1662
1678
  .TP
1663
- .B \-\-environment <id>
1679
+ .B \-e, \-\-environment <id>
1664
1680
  Filter to monitors on this environment
1665
1681
  .TP
1666
1682
  .B \-\-runner <id>
1667
- Filter to a Self\-Hosted Runner ID (not a Postman Region). Cannot be combined with \-\-workspace, \-\-collection, \-\-environment, \-\-owner, \-\-team or \-\-active.
1683
+ Filter to a self\-hosted runner id, not a Postman region. Cannot be combined with \-\-workspace, \-\-collection, \-\-environment, \-\-owner, \-\-team or \-\-active
1668
1684
  .TP
1669
1685
  .B \-\-owner <id>
1670
1686
  Filter to monitors created by this user id (shown in the Owner column)
@@ -1676,16 +1692,13 @@ Filter to monitors owned by your own team
1676
1692
  Filter by active state
1677
1693
  .TP
1678
1694
  .B \-\-limit <n>
1679
- Max monitors to return. The service caps page size and rejects a value above it with its own error.
1680
- .TP
1681
- .B \-\-offset <n>
1682
- Not supported: the service accepts this parameter and silently ignores it. Refused locally. Use \-\-cursor instead.
1695
+ Maximum number of monitors to return (Postman caps the page size and rejects a larger value)
1683
1696
  .TP
1684
1697
  .B \-\-cursor <token>
1685
- Pagination cursor from a previous page's response.
1698
+ Pagination cursor from a previous page's response
1686
1699
  .TP
1687
1700
  .B \-\-columns <names>
1688
- Comma\-separated columns to show. Defaults to Name, Status, ID, Schedule, Owner, Collection. Also available: State, Notifications, Environment, Runners.
1701
+ Comma\-separated columns to show. Defaults to Name, Status, ID, Schedule, Owner, Collection. Also available: State, Notifications, Environment, Runners
1689
1702
  .TP
1690
1703
  .B \-\-no\-headers
1691
1704
  Omit the header row
@@ -1741,16 +1754,16 @@ Show per\-request latency and outcome history for a monitor.
1741
1754
  Postman API key (defaults to POSTMAN_API_KEY, then the `postman login` session)
1742
1755
  .TP
1743
1756
  .B \-\-since <dateTime>
1744
- Only executions at or after this ISO 8601 date\-time. Defaults to 7 days ago.
1757
+ Only executions at or after this ISO 8601 date\-time (defaults to 7 days ago)
1745
1758
  .TP
1746
1759
  .B \-\-until <dateTime>
1747
- Only executions at or before this ISO 8601 date\-time. Defaults to now.
1760
+ Only executions at or before this ISO 8601 date\-time (defaults to now)
1748
1761
  .TP
1749
1762
  .B \-f, \-\-filter <text>
1750
1763
  Show only requests whose name contains this text (case\-insensitive)
1751
1764
  .TP
1752
1765
  .B \-\-limit <n>
1753
- Cap the number of rows shown: executions (newest first) under \-\-json, or table rows (worst\-behaving request first) otherwise. Not honoured by the service \-\- there is no server\-side pagination on this route.
1766
+ Maximum number of rows to show: executions, newest first, under \-\-json, or requests, worst\-behaving first, in the table. Applied to the results after they are fetched, so it does not make the command faster
1754
1767
  .TP
1755
1768
  .B \-\-json
1756
1769
  Output as JSON instead of a table
@@ -1811,6 +1824,9 @@ Push local workspace entities (collections, environments, specifications, mocks
1811
1824
  .B workspace lint
1812
1825
  Lint the current local Postman workspace: its configuration (.postman/resources.yaml) plus every discovered entity. Use \-\-meta to lint only the configuration.
1813
1826
  .TP
1827
+ .B workspace get
1828
+ Read a workspace's metadata, and optionally the ids of what it holds.
1829
+ .TP
1814
1830
  .B workspace create
1815
1831
  Create a Postman workspace and bind it to this git repository.
1816
1832
  .TP
@@ -1916,6 +1932,34 @@ The workspace ID to use for fetching governance rulesets. Defaults to the id in
1916
1932
  .B \-\-fix
1917
1933
  Apply safe autofixes to repairable workspace lint issues.
1918
1934
 
1935
+ .SS "workspace get"
1936
+ Read a workspace's metadata, and optionally the ids of what it holds.
1937
+
1938
+ .B Usage:
1939
+ [options] [id]
1940
+
1941
+ .B Options:
1942
+ .TP
1943
+ .B \-\-elements
1944
+ Also report the resources the workspace holds.
1945
+ .TP
1946
+ .B \-\-json
1947
+ Print the workspace as machine\-readable JSON.
1948
+ .TP
1949
+ .B \-\-timeout <ms>
1950
+ Milliseconds to wait for the API (default 30000).
1951
+
1952
+ .TP Examples:
1953
+
1954
+ Examples:
1955
+ postman workspace get 00a50319\-1262\-49d2\-83e5\-551e3c5dba00
1956
+ postman workspace get <id> \-\-elements
1957
+ postman workspace get <id> \-\-json
1958
+
1959
+ Exit codes: 0 ok, 1 not found or API failure, 2 bad usage, 3 auth.
1960
+
1961
+
1962
+
1919
1963
  .SS "workspace create"
1920
1964
  Create a Postman workspace and bind it to this git repository.
1921
1965
 
@@ -2057,7 +2101,7 @@ Manage performance tests on your collections.
2057
2101
  .B performance run
2058
2102
  Run a performance test on a collection
2059
2103
  .TP
2060
- .B performance runs
2104
+ .B performance list
2061
2105
  List past performance runs for a collection, newest first.
2062
2106
 
2063
2107
  .SS "performance run"
@@ -2126,7 +2170,7 @@ Examples:
2126
2170
  postman performance run 123456\-45159473\-1e45\-1f34\-5678\-1234567890ab \-\-runner postman\-cloud\-static\-ip
2127
2171
 
2128
2172
 
2129
- .SS "performance runs"
2173
+ .SS "performance list"
2130
2174
  List past performance runs for a collection, newest first.
2131
2175
 
2132
2176
  .B Usage:
@@ -2149,9 +2193,9 @@ Milliseconds to wait for the service before failing (default: 30000)
2149
2193
  .TP Examples:
2150
2194
 
2151
2195
  Examples:
2152
- postman performance runs \-\-collection\-id 1402295\-45159473\-1e45\-1f34\-5678\-1234567890ab
2153
- postman performance runs \-c 1402295\-45159473\-1e45\-1f34\-5678\-1234567890ab \-\-json
2154
- postman performance runs \-c 1402295\-45159473\-1e45\-1f34\-5678\-1234567890ab \-\-cursor eyJpZCI6...
2196
+ postman performance list \-\-collection\-id 1402295\-45159473\-1e45\-1f34\-5678\-1234567890ab
2197
+ postman performance list \-c 1402295\-45159473\-1e45\-1f34\-5678\-1234567890ab \-\-json
2198
+ postman performance list \-c 1402295\-45159473\-1e45\-1f34\-5678\-1234567890ab \-\-cursor eyJpZCI6...
2155
2199
 
2156
2200
  The newest 25 runs are returned. A `\-` in Duration means the run has not finished yet.
2157
2201
  A page shorter than 25 does not mean the end of the list: use the printed \-\-cursor
@@ -4856,6 +4900,9 @@ Inspect and manage a dataset's datasources.
4856
4900
  .TP
4857
4901
  .B dataset view
4858
4902
  Inspect and manage saved views on a dataset.
4903
+ .TP
4904
+ .B dataset jdbc
4905
+ Inspect JDBC drivers before attaching one to a dataset.
4859
4906
 
4860
4907
  .SS "dataset list"
4861
4908
  List local dataset YAMLs under a path, or (no path) a workspace's cloud datasets.
@@ -5028,6 +5075,9 @@ Remove a datasource from a dataset (local YAML path or cloud id).
5028
5075
  .TP
5029
5076
  .B dataset source update
5030
5077
  Update fields on an existing datasource. Only the flags you provide are changed.
5078
+ .TP
5079
+ .B dataset source test
5080
+ Open and close a real connection using a source's stored configuration.
5031
5081
 
5032
5082
  .SS "dataset source list"
5033
5083
  List the datasources defined on a dataset (local YAML path or cloud id).
@@ -5074,8 +5124,8 @@ Override the generated source id (local dataset only)
5074
5124
  .B \-\-format <csv|json|mysql|postgres|sqlserver>
5075
5125
  Use this format instead of extension/type inference; file contents are not sniffed
5076
5126
  .TP
5077
- .B \-\-type <local|mysql|postgresql|sqlserver>
5078
- Source kind; local is inferred when \-\-file is provided
5127
+ .B \-\-type <local|mysql|postgresql|sqlserver|jdbc>
5128
+ Source kind; local is inferred from \-\-file, jdbc from \-\-driver\-jar
5079
5129
  .TP
5080
5130
  .B \-\-file <path>
5081
5131
  Path to a local CSV/JSON file (absolute or cwd\-relative)
@@ -5089,6 +5139,45 @@ When copying, overwrite an existing file at the destination (local dataset)
5089
5139
  .B \-\-upload
5090
5140
  Cloud dataset only: upload \-\-file as a postmancloudfile source (runs via /exec). Without \-\-upload, \-\-file is registered as a local_filesystem csv/json source read by the local engine.
5091
5141
  .TP
5142
+ .B \-\-driver\-jar <path...>
5143
+ JDBC driver JAR(s). Repeatable, or pass several after one flag
5144
+ .TP
5145
+ .B \-\-driver\-class <fqcn>
5146
+ Driver class. Auto\-resolved when the JAR contains exactly one
5147
+ .TP
5148
+ .B \-\-driver\-name <label>
5149
+ Label for this driver type (defaults to the JAR filename)
5150
+ .TP
5151
+ .B \-\-url\-template <template>
5152
+ JDBC URL with {{placeholders}}, e.g. jdbc:postgresql://{{host}}:{{port}}/{{database}}
5153
+ .TP
5154
+ .B \-\-var <name=value...>
5155
+ Value for a {{placeholder}}. Repeatable. Use vault:<vaultId>/<secretId> for a secret. WARNING: a literal value is visible in `ps` output and shell history, and is stored in clear text in the dataset YAML (local) or sent in the request body (cloud). Prefer a Shared Vault reference.
5156
+ .TP
5157
+ .B \-\-prop <name=value...>
5158
+ Driver connection property. Repeatable. Same vault: syntax as \-\-var
5159
+ .TP
5160
+ .B \-\-vars\-file <path>
5161
+ JSON object of \-\-var values; "\-" reads stdin. Supports {"$vaultId":..,"$secretId":..} objects, and keeps secrets out of argv entirely
5162
+ .TP
5163
+ .B \-\-from\-source <name>
5164
+ Reuse another source's driver JAR, class and URL template
5165
+ .TP
5166
+ .B \-\-java\-path <path>
5167
+ Java runtime to use. Machine\-local only \- never written to the dataset. Also read from POSTMAN_JDBC_JAVA_PATH
5168
+ .TP
5169
+ .B \-\-no\-test
5170
+ Skip the pre\-write connection test. Note that resolving the driver class still starts a JVM — on a machine with no Java, pass \-\-driver\-class (or \-\-from\-source) too
5171
+ .TP
5172
+ .B \-\-ssh\-target\-host\-variable <name>
5173
+ Template variable holding the tunnelled host (inferred when omitted)
5174
+ .TP
5175
+ .B \-\-ssh\-target\-port\-variable <name>
5176
+ Template variable holding the tunnelled port (inferred when omitted)
5177
+ .TP
5178
+ .B \-\-json
5179
+ Emit the result as JSON instead of prose
5180
+ .TP
5092
5181
  .B \-\-host <host>
5093
5182
  DB host (mysql/postgresql/sqlserver)
5094
5183
  .TP
@@ -5096,10 +5185,10 @@ DB host (mysql/postgresql/sqlserver)
5096
5185
  DB port (defaults to 1433 for sqlserver)
5097
5186
  .TP
5098
5187
  .B \-\-user <user>
5099
- DB user (warning: stored as plaintext in the YAML).
5188
+ DB user. WARNING: a literal value is visible in `ps` output and shell history, and is stored in clear text in the dataset YAML (local) or sent in the request body (cloud). Prefer a Shared Vault reference.
5100
5189
  .TP
5101
5190
  .B \-\-password <password>
5102
- DB password. WARNING: passing it here exposes it in `ps` output and shell history, and it is stored as plaintext in the dataset YAML (local) or sent in the request body (cloud). Prefer a restricted DB user; secure input (prompt / stdin / env) is planned.
5191
+ DB password. WARNING: a literal value is visible in `ps` output and shell history, and is stored in clear text in the dataset YAML (local) or sent in the request body (cloud). Prefer a Shared Vault reference.
5103
5192
  .TP
5104
5193
  .B \-\-database <db>
5105
5194
  DB database name
@@ -5166,6 +5255,60 @@ Format selection:
5166
5255
  Execution:
5167
5256
  \-\-upload runs file\-backed queries in the cloud service. Without \-\-upload, the local engine reads the file.
5168
5257
 
5258
+ JDBC:
5259
+ Start with `postman dataset jdbc inspect <jar>`. Its output maps onto these
5260
+ flags directly: suggestedUrlTemplate \-> \-\-url\-template, templateVariables \->
5261
+ \-\-var, connectionProperties \-> \-\-prop, driverClass \-> \-\-driver\-class.
5262
+
5263
+ postman dataset jdbc inspect ./drivers/postgresql\-42.7.4.jar
5264
+ postman dataset source add \-d ./orders.dataset.yaml \-n orders \-\-type jdbc \e
5265
+ \-\-driver\-jar ./drivers/postgresql\-42.7.4.jar \e
5266
+ \-\-url\-template 'jdbc:postgresql://{{host}}:{{port}}/{{database}}' \e
5267
+ \-\-var host=db.internal \-\-var port=5432 \-\-var database=shop \e
5268
+ \-\-var user=vault:acme/pg\-user \-\-var password=vault:acme/pg\-pass
5269
+
5270
+ Reuse that driver for a second source, no rediscovery needed:
5271
+ postman dataset source add \-d ./orders.dataset.yaml \-n refunds \-\-type jdbc \e
5272
+ \-\-from\-source orders \-\-var host=db.internal \-\-var port=5432 \-\-var database=refunds
5273
+
5274
+ Secrets:
5275
+ \-\-var <k>=vault:<vaultId>/<secretId> reference a Shared Vault secret (preferred)
5276
+ \-\-var <k>=<literal> plaintext: visible in `ps` output and shell
5277
+ history, and stored in clear text in the
5278
+ dataset YAML. Warned about at run time.
5279
+ A secret written directly into \-\-url\-template is rejected: a literal has no
5280
+ {{name}} to route through \-\-var, so it can never be a Vault reference and
5281
+ nothing masks it. Use a placeholder plus \-\-var instead.
5282
+ \-\-vars\-file <path|\-> JSON object; "\-" reads stdin, keeping
5283
+ secrets out of argv entirely. Accepts
5284
+ {"$vaultId":..,"$secretId":..} values.
5285
+ Local Vault secrets are not supported by Postman CLI; use a Shared Vault.
5286
+
5287
+ Connection test:
5288
+ Runs before the source is written, so a source that cannot connect is never
5289
+ persisted. Needs a local JRE and a loadable driver. Pass \-\-no\-test to skip it.
5290
+ \-\-no\-test alone still needs Java to resolve the driver class; on a machine with
5291
+ no Java at all, add \-\-driver\-class or \-\-from\-source so nothing has to load it.
5292
+
5293
+ JSON output (\-\-json):
5294
+ Success: {"ok":true,"source":{"id","name","target","format","driver",
5295
+ "urlTemplate","connectionTest"},"warnings":[...]}
5296
+ Failure: {"ok":false,"error":{"code","message","remediation",...context}}
5297
+ Both go to stdout, so `\-\-json 2>/dev/null | jq .` parses either way.
5298
+ Error codes: DRIVER_FILE_NOT_FOUND, DRIVER_CLASS_NOT_FOUND,
5299
+ DRIVER_CLASS_AMBIGUOUS (with candidates[]), URL_TEMPLATE_INVALID,
5300
+ CONFIG_VALUE_MISSING (with missing[]), URL_TEMPLATE_LITERAL_SECRET,
5301
+ VAULT_REFERENCE_INVALID,
5302
+ VARS_FILE_UNREADABLE, VARS_FILE_INVALID, SOURCE_NOT_FOUND, SOURCE_NOT_JDBC,
5303
+ JAVA_NOT_FOUND, JAVA_UNSUPPORTED, DRIVER_LOAD_FAILED, CONNECTION_FAILED,
5304
+ CONNECTION_TIMEOUT, SECRET_RESOLUTION_FAILED, INVALID_ARGUMENT
5305
+ Warning codes: PLAINTEXT_SECRET, CONNECTION_NOT_TESTED, NO_VARIABLES,
5306
+ EMPTY_VARIABLE_VALUE, NAME_NOT_SQL_SAFE, TRUST_SERVER_CERTIFICATE,
5307
+ SSH_VALUES_IN_ARGV, SSH_HOST_KEY_UNVERIFIED
5308
+ LOCAL_VAULT_UNSUPPORTED, SOURCE_NAME_CONFLICT, SOURCE_ID_CONFLICT and
5309
+ DATASET_FILE_CHANGED are also possible; DATASET_COMMAND_FAILED is the
5310
+ fallback for anything unclassified.
5311
+
5169
5312
 
5170
5313
 
5171
5314
  .SS "dataset source remove"
@@ -5217,6 +5360,42 @@ With \-\-file, reference in place instead of copying (local dataset only)
5217
5360
  .B \-\-force
5218
5361
  With \-\-file, overwrite the copied destination (local dataset only)
5219
5362
  .TP
5363
+ .B \-\-driver\-jar <path...>
5364
+ Replace the JDBC driver JAR(s)
5365
+ .TP
5366
+ .B \-\-driver\-class <fqcn>
5367
+ Replace the JDBC driver class
5368
+ .TP
5369
+ .B \-\-driver\-name <label>
5370
+ Rename the JDBC driver type label
5371
+ .TP
5372
+ .B \-\-url\-template <template>
5373
+ Replace the JDBC URL template
5374
+ .TP
5375
+ .B \-\-var <name=value...>
5376
+ Set a JDBC template variable. Merges onto the existing values. Use vault:<vaultId>/<secretId> for a secret. WARNING: a literal value is visible in `ps` output and shell history, and is stored in clear text in the dataset YAML (local) or sent in the request body (cloud). Prefer a Shared Vault reference.
5377
+ .TP
5378
+ .B \-\-prop <name=value...>
5379
+ Set a JDBC connection property. Merges, same vault: syntax
5380
+ .TP
5381
+ .B \-\-unset\-var <name...>
5382
+ Remove a JDBC template variable. Merging alone can never remove a key
5383
+ .TP
5384
+ .B \-\-unset\-prop <name...>
5385
+ Remove a JDBC connection property
5386
+ .TP
5387
+ .B \-\-vars\-file <path>
5388
+ JSON object of \-\-var values; "\-" reads stdin
5389
+ .TP
5390
+ .B \-\-ssh\-target\-host\-variable <name>
5391
+ Template variable holding the tunnelled host (JDBC)
5392
+ .TP
5393
+ .B \-\-ssh\-target\-port\-variable <name>
5394
+ Template variable holding the tunnelled port (JDBC)
5395
+ .TP
5396
+ .B \-\-java\-path <path>
5397
+ Java runtime for JDBC operations. Machine\-local only
5398
+ .TP
5220
5399
  .B \-\-host <host>
5221
5400
  Update DB host (mysql/postgresql/sqlserver)
5222
5401
  .TP
@@ -5224,10 +5403,10 @@ Update DB host (mysql/postgresql/sqlserver)
5224
5403
  Update DB port
5225
5404
  .TP
5226
5405
  .B \-\-user <user>
5227
- Update DB user (warning: stored as plaintext in the YAML).
5406
+ Update DB user. WARNING: a literal value is visible in `ps` output and shell history, and is stored in clear text in the dataset YAML (local) or sent in the request body (cloud). Prefer a Shared Vault reference.
5228
5407
  .TP
5229
5408
  .B \-\-password <password>
5230
- Update DB password. WARNING: passing it here exposes it in `ps` output and shell history, and it is stored as plaintext in the dataset YAML (local) or sent in the request body (cloud). Prefer a restricted DB user; secure input (prompt / stdin / env) is planned.
5409
+ Update DB password. WARNING: a literal value is visible in `ps` output and shell history, and is stored in clear text in the dataset YAML (local) or sent in the request body (cloud). Prefer a Shared Vault reference.
5231
5410
  .TP
5232
5411
  .B \-\-database <db>
5233
5412
  Update DB database name
@@ -5279,6 +5458,9 @@ Update SQL Server minimum TLS version
5279
5458
  .TP
5280
5459
  .B \-\-api\-key <key>
5281
5460
  Postman API key (defaults to the `postman login` session)
5461
+ .TP
5462
+ .B \-\-json
5463
+ Emit the result as JSON instead of prose
5282
5464
 
5283
5465
  .TP Examples:
5284
5466
 
@@ -5288,6 +5470,73 @@ Examples:
5288
5470
  postman dataset source update orders\-db \e
5289
5471
  \-d 14e30f6c\-1234\-1234\-1234\-cafef00dc0de \-\-host db.internal.example
5290
5472
 
5473
+ JDBC:
5474
+ Rotate one credential, leaving everything else alone:
5475
+ postman dataset source update orders \-d ./orders.dataset.yaml \e
5476
+ \-\-var password=vault:acme/pg\-pass\-2024\-11
5477
+
5478
+ Remove a variable the template no longer uses:
5479
+ postman dataset source update orders \-d ./orders.dataset.yaml \e
5480
+ \-\-url\-template 'jdbc:postgresql://{{host}}:{{port}}/{{database}}' \-\-unset\-var schema
5481
+
5482
+ Merge semantics: \-\-var and \-\-prop add to what is already stored, so you need
5483
+ not restate the whole connection. \-\-unset\-var and \-\-unset\-prop exist because
5484
+ merging alone can never remove a key. The template is validated against the
5485
+ MERGED values, so removing one the URL still needs fails here rather than at
5486
+ connect time.
5487
+
5488
+ Run `postman dataset source test \-d <dataset> \-n <name>` afterwards to check
5489
+ the change actually connects.
5490
+
5491
+
5492
+
5493
+ .SS "dataset source test"
5494
+ Open and close a real connection using a source's stored configuration.
5495
+
5496
+ .B Usage:
5497
+ [options]
5498
+
5499
+ .B Options:
5500
+ .TP
5501
+ .B \-d, \-\-dataset <datasetPathOrId>
5502
+ Dataset the source belongs to — a local .dataset.yaml path or a cloud dataset id
5503
+ .TP
5504
+ .B \-n, \-\-name <name>
5505
+ Source to test
5506
+ .TP
5507
+ .B \-\-java\-path <path>
5508
+ Java runtime to use for a JDBC source. Machine\-local only; also read from POSTMAN_JDBC_JAVA_PATH
5509
+ .TP
5510
+ .B \-\-api\-key <key>
5511
+ Postman API key (defaults to the `postman login` session)
5512
+ .TP
5513
+ .B \-\-json
5514
+ Emit the result as JSON instead of prose
5515
+
5516
+ .TP Examples:
5517
+
5518
+ Examples:
5519
+ postman dataset source test \-d ./orders.dataset.yaml \-n orders
5520
+ postman dataset source test \-d 14e30f6c\-1234\-1234\-1234\-cafef00dc0de \-n orders \-\-json
5521
+
5522
+ What it is for:
5523
+ When a query fails, this separates "the source is broken" from "the SQL is
5524
+ wrong". It uses the stored configuration, resolving any Vault references the
5525
+ same way a real query would.
5526
+
5527
+ Applies to database and JDBC sources. File and URL sources have no connection
5528
+ to test and report SOURCE_NOT_TESTABLE.
5529
+
5530
+ JSON output (\-\-json):
5531
+ Success: {"ok":true,"source":{"name","format"},"connectionTest":{"status":"passed"},
5532
+ "warnings":[]}
5533
+ Failure: {"ok":false,"error":{"code","message","remediation"}}
5534
+ Both go to stdout, so `\-\-json 2>/dev/null | jq .` parses either way.
5535
+ Error codes: SOURCE_NOT_FOUND (with available[]), SOURCE_NOT_TESTABLE,
5536
+ SOURCE_NOT_JDBC, SOURCE_CONFIG_UNAVAILABLE, CONNECTION_FAILED,
5537
+ CONN_AUTH_FAILED, CONNECTION_TIMEOUT, JAVA_NOT_FOUND, DRIVER_LOAD_FAILED,
5538
+ HOST_PROTOCOL_ERROR, SECRET_RESOLUTION_FAILED, DATASET_COMMAND_FAILED
5539
+
5291
5540
 
5292
5541
 
5293
5542
  .SS "dataset view"
@@ -5389,9 +5638,15 @@ View name
5389
5638
  .B \-q, \-\-query <sql>
5390
5639
  SQL query the view executes
5391
5640
  .TP
5641
+ .B \-s, \-\-source <nameOrIdOrSlug>
5642
+ Bind the view to one datasource and run the query natively against it, instead of through the federated SQLite layer. Same reference `dataset query \-s` takes
5643
+ .TP
5392
5644
  .B \-\-view\-id <uuid>
5393
5645
  Override the generated view id (local only; cloud assigns its own)
5394
5646
  .TP
5647
+ .B \-\-json
5648
+ Emit the result as JSON instead of prose
5649
+ .TP
5395
5650
  .B \-\-api\-key <key>
5396
5651
  Postman API key (defaults to the `postman login` session)
5397
5652
 
@@ -5403,6 +5658,22 @@ Examples:
5403
5658
  postman dataset view create \-d 14e30f6c\-1234\-1234\-1234\-cafef00dc0de \e
5404
5659
  \-n "Active Users" \-q "SELECT * FROM users WHERE active = true"
5405
5660
 
5661
+ Native view against one source (JDBC, MySQL, Postgres, SQL Server):
5662
+ postman dataset view create \-d ./orders.dataset.yaml \-n recent \e
5663
+ \-\-source orders \-q "SELECT * FROM orders WHERE created_at > now() \- interval '1 day'"
5664
+
5665
+ Federated vs native:
5666
+ Without \-\-source the query runs through the federated SQLite layer and can
5667
+ join across sources. With \-\-source it is sent to that one datasource in its
5668
+ own SQL dialect, which is what JDBC sources need. Mirrors `dataset query \-s`.
5669
+
5670
+ JSON output (\-\-json):
5671
+ Success: {"ok":true,"view":{"id","name","target","datasourceId","viewType"},
5672
+ "warnings":[]}
5673
+ Failure: {"ok":false,"error":{"code","message","remediation"}}
5674
+ Error codes: SOURCE_NOT_FOUND (with available[]), DATASET_FILE_CHANGED,
5675
+ DATASET_FILE_UNWRITABLE, DATASET_COMMAND_FAILED
5676
+
5406
5677
 
5407
5678
 
5408
5679
  .SS "dataset view delete"
@@ -5457,6 +5728,71 @@ Examples:
5457
5728
 
5458
5729
 
5459
5730
 
5731
+ .SS "dataset jdbc"
5732
+ Inspect JDBC drivers before attaching one to a dataset.
5733
+
5734
+ .B Usage:
5735
+ [options] [command]
5736
+
5737
+ .B Subcommands:
5738
+ .TP
5739
+ .B dataset jdbc inspect
5740
+ Detect Java, list driver classes, suggest a URL template and read driver properties.
5741
+
5742
+ .SS "dataset jdbc inspect"
5743
+ Detect Java, list driver classes, suggest a URL template and read driver properties.
5744
+
5745
+ .B Usage:
5746
+ [options] [jar...]
5747
+
5748
+ .B Options:
5749
+ .TP
5750
+ .B \-\-driver\-class <fqcn>
5751
+ Introspect this class instead of auto\-selecting
5752
+ .TP
5753
+ .B \-\-url\-template <template>
5754
+ Use this URL template instead of the one inferred from the JAR filename
5755
+ .TP
5756
+ .B \-\-java\-path <path>
5757
+ Java runtime to use. Machine\-local only — never written to a dataset. Also read from POSTMAN_JDBC_JAVA_PATH.
5758
+ .TP
5759
+ .B \-\-json
5760
+ Emit the discovery result as JSON
5761
+
5762
+ .TP Examples:
5763
+
5764
+ Examples:
5765
+ postman dataset jdbc inspect ./drivers/postgresql\-42.7.3.jar
5766
+ postman dataset jdbc inspect ./drivers/mysql\-connector\-j\-8.4.0.jar \-\-json
5767
+ postman dataset jdbc inspect ./a.jar ./b.jar \-\-driver\-class com.acme.Driver
5768
+
5769
+ What it reports:
5770
+ The Java runtime it found, every java.sql.Driver class in the artifacts,
5771
+ a suggested URL template, that template's {{variables}}, and the
5772
+ connection properties the driver accepts.
5773
+
5774
+ Feeding the result into `source add`:
5775
+ suggestedUrlTemplate \-> \-\-url\-template
5776
+ templateVariables[] \-> \-\-var <name>=<value>
5777
+ connectionProperties[] \-> \-\-prop <name>=<value>
5778
+ driverClass \-> \-\-driver\-class (only needed when ambiguous)
5779
+
5780
+ JSON output (\-\-json):
5781
+ Success: {"ok":true,"java":{...},"drivers":[...],"suggestedUrlTemplate":"...",
5782
+ "templateVariables":[...],"connectionProperties":[...],"warnings":[...]}
5783
+ Failure: {"ok":false,"error":{"code":...,"message":...,"remediation":...}}
5784
+ Error codes: JAVA_NOT_FOUND, JAVA_UNSUPPORTED, DRIVER_FILE_NOT_FOUND,
5785
+ DRIVER_FILE_UNREADABLE, DRIVER_INCOMPATIBLE, DRIVER_LOAD_FAILED,
5786
+ DRIVER_CLASS_NOT_FOUND, URL_TEMPLATE_INVALID, HOST_START_FAILED
5787
+ Warning codes: DRIVER_CLASS_AMBIGUOUS, DRIVER_PROPERTIES_EMPTY,
5788
+ DRIVER_PROPERTIES_UNAVAILABLE, URL_TEMPLATE_INVALID
5789
+ `minimumJavaMajorVersion` is present when the artifacts declare one.
5790
+
5791
+ Several driver classes in one JAR is reported, not an error. Re\-run with
5792
+ \-\-driver\-class to read that driver's connection properties.
5793
+
5794
+
5795
+
5460
5796
  .SS "dependency"
5461
5797
  Manage workspace dependencies (Postman entities reused from other workspaces).
5462
5798
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "postman-cli",
3
- "version": "1.59.0",
3
+ "version": "1.60.0",
4
4
  "description": "Official Postman CLI - Command-line companion for API development, testing, and automation",
5
5
  "keywords": [
6
6
  "postman",
@@ -58,10 +58,10 @@
58
58
  "man/"
59
59
  ],
60
60
  "optionalDependencies": {
61
- "@postman/pm-bin-macos-arm64": "1.59.0",
62
- "@postman/pm-bin-macos-x64": "1.59.0",
63
- "@postman/pm-bin-linux-x64": "1.59.0",
64
- "@postman/pm-bin-linux-arm64": "1.59.0",
65
- "@postman/pm-bin-windows-x64": "1.59.0"
61
+ "@postman/pm-bin-macos-arm64": "1.60.0",
62
+ "@postman/pm-bin-macos-x64": "1.60.0",
63
+ "@postman/pm-bin-linux-x64": "1.60.0",
64
+ "@postman/pm-bin-linux-arm64": "1.60.0",
65
+ "@postman/pm-bin-windows-x64": "1.60.0"
66
66
  }
67
67
  }