summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--README.md35
-rw-r--r--TODO17
-rw-r--r--rust/README.md23
3 files changed, 37 insertions, 38 deletions
diff --git a/README.md b/README.md
index 28664b86..239e69a2 100644
--- a/README.md
+++ b/README.md
@@ -11,13 +11,38 @@
The [RFC](./farcat-rfc.md) is the original design document, and the best place
to start for background.
-There will be three main components:
+There are four main components:
- backend API server and database
-- front-end web interface (built on API)
-- client libraries and bots
+- elasticsearch index
+- API client libraries and bots (eg, ingesters)
+- front-end web interface (built on API and library)
The API server was prototyped in python. "Real" implementation started in
golang, but shifted to Rust, and is work-in-progress. The beginings of a client
-library and data ingesters exist in python (may or may not be re-written in
-Rust).
+library, web interface, and data ingesters exist in python. Elasticsearch index
+is currently just a Crossref metadata dump and doesn't match entities in the
+database/API (but is useful for paper lookups).
+
+## Status
+
+- HTTP API
+ - [ ] base32 encoding of UUID identifiers
+ - [x] inverse many-to-many helpers (files-by-release, release-by-creator)
+- SQL Schema
+ - [x] Basic entities
+ - [x] one-to-many and many-to-many entities
+ - [x] JSON(B) "extra" metadata fields
+ - [x] full rev1 schema for all entities
+ - [ ] editgroup review: comments? actions?
+- Web Interface
+ - [x] Migrate Python codebase
+ - [ ] Creation and editing of all entities
+- Other
+ - [x] Basic logging
+ - [x] Swagger-UI
+ - [ ] Sentry (error reporting)
+ - [ ] Metrics
+ - [ ] Authentication (eg, accounts, OAuth2, JWT)
+ - [ ] Authorization (aka, roles)
+ - [ ] bot vs. editor
diff --git a/TODO b/TODO
index 1e7885ab..a188b88e 100644
--- a/TODO
+++ b/TODO
@@ -1,22 +1,22 @@
## Schema / Alignment / Scope
+- wikidata IDs are first-class identifiers (release, container, creator)
- switch a bunch more primary keys to UUID: revs, editor ids, edit numbers
-- abstracts! as files? separate table? format (latex, html, etc)?
-- work_type, release_type, release_status
- multiple URLs
-- other identifiers (just in extra?)
- make "raw" fields in release_ref/release_contrib JSON?
-- wikidata IDs are first-class identifiers
+- abstracts! as files? separate table? format (latex, html, etc)?
+- other identifiers (just in extra?)
+- work_type, release_type, release_status
name ref: https://www.w3.org/International/questions/qa-personal-names
## High-Level Priorities
-- bulk loading of releases, files, containers, creators
-- manual editing of containers and releases (web interface)
-- accurate auto-matching matching of containers (eg, via ISSN)
- full database dump and reload (import/export)
+- manual editing of containers and releases (web interface)
+x bulk loading of releases, files, containers, creators
+x accurate auto-matching matching of containers (eg, via ISSN)
## Performance
@@ -34,9 +34,6 @@ x have release creation auto-create works if one isn't specified
- 'parent rev' for revisions (vs. container parent)
- "submit" status for editgroups?
-api:
-- all files for a given release
-
review
- what does openlibrary API look like?
- add a 'live' (or 'immutable') flag to revision tables
diff --git a/rust/README.md b/rust/README.md
index 0b4e453a..ff873cc7 100644
--- a/rust/README.md
+++ b/rust/README.md
@@ -1,29 +1,6 @@
Rust implementation of fatcat API server (`fatcatd`).
-## Status
-
-- HTTP API
- - [ ] base32 encoding of UUID identifiers
- - [x] inverse many-to-many helpers (files-by-release, release-by-creator)
-- SQL Schema
- - [x] Basic entities
- - [x] one-to-many and many-to-many entities
- - [x] JSON(B) "extra" metadata fields
- - [x] full rev1 schema for all entities
- - [ ] editgroup review: comments? actions?
-- Web Interface
- - [x] Migrate Python codebase
- - [ ] Creation and editing of all entities
-- Other
- - [x] Basic logging
- - [x] Swagger-UI
- - [ ] Sentry (error reporting)
- - [ ] Metrics
- - [ ] Authentication (eg, accounts, OAuth2, JWT)
- - [ ] Authorization (aka, roles)
- - [ ] bot vs. editor
-
## Development
- rust stable, 1.26+ (eg, via "rustup", includes cargo tool)