Commit graph

56 commits

Author SHA1 Message Date
Simon Willison
7b3a15027e Add instances command, improve error messages with actionable hints
Add "dclient instances" command to list known instances from config,
with --json support.

Improve "No instance specified" and "No database specified" error
messages to show the exact commands needed to fix the problem.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 15:25:57 -08:00
Simon Willison
3f3221fdd3 Update README and docs index for v2
Update examples to use v2 command syntax with -i flag and alias
defaults. Add quick start section showing alias add/default/default-db
workflow. Add introspection commands section. Add environment.md to
docs toctree.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 15:22:12 -08:00
Simon Willison
742d46de05 v1 to v2 config migration with tests
Add _migrate_v1_to_v2() to convert aliases.json to config.json format.
Single-path-segment URLs are split into instance URL + default_database.
Auth keys are migrated from URLs to alias names. Original files are
backed up as .bak.

7 tests covering simple migration, no path segment, auth migration,
URL fallback for unmatched auth, skip if config exists, skip if no
aliases, and multi-path-segment URLs.

refs #29

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 15:22:05 -08:00
Simon Willison
92c0d2a5ba Tests and docs for v2 introspection commands and alias features
Add test_commands_v2.py with 28 tests covering databases, tables,
plugins, schema, default_query, upsert, auth status, actor, and
get commands.

Add test_alias_v2.py with 5 tests for alias default, alias default-db,
and removing the default alias.

Update aliases.md and authentication.md docs for v2 API.

refs #29

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 15:21:58 -08:00
Simon Willison
3621f13263 v2 config system, CLI rewrite, and updated core commands
Replace aliases.json with config.json storing instances with
default_database. Instance resolution: -i flag → config default →
DATASETTE_URL. Database resolution: -d flag → instance default_database →
DATASETTE_DATABASE. Token resolution: --token → auth.json by alias →
auth.json by URL → DATASETTE_TOKEN.

Add click-default-group dependency for bare SQL shortcut support.
Add DCLIENT_CONFIG_DIR env var to override config directory.

Rewrite query, insert, get, and actor commands for v2 API where
instance is always -i flag. Add upsert command sharing insert
implementation. Add databases, tables, schema, plugins commands.
Add default_query hidden command for bare SQL shortcut.

Add alias default, alias default-db subcommands.
Add auth status subcommand.

refs #29

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 15:21:52 -08:00
Simon Willison
ff95969d10 Ran cog 2026-02-24 14:59:23 -08:00
Simon Willison
7c9c0b4f5f Spec for v2, refs #29 2026-02-24 14:57:54 -08:00
Simon Willison
f47738495d Add tables command to list tables in a database
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 14:57:18 -08:00
Simon Willison
8b98d971dd Add databases command to list databases on an instance
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 14:57:06 -08:00
Simon Willison
d1dfdbf6db Add get command for authenticated GET requests
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 14:56:54 -08:00
Simon Willison
1b4dc85974 actor command: make URL optional, fix actor URL construction
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 14:56:40 -08:00
Simon Willison
4cb77386c7 _resolve_url falls back to DATASETTE_URL when no URL provided
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 14:56:27 -08:00
Simon Willison
166798c87c Follow redirects on query
Means that the 1.0 feature where /db?sql is now /db/-/query?sql works
2026-02-23 22:14:00 -08:00
Simon Willison
32124a0bf3 Support DATASETTE_URL and DATASETTE_TOKEN environment variables
Allow configuring a base Datasette instance URL and API token via
environment variables, so users can run commands like
`dclient query data "select ..."` without specifying a full URL each time.

DATASETTE_URL is combined with the argument as a path segment.
DATASETTE_TOKEN is used as a lowest-priority fallback for auth.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-23 22:10:59 -08:00
Simon Willison
ab3aaf26f3 Fixed asyncio pattern for tests 2026-02-23 21:43:23 -08:00
Simon Willison
a157065c31 setup.py to pyproject.toml plus upgraded actions 2026-02-23 16:50:33 -08:00
Simon Willison
1a0fe65015 Upgrade Actions for publish of 0.4 0.4 2024-03-08 11:09:54 -05:00
Simon Willison
0d4ab72b68 Release 0.4
Refs #23, #25, #26
2024-02-27 21:09:26 -08:00
Simon Willison
ea3dc64fb9 dclient actor command, closes #26 2024-02-27 21:08:15 -08:00
Simon Willison
20851f6ed6 -v/--verbose option, closes #25 2024-02-27 20:52:15 -08:00
Simon Willison
adfa6cce14 insert --alter support, closes #23 2024-02-27 20:49:54 -08:00
Simon Willison
0e40a80c84 Deploy future packages with PyPI trusted actions 2024-02-25 11:38:22 -08:00
Simon Willison
5303067da3 Release 0.3 0.3
Refs #8, #16, #18, #19, #21, #22
2024-02-25 11:36:27 -08:00
Simon Willison
081aeb32a2 Example usage in --help, closes #22 2024-02-25 11:24:46 -08:00
Simon Willison
f0058258b2 cog --check as part of CI 2024-02-25 11:13:35 -08:00
Simon Willison
8c82f9a572 Rename 'datasette client' to 'datasette dt', closes #18
Refs https://github.com/simonw/datasette/issues/2153#issuecomment-1691763427
2024-02-25 11:10:53 -08:00
Simon Willison
44d7e2bf9e Docs for streaming and --interval, closes #21 2024-02-25 11:08:02 -08:00
Simon Willison
5a0a81b8da
Create .readthedocs.yaml 2024-02-24 17:44:06 -08:00
Simon Willison
37423fe772 Drop Python 3.7, add 3.12 2024-02-23 20:08:30 -08:00
Simon Willison
43b6850780 --interval option, refs #19 2024-02-23 20:08:30 -08:00
Simon Willison
59129824e3 Update for Datasette 1.0 alphas to pass tests 2024-02-23 19:56:56 -08:00
Simon Willison
66a3cdd3be Remove query -t shortcut - so I can use it for table later, refs #16 2023-07-24 21:52:53 -07:00
Simon Willison
a17b7f6e7d Add dclient insert --help to insert docs, refs #8 2023-07-24 21:35:50 -07:00
Simon Willison
ce62592540
Demonstrate aliases directly in the README 2023-07-24 21:33:46 -07:00
Simon Willison
829f27b8d1
Release 0.2 0.2
Refs #8, #13
2023-07-24 16:24:05 -07:00
Simon Willison
6b7297205f
Much of the functionality requires Datasette 1.0a2 or higher 2023-07-24 16:23:30 -07:00
Simon Willison
c847badc4e
dclient insert command (#13)
* Move making queries to own page, refs #7
* Documentation for the dclient insert feature, refs #8
* Implemented progress bar for insert, refs #8
* --pk option
* --ignore and --replace for insert, refs #8
* --batch-size option, refs #8
* First insert test, using a mock - refs #8
* insert test that exercises against an in-memory Datasette instance, refs #8
* Insert tests now cover an error case, refs #8
* Tests for --ignore and --replace, refs #8
* Tests for different formats, refs #8
* Test for --no-detect-types
* Support for --encoding, refs #8
2023-07-24 16:22:39 -07:00
Simon Willison
41916a7be0 Move making queries to own page, refs #7 2023-07-18 19:25:22 -07:00
Simon Willison
20f0e18a80 Ran Black 2023-07-17 16:50:43 -07:00
Simon Willison
823413a9a7
Documentation on ReadTheDocs using MyST
Refs #7
2023-07-17 16:48:50 -07:00
Simon Willison
8a205d81a3
dclient auth commands
Closes #3
2023-07-17 16:23:53 -07:00
Simon Willison
055d6a6ffc Swap appdirs for click.get_app_dir(), change dir from dclient to io.datasette.dclient - closes #10 2023-07-17 15:00:46 -07:00
Simon Willison
c0d25a7512 Fixed failing test 2023-07-17 14:59:34 -07:00
Simon Willison
d59c680ffd
cache-dependency-path: setup.py 2022-11-21 23:00:33 -08:00
Simon Willison
ca301dcbe3
cache-dependency-path: setup.py 2022-11-21 22:59:12 -08:00
Simon Willison
aea4d3fd50 Test on Python 3.11, upgrade workflows 2022-11-21 22:35:34 -08:00
Simon Willison
2c9af739c2 Test for datasette plugin registration, refs #4 2022-11-21 22:31:48 -08:00
Simon Willison
bf6c709804
Release 0.1a2 0.1a2
Refs #4
2022-11-21 21:38:39 -08:00
Simon Willison
c30bd7e9bf
Docs for "datasette client" plugin mode
Refs #4
2022-11-21 21:38:14 -08:00
Simon Willison
02cf4c0cf2 Register as a Datasette plugin too, refs #4 2022-11-21 21:33:24 -08:00