summaryrefslogtreecommitdiffstats
path: root/python/TODO
diff options
context:
space:
mode:
Diffstat (limited to 'python/TODO')
-rw-r--r--python/TODO80
1 files changed, 80 insertions, 0 deletions
diff --git a/python/TODO b/python/TODO
new file mode 100644
index 00000000..88186280
--- /dev/null
+++ b/python/TODO
@@ -0,0 +1,80 @@
+
+next/high-level:
+- quick python ORCID and ISSN import scripts
+- client export:
+ => one json-nl file per entity type
+- flask-apispec
+- swagger API docs?
+- naive API-based import scripts for: journals (norwegian), orcid, crossref
+- switch to marshmallow in create APIs (at least for revs)
+
+- kong or oauth2_proxy for auth, rate-limit, etc
+- "authn" microservice: https://keratin.tech/
+
+api:
+- PUT for mid-edit revisions
+/ use marshmallow in POST for all entities
+/ consider refactoring into method-method (classes)
+
+model:
+- 'parent rev' for revisions (vs. container parent)
+- "submit" status for editgroups?
+
+tests
+- full object fields actually getting passed e2e (for rich_app)
+- implicit editor.active_edit_group behavior
+- modify existing release via edit mechanism (and commit)
+- redirect a release to another (merge)
+- update (via edit) a redirect release
+- api: try to reuse an accepted edit group
+- api: try to modify an accepted release
+- api: multiple edits, same entity, same editgroup
+
+review
+- what does openlibrary API look like?
+- hydrate in files for releases... nested good enough?
+- add a 'live' (or 'immutable') flag to revision tables
+- how to encode proposed redirects? history goes in changelog
+ => proposed_ident_action table, which points to edits
+ => ident in edit as a partial solution (not redirects)
+ => extend edit object to have "to/from" info, and be per-entity
+
+views
+- oldest un-merged edits/edit-groups
+
+later:
+- switch extra_json to just be JSONB column
+- public IDs are UUID (sqlite hack, or just require postgres)
+
+## High-Level Priorities
+
+- bulk loading of releases, files, containers, creators
+- manual editing of containers and releases
+- accurate auto-matching matching of containers (eg, via ISSN)
+- full database dump and reload
+
+## Planning...
+
+before switching to golang:
+x swap extra_json to simple text field
+x profile slow bulk imports
+ client:
+ 78% waiting for POST
+ api:
+ 56% / 22ms api_release_create
+ 36% / 13ms api_work_create
+ 7% / 4ms container lookup
+- flush out web interface (POST, etc)
+ x create release
+ => edit existing release
+ => edit editgroup (remove edits)
+ => approve editgroup
+- "model" issues above
+- look at "review" issues above
+- try cockroach
+
+after switching:
+- UUID identifiers
+- faster bulk importers (API client; parallel)
+- editor accounts
+