issue_comments
8,883 rows where user = 9599 sorted by updated_at descending
This data as json, CSV (advanced)
user 1
- simonw · 2,705 ✖
id | html_url | issue_url | node_id | user | created_at | updated_at ▲ | author_association | body | reactions | issue | performed_via_github_app |
---|---|---|---|---|---|---|---|---|---|---|---|
645051972 | https://github.com/simonw/datasette/issues/850#issuecomment-645051972 | https://api.github.com/repos/simonw/datasette/issues/850 | MDEyOklzc3VlQ29tbWVudDY0NTA1MTk3Mg== | simonw 9599 | 2020-06-16T22:55:04Z | 2020-06-16T22:55:04Z | OWNER | ``` simon@Simons-MacBook-Pro datasette-proof-of-concept % sam deploy --guided Configuring SAM deploy
Error: Failed to create managed resources: Unable to locate credentials ``` I need to get my AWS credentials sorted. I'm going to follow https://docs.aws.amazon.com/IAM/latest/UserGuide/getting-started_create-admin-group.html and https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/serverless-getting-started-set-up-credentials.html |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Proof of concept for Datasette on AWS Lambda with EFS 639993467 | |
645051370 | https://github.com/simonw/datasette/issues/850#issuecomment-645051370 | https://api.github.com/repos/simonw/datasette/issues/850 | MDEyOklzc3VlQ29tbWVudDY0NTA1MTM3MA== | simonw 9599 | 2020-06-16T22:53:05Z | 2020-06-16T22:53:05Z | OWNER | ``` simon@Simons-MacBook-Pro datasette-proof-of-concept % sam local invoke Invoking app.lambda_handler (python3.8) Fetching lambci/lambda:python3.8 Docker container image.................................................................................................................................................................................................................................... Mounting /private/tmp/datasette-proof-of-concept/.aws-sam/build/HelloWorldFunction as /var/task:ro,delegated inside runtime container START RequestId: 4616ab43-6882-1627-e5e3-5a29730d52f9 Version: $LATEST END RequestId: 4616ab43-6882-1627-e5e3-5a29730d52f9 REPORT RequestId: 4616ab43-6882-1627-e5e3-5a29730d52f9 Init Duration: 140.84 ms Duration: 2.49 ms Billed Duration: 100 ms Memory Size: 128 MBMax Memory Used: 25 MB {"statusCode":200,"body":"{\"message\": \"hello world\"}"} simon@Simons-MacBook-Pro datasette-proof-of-concept % sam local invoke Invoking app.lambda_handler (python3.8) Fetching lambci/lambda:python3.8 Docker container image...... Mounting /private/tmp/datasette-proof-of-concept/.aws-sam/build/HelloWorldFunction as /var/task:ro,delegated inside runtime container START RequestId: 3189df2f-e9c0-1be4-b9ac-f329c5fcd067 Version: $LATEST END RequestId: 3189df2f-e9c0-1be4-b9ac-f329c5fcd067 REPORT RequestId: 3189df2f-e9c0-1be4-b9ac-f329c5fcd067 Init Duration: 87.22 ms Duration: 2.34 ms Billed Duration: 100 ms Memory Size: 128 MB Max Memory Used: 25 MB {"statusCode":200,"body":"{\"message\": \"hello world\"}"} ``` |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Proof of concept for Datasette on AWS Lambda with EFS 639993467 | |
645050948 | https://github.com/simonw/datasette/issues/850#issuecomment-645050948 | https://api.github.com/repos/simonw/datasette/issues/850 | MDEyOklzc3VlQ29tbWVudDY0NTA1MDk0OA== | simonw 9599 | 2020-06-16T22:51:30Z | 2020-06-16T22:52:30Z | OWNER | ``` simon@Simons-MacBook-Pro datasette-proof-of-concept % sam build --use-container Starting Build inside a container Building function 'HelloWorldFunction' Fetching lambci/lambda:build-python3.8 Docker container image.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... Mounting /private/tmp/datasette-proof-of-concept/hello_world as /tmp/samcli/source:ro,delegated inside runtime container Build Succeeded Built Artifacts : .aws-sam/build Built Template : .aws-sam/build/template.yaml Commands you can use next[] Invoke Function: sam local invoke [] Deploy: sam deploy --guided Running PythonPipBuilder:ResolveDependencies Running PythonPipBuilder:CopySource ``` |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Proof of concept for Datasette on AWS Lambda with EFS 639993467 | |
645048062 | https://github.com/simonw/datasette/issues/850#issuecomment-645048062 | https://api.github.com/repos/simonw/datasette/issues/850 | MDEyOklzc3VlQ29tbWVudDY0NTA0ODA2Mg== | simonw 9599 | 2020-06-16T22:41:33Z | 2020-06-16T22:41:33Z | OWNER | ``` simon@Simons-MacBook-Pro /tmp % sam init
Which template source would you like to use? 1 - AWS Quick Start Templates 2 - Custom Template Location Choice: 1 Which runtime would you like to use? 1 - nodejs12.x 2 - python3.8 3 - ruby2.7 4 - go1.x 5 - java11 6 - dotnetcore3.1 7 - nodejs10.x 8 - python3.7 9 - python3.6 10 - python2.7 11 - ruby2.5 12 - java8 13 - dotnetcore2.1 Runtime: 2 Project name [sam-app]: datasette-proof-of-concept Cloning app templates from https://github.com/awslabs/aws-sam-cli-app-templates.git AWS quick start application templates: 1 - Hello World Example 2 - EventBridge Hello World 3 - EventBridge App from scratch (100+ Event Schemas) 4 - Step Functions Sample App (Stock Trader) Template selection: 1 Generating application:Name: datasette-proof-of-concept Runtime: python3.8 Dependency Manager: pip Application Template: hello-world Output Directory: . Next steps can be found in the README file at ./datasette-proof-of-concept/README.md ``` |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Proof of concept for Datasette on AWS Lambda with EFS 639993467 | |
645047703 | https://github.com/simonw/datasette/issues/850#issuecomment-645047703 | https://api.github.com/repos/simonw/datasette/issues/850 | MDEyOklzc3VlQ29tbWVudDY0NTA0NzcwMw== | simonw 9599 | 2020-06-16T22:40:19Z | 2020-06-16T22:40:19Z | OWNER | Installed SAM:
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Proof of concept for Datasette on AWS Lambda with EFS 639993467 | |
645045055 | https://github.com/simonw/datasette/issues/850#issuecomment-645045055 | https://api.github.com/repos/simonw/datasette/issues/850 | MDEyOklzc3VlQ29tbWVudDY0NTA0NTA1NQ== | simonw 9599 | 2020-06-16T22:31:49Z | 2020-06-16T22:31:49Z | OWNER | It looks like SAM - AWS Serverless Application Model - is the currently recommended way to deploy Python apps to Lambda from the command-line: https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/serverless-getting-started-hello-world.html |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Proof of concept for Datasette on AWS Lambda with EFS 639993467 | |
645042625 | https://github.com/simonw/datasette/issues/850#issuecomment-645042625 | https://api.github.com/repos/simonw/datasette/issues/850 | MDEyOklzc3VlQ29tbWVudDY0NTA0MjYyNQ== | simonw 9599 | 2020-06-16T22:24:26Z | 2020-06-16T22:24:26Z | OWNER | From https://mangum.io/adapter/
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Proof of concept for Datasette on AWS Lambda with EFS 639993467 | |
645041663 | https://github.com/simonw/datasette/issues/850#issuecomment-645041663 | https://api.github.com/repos/simonw/datasette/issues/850 | MDEyOklzc3VlQ29tbWVudDY0NTA0MTY2Mw== | simonw 9599 | 2020-06-16T22:21:44Z | 2020-06-16T22:21:44Z | OWNER | https://github.com/jordaneremieff/mangum looks like the best way to run an ASGI app on Lambda at the moment. ```python from mangum import Mangum async def app(scope, receive, send): await send( { "type": "http.response.start", "status": 200, "headers": [[b"content-type", b"text/plain; charset=utf-8"]], } ) await send({"type": "http.response.body", "body": b"Hello, world!"}) handler = Mangum(app) ``` |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Proof of concept for Datasette on AWS Lambda with EFS 639993467 | |
645032643 | https://github.com/simonw/datasette/issues/850#issuecomment-645032643 | https://api.github.com/repos/simonw/datasette/issues/850 | MDEyOklzc3VlQ29tbWVudDY0NTAzMjY0Mw== | simonw 9599 | 2020-06-16T21:57:10Z | 2020-06-16T21:57:10Z | OWNER | https://docs.aws.amazon.com/efs/latest/ug/wt1-getting-started.html is an EFS walk-through using the AWS CLI tool instead of clicking around in their web interface. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Proof of concept for Datasette on AWS Lambda with EFS 639993467 | |
645031225 | https://github.com/simonw/datasette/issues/850#issuecomment-645031225 | https://api.github.com/repos/simonw/datasette/issues/850 | MDEyOklzc3VlQ29tbWVudDY0NTAzMTIyNQ== | simonw 9599 | 2020-06-16T21:53:25Z | 2020-06-16T21:53:25Z | OWNER | Easier solution to this might be to have two functions - a "read-only" one which is allowed to scale as much as it likes, and a "write-only" one which can write to the database files but is limited to running a maximum of one Lambda instance. https://docs.aws.amazon.com/lambda/latest/dg/invocation-scaling.html |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Proof of concept for Datasette on AWS Lambda with EFS 639993467 | |
645030262 | https://github.com/simonw/datasette/issues/850#issuecomment-645030262 | https://api.github.com/repos/simonw/datasette/issues/850 | MDEyOklzc3VlQ29tbWVudDY0NTAzMDI2Mg== | simonw 9599 | 2020-06-16T21:51:01Z | 2020-06-16T21:51:39Z | OWNER | File locking is interesting here. https://docs.aws.amazon.com/lambda/latest/dg/services-efs.html
SQLite can apparently work on NFS v4.1. I think I'd rather set things up so there's only ever one writer - so a Datasette instance could scale reads by running lots more lambda functions but only one function ever writes to a file at a time. Not sure if that's feasible with Lambda though - maybe by adding some additional shared state mechanism like Redis? |
{ "total_count": 1, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 1, "rocket": 0, "eyes": 0 } |
Proof of concept for Datasette on AWS Lambda with EFS 639993467 | |
644987083 | https://github.com/simonw/datasette/issues/690#issuecomment-644987083 | https://api.github.com/repos/simonw/datasette/issues/690 | MDEyOklzc3VlQ29tbWVudDY0NDk4NzA4Mw== | simonw 9599 | 2020-06-16T20:11:35Z | 2020-06-16T20:11:35Z | OWNER | Twitter conversation about drop-down menu solutions that are accessible, fast loading and use minimal JavaScript: https://twitter.com/simonw/status/1272974294545395712 I really like the approach taken by GitHub Primer, which builds on top of HTML |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Mechanism for plugins to add action menu items for various things 573755726 | |
644584075 | https://github.com/simonw/datasette/issues/849#issuecomment-644584075 | https://api.github.com/repos/simonw/datasette/issues/849 | MDEyOklzc3VlQ29tbWVudDY0NDU4NDA3NQ== | simonw 9599 | 2020-06-16T07:24:08Z | 2020-06-16T07:24:08Z | OWNER | This guide is fantastic - I'll be following it closely: https://github.com/chancancode/branch-rename/blob/main/README.md - in particular the Action to mirror master and main for a while. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Rename master branch to main 639072811 | |
644384787 | https://github.com/simonw/datasette/issues/849#issuecomment-644384787 | https://api.github.com/repos/simonw/datasette/issues/849 | MDEyOklzc3VlQ29tbWVudDY0NDM4NDc4Nw== | simonw 9599 | 2020-06-15T20:56:07Z | 2020-06-15T20:56:19Z | OWNER | The big question is how this impacts existing CI configuration. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Rename master branch to main 639072811 | |
644384417 | https://github.com/simonw/datasette/issues/849#issuecomment-644384417 | https://api.github.com/repos/simonw/datasette/issues/849 | MDEyOklzc3VlQ29tbWVudDY0NDM4NDQxNw== | simonw 9599 | 2020-06-15T20:55:23Z | 2020-06-15T20:55:23Z | OWNER | I'm doing https://github.com/simonw/datasette-psutil first. In my local checkout:
Then in https://github.com/simonw/datasette-psutil/settings/branches I changed the default branch to Links to these docs: https://help.github.com/en/github/administering-a-repository/setting-the-default-branch That worked! https://github.com/simonw/datasette-psutil One catch, which I think will impact my most widely used repos the most (like datasette) - linking to a specific file now looks like this: https://github.com/simonw/datasette-psutil/blob/main/datasette_psutil/init.py The old https://github.com/simonw/datasette-psutil/blob/master/datasette_psutil/init.py link is presumably frozen in time? I've definitely got links spread around the web to my "most recent version of this code" that would use the |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Rename master branch to main 639072811 | |
644322234 | https://github.com/simonw/datasette/issues/849#issuecomment-644322234 | https://api.github.com/repos/simonw/datasette/issues/849 | MDEyOklzc3VlQ29tbWVudDY0NDMyMjIzNA== | simonw 9599 | 2020-06-15T19:06:16Z | 2020-06-15T19:06:16Z | OWNER | I'll make this change on a few of my other repos first to make sure I haven't missed any tricky edge-cases. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Rename master branch to main 639072811 | |
643704730 | https://github.com/simonw/datasette/issues/847#issuecomment-643704730 | https://api.github.com/repos/simonw/datasette/issues/847 | MDEyOklzc3VlQ29tbWVudDY0MzcwNDczMA== | simonw 9599 | 2020-06-14T01:28:34Z | 2020-06-14T01:28:34Z | OWNER | Here's the plugin that adds those custom SQLite functions: ```python from datasette import hookimpl from coverage.numbits import register_sqlite_functions @hookimpl def prepare_connection(conn): register_sqlite_functions(conn) ``` |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Take advantage of .coverage being a SQLite database 638259643 | |
643704565 | https://github.com/simonw/datasette/issues/847#issuecomment-643704565 | https://api.github.com/repos/simonw/datasette/issues/847 | MDEyOklzc3VlQ29tbWVudDY0MzcwNDU2NQ== | simonw 9599 | 2020-06-14T01:26:56Z | 2020-06-14T01:26:56Z | OWNER | On closer inspection, I don't know if there's that much useful stuff you can do with the data from Consider the following query against a
It looks like this tells me which lines of which files were executed during the test run. But... without the actual source code, I don't think I can calculate the coverage percentage for each file. I don't want to count comment lines or whitespace as untested for example, and I don't know how many lines were in the file. If I'm right that it's not possible to calculate percentage coverage from just the |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Take advantage of .coverage being a SQLite database 638259643 | |
643702715 | https://github.com/simonw/datasette/issues/847#issuecomment-643702715 | https://api.github.com/repos/simonw/datasette/issues/847 | MDEyOklzc3VlQ29tbWVudDY0MzcwMjcxNQ== | simonw 9599 | 2020-06-14T01:03:30Z | 2020-06-14T01:03:40Z | OWNER | Filed a related issue with some ideas against |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Take advantage of .coverage being a SQLite database 638259643 | |
643699583 | https://github.com/simonw/datasette/issues/846#issuecomment-643699583 | https://api.github.com/repos/simonw/datasette/issues/846 | MDEyOklzc3VlQ29tbWVudDY0MzY5OTU4Mw== | simonw 9599 | 2020-06-14T00:26:31Z | 2020-06-14T00:26:31Z | OWNER | That seems to have fixed the problem, at least for the moment. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
"Too many open files" error running tests 638241779 | |
643699063 | https://github.com/simonw/datasette/issues/846#issuecomment-643699063 | https://api.github.com/repos/simonw/datasette/issues/846 | MDEyOklzc3VlQ29tbWVudDY0MzY5OTA2Mw== | simonw 9599 | 2020-06-14T00:22:32Z | 2020-06-14T00:22:32Z | OWNER | Idea: |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
"Too many open files" error running tests 638241779 | |
643698790 | https://github.com/simonw/datasette/issues/846#issuecomment-643698790 | https://api.github.com/repos/simonw/datasette/issues/846 | MDEyOklzc3VlQ29tbWVudDY0MzY5ODc5MA== | simonw 9599 | 2020-06-14T00:20:42Z | 2020-06-14T00:20:42Z | OWNER | Released a new plugin, |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
"Too many open files" error running tests 638241779 | |
643685669 | https://github.com/simonw/datasette/issues/846#issuecomment-643685669 | https://api.github.com/repos/simonw/datasette/issues/846 | MDEyOklzc3VlQ29tbWVudDY0MzY4NTY2OQ== | simonw 9599 | 2020-06-13T22:24:22Z | 2020-06-13T22:24:22Z | OWNER | I tried this experiment:
Likewise: ``` In [11]: conn = sqlite3.connect("fixtures.db") In [12]: psutil.Process().open_files() In [13]: del conn In [14]: psutil.Process().open_files() |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
"Too many open files" error running tests 638241779 | |
643685333 | https://github.com/simonw/datasette/issues/846#issuecomment-643685333 | https://api.github.com/repos/simonw/datasette/issues/846 | MDEyOklzc3VlQ29tbWVudDY0MzY4NTMzMw== | simonw 9599 | 2020-06-13T22:19:38Z | 2020-06-13T22:19:38Z | OWNER | That's 91 open files but only 29 unique filenames. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
"Too many open files" error running tests 638241779 | |
643685207 | https://github.com/simonw/datasette/issues/846#issuecomment-643685207 | https://api.github.com/repos/simonw/datasette/issues/846 | MDEyOklzc3VlQ29tbWVudDY0MzY4NTIwNw== | simonw 9599 | 2020-06-13T22:18:01Z | 2020-06-13T22:18:01Z | OWNER | This shows currently open files (after I ran it inside
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
"Too many open files" error running tests 638241779 | |
643681747 | https://github.com/simonw/datasette/issues/841#issuecomment-643681747 | https://api.github.com/repos/simonw/datasette/issues/841 | MDEyOklzc3VlQ29tbWVudDY0MzY4MTc0Nw== | simonw 9599 | 2020-06-13T21:38:46Z | 2020-06-13T21:38:46Z | OWNER | Closing this because I've researched feasibility. I may start a milestone in the future to help me get to 100%. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Research feasibility of 100% test coverage 638104520 | |
643681517 | https://github.com/simonw/datasette/pull/844#issuecomment-643681517 | https://api.github.com/repos/simonw/datasette/issues/844 | MDEyOklzc3VlQ29tbWVudDY0MzY4MTUxNw== | simonw 9599 | 2020-06-13T21:36:15Z | 2020-06-13T21:36:15Z | OWNER | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Action to run tests and upload coverage report 638230433 | ||
643676314 | https://github.com/simonw/datasette/issues/843#issuecomment-643676314 | https://api.github.com/repos/simonw/datasette/issues/843 | MDEyOklzc3VlQ29tbWVudDY0MzY3NjMxNA== | simonw 9599 | 2020-06-13T20:47:37Z | 2020-06-13T20:47:37Z | OWNER | I can use this action: https://github.com/codecov/codecov-action |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Configure codecov.io 638229448 | |
643676069 | https://github.com/simonw/datasette/issues/843#issuecomment-643676069 | https://api.github.com/repos/simonw/datasette/issues/843 | MDEyOklzc3VlQ29tbWVudDY0MzY3NjA2OQ== | simonw 9599 | 2020-06-13T20:45:29Z | 2020-06-13T20:45:29Z | OWNER | I set up https://codecov.io/gh/simonw/datasette/settings and added a |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Configure codecov.io 638229448 | |
643663005 | https://github.com/simonw/datasette/issues/842#issuecomment-643663005 | https://api.github.com/repos/simonw/datasette/issues/842 | MDEyOklzc3VlQ29tbWVudDY0MzY2MzAwNQ== | simonw 9599 | 2020-06-13T18:51:57Z | 2020-06-13T18:51:57Z | OWNER | Two potential designs:
I fee the first would be easier to implement. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Magic parameters for canned queries 638212085 | |
643661125 | https://github.com/simonw/datasette/issues/841#issuecomment-643661125 | https://api.github.com/repos/simonw/datasette/issues/841 | MDEyOklzc3VlQ29tbWVudDY0MzY2MTEyNQ== | simonw 9599 | 2020-06-13T18:35:30Z | 2020-06-13T18:36:50Z | OWNER | I ran export CODECOV_TOKEN="f7935cad...", then ran this:
x> No CI provider detected. Testing inside Docker? http://docs.codecov.io/docs/testing-with-docker Testing with Tox? https://docs.codecov.io/docs/python#section-testing-with-tox project root: . --> token set from env Yaml not found, that's ok! Learn more at http://docs.codecov.io/docs/codecov-yaml ==> Running gcov in . (disable via -X gcov) ==> Searching for coverage reports in: + . -> Found 1 reports ==> Detecting git/mercurial file structure ==> Reading reports + ./coverage.xml bytes=139174 ==> Appending adjustments https://docs.codecov.io/docs/fixing-reports -> No adjustments found ==> Gzipping contents ==> Uploading reports url: https://codecov.io query: branch=master&commit=0e49842e227a0f1f69d48108c87d17fe0379e548&build=&build_url=&name=&tag=&slug=simonw%2Fdatasette&service=&flags=&pr=&job= -> Pinging Codecov https://codecov.io/upload/v4?package=bash-20200602-f809a24&token=secret&branch=master&commit=0e49842e227a0f1f69d48108c87d17fe0379e548&build=&build_url=&name=&tag=&slug=simonw%2Fdatasette&service=&flags=&pr=&job= -> Uploading -> View reports at https://codecov.io/github/simonw/datasette/commit/0e49842e227a0f1f69d48108c87d17fe0379e548 ``` But https://codecov.io/github/simonw/datasette/commit/0e49842e227a0f1f69d48108c87d17fe0379e548 is a 404, so it doesn't seem to have worked? UPDATE: It works now, took about 30 seconds before the report showed up at that URL. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Research feasibility of 100% test coverage 638104520 | |
643660757 | https://github.com/simonw/datasette/issues/841#issuecomment-643660757 | https://api.github.com/repos/simonw/datasette/issues/841 | MDEyOklzc3VlQ29tbWVudDY0MzY2MDc1Nw== | simonw 9599 | 2020-06-13T18:32:20Z | 2020-06-13T18:32:20Z | OWNER | Looking at options for publishing coverage reports: I'm going to try https://codecov.io/ |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Research feasibility of 100% test coverage 638104520 | |
643660427 | https://github.com/simonw/datasette/issues/841#issuecomment-643660427 | https://api.github.com/repos/simonw/datasette/issues/841 | MDEyOklzc3VlQ29tbWVudDY0MzY2MDQyNw== | simonw 9599 | 2020-06-13T18:29:30Z | 2020-06-13T18:29:36Z | OWNER | This one looks easy enough to fix: |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Research feasibility of 100% test coverage 638104520 | |
643658036 | https://github.com/simonw/datasette/issues/841#issuecomment-643658036 | https://api.github.com/repos/simonw/datasette/issues/841 | MDEyOklzc3VlQ29tbWVudDY0MzY1ODAzNg== | simonw 9599 | 2020-06-13T18:08:13Z | 2020-06-13T18:08:13Z | OWNER | From digging through that report it looks like the majority stuff that isn't fully covered is corner-cases... which are the kind of things I really do want the tests to catch. I'm not entirely ready to commit to 100%, but I'm going to start digging through and seeing how close I can get. If I can get to 98% (I'm on 91% already) I may as well push all the way to 100. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Research feasibility of 100% test coverage 638104520 | |
643657287 | https://github.com/simonw/datasette/issues/841#issuecomment-643657287 | https://api.github.com/repos/simonw/datasette/issues/841 | MDEyOklzc3VlQ29tbWVudDY0MzY1NzI4Nw== | simonw 9599 | 2020-06-13T18:01:39Z | 2020-06-13T18:01:39Z | OWNER | Added |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Research feasibility of 100% test coverage 638104520 | |
643656053 | https://github.com/simonw/datasette/issues/841#issuecomment-643656053 | https://api.github.com/repos/simonw/datasette/issues/841 | MDEyOklzc3VlQ29tbWVudDY0MzY1NjA1Mw== | simonw 9599 | 2020-06-13T17:50:34Z | 2020-06-13T17:50:34Z | OWNER | Added a datasette/init.py 3 0 100% datasette/main.py 3 3 0% datasette/actor_auth_cookie.py 19 3 84% datasette/app.py 499 27 95% datasette/cli.py 157 45 71% datasette/database.py 233 17 93% datasette/default_permissions.py 39 0 100% datasette/facets.py 209 24 89% datasette/filters.py 122 7 94% datasette/hookspecs.py 19 0 100% datasette/inspect.py 37 23 38% datasette/plugins.py 34 6 82% datasette/publish/init.py 0 0 100% datasette/publish/cloudrun.py 55 2 96% datasette/publish/common.py 19 1 95% datasette/publish/heroku.py 95 13 86% datasette/renderer.py 63 4 94% datasette/sql_functions.py 4 0 100% datasette/tracer.py 85 16 81% datasette/utils/init.py 503 31 94% datasette/utils/asgi.py 253 25 90% datasette/version.py 4 0 100% datasette/views/init.py 0 0 100% datasette/views/base.py 288 19 93% datasette/views/database.py 120 2 98% datasette/views/index.py 57 2 96% datasette/views/special.py 72 16 78% datasette/views/table.py 418 18 96% TOTAL 3410 304 91% ``` |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Research feasibility of 100% test coverage 638104520 | |
643655108 | https://github.com/simonw/datasette/issues/841#issuecomment-643655108 | https://api.github.com/repos/simonw/datasette/issues/841 | MDEyOklzc3VlQ29tbWVudDY0MzY1NTEwOA== | simonw 9599 | 2020-06-13T17:43:15Z | 2020-06-13T17:43:15Z | OWNER | Using https://pypi.org/project/pytest-cov/ and running datasette/init.py 3 0 100% datasette/main.py 3 3 0% datasette/_version.py 277 152 45% datasette/actor_auth_cookie.py 19 3 84% datasette/app.py 499 27 95% datasette/cli.py 157 45 71% datasette/database.py 233 17 93% datasette/default_permissions.py 39 0 100% datasette/facets.py 209 24 89% datasette/filters.py 122 7 94% datasette/hookspecs.py 19 0 100% datasette/inspect.py 37 23 38% datasette/plugins.py 34 6 82% datasette/publish/init.py 0 0 100% datasette/publish/cloudrun.py 55 2 96% datasette/publish/common.py 19 1 95% datasette/publish/heroku.py 95 13 86% datasette/renderer.py 63 4 94% datasette/sql_functions.py 4 0 100% datasette/tracer.py 85 16 81% datasette/utils/init.py 503 31 94% datasette/utils/asgi.py 253 25 90% datasette/utils/shutil_backport.py 44 40 9% datasette/version.py 4 0 100% datasette/views/init.py 0 0 100% datasette/views/base.py 288 19 93% datasette/views/database.py 120 2 98% datasette/views/index.py 57 2 96% datasette/views/special.py 72 16 78% datasette/views/table.py 418 18 96% TOTAL 3731 496 87% ``` |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Research feasibility of 100% test coverage 638104520 | |
643648359 | https://github.com/simonw/datasette/issues/834#issuecomment-643648359 | https://api.github.com/repos/simonw/datasette/issues/834 | MDEyOklzc3VlQ29tbWVudDY0MzY0ODM1OQ== | simonw 9599 | 2020-06-13T16:47:29Z | 2020-06-13T16:47:29Z | OWNER | Implementing this is proving surprisingly tricky, because of the need to be able to optionally I could switch to using |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
startup() plugin hook 637342551 | |
643576372 | https://github.com/simonw/datasette/issues/841#issuecomment-643576372 | https://api.github.com/repos/simonw/datasette/issues/841 | MDEyOklzc3VlQ29tbWVudDY0MzU3NjM3Mg== | simonw 9599 | 2020-06-13T06:08:34Z | 2020-06-13T06:08:34Z | OWNER | Starlette achieves this. https://github.com/encode/starlette |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Research feasibility of 100% test coverage 638104520 | |
643510240 | https://github.com/simonw/datasette/issues/834#issuecomment-643510240 | https://api.github.com/repos/simonw/datasette/issues/834 | MDEyOklzc3VlQ29tbWVudDY0MzUxMDI0MA== | simonw 9599 | 2020-06-12T22:40:26Z | 2020-06-12T22:40:26Z | OWNER | Another use-case: plugins that need their own database with the correct tables. They can write to the database on startup to create their tables. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
startup() plugin hook 637342551 | |
643509358 | https://github.com/simonw/datasette/issues/834#issuecomment-643509358 | https://api.github.com/repos/simonw/datasette/issues/834 | MDEyOklzc3VlQ29tbWVudDY0MzUwOTM1OA== | simonw 9599 | 2020-06-12T22:36:37Z | 2020-06-12T22:36:37Z | OWNER | This should be able to optionally return an async function which is then awaited. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
startup() plugin hook 637342551 | |
643501428 | https://github.com/simonw/datasette/issues/805#issuecomment-643501428 | https://api.github.com/repos/simonw/datasette/issues/805 | MDEyOklzc3VlQ29tbWVudDY0MzUwMTQyOA== | simonw 9599 | 2020-06-12T22:06:08Z | 2020-06-12T22:06:08Z | OWNER | This needs the |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Writable canned queries live demo on Glitch 632724154 | |
643501064 | https://github.com/simonw/datasette/issues/834#issuecomment-643501064 | https://api.github.com/repos/simonw/datasette/issues/834 | MDEyOklzc3VlQ29tbWVudDY0MzUwMTA2NA== | simonw 9599 | 2020-06-12T22:04:43Z | 2020-06-12T22:04:43Z | OWNER | Another use-case for this: I want to use the |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
startup() plugin hook 637342551 | |
643454625 | https://github.com/simonw/datasette/issues/840#issuecomment-643454625 | https://api.github.com/repos/simonw/datasette/issues/840 | MDEyOklzc3VlQ29tbWVudDY0MzQ1NDYyNQ== | simonw 9599 | 2020-06-12T19:47:38Z | 2020-06-12T19:47:53Z | OWNER | Another problem: what to display in the "you are logged in as", since we don't dictate an actor design. I'm going to use a includes template for this that can easily be over-ridden by administrators or by plugins. The default will look for the first available of the following keys:
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Log out mechanism for clearing ds_actor cookie 637966833 | |
643453128 | https://github.com/simonw/datasette/issues/840#issuecomment-643453128 | https://api.github.com/repos/simonw/datasette/issues/840 | MDEyOklzc3VlQ29tbWVudDY0MzQ1MzEyOA== | simonw 9599 | 2020-06-12T19:43:15Z | 2020-06-12T19:43:15Z | OWNER | I don't like how this often involves a logout link that can be maliciously activated. I'm going to use a CSRF protected form button styled to look like a link instead. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Log out mechanism for clearing ds_actor cookie 637966833 | |
643414646 | https://github.com/dogsheep/github-to-sqlite/issues/40#issuecomment-643414646 | https://api.github.com/repos/dogsheep/github-to-sqlite/issues/40 | MDEyOklzc3VlQ29tbWVudDY0MzQxNDY0Ng== | simonw 9599 | 2020-06-12T18:06:48Z | 2020-06-12T18:06:48Z | MEMBER | That fixed it. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Demo deploy is broken 637899539 | |
643406939 | https://github.com/simonw/sqlite-utils/issues/115#issuecomment-643406939 | https://api.github.com/repos/simonw/sqlite-utils/issues/115 | MDEyOklzc3VlQ29tbWVudDY0MzQwNjkzOQ== | simonw 9599 | 2020-06-12T17:51:11Z | 2020-06-12T17:51:11Z | OWNER | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Ability to execute insert/update statements with the CLI 637889964 | ||
643393506 | https://github.com/dogsheep/github-to-sqlite/issues/40#issuecomment-643393506 | https://api.github.com/repos/dogsheep/github-to-sqlite/issues/40 | MDEyOklzc3VlQ29tbWVudDY0MzM5MzUwNg== | simonw 9599 | 2020-06-12T17:21:14Z | 2020-06-12T17:21:14Z | MEMBER | I only install SQLite for this: I'm going to remove the need to install sqlite3 by making this possible with sqlite-utils: https://github.com/simonw/sqlite-utils/issues/115 |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Demo deploy is broken 637899539 | |
643010591 | https://github.com/simonw/datasette/issues/806#issuecomment-643010591 | https://api.github.com/repos/simonw/datasette/issues/806 | MDEyOklzc3VlQ29tbWVudDY0MzAxMDU5MQ== | simonw 9599 | 2020-06-12T01:13:06Z | 2020-06-12T01:13:06Z | OWNER | Tests are passing again: https://github.com/simonw/datasette/commit/9ae0d483ead93c0832142e5dc85959ae3c8f73ea |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Release Datasette 0.44 632753851 | |
643000948 | https://github.com/simonw/datasette/issues/806#issuecomment-643000948 | https://api.github.com/repos/simonw/datasette/issues/806 | MDEyOklzc3VlQ29tbWVudDY0MzAwMDk0OA== | simonw 9599 | 2020-06-12T00:34:21Z | 2020-06-12T00:34:21Z | OWNER | I'm going to add https://github.com/simonw/datasette-auth-tokens and https://github.com/simonw/datasette-permissions-sql to the documentation and release notes in a few places. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Release Datasette 0.44 632753851 | |
642998097 | https://github.com/simonw/datasette/issues/806#issuecomment-642998097 | https://api.github.com/repos/simonw/datasette/issues/806 | MDEyOklzc3VlQ29tbWVudDY0Mjk5ODA5Nw== | simonw 9599 | 2020-06-12T00:26:00Z | 2020-06-12T00:26:00Z | OWNER | OK, I'm ready to ship. Last check of the release notes, then I'll update the news section in the README and release 0.44! |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Release Datasette 0.44 632753851 | |
642993277 | https://github.com/simonw/datasette/issues/838#issuecomment-642993277 | https://api.github.com/repos/simonw/datasette/issues/838 | MDEyOklzc3VlQ29tbWVudDY0Mjk5MzI3Nw== | simonw 9599 | 2020-06-12T00:18:26Z | 2020-06-12T00:18:50Z | OWNER | Have you tried this without the This is the test I used to ensure this feature works - it scrapes all of the links on a bunch of different pages. Could it be missing something here? |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Incorrect URLs when served behind a proxy with base_url set 637395097 | |
642991513 | https://github.com/simonw/datasette/issues/824#issuecomment-642991513 | https://api.github.com/repos/simonw/datasette/issues/824 | MDEyOklzc3VlQ29tbWVudDY0Mjk5MTUxMw== | simonw 9599 | 2020-06-12T00:11:50Z | 2020-06-12T00:11:50Z | OWNER | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Example authentication plugin 635108074 | ||
642958225 | https://github.com/simonw/datasette/issues/833#issuecomment-642958225 | https://api.github.com/repos/simonw/datasette/issues/833 | MDEyOklzc3VlQ29tbWVudDY0Mjk1ODIyNQ== | simonw 9599 | 2020-06-11T22:15:32Z | 2020-06-11T22:15:32Z | OWNER | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
/-/metadata and so on should respect view-instance permission 637253789 | ||
642953605 | https://github.com/simonw/datasette/issues/824#issuecomment-642953605 | https://api.github.com/repos/simonw/datasette/issues/824 | MDEyOklzc3VlQ29tbWVudDY0Mjk1MzYwNQ== | simonw 9599 | 2020-06-11T22:02:32Z | 2020-06-11T22:02:32Z | OWNER |
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Example authentication plugin 635108074 | |
642952962 | https://github.com/simonw/datasette/issues/824#issuecomment-642952962 | https://api.github.com/repos/simonw/datasette/issues/824 | MDEyOklzc3VlQ29tbWVudDY0Mjk1Mjk2Mg== | simonw 9599 | 2020-06-11T22:01:58Z | 2020-06-11T22:01:58Z | OWNER | Alternative idea: a plugin that handles Bearer token authentication. Uses |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Example authentication plugin 635108074 | |
642951150 | https://github.com/simonw/datasette/issues/824#issuecomment-642951150 | https://api.github.com/repos/simonw/datasette/issues/824 | MDEyOklzc3VlQ29tbWVudDY0Mjk1MTE1MA== | simonw 9599 | 2020-06-11T22:00:17Z | 2020-06-11T22:00:17Z | OWNER | I got this working: https://github.com/simonw/datasette-auth-github/pull/64 Just one problem: it uses the existing It does use |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Example authentication plugin 635108074 | |
642944645 | https://github.com/simonw/datasette/issues/220#issuecomment-642944645 | https://api.github.com/repos/simonw/datasette/issues/220 | MDEyOklzc3VlQ29tbWVudDY0Mjk0NDY0NQ== | simonw 9599 | 2020-06-11T21:49:55Z | 2020-06-11T21:49:55Z | OWNER | I'm OK with not implementing this - I've got used to the existing mechanism, and it doesn't frustrate me enough to work on this more. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Investigate syntactic sugar for plugins 314847571 | |
642907021 | https://github.com/simonw/datasette/issues/832#issuecomment-642907021 | https://api.github.com/repos/simonw/datasette/issues/832 | MDEyOklzc3VlQ29tbWVudDY0MjkwNzAyMQ== | simonw 9599 | 2020-06-11T20:20:35Z | 2020-06-11T20:20:35Z | OWNER | I think the new |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Having view-table permission but NOT view-database should still grant access to /db/table 636722501 | |
642906681 | https://github.com/simonw/datasette/issues/832#issuecomment-642906681 | https://api.github.com/repos/simonw/datasette/issues/832 | MDEyOklzc3VlQ29tbWVudDY0MjkwNjY4MQ== | simonw 9599 | 2020-06-11T20:19:47Z | 2020-06-11T20:20:02Z | OWNER | So for the following:
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Having view-table permission but NOT view-database should still grant access to /db/table 636722501 | |
642905424 | https://github.com/simonw/datasette/issues/833#issuecomment-642905424 | https://api.github.com/repos/simonw/datasette/issues/833 | MDEyOklzc3VlQ29tbWVudDY0MjkwNTQyNA== | simonw 9599 | 2020-06-11T20:16:41Z | 2020-06-11T20:16:41Z | OWNER | I'll add a new test in |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
/-/metadata and so on should respect view-instance permission 637253789 | |
642902208 | https://github.com/simonw/datasette/issues/833#issuecomment-642902208 | https://api.github.com/repos/simonw/datasette/issues/833 | MDEyOklzc3VlQ29tbWVudDY0MjkwMjIwOA== | simonw 9599 | 2020-06-11T20:08:57Z | 2020-06-11T20:08:57Z | OWNER | I'm tempted to add a |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
/-/metadata and so on should respect view-instance permission 637253789 | |
642874724 | https://github.com/simonw/datasette/issues/833#issuecomment-642874724 | https://api.github.com/repos/simonw/datasette/issues/833 | MDEyOklzc3VlQ29tbWVudDY0Mjg3NDcyNA== | simonw 9599 | 2020-06-11T19:07:49Z | 2020-06-11T19:07:49Z | OWNER | A live demo running the |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
/-/metadata and so on should respect view-instance permission 637253789 | |
642870553 | https://github.com/simonw/datasette/issues/801#issuecomment-642870553 | https://api.github.com/repos/simonw/datasette/issues/801 | MDEyOklzc3VlQ29tbWVudDY0Mjg3MDU1Mw== | simonw 9599 | 2020-06-11T18:58:49Z | 2020-06-11T18:58:49Z | OWNER | I've implemented this in a plugin instead: https://github.com/simonw/datasette-permissions-sql |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
allow_by_query setting for configuring permissions with a SQL statement 631932926 | |
642795966 | https://github.com/simonw/datasette/issues/832#issuecomment-642795966 | https://api.github.com/repos/simonw/datasette/issues/832 | MDEyOklzc3VlQ29tbWVudDY0Mjc5NTk2Ng== | simonw 9599 | 2020-06-11T16:37:21Z | 2020-06-11T16:37:21Z | OWNER | How would I document this? Probably in another section on https://datasette.readthedocs.io/en/latest/authentication.html#permissions But I'd also need to add documentation to the individual views stating what permissions are checked and in what order. I could do that on this page: https://datasette.readthedocs.io/en/latest/pages.html |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Having view-table permission but NOT view-database should still grant access to /db/table 636722501 | |
642772344 | https://github.com/simonw/datasette/pull/809#issuecomment-642772344 | https://api.github.com/repos/simonw/datasette/issues/809 | MDEyOklzc3VlQ29tbWVudDY0Mjc3MjM0NA== | simonw 9599 | 2020-06-11T16:01:15Z | 2020-06-11T16:01:15Z | OWNER |
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Publish secrets 632919570 | |
642754589 | https://github.com/simonw/datasette/pull/809#issuecomment-642754589 | https://api.github.com/repos/simonw/datasette/issues/809 | MDEyOklzc3VlQ29tbWVudDY0Mjc1NDU4OQ== | simonw 9599 | 2020-06-11T15:45:25Z | 2020-06-11T15:45:25Z | OWNER |
https://datasette-publish-secret-j7hipcg4aq-uw.a.run.app/-/messages |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Publish secrets 632919570 | |
642750790 | https://github.com/simonw/datasette/pull/809#issuecomment-642750790 | https://api.github.com/repos/simonw/datasette/issues/809 | MDEyOklzc3VlQ29tbWVudDY0Mjc1MDc5MA== | simonw 9599 | 2020-06-11T15:42:23Z | 2020-06-11T15:42:23Z | OWNER |
https://datasette-publish-secret.herokuapp.com/-/messages - Heroku works. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Publish secrets 632919570 | |
642745518 | https://github.com/simonw/datasette/pull/809#issuecomment-642745518 | https://api.github.com/repos/simonw/datasette/issues/809 | MDEyOklzc3VlQ29tbWVudDY0Mjc0NTUxOA== | simonw 9599 | 2020-06-11T15:38:51Z | 2020-06-11T15:38:51Z | OWNER | The way to manually test this is to publish a database to each provider and then check that the |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Publish secrets 632919570 | |
642741930 | https://github.com/simonw/datasette/issues/832#issuecomment-642741930 | https://api.github.com/repos/simonw/datasette/issues/832 | MDEyOklzc3VlQ29tbWVudDY0Mjc0MTkzMA== | simonw 9599 | 2020-06-11T15:35:53Z | 2020-06-11T15:36:05Z | OWNER | May the fix here is to implement a |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Having view-table permission but NOT view-database should still grant access to /db/table 636722501 | |
642420375 | https://github.com/simonw/datasette/issues/818#issuecomment-642420375 | https://api.github.com/repos/simonw/datasette/issues/818 | MDEyOklzc3VlQ29tbWVudDY0MjQyMDM3NQ== | simonw 9599 | 2020-06-11T05:40:07Z | 2020-06-11T05:40:07Z | OWNER | https://github.com/simonw/datasette-permissions-sql is now released as a 0.1a here: https://pypi.org/project/datasette-permissions-sql/ |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Example permissions plugin 634917088 | |
642412017 | https://github.com/simonw/datasette/issues/832#issuecomment-642412017 | https://api.github.com/repos/simonw/datasette/issues/832 | MDEyOklzc3VlQ29tbWVudDY0MjQxMjAxNw== | simonw 9599 | 2020-06-11T05:13:59Z | 2020-06-11T05:13:59Z | OWNER | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Having view-table permission but NOT view-database should still grant access to /db/table 636722501 | ||
642324847 | https://github.com/simonw/datasette/issues/831#issuecomment-642324847 | https://api.github.com/repos/simonw/datasette/issues/831 | MDEyOklzc3VlQ29tbWVudDY0MjMyNDg0Nw== | simonw 9599 | 2020-06-10T23:50:55Z | 2020-06-10T23:50:55Z | OWNER | Actually I'm not sure about this. If It could be So I think I'm going to stick with the current mechanism, which is that |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
It would be more intuitive if "allow": none meant "no-one can do this" 636614868 | |
642231871 | https://github.com/simonw/datasette/issues/818#issuecomment-642231871 | https://api.github.com/repos/simonw/datasette/issues/818 | MDEyOklzc3VlQ29tbWVudDY0MjIzMTg3MQ== | simonw 9599 | 2020-06-10T20:11:50Z | 2020-06-10T20:11:50Z | OWNER |
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Example permissions plugin 634917088 | |
642230499 | https://github.com/simonw/datasette/issues/818#issuecomment-642230499 | https://api.github.com/repos/simonw/datasette/issues/818 | MDEyOklzc3VlQ29tbWVudDY0MjIzMDQ5OQ== | simonw 9599 | 2020-06-10T20:08:46Z | 2020-06-10T20:09:26Z | OWNER | What's a simple but useful plugin I could release that exercises this hook? Ideally one which executes permission checks against the database somehow. I could do a simplest-possible implementation of the idea in #801 (allow-by-query). |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Example permissions plugin 634917088 | |
642229899 | https://github.com/simonw/datasette/issues/818#issuecomment-642229899 | https://api.github.com/repos/simonw/datasette/issues/818 | MDEyOklzc3VlQ29tbWVudDY0MjIyOTg5OQ== | simonw 9599 | 2020-06-10T20:07:36Z | 2020-06-10T20:07:36Z | OWNER | New policy in 9f236c4 dictates that this should be in Milestone 0.44 after all:
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Example permissions plugin 634917088 | |
642217520 | https://github.com/simonw/datasette/issues/829#issuecomment-642217520 | https://api.github.com/repos/simonw/datasette/issues/829 | MDEyOklzc3VlQ29tbWVudDY0MjIxNzUyMA== | simonw 9599 | 2020-06-10T19:41:35Z | 2020-06-10T19:41:35Z | OWNER | I didn't bother with the alternative epoch - it only shaves off two or three bytes from the cookie. Documentation for the new |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Ability to set ds_actor cookie such that it expires 636426530 | |
642178604 | https://github.com/simonw/datasette/issues/829#issuecomment-642178604 | https://api.github.com/repos/simonw/datasette/issues/829 | MDEyOklzc3VlQ29tbWVudDY0MjE3ODYwNA== | simonw 9599 | 2020-06-10T18:18:36Z | 2020-06-10T18:20:19Z | OWNER | Even shorter: encode an integer that is the difference between that expiry timestamp and a more recent epoch - June 1st 2020 will do. ```
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Ability to set ds_actor cookie such that it expires 636426530 | |
642176180 | https://github.com/simonw/datasette/issues/829#issuecomment-642176180 | https://api.github.com/repos/simonw/datasette/issues/829 | MDEyOklzc3VlQ29tbWVudDY0MjE3NjE4MA== | simonw 9599 | 2020-06-10T18:14:02Z | 2020-06-10T18:14:15Z | OWNER | And the |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Ability to set ds_actor cookie such that it expires 636426530 | |
642175892 | https://github.com/simonw/datasette/issues/829#issuecomment-642175892 | https://api.github.com/repos/simonw/datasette/issues/829 | MDEyOklzc3VlQ29tbWVudDY0MjE3NTg5Mg== | simonw 9599 | 2020-06-10T18:13:26Z | 2020-06-10T18:13:26Z | OWNER | I'm going with
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Ability to set ds_actor cookie such that it expires 636426530 | |
642174272 | https://github.com/simonw/datasette/issues/829#issuecomment-642174272 | https://api.github.com/repos/simonw/datasette/issues/829 | MDEyOklzc3VlQ29tbWVudDY0MjE3NDI3Mg== | simonw 9599 | 2020-06-10T18:10:13Z | 2020-06-10T18:10:13Z | OWNER | Some options:
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Ability to set ds_actor cookie such that it expires 636426530 | |
642161210 | https://github.com/simonw/datasette/issues/829#issuecomment-642161210 | https://api.github.com/repos/simonw/datasette/issues/829 | MDEyOklzc3VlQ29tbWVudDY0MjE2MTIxMA== | simonw 9599 | 2020-06-10T17:45:58Z | 2020-06-10T17:45:58Z | OWNER |
I currently only decode the If plugins want to be able to set their own policies on how long the |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Ability to set ds_actor cookie such that it expires 636426530 | |
641713087 | https://github.com/simonw/datasette/issues/828#issuecomment-641713087 | https://api.github.com/repos/simonw/datasette/issues/828 | MDEyOklzc3VlQ29tbWVudDY0MTcxMzA4Nw== | simonw 9599 | 2020-06-10T04:28:17Z | 2020-06-10T04:28:17Z | OWNER | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Horizontal scrollbar on changelog page on mobile 635914822 | ||
641710745 | https://github.com/simonw/datasette/issues/828#issuecomment-641710745 | https://api.github.com/repos/simonw/datasette/issues/828 | MDEyOklzc3VlQ29tbWVudDY0MTcxMDc0NQ== | simonw 9599 | 2020-06-10T04:19:31Z | 2020-06-10T04:19:31Z | OWNER | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Horizontal scrollbar on changelog page on mobile 635914822 | ||
641710670 | https://github.com/simonw/datasette/issues/828#issuecomment-641710670 | https://api.github.com/repos/simonw/datasette/issues/828 | MDEyOklzc3VlQ29tbWVudDY0MTcxMDY3MA== | simonw 9599 | 2020-06-10T04:19:17Z | 2020-06-10T04:19:17Z | OWNER | This CSS seems to fix it:
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Horizontal scrollbar on changelog page on mobile 635914822 | |
641637696 | https://github.com/simonw/datasette/issues/806#issuecomment-641637696 | https://api.github.com/repos/simonw/datasette/issues/806 | MDEyOklzc3VlQ29tbWVudDY0MTYzNzY5Ng== | simonw 9599 | 2020-06-09T23:46:00Z | 2020-06-09T23:46:00Z | OWNER | The issues that should be referenced from this release are: 395, #519, #576, #699, #706, #774, #777, #781, #784, #788, #790, #797, #798, #800, #802, #804, #819, #822 |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Release Datasette 0.44 632753851 | |
641634749 | https://github.com/simonw/datasette/issues/806#issuecomment-641634749 | https://api.github.com/repos/simonw/datasette/issues/806 | MDEyOklzc3VlQ29tbWVudDY0MTYzNDc0OQ== | simonw 9599 | 2020-06-09T23:34:52Z | 2020-06-09T23:34:52Z | OWNER | Preview of the release notes is now available here: https://datasette.readthedocs.io/en/latest/changelog.html#v0-44 |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Release Datasette 0.44 632753851 | |
641616185 | https://github.com/simonw/datasette/issues/795#issuecomment-641616185 | https://api.github.com/repos/simonw/datasette/issues/795 | MDEyOklzc3VlQ29tbWVudDY0MTYxNjE4NQ== | simonw 9599 | 2020-06-09T22:33:33Z | 2020-06-09T22:33:33Z | OWNER | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
response.set_cookie() method 629541395 | ||
641616060 | https://github.com/simonw/datasette/issues/826#issuecomment-641616060 | https://api.github.com/repos/simonw/datasette/issues/826 | MDEyOklzc3VlQ29tbWVudDY0MTYxNjA2MA== | simonw 9599 | 2020-06-09T22:33:12Z | 2020-06-09T22:33:12Z | OWNER | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Document the ds_actor signed cookie 635519358 | ||
641604210 | https://github.com/simonw/datasette/issues/806#issuecomment-641604210 | https://api.github.com/repos/simonw/datasette/issues/806 | MDEyOklzc3VlQ29tbWVudDY0MTYwNDIxMA== | simonw 9599 | 2020-06-09T21:59:33Z | 2020-06-09T22:00:11Z | OWNER | AWS IAM uses action and resource terminology: https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction_access-management.html - I think that's where I got that language:
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Release Datasette 0.44 632753851 | |
641603457 | https://github.com/simonw/datasette/issues/806#issuecomment-641603457 | https://api.github.com/repos/simonw/datasette/issues/806 | MDEyOklzc3VlQ29tbWVudDY0MTYwMzQ1Nw== | simonw 9599 | 2020-06-09T21:57:32Z | 2020-06-09T21:57:32Z | OWNER | operation, procedure, process as alternative words for those menu items? |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Release Datasette 0.44 632753851 | |
641602794 | https://github.com/simonw/datasette/issues/806#issuecomment-641602794 | https://api.github.com/repos/simonw/datasette/issues/806 | MDEyOklzc3VlQ29tbWVudDY0MTYwMjc5NA== | simonw 9599 | 2020-06-09T21:55:45Z | 2020-06-09T21:55:45Z | OWNER | Last-minute thought: Should I worry about calling permissions "actions", when I have an idea for a future plugin hook that allows plugins to add something I was going to call "actions" to database, table and row pages? Those actions would take the form of menu item commands that Do Something to the selected object. If I use "actions" to mean permission names, will I be able to find a good alternative name for these dynamic menu items? |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Release Datasette 0.44 632753851 | |
641538982 | https://github.com/simonw/datasette/issues/804#issuecomment-641538982 | https://api.github.com/repos/simonw/datasette/issues/804 | MDEyOklzc3VlQ29tbWVudDY0MTUzODk4Mg== | simonw 9599 | 2020-06-09T20:01:30Z | 2020-06-09T20:01:30Z | OWNER | Now fully documented here: https://datasette.readthedocs.io/en/latest/contributing.html#setting-up-a-development-environment |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
python tests/fixtures.py command has a bug 632673972 | |
641538799 | https://github.com/simonw/datasette/issues/804#issuecomment-641538799 | https://api.github.com/repos/simonw/datasette/issues/804 | MDEyOklzc3VlQ29tbWVudDY0MTUzODc5OQ== | simonw 9599 | 2020-06-09T20:01:08Z | 2020-06-09T20:01:08Z | OWNER |
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
python tests/fixtures.py command has a bug 632673972 | |
641528737 | https://github.com/simonw/datasette/issues/804#issuecomment-641528737 | https://api.github.com/repos/simonw/datasette/issues/804 | MDEyOklzc3VlQ29tbWVudDY0MTUyODczNw== | simonw 9599 | 2020-06-09T19:39:24Z | 2020-06-09T19:39:24Z | OWNER | Switched to 0.44 milestone because I don't like shipping releases with known bugs. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
python tests/fixtures.py command has a bug 632673972 | |
641528269 | https://github.com/simonw/datasette/issues/827#issuecomment-641528269 | https://api.github.com/repos/simonw/datasette/issues/827 | MDEyOklzc3VlQ29tbWVudDY0MTUyODI2OQ== | simonw 9599 | 2020-06-09T19:38:30Z | 2020-06-09T19:38:30Z | OWNER | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Document CSRF protection (for plugins) 635696400 | ||
641406944 | https://github.com/simonw/datasette/issues/825#issuecomment-641406944 | https://api.github.com/repos/simonw/datasette/issues/825 | MDEyOklzc3VlQ29tbWVudDY0MTQwNjk0NA== | simonw 9599 | 2020-06-09T16:12:02Z | 2020-06-09T17:19:19Z | OWNER | Alternative design: leave actor alone. Instead specify that allow blocks can look like this:
I like this: the above block is very self-documenting. The I'm going with this design. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Way to enable a default=False permission for anonymous users 635147716 | |
641452563 | https://github.com/simonw/datasette/issues/825#issuecomment-641452563 | https://api.github.com/repos/simonw/datasette/issues/825 | MDEyOklzc3VlQ29tbWVudDY0MTQ1MjU2Mw== | simonw 9599 | 2020-06-09T17:08:00Z | 2020-06-09T17:08:00Z | OWNER | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Way to enable a default=False permission for anonymous users 635147716 | ||
641449725 | https://github.com/simonw/datasette/issues/825#issuecomment-641449725 | https://api.github.com/repos/simonw/datasette/issues/825 | MDEyOklzc3VlQ29tbWVudDY0MTQ0OTcyNQ== | simonw 9599 | 2020-06-09T17:02:31Z | 2020-06-09T17:02:31Z | OWNER | Documented at the bottom of this section: https://github.com/simonw/datasette/blob/7633b9ab249b2dce5ee0b4fcf9542c13a1703ef0/docs/authentication.rst#defining-permissions-with-allow-blocks |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Way to enable a default=False permission for anonymous users 635147716 | |
641412424 | https://github.com/simonw/datasette/issues/825#issuecomment-641412424 | https://api.github.com/repos/simonw/datasette/issues/825 | MDEyOklzc3VlQ29tbWVudDY0MTQxMjQyNA== | simonw 9599 | 2020-06-09T16:22:07Z | 2020-06-09T16:22:07Z | OWNER | When I implement this I should also document default allow vs default deny as a concept, and specify that default next to every documented permission. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Way to enable a default=False permission for anonymous users 635147716 |
Advanced export
JSON shape: default, array, newline-delimited, object
CREATE TABLE [issue_comments] ( [html_url] TEXT, [issue_url] TEXT, [id] INTEGER PRIMARY KEY, [node_id] TEXT, [user] INTEGER REFERENCES [users]([id]), [created_at] TEXT, [updated_at] TEXT, [author_association] TEXT, [body] TEXT, [reactions] TEXT, [issue] INTEGER REFERENCES [issues]([id]) , [performed_via_github_app] TEXT); CREATE INDEX [idx_issue_comments_issue] ON [issue_comments] ([issue]); CREATE INDEX [idx_issue_comments_user] ON [issue_comments] ([user]);
issue >30