{"html_url": "https://github.com/simonw/datasette/issues/2163#issuecomment-1697818917", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/2163", "id": 1697818917, "node_id": "IC_kwDOBm6k_c5lMqkl", "user": {"value": 9599, "label": "simonw"}, "created_at": "2023-08-29T16:56:20Z", "updated_at": "2023-08-29T16:56:20Z", "author_association": "OWNER", "body": "https://github.com/simonw/datasette/blob/50da908213a0fc405ecd7a40090dfea7a2e7395c/datasette/utils/internal_db.py#L8-L62", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1872043170, "label": "Rename core_X to catalog_X in the internals"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/pull/2154#issuecomment-1697725150", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/2154", "id": 1697725150, "node_id": "IC_kwDOBm6k_c5lMTre", "user": {"value": 9599, "label": "simonw"}, "created_at": "2023-08-29T15:54:12Z", "updated_at": "2023-08-29T15:54:12Z", "author_association": "OWNER", "body": "In that last commit I also upgraded `Permission` from a named tuple to a dataclass, and added a `implies_can_view=True` private (not documented) option to it.\r\n\r\nLast step is to refactor the code to use that new property.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1865281760, "label": "Cascade for restricted token view-table/view-database/view-instance operations"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/pull/2154#issuecomment-1697612168", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/2154", "id": 1697612168, "node_id": "IC_kwDOBm6k_c5lL4GI", "user": {"value": 9599, "label": "simonw"}, "created_at": "2023-08-29T14:57:54Z", "updated_at": "2023-08-29T14:57:54Z", "author_association": "OWNER", "body": "The code to refactor is this: https://github.com/simonw/datasette/blob/d64a9896f743f87b673d58859a0ec16685594e79/datasette/default_permissions.py#L181-L280\r\n\r\nI'm going to turn that into a more general `restrictions_allow_action` function.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1865281760, "label": "Cascade for restricted token view-table/view-database/view-instance operations"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/pull/2162#issuecomment-1696710911", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/2162", "id": 1696710911, "node_id": "IC_kwDOBm6k_c5lIcD_", "user": {"value": 9599, "label": "simonw"}, "created_at": "2023-08-29T03:23:44Z", "updated_at": "2023-08-29T03:23:44Z", "author_association": "OWNER", "body": "I'm going to merge this so we can see how it feels.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1870672704, "label": "Add new `--internal internal.db` option, deprecate legacy `_internal` database"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/pull/2162#issuecomment-1696709110", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/2162", "id": 1696709110, "node_id": "IC_kwDOBm6k_c5lIbn2", "user": {"value": 9599, "label": "simonw"}, "created_at": "2023-08-29T03:20:40Z", "updated_at": "2023-08-29T03:22:47Z", "author_association": "OWNER", "body": "> However, one important notes about those new `core_` tables: If a `--internal` DB is passed in, that means those `core_` tables will persist across multiple Datasette instances. This wasn't the case before, since `_internal` was always an in-memory database created from scratch.\r\n\r\nI'm completely happy for the `core_*` tables (or `datasette_*` or some other name) to live in the persisted-to-disk `internal.db` database, even though they're effectively meant to be an in-memory cache.\r\n\r\nI don't think it causes any harm, and it could even be quite useful to have them visible on disk - other applications could read the `internal.db` database while Datasette itself is running, should they have some weird reason to want to do that!\r\n\r\nHaving those tables stick around in `internal.db` after Datasette shuts down could be useful for other debugging activities as well.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1870672704, "label": "Add new `--internal internal.db` option, deprecate legacy `_internal` database"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/pull/2162#issuecomment-1696594855", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/2162", "id": 1696594855, "node_id": "IC_kwDOBm6k_c5lH_un", "user": {"value": 22429695, "label": "codecov[bot]"}, "created_at": "2023-08-29T00:19:29Z", "updated_at": "2023-08-29T03:22:21Z", "author_association": "NONE", "body": "## [Codecov](https://app.codecov.io/gh/simonw/datasette/pull/2162?src=pr&el=h1&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison) Report\nPatch coverage: **`100.00%`** and project coverage change: **`-0.03%`** :warning:\n> Comparison is base [(`2e28258`)](https://app.codecov.io/gh/simonw/datasette/commit/2e2825869fc2655b5fcadc743f6f9dec7a49bc65?el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison) 92.82% compared to head [(`73489ca`)](https://app.codecov.io/gh/simonw/datasette/pull/2162?src=pr&el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison) 92.79%.\n> Report is 1 commits behind head on main.\n\n
Additional details and impacted files\n\n\n```diff\n@@ Coverage Diff @@\n## main #2162 +/- ##\n==========================================\n- Coverage 92.82% 92.79% -0.03% \n==========================================\n Files 40 40 \n Lines 5948 5953 +5 \n==========================================\n+ Hits 5521 5524 +3 \n- Misses 427 429 +2 \n```\n\n\n| [Files Changed](https://app.codecov.io/gh/simonw/datasette/pull/2162?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison) | Coverage \u0394 | |\n|---|---|---|\n| [datasette/default\\_permissions.py](https://app.codecov.io/gh/simonw/datasette/pull/2162?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison#diff-ZGF0YXNldHRlL2RlZmF1bHRfcGVybWlzc2lvbnMucHk=) | `96.87% <\u00f8> (-0.04%)` | :arrow_down: |\n| [datasette/app.py](https://app.codecov.io/gh/simonw/datasette/pull/2162?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison#diff-ZGF0YXNldHRlL2FwcC5weQ==) | `94.32% <100.00%> (+0.03%)` | :arrow_up: |\n| [datasette/cli.py](https://app.codecov.io/gh/simonw/datasette/pull/2162?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison#diff-ZGF0YXNldHRlL2NsaS5weQ==) | `82.53% <100.00%> (-0.06%)` | :arrow_down: |\n| [datasette/database.py](https://app.codecov.io/gh/simonw/datasette/pull/2162?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison#diff-ZGF0YXNldHRlL2RhdGFiYXNlLnB5) | `94.72% <100.00%> (+0.04%)` | :arrow_up: |\n| [datasette/utils/internal\\_db.py](https://app.codecov.io/gh/simonw/datasette/pull/2162?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison#diff-ZGF0YXNldHRlL3V0aWxzL2ludGVybmFsX2RiLnB5) | `100.00% <100.00%> (\u00f8)` | |\n| [datasette/views/database.py](https://app.codecov.io/gh/simonw/datasette/pull/2162?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison#diff-ZGF0YXNldHRlL3ZpZXdzL2RhdGFiYXNlLnB5) | `95.45% <100.00%> (\u00f8)` | |\n| [datasette/views/special.py](https://app.codecov.io/gh/simonw/datasette/pull/2162?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison#diff-ZGF0YXNldHRlL3ZpZXdzL3NwZWNpYWwucHk=) | `94.06% <100.00%> (-0.85%)` | :arrow_down: |\n\n\n
\n\n[:umbrella: View full report in Codecov by Sentry](https://app.codecov.io/gh/simonw/datasette/pull/2162?src=pr&el=continue&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison). \n:loudspeaker: Have feedback on the report? [Share it here](https://about.codecov.io/codecov-pr-comment-feedback/?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison).\n", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1870672704, "label": "Add new `--internal internal.db` option, deprecate legacy `_internal` database"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/pull/2162#issuecomment-1696707458", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/2162", "id": 1696707458, "node_id": "IC_kwDOBm6k_c5lIbOC", "user": {"value": 9599, "label": "simonw"}, "created_at": "2023-08-29T03:17:54Z", "updated_at": "2023-08-29T03:17:54Z", "author_association": "OWNER", "body": "Documentation preview: https://datasette--2162.org.readthedocs.build/en/2162/internals.html#datasette-s-internal-database", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1870672704, "label": "Add new `--internal internal.db` option, deprecate legacy `_internal` database"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/pull/2154#issuecomment-1696644066", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/2154", "id": 1696644066, "node_id": "IC_kwDOBm6k_c5lILvi", "user": {"value": 9599, "label": "simonw"}, "created_at": "2023-08-29T01:37:47Z", "updated_at": "2023-08-29T03:00:25Z", "author_association": "OWNER", "body": "Code for this might be cleaner with a `Restrictions()` class that takes a `\"_r\"` dictionary to the constructor and can then answer questions like `.any_resource_has_permission(\"view-table\")` - where it can resolve aliases etc as well.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1865281760, "label": "Cascade for restricted token view-table/view-database/view-instance operations"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/pull/2154#issuecomment-1696642671", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/2154", "id": 1696642671, "node_id": "IC_kwDOBm6k_c5lILZv", "user": {"value": 9599, "label": "simonw"}, "created_at": "2023-08-29T01:35:37Z", "updated_at": "2023-08-29T01:35:37Z", "author_association": "OWNER", "body": "Reminder that I also need to confirm that `insert-row` works if you have it at the instance level, the database level or the resource level in `_r`.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1865281760, "label": "Cascade for restricted token view-table/view-database/view-instance operations"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/pull/2154#issuecomment-1696618784", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/2154", "id": 1696618784, "node_id": "IC_kwDOBm6k_c5lIFkg", "user": {"value": 9599, "label": "simonw"}, "created_at": "2023-08-29T00:58:34Z", "updated_at": "2023-08-29T00:58:34Z", "author_association": "OWNER", "body": "Should this have `implies_can_view=True` too? Probably: https://github.com/simonw/datasette/blob/d64a9896f743f87b673d58859a0ec16685594e79/datasette/default_permissions.py#L20-L22", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1865281760, "label": "Cascade for restricted token view-table/view-database/view-instance operations"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/pull/2160#issuecomment-1696595326", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/2160", "id": 1696595326, "node_id": "IC_kwDOBm6k_c5lH_1-", "user": {"value": 9599, "label": "simonw"}, "created_at": "2023-08-29T00:20:08Z", "updated_at": "2023-08-29T00:20:08Z", "author_association": "OWNER", "body": "Cog failed!", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1869807874, "label": "Bump sphinx, furo, blacken-docs dependencies"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/pull/2160#issuecomment-1696592763", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/2160", "id": 1696592763, "node_id": "IC_kwDOBm6k_c5lH_N7", "user": {"value": 9599, "label": "simonw"}, "created_at": "2023-08-29T00:16:38Z", "updated_at": "2023-08-29T00:16:38Z", "author_association": "OWNER", "body": "Since this bumps Sphinx I'm manually reviewing the ReadTheDocs preview a bit, looks good to me: https://datasette--2160.org.readthedocs.build/en/2160/", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1869807874, "label": "Bump sphinx, furo, blacken-docs dependencies"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/pull/2148#issuecomment-1696591957", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/2148", "id": 1696591957, "node_id": "IC_kwDOBm6k_c5lH_BV", "user": {"value": 49699333, "label": "dependabot[bot]"}, "created_at": "2023-08-29T00:15:29Z", "updated_at": "2023-08-29T00:15:29Z", "author_association": "CONTRIBUTOR", "body": "This pull request was built based on a group rule. Closing it will not ignore any of these versions in future pull requests.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1859415334, "label": "Bump sphinx, furo, blacken-docs dependencies"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/pull/2148#issuecomment-1696591943", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/2148", "id": 1696591943, "node_id": "IC_kwDOBm6k_c5lH_BH", "user": {"value": 9599, "label": "simonw"}, "created_at": "2023-08-29T00:15:27Z", "updated_at": "2023-08-29T00:15:27Z", "author_association": "OWNER", "body": "Now solving this here:\r\n- #2160 ", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1859415334, "label": "Bump sphinx, furo, blacken-docs dependencies"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/pull/2160#issuecomment-1696586767", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/2160", "id": 1696586767, "node_id": "IC_kwDOBm6k_c5lH9wP", "user": {"value": 9599, "label": "simonw"}, "created_at": "2023-08-29T00:08:26Z", "updated_at": "2023-08-29T00:08:35Z", "author_association": "OWNER", "body": "https://github.com/simonw/datasette/issues/2148#issuecomment-1689177556\r\n\r\n> Simplest possible solution is to only run the `pip install .[docs]` bit under Python 3.9+, ditto for the docs tests. I think I'll try that.\r\n", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1869807874, "label": "Bump sphinx, furo, blacken-docs dependencies"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/pull/2160#issuecomment-1696586213", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/2160", "id": 1696586213, "node_id": "IC_kwDOBm6k_c5lH9nl", "user": {"value": 9599, "label": "simonw"}, "created_at": "2023-08-29T00:07:46Z", "updated_at": "2023-08-29T00:07:46Z", "author_association": "OWNER", "body": "I figured out why this was failing in:\r\n- https://github.com/simonw/datasette/pull/2148\r\n\r\nIt's because Sphinx dropped support for Python 3.8.\r\n", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1869807874, "label": "Bump sphinx, furo, blacken-docs dependencies"}, "performed_via_github_app": null}