{"id":19680410,"url":"https://github.com/datasette/datasette-write-ui","last_synced_at":"2025-09-01T08:14:27.073Z","repository":{"id":182352472,"uuid":"665620099","full_name":"datasette/datasette-write-ui","owner":"datasette","description":"A Datasette plugin that adds UI elements to edit, insert, or delete rows in SQLite tables","archived":false,"fork":false,"pushed_at":"2025-01-14T18:36:18.000Z","size":66,"stargazers_count":20,"open_issues_count":16,"forks_count":3,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-08-19T02:26:06.350Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/datasette.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2023-07-12T15:51:50.000Z","updated_at":"2025-07-01T14:58:25.000Z","dependencies_parsed_at":"2025-01-14T19:38:22.947Z","dependency_job_id":"9d1ebaf1-aee5-4385-8229-f7c9071315ba","html_url":"https://github.com/datasette/datasette-write-ui","commit_stats":null,"previous_names":["datasette-io/datasette-write-ui","datasette/datasette-write-ui"],"tags_count":12,"template":false,"template_full_name":null,"purl":"pkg:github/datasette/datasette-write-ui","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/datasette%2Fdatasette-write-ui","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/datasette%2Fdatasette-write-ui/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/datasette%2Fdatasette-write-ui/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/datasette%2Fdatasette-write-ui/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/datasette","download_url":"https://codeload.github.com/datasette/datasette-write-ui/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/datasette%2Fdatasette-write-ui/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":273094138,"owners_count":25044439,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-01T02:00:09.058Z","response_time":120,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-11T18:05:03.256Z","updated_at":"2025-09-01T08:14:27.051Z","avatar_url":"https://github.com/datasette.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# datasette-write-ui\n\n[![PyPI](https://img.shields.io/pypi/v/datasette-write-ui.svg)](https://pypi.org/project/datasette-write-ui/)\n[![Changelog](https://img.shields.io/github/v/release/datasette/datasette-write-ui?include_prereleases\u0026label=changelog)](https://github.com/datasette/datasette-write-ui/releases)\n[![Tests](https://github.com/datasette/datasette-write-ui/workflows/Test/badge.svg)](https://github.com/datasette/datasette-write-ui/actions?query=workflow%3ATest)\n[![License](https://img.shields.io/badge/license-Apache%202.0-blue.svg)](https://github.com/datasette/datasette-write-ui/blob/main/LICENSE)\n\nA Datasette plugin that adds UI elements to edit, insert, or delete rows in SQLite tables.\n\n## Installation\n\nThis plugin requires the alpha version of Datasette 1.0. You can install it with:\n\n```bash\npip install datasette==1.0a3\n```\n\nAfter that, you can install this plugin in the same environment as Datasette.\n\n```bash\ndatasette install datasette-write-ui\n```\n\n## Usage\n\nOnce installed, the new UI elements will appear on the table page. You'll need special permission in order to see them. The easiest way is to [use the root user](https://docs.datasette.io/en/latest/authentication.html#using-the-root-actor), or otherwise use a [custom actor](https://docs.datasette.io/en/latest/authentication.html#actors).\n\n\u003cimg width=600 src=\"https://camo.githubusercontent.com/f02dbf756d3ba7ed148a9e7263eb045fafcbb549733f37cd1350aafe54ff2c9f/68747470733a2f2f6461746173657474652d636c6f75642d6173736574732e73332e616d617a6f6e6177732e636f6d2f626c6f672f323032332f696e74726f647563696e672d6461746173657474652d77726974652d75692f75692d7461626c652d73637265656e73686f742e6a7067\"/\u003e\n\nIf you actor has the `insert-row` permissions, you'll see the \"Insert new row\" button at the bottom of the page.\n\n\u003cvideo src=\"https://datasette-cloud-assets.s3.amazonaws.com/blog/2023/introducing-datasette-write-ui/insert-demo.mp4\" width=600 controls autoplay type=\"video/mp4\" \u003e\u003c/video\u003e\n\nIf your actor has the `update-row` permissions, you'll see a new \"Edit row\" option in a new menu on each row.\n\n\u003cvideo src=\"https://datasette-cloud-assets.s3.amazonaws.com/blog/2023/introducing-datasette-write-ui/edit-demo.mp4\" width=600 controls autoplay type=\"video/mp4\" \u003e\u003c/video\u003e\n\nIf your actor has the `delete-row` permissions, you'll see a new \"Delete row\" option in a new menu on each row.\n\n\u003cvideo src=\"https://datasette-cloud-assets.s3.amazonaws.com/blog/2023/introducing-datasette-write-ui/delete-demo.mp4\" width=600 controls autoplay type=\"video/mp4\" \u003e\u003c/video\u003e\n\n## Development\n\nTo set up this plugin locally, first checkout the code. Then create a new virtual environment:\n```bash\ncd datasette-write-ui\npython3 -m venv venv\nsource venv/bin/activate\n```\nNow install the dependencies and test dependencies:\n```\npip install -e '.[test]'\n```\nTo install the JavaScript build dependencies, run this:\n```bash\nnpm install\n```\nYou can use the [Just](https://github.com/casey/just) command runner to build the TypeScript to minified JavaScript like this:\n```bash\njust js\n```\nTo run the tests:\n```bash\npytest\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdatasette%2Fdatasette-write-ui","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdatasette%2Fdatasette-write-ui","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdatasette%2Fdatasette-write-ui/lists"}