home / github

Menu
  • Search all tables
  • GraphQL API

issues

Table actions
  • GraphQL API for issues

19 rows where "updated_at" is on date 2022-12-13 and user = 9599 sorted by updated_at descending

✖
✖
✖

✎ View and edit SQL

This data as json, CSV (advanced)

Suggested facets: milestone, comments, updated_at, state_reason, created_at (date), updated_at (date), closed_at (date)

type 2

  • issue 17
  • pull 2

state 2

  • open 12
  • closed 7

repo 1

  • datasette 19
id node_id number title user state locked assignee milestone comments created_at updated_at ▲ closed_at author_association pull_request body repo type active_lock_reason performed_via_github_app reactions draft state_reason
1495241162 I_kwDOBm6k_c5ZH5HK 1950 Bad ?_sort returns a 500 error, should be a 400 simonw 9599 closed 0     2 2022-12-13T22:08:16Z 2022-12-13T22:23:22Z 2022-12-13T22:23:22Z OWNER  

https://latest.datasette.io/fixtures/facetable?_sort=bad

datasette 107914493 issue    
{
    "url": "https://api.github.com/repos/simonw/datasette/issues/1950/reactions",
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  completed
1468689139 I_kwDOBm6k_c5Ximrz 1914 Finalize design of JSON for Datasette 1.0 simonw 9599 open 0   Datasette 1.0a-next 8755003 1 2022-11-29T20:59:10Z 2022-12-13T06:15:54Z   OWNER  

Tracking issue.

  • [ ] #1709
  • [ ] #1729
  • [ ] #1875
datasette 107914493 issue    
{
    "url": "https://api.github.com/repos/simonw/datasette/issues/1914/reactions",
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
   
1468495358 I_kwDOBm6k_c5Xh3X- 1910 Check incoming column types on various write APIs simonw 9599 open 0   Datasette 1.0a-next 8755003 0 2022-11-29T18:09:10Z 2022-12-13T05:29:09Z   OWNER  

I do think this needs type checking - I just tried and you really can send a string to an integer column and have it work, which feels bad.

Originally posted by @simonw in https://github.com/simonw/datasette/issues/1863#issuecomment-1331089156

datasette 107914493 issue    
{
    "url": "https://api.github.com/repos/simonw/datasette/issues/1910/reactions",
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
   
1428630253 I_kwDOBm6k_c5VJyrt 1873 Ensure insert API has good tests for rowid and compound primark key tables simonw 9599 open 0   Datasette 1.0a-next 8755003 11 2022-10-30T06:22:17Z 2022-12-13T05:29:08Z   OWNER  

Following: - #1866

I need to design and implement various edge-cases or primary keys:

  • Table without an auto-incrementing primary key
  • Table with compound primary keys
  • Table with just a rowid
datasette 107914493 issue    
{
    "url": "https://api.github.com/repos/simonw/datasette/issues/1873/reactions",
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  reopened
1430797211 I_kwDOBm6k_c5VSDub 1875 Figure out design for JSON errors (consider RFC 7807) simonw 9599 open 0   Datasette 1.0a-next 8755003 7 2022-11-01T03:14:15Z 2022-12-13T05:29:08Z   OWNER  

https://datatracker.ietf.org/doc/draft-ietf-httpapi-rfc7807bis/ is a brand new standard.

Since I need a neat, predictable format for my JSON errors, maybe I should use this one?

datasette 107914493 issue    
{
    "url": "https://api.github.com/repos/simonw/datasette/issues/1875/reactions",
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
   
1447465004 I_kwDOBm6k_c5WRpAs 1889 Ability to create new tokens via the API simonw 9599 open 0   Datasette 1.0a-next 8755003 0 2022-11-14T06:21:36Z 2022-12-13T05:29:08Z   OWNER  

Refs: - #1850

Initially I decided that the API shouldn't be able to create new tokens at all - I don't like the idea of an API token holder creating themselves additional tokens.

Then I realized that two of the API features are specifically more useful if you can generate fresh tokens via the API:

  • Tokes that expire after a time limit are MUCH more useful if they can be automatically generated
  • Likewise, tokens that are restricted to a subset of permissions (see #1855) make more sense to be generated like this, especially in conjunction with expiry times
datasette 107914493 issue    
{
    "url": "https://api.github.com/repos/simonw/datasette/issues/1889/reactions",
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
   
1216436131 I_kwDOBm6k_c5IgVej 1721 Implement plugin hooks: `register_table_extras`, `register_row_extras`, `register_query_extras` simonw 9599 open 0   Datasette 1.0a-next 8755003 0 2022-04-26T20:21:49Z 2022-12-13T05:29:07Z   OWNER  

Designed in: - #1720

Part of: - #262 - #1709

datasette 107914493 issue    
{
    "url": "https://api.github.com/repos/simonw/datasette/issues/1721/reactions",
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
   
1219385669 I_kwDOBm6k_c5IrllF 1729 Implement ?_extra and new API design for TableView simonw 9599 open 0   Datasette 1.0a-next 8755003 12 2022-04-28T22:28:14Z 2022-12-13T05:29:07Z   OWNER  

Part of: - #262 - #1518

datasette 107914493 issue    
{
    "url": "https://api.github.com/repos/simonw/datasette/issues/1729/reactions",
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
   
1200649124 I_kwDOBm6k_c5HkHOk 1708 Datasette 1.0 alpha upcoming release notes simonw 9599 open 0   Datasette 1.0a-next 8755003 2 2022-04-11T22:57:12Z 2022-12-13T05:29:06Z   OWNER  

I'm going to try writing the release notes first, to see if that helps unblock me.

⚠️ Any release notes in this issue are a draft, and should not be treated as the real thing ⚠️

datasette 107914493 issue    
{
    "url": "https://api.github.com/repos/simonw/datasette/issues/1708/reactions",
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
   
1200649502 I_kwDOBm6k_c5HkHUe 1709 Redesigned JSON API with ?_extra= parameters simonw 9599 open 0   Datasette 1.0a-next 8755003 1 2022-04-11T22:57:49Z 2022-12-13T05:29:06Z   OWNER  

This will be the single biggest breaking change for the 1.0 release.

datasette 107914493 issue    
{
    "url": "https://api.github.com/repos/simonw/datasette/issues/1709/reactions",
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
   
1200650491 I_kwDOBm6k_c5HkHj7 1711 Template context powered entirely by the JSON API format simonw 9599 open 0   Datasette 1.0a-next 8755003 1 2022-04-11T22:59:27Z 2022-12-13T05:29:06Z   OWNER  

Datasette 1.0 will have a stable template context. I'm going to achieve this by refactoring the templates to work only with keys returned by the API (or some of its extras) - then the API documentation will double up as template documentation.

datasette 107914493 issue    
{
    "url": "https://api.github.com/repos/simonw/datasette/issues/1711/reactions",
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
   
1197926598 I_kwDOBm6k_c5HZujG 1705 How to upgrade your plugin for 1.0 documentation simonw 9599 open 0   Datasette 1.0a-next 8755003 1 2022-04-08T23:16:47Z 2022-12-13T05:29:05Z   OWNER  

Among other things, needed by: - #1704

datasette 107914493 issue    
{
    "url": "https://api.github.com/repos/simonw/datasette/issues/1705/reactions",
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
   
1485488236 PR_kwDOBm6k_c5E1iJG 1938 "permissions" blocks in metadata.json/yaml simonw 9599 closed 0   Datasette 1.0a2 8711695 3 2022-12-08T22:07:36Z 2022-12-13T05:23:18Z 2022-12-13T05:23:18Z OWNER simonw/datasette/pulls/1938

Refs #1636

  • [x] Documentation
  • [ ] Implementation
  • [ ] Validate metadata to check there are no nonsensical permissions (like debug-menu set at the table level)
  • [ ] Tests

:books: Documentation preview :books:: https://datasette--1938.org.readthedocs.build/en/1938/

datasette 107914493 pull    
{
    "url": "https://api.github.com/repos/simonw/datasette/issues/1938/reactions",
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
0  
1493404423 I_kwDOBm6k_c5ZA4sH 1948 500 error on permission debug page when testing actors with _r simonw 9599 open 0     1 2022-12-13T05:22:03Z 2022-12-13T05:22:19Z   OWNER  

The 500 error is silent unless you are looking at the DevTools network pane.

datasette 107914493 issue    
{
    "url": "https://api.github.com/repos/simonw/datasette/issues/1948/reactions",
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
   
1493339206 I_kwDOBm6k_c5ZAoxG 1946 `datasette --get` mechanism for sending tokens simonw 9599 closed 0   Datasette 1.0a2 8711695 2 2022-12-13T04:25:05Z 2022-12-13T04:36:57Z 2022-12-13T04:36:57Z OWNER  

For the tests for datasette create-token it would be useful if datasette --get had a mechanism for sending an Authorization: Bearer X header.

Originally posted by @simonw in https://github.com/simonw/datasette/issues/1855#issuecomment-1347731288

datasette 107914493 issue    
{
    "url": "https://api.github.com/repos/simonw/datasette/issues/1946/reactions",
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  completed
1493306655 I_kwDOBm6k_c5ZAg0f 1945 `view-instance` should not be checked for /-/actor.json simonw 9599 closed 0   Datasette 1.0a2 8711695 0 2022-12-13T04:01:46Z 2022-12-13T04:11:56Z 2022-12-13T04:11:56Z OWNER  

Spotted this while testing:

  • 1855

    export TOKEN=$(datasette create-token root --secret s -a foo) curl -H "Authorization: Bearer $TOKEN" http://localhost:8002/-/actor.json Returned a Forbidden error (and not in JSON either).
datasette 107914493 issue    
{
    "url": "https://api.github.com/repos/simonw/datasette/issues/1945/reactions",
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  completed
1138008042 I_kwDOBm6k_c5D1J_q 1636 "permissions" propery in metadata for configuring arbitrary permissions simonw 9599 closed 0   Datasette 1.0a2 8711695 14 2022-02-15T00:25:59Z 2022-12-13T02:40:50Z 2022-12-13T02:40:50Z OWNER  

The "allow" block mechanism can already be used to configure various default permissions. When adding permissions to datasette-tiddlywiki I realized it would be good to be able to configure arbitrary permissions such as edit-tiddlywiki there too.

datasette 107914493 issue    
{
    "url": "https://api.github.com/repos/simonw/datasette/issues/1636/reactions",
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  completed
1485757511 I_kwDOBm6k_c5YjtxH 1939 register_permissions(datasette) plugin hook simonw 9599 closed 0   Datasette 1.0a2 8711695 20 2022-12-09T01:33:25Z 2022-12-13T02:07:50Z 2022-12-13T02:05:56Z OWNER  

A plugin hook that adds more named permissions to the list which is initially populated here:

https://github.com/simonw/datasette/blob/e539c1c024bc62d88df91d9107cbe37e7f0fe55f/datasette/permissions.py#L1-L19

Originally imagined this hook in this comment:

  • https://github.com/simonw/datasette/issues/1881#issuecomment-1301639370

I need this for a few reasons:

  • https://github.com/simonw/datasette/issues/1636
  • Needs it in order to validate that permissions defined in metadata.json are set in the right place (don't set an instance permissions at table level for example)
  • https://github.com/simonw/datasette/issues/1855
  • Needs it to be able to register additional abbreviations for use in signed cookies
  • And for validation when you use datasette create-token and pass in extra permissions
  • The https://latest.datasette.io/-/permissions debug interface needs it to add extra debug options to the <select>
datasette 107914493 issue    
{
    "url": "https://api.github.com/repos/simonw/datasette/issues/1939/reactions",
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  completed
1486011362 PR_kwDOBm6k_c5E3XqB 1940 register_permissions() plugin hook simonw 9599 closed 0   Datasette 1.0a2 8711695 6 2022-12-09T05:09:28Z 2022-12-13T02:05:55Z 2022-12-13T02:05:54Z OWNER simonw/datasette/pulls/1940

Refs #1939

From this comment: https://github.com/simonw/datasette/issues/1939#issuecomment-1343872168

  • [x] Unit test for the registration plugin hook itself
  • [x] Use them in check_permission_actions_are_documented test in conftest.py
  • [x] Add description field to Permissions (and update tests and docs)
  • [x] Documentation for datasette.permissions dictionary
  • [x] If no default= provided in call to permission_allowed() then use default from datasette.permissions list
  • [x] Remove default= from a bunch of places
  • [x] Throw an error if two permissions are registered with the same name or abbreviation (but other attributes differ)
  • [x] Update authentication and permissions documentation to explain that permissions are now registered and have a registered default

:books: Documentation preview :books:: https://datasette--1940.org.readthedocs.build/en/1940/

datasette 107914493 pull    
{
    "url": "https://api.github.com/repos/simonw/datasette/issues/1940/reactions",
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
0  

Advanced export

JSON shape: default, array, newline-delimited, object

CSV options:

CREATE TABLE [issues] (
   [id] INTEGER PRIMARY KEY,
   [node_id] TEXT,
   [number] INTEGER,
   [title] TEXT,
   [user] INTEGER REFERENCES [users]([id]),
   [state] TEXT,
   [locked] INTEGER,
   [assignee] INTEGER REFERENCES [users]([id]),
   [milestone] INTEGER REFERENCES [milestones]([id]),
   [comments] INTEGER,
   [created_at] TEXT,
   [updated_at] TEXT,
   [closed_at] TEXT,
   [author_association] TEXT,
   [pull_request] TEXT,
   [body] TEXT,
   [repo] INTEGER REFERENCES [repos]([id]),
   [type] TEXT
, [active_lock_reason] TEXT, [performed_via_github_app] TEXT, [reactions] TEXT, [draft] INTEGER, [state_reason] TEXT);
CREATE INDEX [idx_issues_repo]
                ON [issues] ([repo]);
CREATE INDEX [idx_issues_milestone]
                ON [issues] ([milestone]);
CREATE INDEX [idx_issues_assignee]
                ON [issues] ([assignee]);
CREATE INDEX [idx_issues_user]
                ON [issues] ([user]);
Powered by Datasette · Queries took 451.835ms · About: github-to-sqlite
  • Sort ascending
  • Sort descending
  • Facet by this
  • Hide this column
  • Show all columns
  • Show not-blank rows