├── .github └── workflows │ ├── release.yml │ └── test.yml ├── .gitignore ├── AGENTS.md ├── CLAUDE.md ├── CONTRIBUTING.md ├── README.md ├── example ├── .env ├── .gitignore ├── app │ ├── __init__.py │ ├── cli.py │ ├── flags.py │ ├── settings.py │ ├── templates │ │ ├── base.html │ │ ├── index.html │ │ └── login.html │ ├── urls.py │ └── users │ │ ├── __init__.py │ │ ├── migrations │ │ ├── 0001_initial.py │ │ └── __init__.py │ │ └── models.py ├── pyproject.toml ├── scripts │ └── install ├── tailwind.css └── tests │ └── test_urls.py ├── plain-admin ├── LICENSE ├── README.md ├── plain │ └── admin │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── __init__.py │ │ ├── assets │ │ └── admin │ │ │ ├── admin.css │ │ │ ├── admin.js │ │ │ ├── bootstrap-icons.svg │ │ │ ├── list.js │ │ │ └── vendor │ │ │ ├── chart.js │ │ │ ├── jquery-3.7.1.min.js │ │ │ ├── popper.min.js │ │ │ ├── tippy.css │ │ │ └── tippy.umd.min.js │ │ ├── cards │ │ ├── __init__.py │ │ ├── base.py │ │ ├── charts.py │ │ └── tables.py │ │ ├── config.py │ │ ├── dates.py │ │ ├── impersonate │ │ ├── __init__.py │ │ ├── constants.py │ │ ├── middleware.py │ │ ├── permissions.py │ │ ├── requests.py │ │ ├── settings.py │ │ ├── urls.py │ │ └── views.py │ │ ├── middleware.py │ │ ├── templates.py │ │ ├── templates │ │ ├── admin │ │ │ ├── base.html │ │ │ ├── cards │ │ │ │ ├── base.html │ │ │ │ ├── card.html │ │ │ │ ├── chart.html │ │ │ │ └── table.html │ │ │ ├── delete.html │ │ │ ├── detail.html │ │ │ ├── index.html │ │ │ ├── list.html │ │ │ ├── page.html │ │ │ ├── search.html │ │ │ ├── toolbar │ │ │ │ └── button.html │ │ │ └── values │ │ │ │ ├── UUID.html │ │ │ │ ├── bool.html │ │ │ │ ├── datetime.html │ │ │ │ ├── default.html │ │ │ │ ├── dict.html │ │ │ │ ├── img.html │ │ │ │ ├── list.html │ │ │ │ ├── model.html │ │ │ │ └── queryset.html │ │ └── elements │ │ │ └── admin │ │ │ ├── Checkbox.html │ │ │ ├── CheckboxField.html │ │ │ ├── FieldErrors.html │ │ │ ├── Help.html │ │ │ ├── Icon.html │ │ │ ├── Input.html │ │ │ ├── InputField.html │ │ │ ├── Label.html │ │ │ ├── Select.html │ │ │ ├── SelectField.html │ │ │ ├── Submit.html │ │ │ ├── Textarea.html │ │ │ └── TextareaField.html │ │ ├── toolbar.py │ │ ├── urls.py │ │ ├── utils.py │ │ └── views │ │ ├── __init__.py │ │ ├── base.py │ │ ├── models.py │ │ ├── objects.py │ │ ├── registry.py │ │ ├── types.py │ │ └── viewsets.py ├── pyproject.toml └── tests │ ├── app │ ├── settings.py │ ├── urls.py │ └── users │ │ ├── migrations │ │ ├── 0001_initial.py │ │ └── __init__.py │ │ └── models.py │ └── test_admin.py ├── plain-api ├── LICENSE ├── README.md ├── plain │ └── api │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── __init__.py │ │ ├── cli.py │ │ ├── config.py │ │ ├── default_settings.py │ │ ├── migrations │ │ ├── 0001_initial.py │ │ └── __init__.py │ │ ├── models.py │ │ ├── openapi │ │ ├── __init__.py │ │ ├── decorators.py │ │ ├── generator.py │ │ └── utils.py │ │ ├── schemas.py │ │ ├── versioning.py │ │ └── views.py ├── pyproject.toml └── tests │ ├── app │ ├── settings.py │ └── urls.py │ └── test_api.py ├── plain-auth ├── LICENSE ├── README.md ├── plain │ └── auth │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── __init__.py │ │ ├── default_settings.py │ │ ├── requests.py │ │ ├── sessions.py │ │ ├── templates.py │ │ ├── test.py │ │ ├── utils.py │ │ └── views.py ├── pyproject.toml └── tests │ ├── app │ ├── settings.py │ ├── urls.py │ └── users │ │ ├── migrations │ │ ├── 0001_initial.py │ │ └── __init__.py │ │ └── models.py │ └── test_views.py ├── plain-cache ├── LICENSE ├── README.md ├── plain │ └── cache │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── __init__.py │ │ ├── admin.py │ │ ├── chores.py │ │ ├── cli.py │ │ ├── config.py │ │ ├── core.py │ │ ├── migrations │ │ ├── 0001_initial.py │ │ └── __init__.py │ │ └── models.py └── pyproject.toml ├── plain-code ├── .gitignore ├── LICENSE ├── README.md ├── plain │ └── code │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── __init__.py │ │ ├── biome.py │ │ ├── biome_defaults.json │ │ ├── cli.py │ │ ├── entrypoints.py │ │ └── ruff_defaults.toml └── pyproject.toml ├── plain-dev ├── .gitignore ├── LICENSE ├── README.md ├── plain │ └── dev │ │ ├── AGENTS.md │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── __init__.py │ │ ├── alias.py │ │ ├── cli.py │ │ ├── contribute │ │ ├── README.md │ │ ├── __init__.py │ │ └── cli.py │ │ ├── core.py │ │ ├── debug.py │ │ ├── default_settings.py │ │ ├── entrypoints.py │ │ ├── mkcert.py │ │ ├── pdb.py │ │ ├── poncho │ │ ├── __init__.py │ │ ├── color.py │ │ ├── compat.py │ │ ├── manager.py │ │ ├── printer.py │ │ └── process.py │ │ ├── precommit │ │ ├── __init__.py │ │ └── cli.py │ │ ├── process.py │ │ ├── services.py │ │ └── utils.py ├── pyproject.toml └── tests │ └── settings.py ├── plain-elements ├── .gitignore ├── LICENSE ├── README.md ├── plain │ └── elements │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── __init__.py │ │ └── templates.py ├── pyproject.toml └── tests │ ├── app │ ├── settings.py │ └── urls.py │ └── test_elements.py ├── plain-email ├── LICENSE ├── README.md ├── plain │ └── email │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── __init__.py │ │ ├── backends │ │ ├── __init__.py │ │ ├── base.py │ │ ├── console.py │ │ ├── filebased.py │ │ └── smtp.py │ │ ├── default_settings.py │ │ ├── message.py │ │ └── utils.py └── pyproject.toml ├── plain-esbuild ├── .gitignore ├── LICENSE ├── README.md ├── plain │ └── esbuild │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── __init__.py │ │ ├── cli.py │ │ ├── core.py │ │ └── entrypoints.py └── pyproject.toml ├── plain-flags ├── LICENSE ├── README.md ├── plain │ └── flags │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── __init__.py │ │ ├── admin.py │ │ ├── bridge.py │ │ ├── config.py │ │ ├── default_settings.py │ │ ├── exceptions.py │ │ ├── flags.py │ │ ├── migrations │ │ ├── 0001_initial.py │ │ ├── 0002_remove_flag_plainflags_flag_unique_uuid_and_more.py │ │ └── __init__.py │ │ ├── models.py │ │ ├── preflight.py │ │ ├── py.typed │ │ ├── templates.py │ │ ├── templates │ │ └── admin │ │ │ └── plainflags │ │ │ └── flagresult_form.html │ │ └── utils.py ├── pyproject.toml └── tests │ ├── app │ ├── settings.py │ └── urls.py │ └── test_flags.py ├── plain-htmx ├── .gitignore ├── LICENSE ├── README.md ├── deps.yml ├── package-lock.json ├── package.json ├── plain │ └── htmx │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── __init__.py │ │ ├── assets │ │ └── htmx │ │ │ ├── plainhtmx.js │ │ │ └── vendor │ │ │ ├── idiomorph │ │ │ ├── idiomorph-ext.js │ │ │ ├── idiomorph-ext.min.js │ │ │ ├── idiomorph-htmx.js │ │ │ ├── idiomorph.amd.js │ │ │ ├── idiomorph.cjs.js │ │ │ ├── idiomorph.esm.js │ │ │ ├── idiomorph.js │ │ │ └── idiomorph.min.js │ │ │ └── src │ │ │ ├── ext │ │ │ ├── README.md │ │ │ ├── ajax-header.js │ │ │ ├── alpine-morph.js │ │ │ ├── class-tools.js │ │ │ ├── client-side-templates.js │ │ │ ├── debug.js │ │ │ ├── disable-element.js │ │ │ ├── event-header.js │ │ │ ├── head-support.js │ │ │ ├── include-vals.js │ │ │ ├── json-enc.js │ │ │ ├── loading-states.js │ │ │ ├── method-override.js │ │ │ ├── morphdom-swap.js │ │ │ ├── multi-swap.js │ │ │ ├── path-deps.js │ │ │ ├── path-params.js │ │ │ ├── preload.js │ │ │ ├── rails-method.js │ │ │ ├── remove-me.js │ │ │ ├── response-targets.js │ │ │ ├── restored.js │ │ │ ├── sse.js │ │ │ └── ws.js │ │ │ ├── htmx.amd.js │ │ │ ├── htmx.cjs.js │ │ │ ├── htmx.esm.d.ts │ │ │ ├── htmx.esm.js │ │ │ ├── htmx.js │ │ │ ├── htmx.min.js │ │ │ └── htmx.min.js.gz │ │ ├── templates.py │ │ ├── templates │ │ └── htmx │ │ │ └── js.html │ │ └── views.py ├── pyproject.toml └── tests │ ├── app │ ├── settings.py │ └── urls.py │ └── test_views.py ├── plain-jobs ├── .gitignore ├── LICENSE ├── README.md ├── plain │ └── jobs │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── __init__.py │ │ ├── admin.py │ │ ├── chores.py │ │ ├── cli.py │ │ ├── config.py │ │ ├── default_settings.py │ │ ├── exceptions.py │ │ ├── jobs.py │ │ ├── locks.py │ │ ├── middleware.py │ │ ├── migrations │ │ ├── 0001_initial.py │ │ ├── 0002_job_span_id_job_trace_id_jobrequest_span_id_and_more.py │ │ ├── 0003_rename_job_jobprocess_and_more.py │ │ ├── 0004_rename_tables_to_plainjobs.py │ │ ├── 0005_rename_constraints_and_indexes.py │ │ ├── 0006_alter_jobprocess_table_alter_jobrequest_table_and_more.py │ │ ├── 0007_remove_jobrequest_plainjobs_jobrequest_unique_job_class_key_and_more.py │ │ └── __init__.py │ │ ├── models.py │ │ ├── parameters.py │ │ ├── registry.py │ │ ├── scheduling.py │ │ ├── templates │ │ └── admin │ │ │ └── plainqueue │ │ │ └── jobresult_detail.html │ │ └── workers.py ├── pyproject.toml └── tests │ ├── app │ └── settings.py │ ├── test_parameters.py │ └── test_scheduling.py ├── plain-loginlink ├── LICENSE ├── README.md ├── plain │ └── loginlink │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── __init__.py │ │ ├── forms.py │ │ ├── links.py │ │ ├── signing.py │ │ ├── templates │ │ ├── email │ │ │ ├── loginlink.html │ │ │ └── loginlink.subject.txt │ │ └── loginlink │ │ │ ├── failed.html │ │ │ └── sent.html │ │ ├── urls.py │ │ └── views.py └── pyproject.toml ├── plain-models ├── LICENSE ├── README.md ├── plain │ └── models │ │ ├── AGENTS.md │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── __init__.py │ │ ├── aggregates.py │ │ ├── backends │ │ ├── __init__.py │ │ ├── base │ │ │ ├── __init__.py │ │ │ ├── base.py │ │ │ ├── client.py │ │ │ ├── creation.py │ │ │ ├── features.py │ │ │ ├── introspection.py │ │ │ ├── operations.py │ │ │ ├── schema.py │ │ │ └── validation.py │ │ ├── ddl_references.py │ │ ├── guards.py │ │ ├── mysql │ │ │ ├── __init__.py │ │ │ ├── base.py │ │ │ ├── client.py │ │ │ ├── compiler.py │ │ │ ├── creation.py │ │ │ ├── features.py │ │ │ ├── introspection.py │ │ │ ├── operations.py │ │ │ ├── schema.py │ │ │ └── validation.py │ │ ├── postgresql │ │ │ ├── __init__.py │ │ │ ├── base.py │ │ │ ├── client.py │ │ │ ├── creation.py │ │ │ ├── features.py │ │ │ ├── introspection.py │ │ │ ├── operations.py │ │ │ └── schema.py │ │ ├── sqlite3 │ │ │ ├── __init__.py │ │ │ ├── _functions.py │ │ │ ├── base.py │ │ │ ├── client.py │ │ │ ├── creation.py │ │ │ ├── features.py │ │ │ ├── introspection.py │ │ │ ├── operations.py │ │ │ └── schema.py │ │ └── utils.py │ │ ├── backups │ │ ├── __init__.py │ │ ├── cli.py │ │ ├── clients.py │ │ └── core.py │ │ ├── base.py │ │ ├── cli │ │ ├── __init__.py │ │ ├── db.py │ │ └── migrations.py │ │ ├── config.py │ │ ├── connections.py │ │ ├── constants.py │ │ ├── constraints.py │ │ ├── database_url.py │ │ ├── db.py │ │ ├── default_settings.py │ │ ├── deletion.py │ │ ├── entrypoints.py │ │ ├── enums.py │ │ ├── exceptions.py │ │ ├── expressions.py │ │ ├── fields │ │ ├── __init__.py │ │ ├── json.py │ │ ├── mixins.py │ │ ├── related.py │ │ ├── related_descriptors.py │ │ ├── related_lookups.py │ │ ├── related_managers.py │ │ ├── reverse_descriptors.py │ │ └── reverse_related.py │ │ ├── forms.py │ │ ├── functions │ │ ├── __init__.py │ │ ├── comparison.py │ │ ├── datetime.py │ │ ├── math.py │ │ ├── mixins.py │ │ ├── text.py │ │ └── window.py │ │ ├── indexes.py │ │ ├── lookups.py │ │ ├── meta.py │ │ ├── migrations │ │ ├── __init__.py │ │ ├── autodetector.py │ │ ├── exceptions.py │ │ ├── executor.py │ │ ├── graph.py │ │ ├── loader.py │ │ ├── migration.py │ │ ├── operations │ │ │ ├── __init__.py │ │ │ ├── base.py │ │ │ ├── fields.py │ │ │ ├── models.py │ │ │ └── special.py │ │ ├── optimizer.py │ │ ├── questioner.py │ │ ├── recorder.py │ │ ├── serializer.py │ │ ├── state.py │ │ ├── utils.py │ │ └── writer.py │ │ ├── options.py │ │ ├── otel.py │ │ ├── preflight.py │ │ ├── query.py │ │ ├── query_utils.py │ │ ├── registry.py │ │ ├── sql │ │ ├── __init__.py │ │ ├── compiler.py │ │ ├── constants.py │ │ ├── datastructures.py │ │ ├── query.py │ │ ├── subqueries.py │ │ └── where.py │ │ ├── test │ │ ├── __init__.py │ │ ├── pytest.py │ │ └── utils.py │ │ ├── transaction.py │ │ ├── types.py │ │ ├── types.pyi │ │ └── utils.py ├── pyproject.toml └── tests │ ├── app │ ├── examples │ │ ├── migrations │ │ │ ├── 0001_initial.py │ │ │ ├── 0002_test_field_removed.py │ │ │ ├── 0003_deleteparent_childsetnull_childsetdefault_and_more.py │ │ │ ├── 0004_defaultquerysetmodel_mixintestmodel_and_more.py │ │ │ ├── 0005_feature_carfeature_car_features.py │ │ │ └── __init__.py │ │ └── models.py │ ├── settings.py │ └── urls.py │ ├── test_database_url.py │ ├── test_delete_behaviors.py │ ├── test_exceptions.py │ ├── test_manager_assignment.py │ ├── test_models.py │ ├── test_related_descriptors.py │ └── test_related_manager_api.py ├── plain-oauth ├── .gitignore ├── LICENSE ├── README.md ├── plain │ └── oauth │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── __init__.py │ │ ├── admin.py │ │ ├── config.py │ │ ├── default_settings.py │ │ ├── exceptions.py │ │ ├── migrations │ │ ├── 0001_initial.py │ │ └── __init__.py │ │ ├── models.py │ │ ├── preflight.py │ │ ├── providers.py │ │ ├── templates │ │ └── oauth │ │ │ └── callback.html │ │ ├── urls.py │ │ └── views.py ├── provider_examples │ ├── __init__.py │ ├── bitbucket.py │ ├── github.py │ └── gitlab.py ├── pyproject.toml └── tests │ ├── app │ ├── settings.py │ ├── templates │ │ ├── base.html │ │ ├── index.html │ │ └── login.html │ ├── urls.py │ └── users │ │ ├── migrations │ │ ├── 0001_initial.py │ │ └── __init__.py │ │ └── models.py │ ├── provider_tests │ ├── __init__.py │ └── test_github.py │ ├── providers │ ├── __init__.py │ ├── bitbucket.py │ ├── github.py │ └── gitlab.py │ ├── test_backends.py │ ├── test_checks.py │ └── test_providers.py ├── plain-observer ├── LICENSE ├── README.md ├── plain │ └── observer │ │ ├── AGENTS.md │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── __init__.py │ │ ├── admin.py │ │ ├── assets │ │ └── observer │ │ │ ├── observer.css │ │ │ └── observer.js │ │ ├── cli.py │ │ ├── config.py │ │ ├── core.py │ │ ├── default_settings.py │ │ ├── logging.py │ │ ├── migrations │ │ ├── 0001_initial.py │ │ ├── 0002_trace_share_created_at_trace_share_id_trace_summary_and_more.py │ │ ├── 0003_span_plainobserv_span_id_e7ade3_idx.py │ │ ├── 0004_trace_app_name_trace_app_version.py │ │ ├── 0005_log_log_plainobserv_trace_i_fcfb7d_idx_and_more.py │ │ ├── 0006_remove_log_logger.py │ │ └── __init__.py │ │ ├── models.py │ │ ├── otel.py │ │ ├── templates │ │ ├── observer │ │ │ ├── partials │ │ │ │ ├── log.html │ │ │ │ └── span.html │ │ │ ├── trace.html │ │ │ ├── trace_detail.html │ │ │ ├── trace_share.html │ │ │ └── traces.html │ │ └── toolbar │ │ │ ├── observer.html │ │ │ └── observer_button.html │ │ ├── toolbar.py │ │ ├── urls.py │ │ └── views.py └── pyproject.toml ├── plain-pages ├── .gitignore ├── LICENSE ├── README.md ├── plain │ └── pages │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── __init__.py │ │ ├── config.py │ │ ├── default_settings.py │ │ ├── exceptions.py │ │ ├── markdown.py │ │ ├── pages.py │ │ ├── registry.py │ │ ├── templates │ │ └── page.html │ │ ├── urls.py │ │ └── views.py └── pyproject.toml ├── plain-pageviews ├── LICENSE ├── README.md ├── plain │ └── pageviews │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── __init__.py │ │ ├── admin.py │ │ ├── assets │ │ └── pageviews │ │ │ └── pageviews.js │ │ ├── chores.py │ │ ├── config.py │ │ ├── default_settings.py │ │ ├── migrations │ │ ├── 0001_initial.py │ │ ├── 0002_remove_pageview_plainpagevi_session_5545cf_idx_and_more.py │ │ ├── 0003_pageview_campaign_pageview_medium_pageview_source_and_more.py │ │ ├── 0004_remove_pageview_plainpageviews_pageview_unique_uuid_and_more.py │ │ └── __init__.py │ │ ├── models.py │ │ ├── params.py │ │ ├── templates.py │ │ ├── templates │ │ └── pageviews │ │ │ ├── card.html │ │ │ └── js.html │ │ ├── urls.py │ │ └── views.py └── pyproject.toml ├── plain-passwords ├── LICENSE ├── README.md ├── plain │ └── passwords │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── __init__.py │ │ ├── common-passwords.txt.gz │ │ ├── core.py │ │ ├── default_settings.py │ │ ├── forms.py │ │ ├── hashers.py │ │ ├── models.py │ │ ├── templates │ │ └── email │ │ │ ├── password_reset.html │ │ │ └── password_reset.subject.txt │ │ ├── types.py │ │ ├── types.pyi │ │ ├── utils.py │ │ ├── validators.py │ │ └── views.py └── pyproject.toml ├── plain-pytest ├── .gitignore ├── LICENSE ├── README.md ├── plain │ └── pytest │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── __init__.py │ │ ├── browser.py │ │ ├── cli.py │ │ ├── entrypoints.py │ │ └── plugin.py └── pyproject.toml ├── plain-redirection ├── LICENSE ├── README.md ├── plain │ └── redirection │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── __init__.py │ │ ├── admin.py │ │ ├── chores.py │ │ ├── config.py │ │ ├── default_settings.py │ │ ├── middleware.py │ │ ├── migrations │ │ ├── 0001_initial.py │ │ └── __init__.py │ │ ├── models.py │ │ └── templates │ │ └── admin │ │ └── plainredirection │ │ └── redirect_form.html └── pyproject.toml ├── plain-scan ├── LICENSE ├── README.md ├── plain │ └── scan │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── __init__.py │ │ ├── audits │ │ ├── __init__.py │ │ ├── base.py │ │ ├── content_type_options.py │ │ ├── cookies.py │ │ ├── cors.py │ │ ├── csp.py │ │ ├── frame_options.py │ │ ├── hsts.py │ │ ├── redirects.py │ │ ├── referrer_policy.py │ │ ├── status_code.py │ │ └── tls.py │ │ ├── cli.py │ │ ├── entrypoints.py │ │ ├── metadata.py │ │ ├── output.py │ │ ├── results.py │ │ └── scanner.py └── pyproject.toml ├── plain-sessions ├── LICENSE ├── README.md ├── plain │ └── sessions │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── __init__.py │ │ ├── admin.py │ │ ├── chores.py │ │ ├── config.py │ │ ├── core.py │ │ ├── default_settings.py │ │ ├── exceptions.py │ │ ├── middleware.py │ │ ├── migrations │ │ ├── 0001_initial.py │ │ └── __init__.py │ │ ├── models.py │ │ ├── preflight.py │ │ ├── requests.py │ │ ├── templates.py │ │ ├── templates │ │ └── toolbar │ │ │ └── session.html │ │ ├── test.py │ │ ├── toolbar.py │ │ └── views.py ├── pyproject.toml └── tests │ ├── app │ ├── settings.py │ └── urls.py │ └── test_sessions.py ├── plain-start ├── LICENSE ├── README.md ├── plain │ └── start │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── __init__.py │ │ └── cli.py └── pyproject.toml ├── plain-support ├── LICENSE ├── README.md ├── plain │ └── support │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── __init__.py │ │ ├── admin.py │ │ ├── assets │ │ └── support │ │ │ ├── embed.js │ │ │ └── iframe.js │ │ ├── config.py │ │ ├── default_settings.py │ │ ├── forms.py │ │ ├── migrations │ │ ├── 0001_initial.py │ │ ├── 0002_remove_supportformentry_plainsupport_supportformentry_unique_uuid_and_more.py │ │ └── __init__.py │ │ ├── models.py │ │ ├── templates │ │ ├── email │ │ │ └── support_form_entry.html │ │ └── support │ │ │ ├── card.html │ │ │ ├── forms │ │ │ └── default.html │ │ │ ├── iframe.html │ │ │ ├── page.html │ │ │ └── success │ │ │ └── default.html │ │ ├── urls.py │ │ └── views.py └── pyproject.toml ├── plain-tailwind ├── .gitignore ├── LICENSE ├── README.md ├── plain │ └── tailwind │ │ ├── AGENTS.md │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── __init__.py │ │ ├── cli.py │ │ ├── core.py │ │ ├── default_settings.py │ │ ├── entrypoints.py │ │ ├── templates.py │ │ └── templates │ │ └── tailwind │ │ └── css.html └── pyproject.toml ├── plain-toolbar ├── LICENSE ├── README.md ├── plain │ └── toolbar │ │ ├── CHANGELOG.md │ │ ├── __init__.py │ │ ├── assets │ │ └── toolbar │ │ │ └── toolbar.js │ │ ├── config.py │ │ ├── registry.py │ │ ├── templates.py │ │ ├── templates │ │ └── toolbar │ │ │ ├── exception.html │ │ │ ├── exception_button.html │ │ │ ├── request.html │ │ │ └── toolbar.html │ │ └── toolbar.py └── pyproject.toml ├── plain-tunnel ├── .gitignore ├── LICENSE ├── README.md ├── plain │ └── tunnel │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── __init__.py │ │ ├── cli.py │ │ ├── client.py │ │ └── entrypoints.py ├── pyproject.toml └── server │ ├── .gitignore │ ├── package-lock.json │ ├── package.json │ ├── worker.js │ └── wrangler.toml ├── plain-vendor ├── LICENSE ├── README.md ├── plain │ └── vendor │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── __init__.py │ │ ├── cli.py │ │ ├── deps.py │ │ ├── entrypoints.py │ │ └── exceptions.py └── pyproject.toml ├── plain ├── LICENSE ├── README.md ├── plain │ ├── AGENTS.md │ ├── CHANGELOG.md │ ├── README.md │ ├── __main__.py │ ├── assets │ │ ├── README.md │ │ ├── __init__.py │ │ ├── compile.py │ │ ├── finders.py │ │ ├── fingerprints.py │ │ ├── urls.py │ │ └── views.py │ ├── chores │ │ ├── README.md │ │ ├── __init__.py │ │ ├── core.py │ │ └── registry.py │ ├── cli │ │ ├── README.md │ │ ├── __init__.py │ │ ├── agent │ │ │ ├── __init__.py │ │ │ ├── docs.py │ │ │ ├── llmdocs.py │ │ │ ├── md.py │ │ │ ├── prompt.py │ │ │ └── request.py │ │ ├── build.py │ │ ├── changelog.py │ │ ├── chores.py │ │ ├── core.py │ │ ├── docs.py │ │ ├── formatting.py │ │ ├── install.py │ │ ├── output.py │ │ ├── preflight.py │ │ ├── print.py │ │ ├── registry.py │ │ ├── runtime.py │ │ ├── scaffold.py │ │ ├── server.py │ │ ├── settings.py │ │ ├── shell.py │ │ ├── startup.py │ │ ├── upgrade.py │ │ ├── urls.py │ │ └── utils.py │ ├── csrf │ │ ├── README.md │ │ └── middleware.py │ ├── debug.py │ ├── exceptions.py │ ├── forms │ │ ├── README.md │ │ ├── __init__.py │ │ ├── boundfield.py │ │ ├── exceptions.py │ │ ├── fields.py │ │ └── forms.py │ ├── http │ │ ├── README.md │ │ ├── __init__.py │ │ ├── cookie.py │ │ ├── middleware.py │ │ ├── multipartparser.py │ │ ├── request.py │ │ └── response.py │ ├── internal │ │ ├── __init__.py │ │ ├── files │ │ │ ├── __init__.py │ │ │ ├── base.py │ │ │ ├── locks.py │ │ │ ├── move.py │ │ │ ├── temp.py │ │ │ ├── uploadedfile.py │ │ │ ├── uploadhandler.py │ │ │ └── utils.py │ │ ├── handlers │ │ │ ├── __init__.py │ │ │ ├── base.py │ │ │ ├── exception.py │ │ │ └── wsgi.py │ │ ├── middleware │ │ │ ├── __init__.py │ │ │ ├── headers.py │ │ │ ├── hosts.py │ │ │ ├── https.py │ │ │ └── slash.py │ │ └── reloader.py │ ├── json.py │ ├── logs │ │ ├── README.md │ │ ├── __init__.py │ │ ├── app.py │ │ ├── configure.py │ │ ├── debug.py │ │ ├── filters.py │ │ └── formatters.py │ ├── packages │ │ ├── README.md │ │ ├── __init__.py │ │ ├── config.py │ │ └── registry.py │ ├── paginator.py │ ├── preflight │ │ ├── README.md │ │ ├── __init__.py │ │ ├── checks.py │ │ ├── files.py │ │ ├── registry.py │ │ ├── results.py │ │ ├── security.py │ │ └── urls.py │ ├── runtime │ │ ├── README.md │ │ ├── __init__.py │ │ ├── global_settings.py │ │ ├── user_settings.py │ │ └── utils.py │ ├── server │ │ ├── LICENSE │ │ ├── README.md │ │ ├── __init__.py │ │ ├── app.py │ │ ├── arbiter.py │ │ ├── config.py │ │ ├── errors.py │ │ ├── glogging.py │ │ ├── http │ │ │ ├── __init__.py │ │ │ ├── body.py │ │ │ ├── errors.py │ │ │ ├── message.py │ │ │ ├── parser.py │ │ │ ├── unreader.py │ │ │ └── wsgi.py │ │ ├── pidfile.py │ │ ├── sock.py │ │ ├── util.py │ │ └── workers │ │ │ ├── __init__.py │ │ │ ├── base.py │ │ │ ├── sync.py │ │ │ ├── thread.py │ │ │ └── workertmp.py │ ├── signals │ │ ├── README.md │ │ ├── __init__.py │ │ └── dispatch │ │ │ ├── __init__.py │ │ │ ├── dispatcher.py │ │ │ └── license.txt │ ├── signing.py │ ├── templates │ │ ├── AGENTS.md │ │ ├── README.md │ │ ├── __init__.py │ │ ├── core.py │ │ └── jinja │ │ │ ├── __init__.py │ │ │ ├── environments.py │ │ │ ├── extensions.py │ │ │ ├── filters.py │ │ │ └── globals.py │ ├── test │ │ ├── README.md │ │ ├── __init__.py │ │ ├── client.py │ │ ├── encoding.py │ │ └── exceptions.py │ ├── urls │ │ ├── README.md │ │ ├── __init__.py │ │ ├── converters.py │ │ ├── exceptions.py │ │ ├── patterns.py │ │ ├── resolvers.py │ │ ├── routers.py │ │ └── utils.py │ ├── utils │ │ ├── README.md │ │ ├── __init__.py │ │ ├── cache.py │ │ ├── crypto.py │ │ ├── datastructures.py │ │ ├── dateparse.py │ │ ├── deconstruct.py │ │ ├── decorators.py │ │ ├── duration.py │ │ ├── encoding.py │ │ ├── functional.py │ │ ├── hashable.py │ │ ├── html.py │ │ ├── http.py │ │ ├── inspect.py │ │ ├── ipv6.py │ │ ├── itercompat.py │ │ ├── module_loading.py │ │ ├── regex_helper.py │ │ ├── safestring.py │ │ ├── text.py │ │ ├── timesince.py │ │ ├── timezone.py │ │ └── tree.py │ ├── validators.py │ ├── views │ │ ├── README.md │ │ ├── __init__.py │ │ ├── base.py │ │ ├── errors.py │ │ ├── exceptions.py │ │ ├── forms.py │ │ ├── objects.py │ │ ├── redirect.py │ │ └── templates.py │ └── wsgi.py ├── pyproject.toml └── tests │ ├── .gitignore │ ├── app │ ├── .gitignore │ ├── settings.py │ ├── test │ │ ├── __init__.py │ │ └── default_settings.py │ └── urls.py │ ├── conftest.py │ ├── test_cli.py │ ├── test_csrf.py │ ├── test_http_hosts.py │ ├── test_logs.py │ ├── test_runtime.py │ └── test_wsgi.py ├── proposals ├── README.md ├── plain-assets-webp.md ├── plain-dev-companion.md ├── plain-elements-dev-toolbar.md ├── plain-email-filebased-viewing.md ├── plain-email-modern-email-apis.md ├── plain-file-based-secrets.md ├── plain-flags-toolbar-panel.md ├── plain-jobs-backlog-monitoring.md ├── plain-listview-pagination.md ├── plain-models-consolidate-related-descriptors.md ├── plain-models-cursor-paginator.md ├── plain-models-custom-base-queryset.md ├── plain-models-explicit-create-update.md ├── plain-models-prevent-manual-pk.md ├── plain-observer-geolocation.md ├── plain-observer-request-headers.md ├── plain-observer-testing.md ├── plain-pageviews-analytics.md ├── plain-precompile-regexes.md ├── plain-preflight-allowed-hosts-validation.md ├── plain-preflight-log-warnings.md └── plain-sessions-multiple-sessions.md ├── pyproject.toml ├── scripts ├── bench-memory ├── benchmark-request.py ├── fix ├── generate-release-notes ├── install ├── makemigrations ├── pre-commit ├── publish ├── release ├── test ├── to-release ├── type-check ├── type-coverage ├── type-validate └── vulture └── uv.lock /.github/workflows/release.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/.github/workflows/release.yml -------------------------------------------------------------------------------- /.github/workflows/test.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/.github/workflows/test.yml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/.gitignore -------------------------------------------------------------------------------- /AGENTS.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/AGENTS.md -------------------------------------------------------------------------------- /CLAUDE.md: -------------------------------------------------------------------------------- 1 | AGENTS.md -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/CONTRIBUTING.md -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/README.md -------------------------------------------------------------------------------- /example/.env: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/example/.env -------------------------------------------------------------------------------- /example/.gitignore: -------------------------------------------------------------------------------- 1 | app/assets/tailwind.min.css 2 | /db.sqlite3 3 | -------------------------------------------------------------------------------- /example/app/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /example/app/cli.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/example/app/cli.py -------------------------------------------------------------------------------- /example/app/flags.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /example/app/settings.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/example/app/settings.py -------------------------------------------------------------------------------- /example/app/templates/base.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/example/app/templates/base.html -------------------------------------------------------------------------------- /example/app/templates/index.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/example/app/templates/index.html -------------------------------------------------------------------------------- /example/app/templates/login.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/example/app/templates/login.html -------------------------------------------------------------------------------- /example/app/urls.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/example/app/urls.py -------------------------------------------------------------------------------- /example/app/users/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /example/app/users/migrations/0001_initial.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/example/app/users/migrations/0001_initial.py -------------------------------------------------------------------------------- /example/app/users/migrations/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /example/app/users/models.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/example/app/users/models.py -------------------------------------------------------------------------------- /example/pyproject.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/example/pyproject.toml -------------------------------------------------------------------------------- /example/scripts/install: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/example/scripts/install -------------------------------------------------------------------------------- /example/tailwind.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/example/tailwind.css -------------------------------------------------------------------------------- /example/tests/test_urls.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/example/tests/test_urls.py -------------------------------------------------------------------------------- /plain-admin/LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-admin/LICENSE -------------------------------------------------------------------------------- /plain-admin/README.md: -------------------------------------------------------------------------------- 1 | plain/admin/README.md -------------------------------------------------------------------------------- /plain-admin/plain/admin/CHANGELOG.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-admin/plain/admin/CHANGELOG.md -------------------------------------------------------------------------------- /plain-admin/plain/admin/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-admin/plain/admin/README.md -------------------------------------------------------------------------------- /plain-admin/plain/admin/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-admin/plain/admin/__init__.py -------------------------------------------------------------------------------- /plain-admin/plain/admin/assets/admin/admin.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-admin/plain/admin/assets/admin/admin.css -------------------------------------------------------------------------------- /plain-admin/plain/admin/assets/admin/admin.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-admin/plain/admin/assets/admin/admin.js -------------------------------------------------------------------------------- /plain-admin/plain/admin/assets/admin/list.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-admin/plain/admin/assets/admin/list.js -------------------------------------------------------------------------------- /plain-admin/plain/admin/cards/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-admin/plain/admin/cards/__init__.py -------------------------------------------------------------------------------- /plain-admin/plain/admin/cards/base.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-admin/plain/admin/cards/base.py -------------------------------------------------------------------------------- /plain-admin/plain/admin/cards/charts.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-admin/plain/admin/cards/charts.py -------------------------------------------------------------------------------- /plain-admin/plain/admin/cards/tables.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-admin/plain/admin/cards/tables.py -------------------------------------------------------------------------------- /plain-admin/plain/admin/config.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-admin/plain/admin/config.py -------------------------------------------------------------------------------- /plain-admin/plain/admin/dates.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-admin/plain/admin/dates.py -------------------------------------------------------------------------------- /plain-admin/plain/admin/impersonate/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-admin/plain/admin/impersonate/__init__.py -------------------------------------------------------------------------------- /plain-admin/plain/admin/impersonate/constants.py: -------------------------------------------------------------------------------- 1 | IMPERSONATE_SESSION_KEY = "impersonate" 2 | -------------------------------------------------------------------------------- /plain-admin/plain/admin/impersonate/middleware.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-admin/plain/admin/impersonate/middleware.py -------------------------------------------------------------------------------- /plain-admin/plain/admin/impersonate/permissions.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-admin/plain/admin/impersonate/permissions.py -------------------------------------------------------------------------------- /plain-admin/plain/admin/impersonate/requests.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-admin/plain/admin/impersonate/requests.py -------------------------------------------------------------------------------- /plain-admin/plain/admin/impersonate/settings.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-admin/plain/admin/impersonate/settings.py -------------------------------------------------------------------------------- /plain-admin/plain/admin/impersonate/urls.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-admin/plain/admin/impersonate/urls.py -------------------------------------------------------------------------------- /plain-admin/plain/admin/impersonate/views.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-admin/plain/admin/impersonate/views.py -------------------------------------------------------------------------------- /plain-admin/plain/admin/middleware.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-admin/plain/admin/middleware.py -------------------------------------------------------------------------------- /plain-admin/plain/admin/templates.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-admin/plain/admin/templates.py -------------------------------------------------------------------------------- /plain-admin/plain/admin/templates/admin/base.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-admin/plain/admin/templates/admin/base.html -------------------------------------------------------------------------------- /plain-admin/plain/admin/templates/admin/delete.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-admin/plain/admin/templates/admin/delete.html -------------------------------------------------------------------------------- /plain-admin/plain/admin/templates/admin/detail.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-admin/plain/admin/templates/admin/detail.html -------------------------------------------------------------------------------- /plain-admin/plain/admin/templates/admin/index.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-admin/plain/admin/templates/admin/index.html -------------------------------------------------------------------------------- /plain-admin/plain/admin/templates/admin/list.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-admin/plain/admin/templates/admin/list.html -------------------------------------------------------------------------------- /plain-admin/plain/admin/templates/admin/page.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-admin/plain/admin/templates/admin/page.html -------------------------------------------------------------------------------- /plain-admin/plain/admin/templates/admin/search.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-admin/plain/admin/templates/admin/search.html -------------------------------------------------------------------------------- /plain-admin/plain/admin/templates/admin/values/UUID.html: -------------------------------------------------------------------------------- 1 | {{ value }} 2 | -------------------------------------------------------------------------------- /plain-admin/plain/admin/toolbar.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-admin/plain/admin/toolbar.py -------------------------------------------------------------------------------- /plain-admin/plain/admin/urls.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-admin/plain/admin/urls.py -------------------------------------------------------------------------------- /plain-admin/plain/admin/utils.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-admin/plain/admin/utils.py -------------------------------------------------------------------------------- /plain-admin/plain/admin/views/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-admin/plain/admin/views/__init__.py -------------------------------------------------------------------------------- /plain-admin/plain/admin/views/base.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-admin/plain/admin/views/base.py -------------------------------------------------------------------------------- /plain-admin/plain/admin/views/models.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-admin/plain/admin/views/models.py -------------------------------------------------------------------------------- /plain-admin/plain/admin/views/objects.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-admin/plain/admin/views/objects.py -------------------------------------------------------------------------------- /plain-admin/plain/admin/views/registry.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-admin/plain/admin/views/registry.py -------------------------------------------------------------------------------- /plain-admin/plain/admin/views/types.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-admin/plain/admin/views/types.py -------------------------------------------------------------------------------- /plain-admin/plain/admin/views/viewsets.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-admin/plain/admin/views/viewsets.py -------------------------------------------------------------------------------- /plain-admin/pyproject.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-admin/pyproject.toml -------------------------------------------------------------------------------- /plain-admin/tests/app/settings.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-admin/tests/app/settings.py -------------------------------------------------------------------------------- /plain-admin/tests/app/urls.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-admin/tests/app/urls.py -------------------------------------------------------------------------------- /plain-admin/tests/app/users/migrations/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /plain-admin/tests/app/users/models.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-admin/tests/app/users/models.py -------------------------------------------------------------------------------- /plain-admin/tests/test_admin.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-admin/tests/test_admin.py -------------------------------------------------------------------------------- /plain-api/LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-api/LICENSE -------------------------------------------------------------------------------- /plain-api/README.md: -------------------------------------------------------------------------------- 1 | ./plain/api/README.md -------------------------------------------------------------------------------- /plain-api/plain/api/CHANGELOG.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-api/plain/api/CHANGELOG.md -------------------------------------------------------------------------------- /plain-api/plain/api/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-api/plain/api/README.md -------------------------------------------------------------------------------- /plain-api/plain/api/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /plain-api/plain/api/cli.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-api/plain/api/cli.py -------------------------------------------------------------------------------- /plain-api/plain/api/config.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-api/plain/api/config.py -------------------------------------------------------------------------------- /plain-api/plain/api/default_settings.py: -------------------------------------------------------------------------------- 1 | API_OPENAPI_ROUTER: str = "" 2 | -------------------------------------------------------------------------------- /plain-api/plain/api/migrations/0001_initial.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-api/plain/api/migrations/0001_initial.py -------------------------------------------------------------------------------- /plain-api/plain/api/migrations/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /plain-api/plain/api/models.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-api/plain/api/models.py -------------------------------------------------------------------------------- /plain-api/plain/api/openapi/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-api/plain/api/openapi/__init__.py -------------------------------------------------------------------------------- /plain-api/plain/api/openapi/decorators.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-api/plain/api/openapi/decorators.py -------------------------------------------------------------------------------- /plain-api/plain/api/openapi/generator.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-api/plain/api/openapi/generator.py -------------------------------------------------------------------------------- /plain-api/plain/api/openapi/utils.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-api/plain/api/openapi/utils.py -------------------------------------------------------------------------------- /plain-api/plain/api/schemas.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-api/plain/api/schemas.py -------------------------------------------------------------------------------- /plain-api/plain/api/versioning.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-api/plain/api/versioning.py -------------------------------------------------------------------------------- /plain-api/plain/api/views.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-api/plain/api/views.py -------------------------------------------------------------------------------- /plain-api/pyproject.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-api/pyproject.toml -------------------------------------------------------------------------------- /plain-api/tests/app/settings.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-api/tests/app/settings.py -------------------------------------------------------------------------------- /plain-api/tests/app/urls.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-api/tests/app/urls.py -------------------------------------------------------------------------------- /plain-api/tests/test_api.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-api/tests/test_api.py -------------------------------------------------------------------------------- /plain-auth/LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-auth/LICENSE -------------------------------------------------------------------------------- /plain-auth/README.md: -------------------------------------------------------------------------------- 1 | ./plain/auth/README.md -------------------------------------------------------------------------------- /plain-auth/plain/auth/CHANGELOG.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-auth/plain/auth/CHANGELOG.md -------------------------------------------------------------------------------- /plain-auth/plain/auth/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-auth/plain/auth/README.md -------------------------------------------------------------------------------- /plain-auth/plain/auth/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-auth/plain/auth/__init__.py -------------------------------------------------------------------------------- /plain-auth/plain/auth/default_settings.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-auth/plain/auth/default_settings.py -------------------------------------------------------------------------------- /plain-auth/plain/auth/requests.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-auth/plain/auth/requests.py -------------------------------------------------------------------------------- /plain-auth/plain/auth/sessions.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-auth/plain/auth/sessions.py -------------------------------------------------------------------------------- /plain-auth/plain/auth/templates.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-auth/plain/auth/templates.py -------------------------------------------------------------------------------- /plain-auth/plain/auth/test.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-auth/plain/auth/test.py -------------------------------------------------------------------------------- /plain-auth/plain/auth/utils.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-auth/plain/auth/utils.py -------------------------------------------------------------------------------- /plain-auth/plain/auth/views.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-auth/plain/auth/views.py -------------------------------------------------------------------------------- /plain-auth/pyproject.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-auth/pyproject.toml -------------------------------------------------------------------------------- /plain-auth/tests/app/settings.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-auth/tests/app/settings.py -------------------------------------------------------------------------------- /plain-auth/tests/app/urls.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-auth/tests/app/urls.py -------------------------------------------------------------------------------- /plain-auth/tests/app/users/migrations/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /plain-auth/tests/app/users/models.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-auth/tests/app/users/models.py -------------------------------------------------------------------------------- /plain-auth/tests/test_views.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-auth/tests/test_views.py -------------------------------------------------------------------------------- /plain-cache/LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-cache/LICENSE -------------------------------------------------------------------------------- /plain-cache/README.md: -------------------------------------------------------------------------------- 1 | ./plain/cache/README.md -------------------------------------------------------------------------------- /plain-cache/plain/cache/CHANGELOG.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-cache/plain/cache/CHANGELOG.md -------------------------------------------------------------------------------- /plain-cache/plain/cache/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-cache/plain/cache/README.md -------------------------------------------------------------------------------- /plain-cache/plain/cache/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-cache/plain/cache/__init__.py -------------------------------------------------------------------------------- /plain-cache/plain/cache/admin.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-cache/plain/cache/admin.py -------------------------------------------------------------------------------- /plain-cache/plain/cache/chores.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-cache/plain/cache/chores.py -------------------------------------------------------------------------------- /plain-cache/plain/cache/cli.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-cache/plain/cache/cli.py -------------------------------------------------------------------------------- /plain-cache/plain/cache/config.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-cache/plain/cache/config.py -------------------------------------------------------------------------------- /plain-cache/plain/cache/core.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-cache/plain/cache/core.py -------------------------------------------------------------------------------- /plain-cache/plain/cache/migrations/0001_initial.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-cache/plain/cache/migrations/0001_initial.py -------------------------------------------------------------------------------- /plain-cache/plain/cache/migrations/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /plain-cache/plain/cache/models.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-cache/plain/cache/models.py -------------------------------------------------------------------------------- /plain-cache/pyproject.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-cache/pyproject.toml -------------------------------------------------------------------------------- /plain-code/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-code/.gitignore -------------------------------------------------------------------------------- /plain-code/LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-code/LICENSE -------------------------------------------------------------------------------- /plain-code/README.md: -------------------------------------------------------------------------------- 1 | ./plain/code/README.md -------------------------------------------------------------------------------- /plain-code/plain/code/CHANGELOG.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-code/plain/code/CHANGELOG.md -------------------------------------------------------------------------------- /plain-code/plain/code/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-code/plain/code/README.md -------------------------------------------------------------------------------- /plain-code/plain/code/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-code/plain/code/__init__.py -------------------------------------------------------------------------------- /plain-code/plain/code/biome.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-code/plain/code/biome.py -------------------------------------------------------------------------------- /plain-code/plain/code/biome_defaults.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-code/plain/code/biome_defaults.json -------------------------------------------------------------------------------- /plain-code/plain/code/cli.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-code/plain/code/cli.py -------------------------------------------------------------------------------- /plain-code/plain/code/entrypoints.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-code/plain/code/entrypoints.py -------------------------------------------------------------------------------- /plain-code/plain/code/ruff_defaults.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-code/plain/code/ruff_defaults.toml -------------------------------------------------------------------------------- /plain-code/pyproject.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-code/pyproject.toml -------------------------------------------------------------------------------- /plain-dev/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-dev/.gitignore -------------------------------------------------------------------------------- /plain-dev/LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-dev/LICENSE -------------------------------------------------------------------------------- /plain-dev/README.md: -------------------------------------------------------------------------------- 1 | ./plain/dev/README.md -------------------------------------------------------------------------------- /plain-dev/plain/dev/AGENTS.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-dev/plain/dev/AGENTS.md -------------------------------------------------------------------------------- /plain-dev/plain/dev/CHANGELOG.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-dev/plain/dev/CHANGELOG.md -------------------------------------------------------------------------------- /plain-dev/plain/dev/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-dev/plain/dev/README.md -------------------------------------------------------------------------------- /plain-dev/plain/dev/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-dev/plain/dev/__init__.py -------------------------------------------------------------------------------- /plain-dev/plain/dev/alias.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-dev/plain/dev/alias.py -------------------------------------------------------------------------------- /plain-dev/plain/dev/cli.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-dev/plain/dev/cli.py -------------------------------------------------------------------------------- /plain-dev/plain/dev/contribute/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-dev/plain/dev/contribute/README.md -------------------------------------------------------------------------------- /plain-dev/plain/dev/contribute/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-dev/plain/dev/contribute/__init__.py -------------------------------------------------------------------------------- /plain-dev/plain/dev/contribute/cli.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-dev/plain/dev/contribute/cli.py -------------------------------------------------------------------------------- /plain-dev/plain/dev/core.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-dev/plain/dev/core.py -------------------------------------------------------------------------------- /plain-dev/plain/dev/debug.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-dev/plain/dev/debug.py -------------------------------------------------------------------------------- /plain-dev/plain/dev/default_settings.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-dev/plain/dev/default_settings.py -------------------------------------------------------------------------------- /plain-dev/plain/dev/entrypoints.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-dev/plain/dev/entrypoints.py -------------------------------------------------------------------------------- /plain-dev/plain/dev/mkcert.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-dev/plain/dev/mkcert.py -------------------------------------------------------------------------------- /plain-dev/plain/dev/pdb.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-dev/plain/dev/pdb.py -------------------------------------------------------------------------------- /plain-dev/plain/dev/poncho/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /plain-dev/plain/dev/poncho/color.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-dev/plain/dev/poncho/color.py -------------------------------------------------------------------------------- /plain-dev/plain/dev/poncho/compat.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-dev/plain/dev/poncho/compat.py -------------------------------------------------------------------------------- /plain-dev/plain/dev/poncho/manager.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-dev/plain/dev/poncho/manager.py -------------------------------------------------------------------------------- /plain-dev/plain/dev/poncho/printer.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-dev/plain/dev/poncho/printer.py -------------------------------------------------------------------------------- /plain-dev/plain/dev/poncho/process.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-dev/plain/dev/poncho/process.py -------------------------------------------------------------------------------- /plain-dev/plain/dev/precommit/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-dev/plain/dev/precommit/__init__.py -------------------------------------------------------------------------------- /plain-dev/plain/dev/precommit/cli.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-dev/plain/dev/precommit/cli.py -------------------------------------------------------------------------------- /plain-dev/plain/dev/process.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-dev/plain/dev/process.py -------------------------------------------------------------------------------- /plain-dev/plain/dev/services.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-dev/plain/dev/services.py -------------------------------------------------------------------------------- /plain-dev/plain/dev/utils.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-dev/plain/dev/utils.py -------------------------------------------------------------------------------- /plain-dev/pyproject.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-dev/pyproject.toml -------------------------------------------------------------------------------- /plain-dev/tests/settings.py: -------------------------------------------------------------------------------- 1 | INSTALLED_PACKAGES = [ 2 | "plain.work", 3 | ] 4 | -------------------------------------------------------------------------------- /plain-elements/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-elements/.gitignore -------------------------------------------------------------------------------- /plain-elements/LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-elements/LICENSE -------------------------------------------------------------------------------- /plain-elements/README.md: -------------------------------------------------------------------------------- 1 | ./plain/elements/README.md -------------------------------------------------------------------------------- /plain-elements/plain/elements/CHANGELOG.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-elements/plain/elements/CHANGELOG.md -------------------------------------------------------------------------------- /plain-elements/plain/elements/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-elements/plain/elements/README.md -------------------------------------------------------------------------------- /plain-elements/plain/elements/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /plain-elements/plain/elements/templates.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-elements/plain/elements/templates.py -------------------------------------------------------------------------------- /plain-elements/pyproject.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-elements/pyproject.toml -------------------------------------------------------------------------------- /plain-elements/tests/app/settings.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-elements/tests/app/settings.py -------------------------------------------------------------------------------- /plain-elements/tests/app/urls.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-elements/tests/app/urls.py -------------------------------------------------------------------------------- /plain-elements/tests/test_elements.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-elements/tests/test_elements.py -------------------------------------------------------------------------------- /plain-email/LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-email/LICENSE -------------------------------------------------------------------------------- /plain-email/README.md: -------------------------------------------------------------------------------- 1 | plain/email/README.md -------------------------------------------------------------------------------- /plain-email/plain/email/CHANGELOG.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-email/plain/email/CHANGELOG.md -------------------------------------------------------------------------------- /plain-email/plain/email/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-email/plain/email/README.md -------------------------------------------------------------------------------- /plain-email/plain/email/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-email/plain/email/__init__.py -------------------------------------------------------------------------------- /plain-email/plain/email/backends/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /plain-email/plain/email/backends/base.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-email/plain/email/backends/base.py -------------------------------------------------------------------------------- /plain-email/plain/email/backends/console.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-email/plain/email/backends/console.py -------------------------------------------------------------------------------- /plain-email/plain/email/backends/filebased.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-email/plain/email/backends/filebased.py -------------------------------------------------------------------------------- /plain-email/plain/email/backends/smtp.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-email/plain/email/backends/smtp.py -------------------------------------------------------------------------------- /plain-email/plain/email/default_settings.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-email/plain/email/default_settings.py -------------------------------------------------------------------------------- /plain-email/plain/email/message.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-email/plain/email/message.py -------------------------------------------------------------------------------- /plain-email/plain/email/utils.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-email/plain/email/utils.py -------------------------------------------------------------------------------- /plain-email/pyproject.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-email/pyproject.toml -------------------------------------------------------------------------------- /plain-esbuild/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-esbuild/.gitignore -------------------------------------------------------------------------------- /plain-esbuild/LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-esbuild/LICENSE -------------------------------------------------------------------------------- /plain-esbuild/README.md: -------------------------------------------------------------------------------- 1 | ./plain/esbuild/README.md -------------------------------------------------------------------------------- /plain-esbuild/plain/esbuild/CHANGELOG.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-esbuild/plain/esbuild/CHANGELOG.md -------------------------------------------------------------------------------- /plain-esbuild/plain/esbuild/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-esbuild/plain/esbuild/README.md -------------------------------------------------------------------------------- /plain-esbuild/plain/esbuild/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-esbuild/plain/esbuild/__init__.py -------------------------------------------------------------------------------- /plain-esbuild/plain/esbuild/cli.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-esbuild/plain/esbuild/cli.py -------------------------------------------------------------------------------- /plain-esbuild/plain/esbuild/core.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-esbuild/plain/esbuild/core.py -------------------------------------------------------------------------------- /plain-esbuild/plain/esbuild/entrypoints.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-esbuild/plain/esbuild/entrypoints.py -------------------------------------------------------------------------------- /plain-esbuild/pyproject.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-esbuild/pyproject.toml -------------------------------------------------------------------------------- /plain-flags/LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-flags/LICENSE -------------------------------------------------------------------------------- /plain-flags/README.md: -------------------------------------------------------------------------------- 1 | ./plain/flags/README.md -------------------------------------------------------------------------------- /plain-flags/plain/flags/CHANGELOG.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-flags/plain/flags/CHANGELOG.md -------------------------------------------------------------------------------- /plain-flags/plain/flags/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-flags/plain/flags/README.md -------------------------------------------------------------------------------- /plain-flags/plain/flags/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-flags/plain/flags/__init__.py -------------------------------------------------------------------------------- /plain-flags/plain/flags/admin.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-flags/plain/flags/admin.py -------------------------------------------------------------------------------- /plain-flags/plain/flags/bridge.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-flags/plain/flags/bridge.py -------------------------------------------------------------------------------- /plain-flags/plain/flags/config.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-flags/plain/flags/config.py -------------------------------------------------------------------------------- /plain-flags/plain/flags/default_settings.py: -------------------------------------------------------------------------------- 1 | FLAGS_MODULE: str = "app.flags" 2 | -------------------------------------------------------------------------------- /plain-flags/plain/flags/exceptions.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-flags/plain/flags/exceptions.py -------------------------------------------------------------------------------- /plain-flags/plain/flags/flags.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-flags/plain/flags/flags.py -------------------------------------------------------------------------------- /plain-flags/plain/flags/migrations/0001_initial.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-flags/plain/flags/migrations/0001_initial.py -------------------------------------------------------------------------------- /plain-flags/plain/flags/migrations/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /plain-flags/plain/flags/models.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-flags/plain/flags/models.py -------------------------------------------------------------------------------- /plain-flags/plain/flags/preflight.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-flags/plain/flags/preflight.py -------------------------------------------------------------------------------- /plain-flags/plain/flags/py.typed: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /plain-flags/plain/flags/templates.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-flags/plain/flags/templates.py -------------------------------------------------------------------------------- /plain-flags/plain/flags/utils.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-flags/plain/flags/utils.py -------------------------------------------------------------------------------- /plain-flags/pyproject.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-flags/pyproject.toml -------------------------------------------------------------------------------- /plain-flags/tests/app/settings.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-flags/tests/app/settings.py -------------------------------------------------------------------------------- /plain-flags/tests/app/urls.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-flags/tests/app/urls.py -------------------------------------------------------------------------------- /plain-flags/tests/test_flags.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-flags/tests/test_flags.py -------------------------------------------------------------------------------- /plain-htmx/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-htmx/.gitignore -------------------------------------------------------------------------------- /plain-htmx/LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-htmx/LICENSE -------------------------------------------------------------------------------- /plain-htmx/README.md: -------------------------------------------------------------------------------- 1 | ./plain/htmx/README.md -------------------------------------------------------------------------------- /plain-htmx/deps.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-htmx/deps.yml -------------------------------------------------------------------------------- /plain-htmx/package-lock.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-htmx/package-lock.json -------------------------------------------------------------------------------- /plain-htmx/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-htmx/package.json -------------------------------------------------------------------------------- /plain-htmx/plain/htmx/CHANGELOG.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-htmx/plain/htmx/CHANGELOG.md -------------------------------------------------------------------------------- /plain-htmx/plain/htmx/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-htmx/plain/htmx/README.md -------------------------------------------------------------------------------- /plain-htmx/plain/htmx/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /plain-htmx/plain/htmx/assets/htmx/plainhtmx.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-htmx/plain/htmx/assets/htmx/plainhtmx.js -------------------------------------------------------------------------------- /plain-htmx/plain/htmx/templates.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-htmx/plain/htmx/templates.py -------------------------------------------------------------------------------- /plain-htmx/plain/htmx/templates/htmx/js.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-htmx/plain/htmx/templates/htmx/js.html -------------------------------------------------------------------------------- /plain-htmx/plain/htmx/views.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-htmx/plain/htmx/views.py -------------------------------------------------------------------------------- /plain-htmx/pyproject.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-htmx/pyproject.toml -------------------------------------------------------------------------------- /plain-htmx/tests/app/settings.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-htmx/tests/app/settings.py -------------------------------------------------------------------------------- /plain-htmx/tests/app/urls.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-htmx/tests/app/urls.py -------------------------------------------------------------------------------- /plain-htmx/tests/test_views.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-htmx/tests/test_views.py -------------------------------------------------------------------------------- /plain-jobs/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-jobs/.gitignore -------------------------------------------------------------------------------- /plain-jobs/LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-jobs/LICENSE -------------------------------------------------------------------------------- /plain-jobs/README.md: -------------------------------------------------------------------------------- 1 | ./plain/jobs/README.md -------------------------------------------------------------------------------- /plain-jobs/plain/jobs/CHANGELOG.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-jobs/plain/jobs/CHANGELOG.md -------------------------------------------------------------------------------- /plain-jobs/plain/jobs/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-jobs/plain/jobs/README.md -------------------------------------------------------------------------------- /plain-jobs/plain/jobs/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-jobs/plain/jobs/__init__.py -------------------------------------------------------------------------------- /plain-jobs/plain/jobs/admin.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-jobs/plain/jobs/admin.py -------------------------------------------------------------------------------- /plain-jobs/plain/jobs/chores.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-jobs/plain/jobs/chores.py -------------------------------------------------------------------------------- /plain-jobs/plain/jobs/cli.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-jobs/plain/jobs/cli.py -------------------------------------------------------------------------------- /plain-jobs/plain/jobs/config.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-jobs/plain/jobs/config.py -------------------------------------------------------------------------------- /plain-jobs/plain/jobs/default_settings.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-jobs/plain/jobs/default_settings.py -------------------------------------------------------------------------------- /plain-jobs/plain/jobs/exceptions.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-jobs/plain/jobs/exceptions.py -------------------------------------------------------------------------------- /plain-jobs/plain/jobs/jobs.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-jobs/plain/jobs/jobs.py -------------------------------------------------------------------------------- /plain-jobs/plain/jobs/locks.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-jobs/plain/jobs/locks.py -------------------------------------------------------------------------------- /plain-jobs/plain/jobs/middleware.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-jobs/plain/jobs/middleware.py -------------------------------------------------------------------------------- /plain-jobs/plain/jobs/migrations/0001_initial.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-jobs/plain/jobs/migrations/0001_initial.py -------------------------------------------------------------------------------- /plain-jobs/plain/jobs/migrations/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /plain-jobs/plain/jobs/models.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-jobs/plain/jobs/models.py -------------------------------------------------------------------------------- /plain-jobs/plain/jobs/parameters.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-jobs/plain/jobs/parameters.py -------------------------------------------------------------------------------- /plain-jobs/plain/jobs/registry.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-jobs/plain/jobs/registry.py -------------------------------------------------------------------------------- /plain-jobs/plain/jobs/scheduling.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-jobs/plain/jobs/scheduling.py -------------------------------------------------------------------------------- /plain-jobs/plain/jobs/workers.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-jobs/plain/jobs/workers.py -------------------------------------------------------------------------------- /plain-jobs/pyproject.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-jobs/pyproject.toml -------------------------------------------------------------------------------- /plain-jobs/tests/app/settings.py: -------------------------------------------------------------------------------- 1 | SECRET_KEY = "test" 2 | -------------------------------------------------------------------------------- /plain-jobs/tests/test_parameters.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-jobs/tests/test_parameters.py -------------------------------------------------------------------------------- /plain-jobs/tests/test_scheduling.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-jobs/tests/test_scheduling.py -------------------------------------------------------------------------------- /plain-loginlink/LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-loginlink/LICENSE -------------------------------------------------------------------------------- /plain-loginlink/README.md: -------------------------------------------------------------------------------- 1 | ./plain/loginlink/README.md -------------------------------------------------------------------------------- /plain-loginlink/plain/loginlink/CHANGELOG.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-loginlink/plain/loginlink/CHANGELOG.md -------------------------------------------------------------------------------- /plain-loginlink/plain/loginlink/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-loginlink/plain/loginlink/README.md -------------------------------------------------------------------------------- /plain-loginlink/plain/loginlink/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /plain-loginlink/plain/loginlink/forms.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-loginlink/plain/loginlink/forms.py -------------------------------------------------------------------------------- /plain-loginlink/plain/loginlink/links.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-loginlink/plain/loginlink/links.py -------------------------------------------------------------------------------- /plain-loginlink/plain/loginlink/signing.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-loginlink/plain/loginlink/signing.py -------------------------------------------------------------------------------- /plain-loginlink/plain/loginlink/templates/email/loginlink.subject.txt: -------------------------------------------------------------------------------- 1 | Your link to log in 2 | -------------------------------------------------------------------------------- /plain-loginlink/plain/loginlink/urls.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-loginlink/plain/loginlink/urls.py -------------------------------------------------------------------------------- /plain-loginlink/plain/loginlink/views.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-loginlink/plain/loginlink/views.py -------------------------------------------------------------------------------- /plain-loginlink/pyproject.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-loginlink/pyproject.toml -------------------------------------------------------------------------------- /plain-models/LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-models/LICENSE -------------------------------------------------------------------------------- /plain-models/README.md: -------------------------------------------------------------------------------- 1 | ./plain/models/README.md -------------------------------------------------------------------------------- /plain-models/plain/models/AGENTS.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-models/plain/models/AGENTS.md -------------------------------------------------------------------------------- /plain-models/plain/models/CHANGELOG.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-models/plain/models/CHANGELOG.md -------------------------------------------------------------------------------- /plain-models/plain/models/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-models/plain/models/README.md -------------------------------------------------------------------------------- /plain-models/plain/models/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-models/plain/models/__init__.py -------------------------------------------------------------------------------- /plain-models/plain/models/aggregates.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-models/plain/models/aggregates.py -------------------------------------------------------------------------------- /plain-models/plain/models/backends/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /plain-models/plain/models/backends/base/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /plain-models/plain/models/backends/base/base.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-models/plain/models/backends/base/base.py -------------------------------------------------------------------------------- /plain-models/plain/models/backends/base/client.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-models/plain/models/backends/base/client.py -------------------------------------------------------------------------------- /plain-models/plain/models/backends/base/creation.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-models/plain/models/backends/base/creation.py -------------------------------------------------------------------------------- /plain-models/plain/models/backends/base/features.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-models/plain/models/backends/base/features.py -------------------------------------------------------------------------------- /plain-models/plain/models/backends/base/schema.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-models/plain/models/backends/base/schema.py -------------------------------------------------------------------------------- /plain-models/plain/models/backends/guards.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-models/plain/models/backends/guards.py -------------------------------------------------------------------------------- /plain-models/plain/models/backends/mysql/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /plain-models/plain/models/backends/mysql/base.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-models/plain/models/backends/mysql/base.py -------------------------------------------------------------------------------- /plain-models/plain/models/backends/mysql/client.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-models/plain/models/backends/mysql/client.py -------------------------------------------------------------------------------- /plain-models/plain/models/backends/mysql/schema.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-models/plain/models/backends/mysql/schema.py -------------------------------------------------------------------------------- /plain-models/plain/models/backends/postgresql/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /plain-models/plain/models/backends/sqlite3/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /plain-models/plain/models/backends/sqlite3/base.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-models/plain/models/backends/sqlite3/base.py -------------------------------------------------------------------------------- /plain-models/plain/models/backends/utils.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-models/plain/models/backends/utils.py -------------------------------------------------------------------------------- /plain-models/plain/models/backups/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /plain-models/plain/models/backups/cli.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-models/plain/models/backups/cli.py -------------------------------------------------------------------------------- /plain-models/plain/models/backups/clients.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-models/plain/models/backups/clients.py -------------------------------------------------------------------------------- /plain-models/plain/models/backups/core.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-models/plain/models/backups/core.py -------------------------------------------------------------------------------- /plain-models/plain/models/base.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-models/plain/models/base.py -------------------------------------------------------------------------------- /plain-models/plain/models/cli/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-models/plain/models/cli/__init__.py -------------------------------------------------------------------------------- /plain-models/plain/models/cli/db.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-models/plain/models/cli/db.py -------------------------------------------------------------------------------- /plain-models/plain/models/cli/migrations.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-models/plain/models/cli/migrations.py -------------------------------------------------------------------------------- /plain-models/plain/models/config.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-models/plain/models/config.py -------------------------------------------------------------------------------- /plain-models/plain/models/connections.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-models/plain/models/connections.py -------------------------------------------------------------------------------- /plain-models/plain/models/constants.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-models/plain/models/constants.py -------------------------------------------------------------------------------- /plain-models/plain/models/constraints.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-models/plain/models/constraints.py -------------------------------------------------------------------------------- /plain-models/plain/models/database_url.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-models/plain/models/database_url.py -------------------------------------------------------------------------------- /plain-models/plain/models/db.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-models/plain/models/db.py -------------------------------------------------------------------------------- /plain-models/plain/models/default_settings.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-models/plain/models/default_settings.py -------------------------------------------------------------------------------- /plain-models/plain/models/deletion.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-models/plain/models/deletion.py -------------------------------------------------------------------------------- /plain-models/plain/models/entrypoints.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-models/plain/models/entrypoints.py -------------------------------------------------------------------------------- /plain-models/plain/models/enums.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-models/plain/models/enums.py -------------------------------------------------------------------------------- /plain-models/plain/models/exceptions.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-models/plain/models/exceptions.py -------------------------------------------------------------------------------- /plain-models/plain/models/expressions.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-models/plain/models/expressions.py -------------------------------------------------------------------------------- /plain-models/plain/models/fields/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-models/plain/models/fields/__init__.py -------------------------------------------------------------------------------- /plain-models/plain/models/fields/json.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-models/plain/models/fields/json.py -------------------------------------------------------------------------------- /plain-models/plain/models/fields/mixins.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-models/plain/models/fields/mixins.py -------------------------------------------------------------------------------- /plain-models/plain/models/fields/related.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-models/plain/models/fields/related.py -------------------------------------------------------------------------------- /plain-models/plain/models/fields/related_lookups.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-models/plain/models/fields/related_lookups.py -------------------------------------------------------------------------------- /plain-models/plain/models/fields/reverse_related.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-models/plain/models/fields/reverse_related.py -------------------------------------------------------------------------------- /plain-models/plain/models/forms.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-models/plain/models/forms.py -------------------------------------------------------------------------------- /plain-models/plain/models/functions/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-models/plain/models/functions/__init__.py -------------------------------------------------------------------------------- /plain-models/plain/models/functions/comparison.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-models/plain/models/functions/comparison.py -------------------------------------------------------------------------------- /plain-models/plain/models/functions/datetime.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-models/plain/models/functions/datetime.py -------------------------------------------------------------------------------- /plain-models/plain/models/functions/math.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-models/plain/models/functions/math.py -------------------------------------------------------------------------------- /plain-models/plain/models/functions/mixins.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-models/plain/models/functions/mixins.py -------------------------------------------------------------------------------- /plain-models/plain/models/functions/text.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-models/plain/models/functions/text.py -------------------------------------------------------------------------------- /plain-models/plain/models/functions/window.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-models/plain/models/functions/window.py -------------------------------------------------------------------------------- /plain-models/plain/models/indexes.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-models/plain/models/indexes.py -------------------------------------------------------------------------------- /plain-models/plain/models/lookups.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-models/plain/models/lookups.py -------------------------------------------------------------------------------- /plain-models/plain/models/meta.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-models/plain/models/meta.py -------------------------------------------------------------------------------- /plain-models/plain/models/migrations/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-models/plain/models/migrations/__init__.py -------------------------------------------------------------------------------- /plain-models/plain/models/migrations/exceptions.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-models/plain/models/migrations/exceptions.py -------------------------------------------------------------------------------- /plain-models/plain/models/migrations/executor.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-models/plain/models/migrations/executor.py -------------------------------------------------------------------------------- /plain-models/plain/models/migrations/graph.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-models/plain/models/migrations/graph.py -------------------------------------------------------------------------------- /plain-models/plain/models/migrations/loader.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-models/plain/models/migrations/loader.py -------------------------------------------------------------------------------- /plain-models/plain/models/migrations/migration.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-models/plain/models/migrations/migration.py -------------------------------------------------------------------------------- /plain-models/plain/models/migrations/optimizer.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-models/plain/models/migrations/optimizer.py -------------------------------------------------------------------------------- /plain-models/plain/models/migrations/questioner.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-models/plain/models/migrations/questioner.py -------------------------------------------------------------------------------- /plain-models/plain/models/migrations/recorder.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-models/plain/models/migrations/recorder.py -------------------------------------------------------------------------------- /plain-models/plain/models/migrations/serializer.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-models/plain/models/migrations/serializer.py -------------------------------------------------------------------------------- /plain-models/plain/models/migrations/state.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-models/plain/models/migrations/state.py -------------------------------------------------------------------------------- /plain-models/plain/models/migrations/utils.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-models/plain/models/migrations/utils.py -------------------------------------------------------------------------------- /plain-models/plain/models/migrations/writer.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-models/plain/models/migrations/writer.py -------------------------------------------------------------------------------- /plain-models/plain/models/options.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-models/plain/models/options.py -------------------------------------------------------------------------------- /plain-models/plain/models/otel.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-models/plain/models/otel.py -------------------------------------------------------------------------------- /plain-models/plain/models/preflight.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-models/plain/models/preflight.py -------------------------------------------------------------------------------- /plain-models/plain/models/query.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-models/plain/models/query.py -------------------------------------------------------------------------------- /plain-models/plain/models/query_utils.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-models/plain/models/query_utils.py -------------------------------------------------------------------------------- /plain-models/plain/models/registry.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-models/plain/models/registry.py -------------------------------------------------------------------------------- /plain-models/plain/models/sql/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-models/plain/models/sql/__init__.py -------------------------------------------------------------------------------- /plain-models/plain/models/sql/compiler.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-models/plain/models/sql/compiler.py -------------------------------------------------------------------------------- /plain-models/plain/models/sql/constants.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-models/plain/models/sql/constants.py -------------------------------------------------------------------------------- /plain-models/plain/models/sql/datastructures.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-models/plain/models/sql/datastructures.py -------------------------------------------------------------------------------- /plain-models/plain/models/sql/query.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-models/plain/models/sql/query.py -------------------------------------------------------------------------------- /plain-models/plain/models/sql/subqueries.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-models/plain/models/sql/subqueries.py -------------------------------------------------------------------------------- /plain-models/plain/models/sql/where.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-models/plain/models/sql/where.py -------------------------------------------------------------------------------- /plain-models/plain/models/test/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /plain-models/plain/models/test/pytest.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-models/plain/models/test/pytest.py -------------------------------------------------------------------------------- /plain-models/plain/models/test/utils.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-models/plain/models/test/utils.py -------------------------------------------------------------------------------- /plain-models/plain/models/transaction.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-models/plain/models/transaction.py -------------------------------------------------------------------------------- /plain-models/plain/models/types.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-models/plain/models/types.py -------------------------------------------------------------------------------- /plain-models/plain/models/types.pyi: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-models/plain/models/types.pyi -------------------------------------------------------------------------------- /plain-models/plain/models/utils.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-models/plain/models/utils.py -------------------------------------------------------------------------------- /plain-models/pyproject.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-models/pyproject.toml -------------------------------------------------------------------------------- /plain-models/tests/app/examples/migrations/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /plain-models/tests/app/examples/models.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-models/tests/app/examples/models.py -------------------------------------------------------------------------------- /plain-models/tests/app/settings.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-models/tests/app/settings.py -------------------------------------------------------------------------------- /plain-models/tests/app/urls.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-models/tests/app/urls.py -------------------------------------------------------------------------------- /plain-models/tests/test_database_url.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-models/tests/test_database_url.py -------------------------------------------------------------------------------- /plain-models/tests/test_delete_behaviors.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-models/tests/test_delete_behaviors.py -------------------------------------------------------------------------------- /plain-models/tests/test_exceptions.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-models/tests/test_exceptions.py -------------------------------------------------------------------------------- /plain-models/tests/test_manager_assignment.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-models/tests/test_manager_assignment.py -------------------------------------------------------------------------------- /plain-models/tests/test_models.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-models/tests/test_models.py -------------------------------------------------------------------------------- /plain-models/tests/test_related_descriptors.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-models/tests/test_related_descriptors.py -------------------------------------------------------------------------------- /plain-models/tests/test_related_manager_api.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-models/tests/test_related_manager_api.py -------------------------------------------------------------------------------- /plain-oauth/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-oauth/.gitignore -------------------------------------------------------------------------------- /plain-oauth/LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-oauth/LICENSE -------------------------------------------------------------------------------- /plain-oauth/README.md: -------------------------------------------------------------------------------- 1 | ./plain/oauth/README.md -------------------------------------------------------------------------------- /plain-oauth/plain/oauth/CHANGELOG.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-oauth/plain/oauth/CHANGELOG.md -------------------------------------------------------------------------------- /plain-oauth/plain/oauth/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-oauth/plain/oauth/README.md -------------------------------------------------------------------------------- /plain-oauth/plain/oauth/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /plain-oauth/plain/oauth/admin.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-oauth/plain/oauth/admin.py -------------------------------------------------------------------------------- /plain-oauth/plain/oauth/config.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-oauth/plain/oauth/config.py -------------------------------------------------------------------------------- /plain-oauth/plain/oauth/default_settings.py: -------------------------------------------------------------------------------- 1 | OAUTH_LOGIN_PROVIDERS: dict 2 | -------------------------------------------------------------------------------- /plain-oauth/plain/oauth/exceptions.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-oauth/plain/oauth/exceptions.py -------------------------------------------------------------------------------- /plain-oauth/plain/oauth/migrations/0001_initial.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-oauth/plain/oauth/migrations/0001_initial.py -------------------------------------------------------------------------------- /plain-oauth/plain/oauth/migrations/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /plain-oauth/plain/oauth/models.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-oauth/plain/oauth/models.py -------------------------------------------------------------------------------- /plain-oauth/plain/oauth/preflight.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-oauth/plain/oauth/preflight.py -------------------------------------------------------------------------------- /plain-oauth/plain/oauth/providers.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-oauth/plain/oauth/providers.py -------------------------------------------------------------------------------- /plain-oauth/plain/oauth/urls.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-oauth/plain/oauth/urls.py -------------------------------------------------------------------------------- /plain-oauth/plain/oauth/views.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-oauth/plain/oauth/views.py -------------------------------------------------------------------------------- /plain-oauth/provider_examples/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /plain-oauth/provider_examples/bitbucket.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-oauth/provider_examples/bitbucket.py -------------------------------------------------------------------------------- /plain-oauth/provider_examples/github.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-oauth/provider_examples/github.py -------------------------------------------------------------------------------- /plain-oauth/provider_examples/gitlab.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-oauth/provider_examples/gitlab.py -------------------------------------------------------------------------------- /plain-oauth/pyproject.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-oauth/pyproject.toml -------------------------------------------------------------------------------- /plain-oauth/tests/app/settings.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-oauth/tests/app/settings.py -------------------------------------------------------------------------------- /plain-oauth/tests/app/templates/base.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-oauth/tests/app/templates/base.html -------------------------------------------------------------------------------- /plain-oauth/tests/app/templates/index.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-oauth/tests/app/templates/index.html -------------------------------------------------------------------------------- /plain-oauth/tests/app/templates/login.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-oauth/tests/app/templates/login.html -------------------------------------------------------------------------------- /plain-oauth/tests/app/urls.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-oauth/tests/app/urls.py -------------------------------------------------------------------------------- /plain-oauth/tests/app/users/migrations/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /plain-oauth/tests/app/users/models.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-oauth/tests/app/users/models.py -------------------------------------------------------------------------------- /plain-oauth/tests/provider_tests/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /plain-oauth/tests/provider_tests/test_github.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-oauth/tests/provider_tests/test_github.py -------------------------------------------------------------------------------- /plain-oauth/tests/providers/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /plain-oauth/tests/providers/bitbucket.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-oauth/tests/providers/bitbucket.py -------------------------------------------------------------------------------- /plain-oauth/tests/providers/github.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-oauth/tests/providers/github.py -------------------------------------------------------------------------------- /plain-oauth/tests/providers/gitlab.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-oauth/tests/providers/gitlab.py -------------------------------------------------------------------------------- /plain-oauth/tests/test_backends.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-oauth/tests/test_backends.py -------------------------------------------------------------------------------- /plain-oauth/tests/test_checks.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-oauth/tests/test_checks.py -------------------------------------------------------------------------------- /plain-oauth/tests/test_providers.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-oauth/tests/test_providers.py -------------------------------------------------------------------------------- /plain-observer/LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-observer/LICENSE -------------------------------------------------------------------------------- /plain-observer/README.md: -------------------------------------------------------------------------------- 1 | plain/observer/README.md -------------------------------------------------------------------------------- /plain-observer/plain/observer/AGENTS.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-observer/plain/observer/AGENTS.md -------------------------------------------------------------------------------- /plain-observer/plain/observer/CHANGELOG.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-observer/plain/observer/CHANGELOG.md -------------------------------------------------------------------------------- /plain-observer/plain/observer/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-observer/plain/observer/README.md -------------------------------------------------------------------------------- /plain-observer/plain/observer/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /plain-observer/plain/observer/admin.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-observer/plain/observer/admin.py -------------------------------------------------------------------------------- /plain-observer/plain/observer/cli.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-observer/plain/observer/cli.py -------------------------------------------------------------------------------- /plain-observer/plain/observer/config.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-observer/plain/observer/config.py -------------------------------------------------------------------------------- /plain-observer/plain/observer/core.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-observer/plain/observer/core.py -------------------------------------------------------------------------------- /plain-observer/plain/observer/default_settings.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-observer/plain/observer/default_settings.py -------------------------------------------------------------------------------- /plain-observer/plain/observer/logging.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-observer/plain/observer/logging.py -------------------------------------------------------------------------------- /plain-observer/plain/observer/migrations/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /plain-observer/plain/observer/models.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-observer/plain/observer/models.py -------------------------------------------------------------------------------- /plain-observer/plain/observer/otel.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-observer/plain/observer/otel.py -------------------------------------------------------------------------------- /plain-observer/plain/observer/toolbar.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-observer/plain/observer/toolbar.py -------------------------------------------------------------------------------- /plain-observer/plain/observer/urls.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-observer/plain/observer/urls.py -------------------------------------------------------------------------------- /plain-observer/plain/observer/views.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-observer/plain/observer/views.py -------------------------------------------------------------------------------- /plain-observer/pyproject.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-observer/pyproject.toml -------------------------------------------------------------------------------- /plain-pages/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-pages/.gitignore -------------------------------------------------------------------------------- /plain-pages/LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-pages/LICENSE -------------------------------------------------------------------------------- /plain-pages/README.md: -------------------------------------------------------------------------------- 1 | ./plain/pages/README.md -------------------------------------------------------------------------------- /plain-pages/plain/pages/CHANGELOG.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-pages/plain/pages/CHANGELOG.md -------------------------------------------------------------------------------- /plain-pages/plain/pages/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-pages/plain/pages/README.md -------------------------------------------------------------------------------- /plain-pages/plain/pages/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-pages/plain/pages/__init__.py -------------------------------------------------------------------------------- /plain-pages/plain/pages/config.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-pages/plain/pages/config.py -------------------------------------------------------------------------------- /plain-pages/plain/pages/default_settings.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-pages/plain/pages/default_settings.py -------------------------------------------------------------------------------- /plain-pages/plain/pages/exceptions.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-pages/plain/pages/exceptions.py -------------------------------------------------------------------------------- /plain-pages/plain/pages/markdown.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-pages/plain/pages/markdown.py -------------------------------------------------------------------------------- /plain-pages/plain/pages/pages.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-pages/plain/pages/pages.py -------------------------------------------------------------------------------- /plain-pages/plain/pages/registry.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-pages/plain/pages/registry.py -------------------------------------------------------------------------------- /plain-pages/plain/pages/templates/page.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-pages/plain/pages/templates/page.html -------------------------------------------------------------------------------- /plain-pages/plain/pages/urls.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-pages/plain/pages/urls.py -------------------------------------------------------------------------------- /plain-pages/plain/pages/views.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-pages/plain/pages/views.py -------------------------------------------------------------------------------- /plain-pages/pyproject.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-pages/pyproject.toml -------------------------------------------------------------------------------- /plain-pageviews/LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-pageviews/LICENSE -------------------------------------------------------------------------------- /plain-pageviews/README.md: -------------------------------------------------------------------------------- 1 | ./plain/pageviews/README.md -------------------------------------------------------------------------------- /plain-pageviews/plain/pageviews/CHANGELOG.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-pageviews/plain/pageviews/CHANGELOG.md -------------------------------------------------------------------------------- /plain-pageviews/plain/pageviews/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-pageviews/plain/pageviews/README.md -------------------------------------------------------------------------------- /plain-pageviews/plain/pageviews/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /plain-pageviews/plain/pageviews/admin.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-pageviews/plain/pageviews/admin.py -------------------------------------------------------------------------------- /plain-pageviews/plain/pageviews/chores.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-pageviews/plain/pageviews/chores.py -------------------------------------------------------------------------------- /plain-pageviews/plain/pageviews/config.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-pageviews/plain/pageviews/config.py -------------------------------------------------------------------------------- /plain-pageviews/plain/pageviews/default_settings.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-pageviews/plain/pageviews/default_settings.py -------------------------------------------------------------------------------- /plain-pageviews/plain/pageviews/migrations/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /plain-pageviews/plain/pageviews/models.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-pageviews/plain/pageviews/models.py -------------------------------------------------------------------------------- /plain-pageviews/plain/pageviews/params.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-pageviews/plain/pageviews/params.py -------------------------------------------------------------------------------- /plain-pageviews/plain/pageviews/templates.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-pageviews/plain/pageviews/templates.py -------------------------------------------------------------------------------- /plain-pageviews/plain/pageviews/urls.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-pageviews/plain/pageviews/urls.py -------------------------------------------------------------------------------- /plain-pageviews/plain/pageviews/views.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-pageviews/plain/pageviews/views.py -------------------------------------------------------------------------------- /plain-pageviews/pyproject.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-pageviews/pyproject.toml -------------------------------------------------------------------------------- /plain-passwords/LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-passwords/LICENSE -------------------------------------------------------------------------------- /plain-passwords/README.md: -------------------------------------------------------------------------------- 1 | ./plain/passwords/README.md -------------------------------------------------------------------------------- /plain-passwords/plain/passwords/CHANGELOG.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-passwords/plain/passwords/CHANGELOG.md -------------------------------------------------------------------------------- /plain-passwords/plain/passwords/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-passwords/plain/passwords/README.md -------------------------------------------------------------------------------- /plain-passwords/plain/passwords/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /plain-passwords/plain/passwords/core.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-passwords/plain/passwords/core.py -------------------------------------------------------------------------------- /plain-passwords/plain/passwords/forms.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-passwords/plain/passwords/forms.py -------------------------------------------------------------------------------- /plain-passwords/plain/passwords/hashers.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-passwords/plain/passwords/hashers.py -------------------------------------------------------------------------------- /plain-passwords/plain/passwords/models.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-passwords/plain/passwords/models.py -------------------------------------------------------------------------------- /plain-passwords/plain/passwords/templates/email/password_reset.subject.txt: -------------------------------------------------------------------------------- 1 | Password reset 2 | -------------------------------------------------------------------------------- /plain-passwords/plain/passwords/types.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-passwords/plain/passwords/types.py -------------------------------------------------------------------------------- /plain-passwords/plain/passwords/types.pyi: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-passwords/plain/passwords/types.pyi -------------------------------------------------------------------------------- /plain-passwords/plain/passwords/utils.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-passwords/plain/passwords/utils.py -------------------------------------------------------------------------------- /plain-passwords/plain/passwords/validators.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-passwords/plain/passwords/validators.py -------------------------------------------------------------------------------- /plain-passwords/plain/passwords/views.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-passwords/plain/passwords/views.py -------------------------------------------------------------------------------- /plain-passwords/pyproject.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-passwords/pyproject.toml -------------------------------------------------------------------------------- /plain-pytest/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-pytest/.gitignore -------------------------------------------------------------------------------- /plain-pytest/LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-pytest/LICENSE -------------------------------------------------------------------------------- /plain-pytest/README.md: -------------------------------------------------------------------------------- 1 | ./plain/pytest/README.md -------------------------------------------------------------------------------- /plain-pytest/plain/pytest/CHANGELOG.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-pytest/plain/pytest/CHANGELOG.md -------------------------------------------------------------------------------- /plain-pytest/plain/pytest/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-pytest/plain/pytest/README.md -------------------------------------------------------------------------------- /plain-pytest/plain/pytest/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-pytest/plain/pytest/__init__.py -------------------------------------------------------------------------------- /plain-pytest/plain/pytest/browser.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-pytest/plain/pytest/browser.py -------------------------------------------------------------------------------- /plain-pytest/plain/pytest/cli.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-pytest/plain/pytest/cli.py -------------------------------------------------------------------------------- /plain-pytest/plain/pytest/entrypoints.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-pytest/plain/pytest/entrypoints.py -------------------------------------------------------------------------------- /plain-pytest/plain/pytest/plugin.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-pytest/plain/pytest/plugin.py -------------------------------------------------------------------------------- /plain-pytest/pyproject.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-pytest/pyproject.toml -------------------------------------------------------------------------------- /plain-redirection/LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-redirection/LICENSE -------------------------------------------------------------------------------- /plain-redirection/README.md: -------------------------------------------------------------------------------- 1 | ./plain/redirection/README.md -------------------------------------------------------------------------------- /plain-redirection/plain/redirection/CHANGELOG.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-redirection/plain/redirection/CHANGELOG.md -------------------------------------------------------------------------------- /plain-redirection/plain/redirection/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-redirection/plain/redirection/README.md -------------------------------------------------------------------------------- /plain-redirection/plain/redirection/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-redirection/plain/redirection/__init__.py -------------------------------------------------------------------------------- /plain-redirection/plain/redirection/admin.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-redirection/plain/redirection/admin.py -------------------------------------------------------------------------------- /plain-redirection/plain/redirection/chores.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-redirection/plain/redirection/chores.py -------------------------------------------------------------------------------- /plain-redirection/plain/redirection/config.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-redirection/plain/redirection/config.py -------------------------------------------------------------------------------- /plain-redirection/plain/redirection/middleware.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-redirection/plain/redirection/middleware.py -------------------------------------------------------------------------------- /plain-redirection/plain/redirection/migrations/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /plain-redirection/plain/redirection/models.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-redirection/plain/redirection/models.py -------------------------------------------------------------------------------- /plain-redirection/pyproject.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-redirection/pyproject.toml -------------------------------------------------------------------------------- /plain-scan/LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-scan/LICENSE -------------------------------------------------------------------------------- /plain-scan/README.md: -------------------------------------------------------------------------------- 1 | plain/scan/README.md -------------------------------------------------------------------------------- /plain-scan/plain/scan/CHANGELOG.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-scan/plain/scan/CHANGELOG.md -------------------------------------------------------------------------------- /plain-scan/plain/scan/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-scan/plain/scan/README.md -------------------------------------------------------------------------------- /plain-scan/plain/scan/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-scan/plain/scan/__init__.py -------------------------------------------------------------------------------- /plain-scan/plain/scan/audits/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-scan/plain/scan/audits/__init__.py -------------------------------------------------------------------------------- /plain-scan/plain/scan/audits/base.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-scan/plain/scan/audits/base.py -------------------------------------------------------------------------------- /plain-scan/plain/scan/audits/cookies.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-scan/plain/scan/audits/cookies.py -------------------------------------------------------------------------------- /plain-scan/plain/scan/audits/cors.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-scan/plain/scan/audits/cors.py -------------------------------------------------------------------------------- /plain-scan/plain/scan/audits/csp.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-scan/plain/scan/audits/csp.py -------------------------------------------------------------------------------- /plain-scan/plain/scan/audits/frame_options.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-scan/plain/scan/audits/frame_options.py -------------------------------------------------------------------------------- /plain-scan/plain/scan/audits/hsts.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-scan/plain/scan/audits/hsts.py -------------------------------------------------------------------------------- /plain-scan/plain/scan/audits/redirects.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-scan/plain/scan/audits/redirects.py -------------------------------------------------------------------------------- /plain-scan/plain/scan/audits/referrer_policy.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-scan/plain/scan/audits/referrer_policy.py -------------------------------------------------------------------------------- /plain-scan/plain/scan/audits/status_code.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-scan/plain/scan/audits/status_code.py -------------------------------------------------------------------------------- /plain-scan/plain/scan/audits/tls.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-scan/plain/scan/audits/tls.py -------------------------------------------------------------------------------- /plain-scan/plain/scan/cli.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-scan/plain/scan/cli.py -------------------------------------------------------------------------------- /plain-scan/plain/scan/entrypoints.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-scan/plain/scan/entrypoints.py -------------------------------------------------------------------------------- /plain-scan/plain/scan/metadata.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-scan/plain/scan/metadata.py -------------------------------------------------------------------------------- /plain-scan/plain/scan/output.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-scan/plain/scan/output.py -------------------------------------------------------------------------------- /plain-scan/plain/scan/results.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-scan/plain/scan/results.py -------------------------------------------------------------------------------- /plain-scan/plain/scan/scanner.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-scan/plain/scan/scanner.py -------------------------------------------------------------------------------- /plain-scan/pyproject.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-scan/pyproject.toml -------------------------------------------------------------------------------- /plain-sessions/LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-sessions/LICENSE -------------------------------------------------------------------------------- /plain-sessions/README.md: -------------------------------------------------------------------------------- 1 | ./plain/sessions/README.md -------------------------------------------------------------------------------- /plain-sessions/plain/sessions/CHANGELOG.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-sessions/plain/sessions/CHANGELOG.md -------------------------------------------------------------------------------- /plain-sessions/plain/sessions/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-sessions/plain/sessions/README.md -------------------------------------------------------------------------------- /plain-sessions/plain/sessions/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-sessions/plain/sessions/__init__.py -------------------------------------------------------------------------------- /plain-sessions/plain/sessions/admin.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-sessions/plain/sessions/admin.py -------------------------------------------------------------------------------- /plain-sessions/plain/sessions/chores.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-sessions/plain/sessions/chores.py -------------------------------------------------------------------------------- /plain-sessions/plain/sessions/config.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-sessions/plain/sessions/config.py -------------------------------------------------------------------------------- /plain-sessions/plain/sessions/core.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-sessions/plain/sessions/core.py -------------------------------------------------------------------------------- /plain-sessions/plain/sessions/default_settings.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-sessions/plain/sessions/default_settings.py -------------------------------------------------------------------------------- /plain-sessions/plain/sessions/exceptions.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-sessions/plain/sessions/exceptions.py -------------------------------------------------------------------------------- /plain-sessions/plain/sessions/middleware.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-sessions/plain/sessions/middleware.py -------------------------------------------------------------------------------- /plain-sessions/plain/sessions/migrations/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /plain-sessions/plain/sessions/models.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-sessions/plain/sessions/models.py -------------------------------------------------------------------------------- /plain-sessions/plain/sessions/preflight.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-sessions/plain/sessions/preflight.py -------------------------------------------------------------------------------- /plain-sessions/plain/sessions/requests.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-sessions/plain/sessions/requests.py -------------------------------------------------------------------------------- /plain-sessions/plain/sessions/templates.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-sessions/plain/sessions/templates.py -------------------------------------------------------------------------------- /plain-sessions/plain/sessions/test.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-sessions/plain/sessions/test.py -------------------------------------------------------------------------------- /plain-sessions/plain/sessions/toolbar.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-sessions/plain/sessions/toolbar.py -------------------------------------------------------------------------------- /plain-sessions/plain/sessions/views.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-sessions/plain/sessions/views.py -------------------------------------------------------------------------------- /plain-sessions/pyproject.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-sessions/pyproject.toml -------------------------------------------------------------------------------- /plain-sessions/tests/app/settings.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-sessions/tests/app/settings.py -------------------------------------------------------------------------------- /plain-sessions/tests/app/urls.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-sessions/tests/app/urls.py -------------------------------------------------------------------------------- /plain-sessions/tests/test_sessions.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-sessions/tests/test_sessions.py -------------------------------------------------------------------------------- /plain-start/LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-start/LICENSE -------------------------------------------------------------------------------- /plain-start/README.md: -------------------------------------------------------------------------------- 1 | plain/start/README.md -------------------------------------------------------------------------------- /plain-start/plain/start/CHANGELOG.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-start/plain/start/CHANGELOG.md -------------------------------------------------------------------------------- /plain-start/plain/start/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-start/plain/start/README.md -------------------------------------------------------------------------------- /plain-start/plain/start/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /plain-start/plain/start/cli.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-start/plain/start/cli.py -------------------------------------------------------------------------------- /plain-start/pyproject.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-start/pyproject.toml -------------------------------------------------------------------------------- /plain-support/LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-support/LICENSE -------------------------------------------------------------------------------- /plain-support/README.md: -------------------------------------------------------------------------------- 1 | ./plain/support/README.md -------------------------------------------------------------------------------- /plain-support/plain/support/CHANGELOG.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-support/plain/support/CHANGELOG.md -------------------------------------------------------------------------------- /plain-support/plain/support/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-support/plain/support/README.md -------------------------------------------------------------------------------- /plain-support/plain/support/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /plain-support/plain/support/admin.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-support/plain/support/admin.py -------------------------------------------------------------------------------- /plain-support/plain/support/config.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-support/plain/support/config.py -------------------------------------------------------------------------------- /plain-support/plain/support/default_settings.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-support/plain/support/default_settings.py -------------------------------------------------------------------------------- /plain-support/plain/support/forms.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-support/plain/support/forms.py -------------------------------------------------------------------------------- /plain-support/plain/support/migrations/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /plain-support/plain/support/models.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-support/plain/support/models.py -------------------------------------------------------------------------------- /plain-support/plain/support/templates/email/support_form_entry.html: -------------------------------------------------------------------------------- 1 |
{{ support_form_entry.message }}
2 | -------------------------------------------------------------------------------- /plain-support/plain/support/templates/support/success/default.html: -------------------------------------------------------------------------------- 1 |
Your message has been sent.
2 | -------------------------------------------------------------------------------- /plain-support/plain/support/urls.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-support/plain/support/urls.py -------------------------------------------------------------------------------- /plain-support/plain/support/views.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-support/plain/support/views.py -------------------------------------------------------------------------------- /plain-support/pyproject.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-support/pyproject.toml -------------------------------------------------------------------------------- /plain-tailwind/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-tailwind/.gitignore -------------------------------------------------------------------------------- /plain-tailwind/LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-tailwind/LICENSE -------------------------------------------------------------------------------- /plain-tailwind/README.md: -------------------------------------------------------------------------------- 1 | ./plain/tailwind/README.md -------------------------------------------------------------------------------- /plain-tailwind/plain/tailwind/AGENTS.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-tailwind/plain/tailwind/AGENTS.md -------------------------------------------------------------------------------- /plain-tailwind/plain/tailwind/CHANGELOG.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-tailwind/plain/tailwind/CHANGELOG.md -------------------------------------------------------------------------------- /plain-tailwind/plain/tailwind/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-tailwind/plain/tailwind/README.md -------------------------------------------------------------------------------- /plain-tailwind/plain/tailwind/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-tailwind/plain/tailwind/__init__.py -------------------------------------------------------------------------------- /plain-tailwind/plain/tailwind/cli.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-tailwind/plain/tailwind/cli.py -------------------------------------------------------------------------------- /plain-tailwind/plain/tailwind/core.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-tailwind/plain/tailwind/core.py -------------------------------------------------------------------------------- /plain-tailwind/plain/tailwind/default_settings.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-tailwind/plain/tailwind/default_settings.py -------------------------------------------------------------------------------- /plain-tailwind/plain/tailwind/entrypoints.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-tailwind/plain/tailwind/entrypoints.py -------------------------------------------------------------------------------- /plain-tailwind/plain/tailwind/templates.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-tailwind/plain/tailwind/templates.py -------------------------------------------------------------------------------- /plain-tailwind/plain/tailwind/templates/tailwind/css.html: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /plain-tailwind/pyproject.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-tailwind/pyproject.toml -------------------------------------------------------------------------------- /plain-toolbar/LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-toolbar/LICENSE -------------------------------------------------------------------------------- /plain-toolbar/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-toolbar/README.md -------------------------------------------------------------------------------- /plain-toolbar/plain/toolbar/CHANGELOG.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-toolbar/plain/toolbar/CHANGELOG.md -------------------------------------------------------------------------------- /plain-toolbar/plain/toolbar/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-toolbar/plain/toolbar/__init__.py -------------------------------------------------------------------------------- /plain-toolbar/plain/toolbar/config.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-toolbar/plain/toolbar/config.py -------------------------------------------------------------------------------- /plain-toolbar/plain/toolbar/registry.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-toolbar/plain/toolbar/registry.py -------------------------------------------------------------------------------- /plain-toolbar/plain/toolbar/templates.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-toolbar/plain/toolbar/templates.py -------------------------------------------------------------------------------- /plain-toolbar/plain/toolbar/toolbar.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-toolbar/plain/toolbar/toolbar.py -------------------------------------------------------------------------------- /plain-toolbar/pyproject.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-toolbar/pyproject.toml -------------------------------------------------------------------------------- /plain-tunnel/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-tunnel/.gitignore -------------------------------------------------------------------------------- /plain-tunnel/LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-tunnel/LICENSE -------------------------------------------------------------------------------- /plain-tunnel/README.md: -------------------------------------------------------------------------------- 1 | ./plain/tunnel/README.md -------------------------------------------------------------------------------- /plain-tunnel/plain/tunnel/CHANGELOG.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-tunnel/plain/tunnel/CHANGELOG.md -------------------------------------------------------------------------------- /plain-tunnel/plain/tunnel/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-tunnel/plain/tunnel/README.md -------------------------------------------------------------------------------- /plain-tunnel/plain/tunnel/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-tunnel/plain/tunnel/__init__.py -------------------------------------------------------------------------------- /plain-tunnel/plain/tunnel/cli.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-tunnel/plain/tunnel/cli.py -------------------------------------------------------------------------------- /plain-tunnel/plain/tunnel/client.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-tunnel/plain/tunnel/client.py -------------------------------------------------------------------------------- /plain-tunnel/plain/tunnel/entrypoints.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-tunnel/plain/tunnel/entrypoints.py -------------------------------------------------------------------------------- /plain-tunnel/pyproject.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-tunnel/pyproject.toml -------------------------------------------------------------------------------- /plain-tunnel/server/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-tunnel/server/.gitignore -------------------------------------------------------------------------------- /plain-tunnel/server/package-lock.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-tunnel/server/package-lock.json -------------------------------------------------------------------------------- /plain-tunnel/server/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-tunnel/server/package.json -------------------------------------------------------------------------------- /plain-tunnel/server/worker.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-tunnel/server/worker.js -------------------------------------------------------------------------------- /plain-tunnel/server/wrangler.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-tunnel/server/wrangler.toml -------------------------------------------------------------------------------- /plain-vendor/LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-vendor/LICENSE -------------------------------------------------------------------------------- /plain-vendor/README.md: -------------------------------------------------------------------------------- 1 | ./plain/vendor/README.md -------------------------------------------------------------------------------- /plain-vendor/plain/vendor/CHANGELOG.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-vendor/plain/vendor/CHANGELOG.md -------------------------------------------------------------------------------- /plain-vendor/plain/vendor/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-vendor/plain/vendor/README.md -------------------------------------------------------------------------------- /plain-vendor/plain/vendor/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-vendor/plain/vendor/__init__.py -------------------------------------------------------------------------------- /plain-vendor/plain/vendor/cli.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-vendor/plain/vendor/cli.py -------------------------------------------------------------------------------- /plain-vendor/plain/vendor/deps.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-vendor/plain/vendor/deps.py -------------------------------------------------------------------------------- /plain-vendor/plain/vendor/entrypoints.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-vendor/plain/vendor/entrypoints.py -------------------------------------------------------------------------------- /plain-vendor/plain/vendor/exceptions.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-vendor/plain/vendor/exceptions.py -------------------------------------------------------------------------------- /plain-vendor/pyproject.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain-vendor/pyproject.toml -------------------------------------------------------------------------------- /plain/LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain/LICENSE -------------------------------------------------------------------------------- /plain/README.md: -------------------------------------------------------------------------------- 1 | ./plain/README.md -------------------------------------------------------------------------------- /plain/plain/AGENTS.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain/plain/AGENTS.md -------------------------------------------------------------------------------- /plain/plain/CHANGELOG.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain/plain/CHANGELOG.md -------------------------------------------------------------------------------- /plain/plain/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain/plain/README.md -------------------------------------------------------------------------------- /plain/plain/__main__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain/plain/__main__.py -------------------------------------------------------------------------------- /plain/plain/assets/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain/plain/assets/README.md -------------------------------------------------------------------------------- /plain/plain/assets/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /plain/plain/assets/compile.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain/plain/assets/compile.py -------------------------------------------------------------------------------- /plain/plain/assets/finders.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain/plain/assets/finders.py -------------------------------------------------------------------------------- /plain/plain/assets/fingerprints.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain/plain/assets/fingerprints.py -------------------------------------------------------------------------------- /plain/plain/assets/urls.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain/plain/assets/urls.py -------------------------------------------------------------------------------- /plain/plain/assets/views.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain/plain/assets/views.py -------------------------------------------------------------------------------- /plain/plain/chores/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain/plain/chores/README.md -------------------------------------------------------------------------------- /plain/plain/chores/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain/plain/chores/__init__.py -------------------------------------------------------------------------------- /plain/plain/chores/core.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain/plain/chores/core.py -------------------------------------------------------------------------------- /plain/plain/chores/registry.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain/plain/chores/registry.py -------------------------------------------------------------------------------- /plain/plain/cli/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain/plain/cli/README.md -------------------------------------------------------------------------------- /plain/plain/cli/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain/plain/cli/__init__.py -------------------------------------------------------------------------------- /plain/plain/cli/agent/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain/plain/cli/agent/__init__.py -------------------------------------------------------------------------------- /plain/plain/cli/agent/docs.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain/plain/cli/agent/docs.py -------------------------------------------------------------------------------- /plain/plain/cli/agent/llmdocs.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain/plain/cli/agent/llmdocs.py -------------------------------------------------------------------------------- /plain/plain/cli/agent/md.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain/plain/cli/agent/md.py -------------------------------------------------------------------------------- /plain/plain/cli/agent/prompt.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain/plain/cli/agent/prompt.py -------------------------------------------------------------------------------- /plain/plain/cli/agent/request.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain/plain/cli/agent/request.py -------------------------------------------------------------------------------- /plain/plain/cli/build.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain/plain/cli/build.py -------------------------------------------------------------------------------- /plain/plain/cli/changelog.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain/plain/cli/changelog.py -------------------------------------------------------------------------------- /plain/plain/cli/chores.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain/plain/cli/chores.py -------------------------------------------------------------------------------- /plain/plain/cli/core.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain/plain/cli/core.py -------------------------------------------------------------------------------- /plain/plain/cli/docs.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain/plain/cli/docs.py -------------------------------------------------------------------------------- /plain/plain/cli/formatting.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain/plain/cli/formatting.py -------------------------------------------------------------------------------- /plain/plain/cli/install.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain/plain/cli/install.py -------------------------------------------------------------------------------- /plain/plain/cli/output.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain/plain/cli/output.py -------------------------------------------------------------------------------- /plain/plain/cli/preflight.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain/plain/cli/preflight.py -------------------------------------------------------------------------------- /plain/plain/cli/print.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain/plain/cli/print.py -------------------------------------------------------------------------------- /plain/plain/cli/registry.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain/plain/cli/registry.py -------------------------------------------------------------------------------- /plain/plain/cli/runtime.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain/plain/cli/runtime.py -------------------------------------------------------------------------------- /plain/plain/cli/scaffold.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain/plain/cli/scaffold.py -------------------------------------------------------------------------------- /plain/plain/cli/server.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain/plain/cli/server.py -------------------------------------------------------------------------------- /plain/plain/cli/settings.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain/plain/cli/settings.py -------------------------------------------------------------------------------- /plain/plain/cli/shell.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain/plain/cli/shell.py -------------------------------------------------------------------------------- /plain/plain/cli/startup.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain/plain/cli/startup.py -------------------------------------------------------------------------------- /plain/plain/cli/upgrade.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain/plain/cli/upgrade.py -------------------------------------------------------------------------------- /plain/plain/cli/urls.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain/plain/cli/urls.py -------------------------------------------------------------------------------- /plain/plain/cli/utils.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain/plain/cli/utils.py -------------------------------------------------------------------------------- /plain/plain/csrf/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain/plain/csrf/README.md -------------------------------------------------------------------------------- /plain/plain/csrf/middleware.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain/plain/csrf/middleware.py -------------------------------------------------------------------------------- /plain/plain/debug.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain/plain/debug.py -------------------------------------------------------------------------------- /plain/plain/exceptions.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain/plain/exceptions.py -------------------------------------------------------------------------------- /plain/plain/forms/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain/plain/forms/README.md -------------------------------------------------------------------------------- /plain/plain/forms/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain/plain/forms/__init__.py -------------------------------------------------------------------------------- /plain/plain/forms/boundfield.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain/plain/forms/boundfield.py -------------------------------------------------------------------------------- /plain/plain/forms/exceptions.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain/plain/forms/exceptions.py -------------------------------------------------------------------------------- /plain/plain/forms/fields.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain/plain/forms/fields.py -------------------------------------------------------------------------------- /plain/plain/forms/forms.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain/plain/forms/forms.py -------------------------------------------------------------------------------- /plain/plain/http/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain/plain/http/README.md -------------------------------------------------------------------------------- /plain/plain/http/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain/plain/http/__init__.py -------------------------------------------------------------------------------- /plain/plain/http/cookie.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain/plain/http/cookie.py -------------------------------------------------------------------------------- /plain/plain/http/middleware.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain/plain/http/middleware.py -------------------------------------------------------------------------------- /plain/plain/http/multipartparser.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain/plain/http/multipartparser.py -------------------------------------------------------------------------------- /plain/plain/http/request.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain/plain/http/request.py -------------------------------------------------------------------------------- /plain/plain/http/response.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain/plain/http/response.py -------------------------------------------------------------------------------- /plain/plain/internal/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain/plain/internal/__init__.py -------------------------------------------------------------------------------- /plain/plain/internal/files/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain/plain/internal/files/__init__.py -------------------------------------------------------------------------------- /plain/plain/internal/files/base.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain/plain/internal/files/base.py -------------------------------------------------------------------------------- /plain/plain/internal/files/locks.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain/plain/internal/files/locks.py -------------------------------------------------------------------------------- /plain/plain/internal/files/move.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain/plain/internal/files/move.py -------------------------------------------------------------------------------- /plain/plain/internal/files/temp.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain/plain/internal/files/temp.py -------------------------------------------------------------------------------- /plain/plain/internal/files/uploadedfile.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain/plain/internal/files/uploadedfile.py -------------------------------------------------------------------------------- /plain/plain/internal/files/uploadhandler.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain/plain/internal/files/uploadhandler.py -------------------------------------------------------------------------------- /plain/plain/internal/files/utils.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain/plain/internal/files/utils.py -------------------------------------------------------------------------------- /plain/plain/internal/handlers/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /plain/plain/internal/handlers/base.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain/plain/internal/handlers/base.py -------------------------------------------------------------------------------- /plain/plain/internal/handlers/exception.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain/plain/internal/handlers/exception.py -------------------------------------------------------------------------------- /plain/plain/internal/handlers/wsgi.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain/plain/internal/handlers/wsgi.py -------------------------------------------------------------------------------- /plain/plain/internal/middleware/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /plain/plain/internal/middleware/headers.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain/plain/internal/middleware/headers.py -------------------------------------------------------------------------------- /plain/plain/internal/middleware/hosts.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain/plain/internal/middleware/hosts.py -------------------------------------------------------------------------------- /plain/plain/internal/middleware/https.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain/plain/internal/middleware/https.py -------------------------------------------------------------------------------- /plain/plain/internal/middleware/slash.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain/plain/internal/middleware/slash.py -------------------------------------------------------------------------------- /plain/plain/internal/reloader.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain/plain/internal/reloader.py -------------------------------------------------------------------------------- /plain/plain/json.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain/plain/json.py -------------------------------------------------------------------------------- /plain/plain/logs/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain/plain/logs/README.md -------------------------------------------------------------------------------- /plain/plain/logs/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain/plain/logs/__init__.py -------------------------------------------------------------------------------- /plain/plain/logs/app.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain/plain/logs/app.py -------------------------------------------------------------------------------- /plain/plain/logs/configure.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain/plain/logs/configure.py -------------------------------------------------------------------------------- /plain/plain/logs/debug.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain/plain/logs/debug.py -------------------------------------------------------------------------------- /plain/plain/logs/filters.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain/plain/logs/filters.py -------------------------------------------------------------------------------- /plain/plain/logs/formatters.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain/plain/logs/formatters.py -------------------------------------------------------------------------------- /plain/plain/packages/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain/plain/packages/README.md -------------------------------------------------------------------------------- /plain/plain/packages/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain/plain/packages/__init__.py -------------------------------------------------------------------------------- /plain/plain/packages/config.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain/plain/packages/config.py -------------------------------------------------------------------------------- /plain/plain/packages/registry.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain/plain/packages/registry.py -------------------------------------------------------------------------------- /plain/plain/paginator.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain/plain/paginator.py -------------------------------------------------------------------------------- /plain/plain/preflight/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain/plain/preflight/README.md -------------------------------------------------------------------------------- /plain/plain/preflight/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain/plain/preflight/__init__.py -------------------------------------------------------------------------------- /plain/plain/preflight/checks.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain/plain/preflight/checks.py -------------------------------------------------------------------------------- /plain/plain/preflight/files.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain/plain/preflight/files.py -------------------------------------------------------------------------------- /plain/plain/preflight/registry.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain/plain/preflight/registry.py -------------------------------------------------------------------------------- /plain/plain/preflight/results.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain/plain/preflight/results.py -------------------------------------------------------------------------------- /plain/plain/preflight/security.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain/plain/preflight/security.py -------------------------------------------------------------------------------- /plain/plain/preflight/urls.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain/plain/preflight/urls.py -------------------------------------------------------------------------------- /plain/plain/runtime/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain/plain/runtime/README.md -------------------------------------------------------------------------------- /plain/plain/runtime/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain/plain/runtime/__init__.py -------------------------------------------------------------------------------- /plain/plain/runtime/global_settings.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain/plain/runtime/global_settings.py -------------------------------------------------------------------------------- /plain/plain/runtime/user_settings.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain/plain/runtime/user_settings.py -------------------------------------------------------------------------------- /plain/plain/runtime/utils.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain/plain/runtime/utils.py -------------------------------------------------------------------------------- /plain/plain/server/LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain/plain/server/LICENSE -------------------------------------------------------------------------------- /plain/plain/server/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain/plain/server/README.md -------------------------------------------------------------------------------- /plain/plain/server/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain/plain/server/__init__.py -------------------------------------------------------------------------------- /plain/plain/server/app.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain/plain/server/app.py -------------------------------------------------------------------------------- /plain/plain/server/arbiter.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain/plain/server/arbiter.py -------------------------------------------------------------------------------- /plain/plain/server/config.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain/plain/server/config.py -------------------------------------------------------------------------------- /plain/plain/server/errors.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain/plain/server/errors.py -------------------------------------------------------------------------------- /plain/plain/server/glogging.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain/plain/server/glogging.py -------------------------------------------------------------------------------- /plain/plain/server/http/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain/plain/server/http/__init__.py -------------------------------------------------------------------------------- /plain/plain/server/http/body.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain/plain/server/http/body.py -------------------------------------------------------------------------------- /plain/plain/server/http/errors.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain/plain/server/http/errors.py -------------------------------------------------------------------------------- /plain/plain/server/http/message.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain/plain/server/http/message.py -------------------------------------------------------------------------------- /plain/plain/server/http/parser.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain/plain/server/http/parser.py -------------------------------------------------------------------------------- /plain/plain/server/http/unreader.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain/plain/server/http/unreader.py -------------------------------------------------------------------------------- /plain/plain/server/http/wsgi.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain/plain/server/http/wsgi.py -------------------------------------------------------------------------------- /plain/plain/server/pidfile.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain/plain/server/pidfile.py -------------------------------------------------------------------------------- /plain/plain/server/sock.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain/plain/server/sock.py -------------------------------------------------------------------------------- /plain/plain/server/util.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain/plain/server/util.py -------------------------------------------------------------------------------- /plain/plain/server/workers/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain/plain/server/workers/__init__.py -------------------------------------------------------------------------------- /plain/plain/server/workers/base.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain/plain/server/workers/base.py -------------------------------------------------------------------------------- /plain/plain/server/workers/sync.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain/plain/server/workers/sync.py -------------------------------------------------------------------------------- /plain/plain/server/workers/thread.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain/plain/server/workers/thread.py -------------------------------------------------------------------------------- /plain/plain/server/workers/workertmp.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain/plain/server/workers/workertmp.py -------------------------------------------------------------------------------- /plain/plain/signals/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain/plain/signals/README.md -------------------------------------------------------------------------------- /plain/plain/signals/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain/plain/signals/__init__.py -------------------------------------------------------------------------------- /plain/plain/signals/dispatch/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain/plain/signals/dispatch/__init__.py -------------------------------------------------------------------------------- /plain/plain/signals/dispatch/dispatcher.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain/plain/signals/dispatch/dispatcher.py -------------------------------------------------------------------------------- /plain/plain/signals/dispatch/license.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain/plain/signals/dispatch/license.txt -------------------------------------------------------------------------------- /plain/plain/signing.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain/plain/signing.py -------------------------------------------------------------------------------- /plain/plain/templates/AGENTS.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain/plain/templates/AGENTS.md -------------------------------------------------------------------------------- /plain/plain/templates/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain/plain/templates/README.md -------------------------------------------------------------------------------- /plain/plain/templates/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain/plain/templates/__init__.py -------------------------------------------------------------------------------- /plain/plain/templates/core.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain/plain/templates/core.py -------------------------------------------------------------------------------- /plain/plain/templates/jinja/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain/plain/templates/jinja/__init__.py -------------------------------------------------------------------------------- /plain/plain/templates/jinja/environments.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain/plain/templates/jinja/environments.py -------------------------------------------------------------------------------- /plain/plain/templates/jinja/extensions.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain/plain/templates/jinja/extensions.py -------------------------------------------------------------------------------- /plain/plain/templates/jinja/filters.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain/plain/templates/jinja/filters.py -------------------------------------------------------------------------------- /plain/plain/templates/jinja/globals.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain/plain/templates/jinja/globals.py -------------------------------------------------------------------------------- /plain/plain/test/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain/plain/test/README.md -------------------------------------------------------------------------------- /plain/plain/test/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain/plain/test/__init__.py -------------------------------------------------------------------------------- /plain/plain/test/client.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain/plain/test/client.py -------------------------------------------------------------------------------- /plain/plain/test/encoding.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain/plain/test/encoding.py -------------------------------------------------------------------------------- /plain/plain/test/exceptions.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain/plain/test/exceptions.py -------------------------------------------------------------------------------- /plain/plain/urls/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain/plain/urls/README.md -------------------------------------------------------------------------------- /plain/plain/urls/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain/plain/urls/__init__.py -------------------------------------------------------------------------------- /plain/plain/urls/converters.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain/plain/urls/converters.py -------------------------------------------------------------------------------- /plain/plain/urls/exceptions.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain/plain/urls/exceptions.py -------------------------------------------------------------------------------- /plain/plain/urls/patterns.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain/plain/urls/patterns.py -------------------------------------------------------------------------------- /plain/plain/urls/resolvers.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain/plain/urls/resolvers.py -------------------------------------------------------------------------------- /plain/plain/urls/routers.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain/plain/urls/routers.py -------------------------------------------------------------------------------- /plain/plain/urls/utils.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain/plain/urls/utils.py -------------------------------------------------------------------------------- /plain/plain/utils/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain/plain/utils/README.md -------------------------------------------------------------------------------- /plain/plain/utils/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /plain/plain/utils/cache.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain/plain/utils/cache.py -------------------------------------------------------------------------------- /plain/plain/utils/crypto.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain/plain/utils/crypto.py -------------------------------------------------------------------------------- /plain/plain/utils/datastructures.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain/plain/utils/datastructures.py -------------------------------------------------------------------------------- /plain/plain/utils/dateparse.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain/plain/utils/dateparse.py -------------------------------------------------------------------------------- /plain/plain/utils/deconstruct.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain/plain/utils/deconstruct.py -------------------------------------------------------------------------------- /plain/plain/utils/decorators.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain/plain/utils/decorators.py -------------------------------------------------------------------------------- /plain/plain/utils/duration.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain/plain/utils/duration.py -------------------------------------------------------------------------------- /plain/plain/utils/encoding.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain/plain/utils/encoding.py -------------------------------------------------------------------------------- /plain/plain/utils/functional.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain/plain/utils/functional.py -------------------------------------------------------------------------------- /plain/plain/utils/hashable.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain/plain/utils/hashable.py -------------------------------------------------------------------------------- /plain/plain/utils/html.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain/plain/utils/html.py -------------------------------------------------------------------------------- /plain/plain/utils/http.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain/plain/utils/http.py -------------------------------------------------------------------------------- /plain/plain/utils/inspect.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain/plain/utils/inspect.py -------------------------------------------------------------------------------- /plain/plain/utils/ipv6.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain/plain/utils/ipv6.py -------------------------------------------------------------------------------- /plain/plain/utils/itercompat.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain/plain/utils/itercompat.py -------------------------------------------------------------------------------- /plain/plain/utils/module_loading.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain/plain/utils/module_loading.py -------------------------------------------------------------------------------- /plain/plain/utils/regex_helper.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain/plain/utils/regex_helper.py -------------------------------------------------------------------------------- /plain/plain/utils/safestring.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain/plain/utils/safestring.py -------------------------------------------------------------------------------- /plain/plain/utils/text.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain/plain/utils/text.py -------------------------------------------------------------------------------- /plain/plain/utils/timesince.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain/plain/utils/timesince.py -------------------------------------------------------------------------------- /plain/plain/utils/timezone.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain/plain/utils/timezone.py -------------------------------------------------------------------------------- /plain/plain/utils/tree.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain/plain/utils/tree.py -------------------------------------------------------------------------------- /plain/plain/validators.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain/plain/validators.py -------------------------------------------------------------------------------- /plain/plain/views/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain/plain/views/README.md -------------------------------------------------------------------------------- /plain/plain/views/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain/plain/views/__init__.py -------------------------------------------------------------------------------- /plain/plain/views/base.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain/plain/views/base.py -------------------------------------------------------------------------------- /plain/plain/views/errors.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain/plain/views/errors.py -------------------------------------------------------------------------------- /plain/plain/views/exceptions.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain/plain/views/exceptions.py -------------------------------------------------------------------------------- /plain/plain/views/forms.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain/plain/views/forms.py -------------------------------------------------------------------------------- /plain/plain/views/objects.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain/plain/views/objects.py -------------------------------------------------------------------------------- /plain/plain/views/redirect.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain/plain/views/redirect.py -------------------------------------------------------------------------------- /plain/plain/views/templates.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain/plain/views/templates.py -------------------------------------------------------------------------------- /plain/plain/wsgi.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain/plain/wsgi.py -------------------------------------------------------------------------------- /plain/pyproject.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain/pyproject.toml -------------------------------------------------------------------------------- /plain/tests/.gitignore: -------------------------------------------------------------------------------- 1 | .plain 2 | -------------------------------------------------------------------------------- /plain/tests/app/.gitignore: -------------------------------------------------------------------------------- 1 | assets_collected 2 | -------------------------------------------------------------------------------- /plain/tests/app/settings.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain/tests/app/settings.py -------------------------------------------------------------------------------- /plain/tests/app/test/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /plain/tests/app/test/default_settings.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain/tests/app/test/default_settings.py -------------------------------------------------------------------------------- /plain/tests/app/urls.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain/tests/app/urls.py -------------------------------------------------------------------------------- /plain/tests/conftest.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain/tests/conftest.py -------------------------------------------------------------------------------- /plain/tests/test_cli.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain/tests/test_cli.py -------------------------------------------------------------------------------- /plain/tests/test_csrf.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain/tests/test_csrf.py -------------------------------------------------------------------------------- /plain/tests/test_http_hosts.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain/tests/test_http_hosts.py -------------------------------------------------------------------------------- /plain/tests/test_logs.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain/tests/test_logs.py -------------------------------------------------------------------------------- /plain/tests/test_runtime.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain/tests/test_runtime.py -------------------------------------------------------------------------------- /plain/tests/test_wsgi.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/plain/tests/test_wsgi.py -------------------------------------------------------------------------------- /proposals/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/proposals/README.md -------------------------------------------------------------------------------- /proposals/plain-assets-webp.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/proposals/plain-assets-webp.md -------------------------------------------------------------------------------- /proposals/plain-dev-companion.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/proposals/plain-dev-companion.md -------------------------------------------------------------------------------- /proposals/plain-elements-dev-toolbar.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/proposals/plain-elements-dev-toolbar.md -------------------------------------------------------------------------------- /proposals/plain-email-filebased-viewing.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/proposals/plain-email-filebased-viewing.md -------------------------------------------------------------------------------- /proposals/plain-email-modern-email-apis.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/proposals/plain-email-modern-email-apis.md -------------------------------------------------------------------------------- /proposals/plain-file-based-secrets.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/proposals/plain-file-based-secrets.md -------------------------------------------------------------------------------- /proposals/plain-flags-toolbar-panel.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/proposals/plain-flags-toolbar-panel.md -------------------------------------------------------------------------------- /proposals/plain-jobs-backlog-monitoring.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/proposals/plain-jobs-backlog-monitoring.md -------------------------------------------------------------------------------- /proposals/plain-listview-pagination.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/proposals/plain-listview-pagination.md -------------------------------------------------------------------------------- /proposals/plain-models-cursor-paginator.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/proposals/plain-models-cursor-paginator.md -------------------------------------------------------------------------------- /proposals/plain-models-custom-base-queryset.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/proposals/plain-models-custom-base-queryset.md -------------------------------------------------------------------------------- /proposals/plain-models-explicit-create-update.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/proposals/plain-models-explicit-create-update.md -------------------------------------------------------------------------------- /proposals/plain-models-prevent-manual-pk.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/proposals/plain-models-prevent-manual-pk.md -------------------------------------------------------------------------------- /proposals/plain-observer-geolocation.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/proposals/plain-observer-geolocation.md -------------------------------------------------------------------------------- /proposals/plain-observer-request-headers.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/proposals/plain-observer-request-headers.md -------------------------------------------------------------------------------- /proposals/plain-observer-testing.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/proposals/plain-observer-testing.md -------------------------------------------------------------------------------- /proposals/plain-pageviews-analytics.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/proposals/plain-pageviews-analytics.md -------------------------------------------------------------------------------- /proposals/plain-precompile-regexes.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/proposals/plain-precompile-regexes.md -------------------------------------------------------------------------------- /proposals/plain-preflight-log-warnings.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/proposals/plain-preflight-log-warnings.md -------------------------------------------------------------------------------- /proposals/plain-sessions-multiple-sessions.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/proposals/plain-sessions-multiple-sessions.md -------------------------------------------------------------------------------- /pyproject.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/pyproject.toml -------------------------------------------------------------------------------- /scripts/bench-memory: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/scripts/bench-memory -------------------------------------------------------------------------------- /scripts/benchmark-request.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/scripts/benchmark-request.py -------------------------------------------------------------------------------- /scripts/fix: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/scripts/fix -------------------------------------------------------------------------------- /scripts/generate-release-notes: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/scripts/generate-release-notes -------------------------------------------------------------------------------- /scripts/install: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/scripts/install -------------------------------------------------------------------------------- /scripts/makemigrations: -------------------------------------------------------------------------------- 1 | #!/bin/sh -e 2 | cd example 3 | DATABASE_URL=sqlite://:memory: uv run plain makemigrations "$@" 4 | -------------------------------------------------------------------------------- /scripts/pre-commit: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/scripts/pre-commit -------------------------------------------------------------------------------- /scripts/publish: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/scripts/publish -------------------------------------------------------------------------------- /scripts/release: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/scripts/release -------------------------------------------------------------------------------- /scripts/test: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/scripts/test -------------------------------------------------------------------------------- /scripts/to-release: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/scripts/to-release -------------------------------------------------------------------------------- /scripts/type-check: -------------------------------------------------------------------------------- 1 | #!/bin/bash -e 2 | uv run ty check "$@" 3 | -------------------------------------------------------------------------------- /scripts/type-coverage: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/scripts/type-coverage -------------------------------------------------------------------------------- /scripts/type-validate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/scripts/type-validate -------------------------------------------------------------------------------- /scripts/vulture: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/scripts/vulture -------------------------------------------------------------------------------- /uv.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropseed/plain/HEAD/uv.lock --------------------------------------------------------------------------------