{"id":24325702,"url":"https://github.com/abe-winter/groundling","last_synced_at":"2026-04-20T15:33:30.699Z","repository":{"id":89518755,"uuid":"319718821","full_name":"abe-winter/groundling","owner":"abe-winter","description":"starlette helpers for auth, orm + declarative routing","archived":false,"fork":false,"pushed_at":"2021-03-28T18:45:59.000Z","size":30,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-12-10T07:43:50.966Z","etag":null,"topics":["declarative","starlette"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/abe-winter.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2020-12-08T17:58:09.000Z","updated_at":"2021-03-28T18:46:01.000Z","dependencies_parsed_at":null,"dependency_job_id":"1c015c12-9da5-48a8-aa4c-9af87d4fefc8","html_url":"https://github.com/abe-winter/groundling","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/abe-winter/groundling","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/abe-winter%2Fgroundling","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/abe-winter%2Fgroundling/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/abe-winter%2Fgroundling/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/abe-winter%2Fgroundling/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/abe-winter","download_url":"https://codeload.github.com/abe-winter/groundling/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/abe-winter%2Fgroundling/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32053267,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-20T11:35:06.609Z","status":"ssl_error","status_checked_at":"2026-04-20T11:34:48.899Z","response_time":94,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["declarative","starlette"],"created_at":"2025-01-17T20:18:56.803Z","updated_at":"2026-04-20T15:33:30.692Z","avatar_url":"https://github.com/abe-winter.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# groundling - starlette helpers and declarative routing\n\nKitchen sink package for ramping up my small starlette projects.\n\n## Declarative routing\n\nIn the declaroute module this has wrappers for declarative routing. They're verbose and not documented, and won't save you any lines of code, but they work.\n\n'declarative routing' means that path parameters and json body params are unpacked automatically into database queries, executed, and their results are returned.\n\nThere are no docs for this, but there are untested, possibly-wrong examples in `test_decl.py`. More TBD.\n\n## Other stuff\n\n* a micro-orm on asyncpg\n* routes, helpers + middleware for user management / authentication\n* httpx (async) clients for postmark (email) + mixpanel\n* stackdriver error formatter\n* flash message\n* some json parser / serializer stuff for types\n* symlink-aware version of starlette's static files middleware to support frontend watch builds\n\nYou **must** set `DEBUG=1` if you're not on https or else sessions won't work.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fabe-winter%2Fgroundling","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fabe-winter%2Fgroundling","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fabe-winter%2Fgroundling/lists"}