Prototype 3
Questions and Explorations
- Generated middleware using TypeScript running in Deno
(e.g. validation, data enhancement. template engine)
- Should the template engine be generated or generic?
- Can I compile useful Python libraries to WASM and run via WASI in
Deno+TypeScript?
Desirable Features
- newt (developer tool)
- implemeted with web UI
- configuration manager (e.g. target stack, services required by
application)
- searchengine configurations and indexing models
- metadata storage (e.g. Postgres+PostgREST or SQLite3+PL/Lua)
- object storage (e.g. S3 protocol service integration)
- model (model your data)
- continue to support Prototype 2 modeling
- file type elements integrating an OCFL S3 service
- generate (generate code for Postgres+PostgREST Stack or Python+Flask
stack)
- run (target stack based on AST and data models)
- newt router
- validator integration via generated code (e.g. TypeScript run by
Deno)
- data pipelines
- static file service
- related routes linked by an id
- Generator application code for two stacks
- (default) Dataset collection with Dataset YAML for datasetd
- (optional) Postgres+PostgREST
Constraints
- Simple data models only
- No file upload support
- Modeler targets Dataset+Datasetd, allows for Postgres+PostgREST as
option
- Newt services required to restricted to localhost
- Access control defered to front end web service
- Apache 2 or NginX plus Shibboleth and acls for URL paths
Data Types
Newt presents HTML 5 form elements as the native (base) set of data
types. These imply predictable SQL column types when persisting the data
in Postgres.
Additional data types implemented via HTML 5 input element’s pattern
attribute (e.g. similar to validation found in Python’s idutils
package).
Complex data types implented as textarea containing YAML (for
fallback) and using web components to provide more intitive user
experience if JavaScript is available in the browser.
Proposed Roadmap for Prototype
3
- Targeted use cases (at Caltech Library)
- Demonstration to DLD group
- Demonstration to Caltech Library staff
- Demonstration for SoCal Code4Lib Meetup
- Promote via recorded presentation