aboutsummaryrefslogtreecommitdiffstats
path: root/python/TODO
diff options
context:
space:
mode:
authorBryan Newbold <bnewbold@robocracy.org>2018-05-16 18:34:19 -0700
committerBryan Newbold <bnewbold@robocracy.org>2018-05-16 18:34:19 -0700
commit4cf667c283d54f769e73d76bb23bbb68b4329cf8 (patch)
tree4bbeb1cdeb053c09e86e2cc41962382bcb837729 /python/TODO
parentb2d5968e0a7ac5576782f54980c930345f4c5298 (diff)
downloadfatcat-4cf667c283d54f769e73d76bb23bbb68b4329cf8.tar.gz
fatcat-4cf667c283d54f769e73d76bb23bbb68b4329cf8.zip
move python code to subdirectory
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
+