Commit Graph

270 Commits

Author SHA1 Message Date
Tau
abda3d5279 Switch to npm from Yarn
Yarn is the better package manager IMO, but npm comes with node and
using it does make the end-user installation experience a little
simpler as a result.
2019-11-06 17:28:31 -05:00
Tau
44d8c0a824 Tweak package.json lifecycle scripts 2019-11-06 17:28:31 -05:00
Tau
f348feff62 sql/sqlite.ts: Fix type check 2019-11-06 17:28:30 -05:00
Tau
6603b6aaa6 Rename database file 2019-11-06 17:28:30 -05:00
Tau
a96924c24f Abbreviate startup msg logging 2019-11-06 17:28:30 -05:00
Tau
aa53fd8146 allnet: Add some environment fallbacks 2019-11-06 17:28:30 -05:00
Tau
bbb5a3b408 aimedb/pipeline.ts: Silence a deprecation warning 2019-11-06 17:28:30 -05:00
Tau
072d70b42a Migrate to SQLite3
We'll keep the door open for side-by-side support of Postgres in
the background, but due to SQLite's type system quirks we cannot
use the same DDL for both databases, so we would have to maintain
two sets of DDL (schema init and schema migration scripts) at once.

Interested future contributors can shoulder this maintenance burden
if they so choose.
2019-11-06 17:28:30 -05:00
Tau
f9970fa81c Force explicit conversion of rows fetched from SQL DB
Everything is a scalar value now, and while this does involve more
boilerplate it will also catch type conversion issues like
"1" + 0 === "10" in the future.
2019-11-06 17:28:30 -05:00
Tau
30d42bd832 Store array colums as CSV text
This is in preparation for a transition to SQLite, which sadly does
not support array-valued columns (or indeed have much of a type
system in general).
2019-11-06 17:28:30 -05:00
Tau
3e6b4f4798 Add an SQL DB abstraction layer
Because what self-respecting Enterprise(R) project doesn't have
one of those?
2019-11-06 17:28:30 -05:00
Tau
2ccd9dc382 types/sql-bricks-postgres: Add initial typings
This commit declares and type-checks the following clauses:

* limit().offset() chains on SelectStatement
* onConflict().doUpdate() chains on InsertStatement

We need to flesh out the other possibilities for onConflict() in
particular before all these changes get submitted as an upstream
PR.
2019-11-06 17:28:30 -05:00
Tau
691841187b types/sql-bricks: Make Statement chains polymorphic
This will allow us to cleanly extend these interfaces with
additional clauses understood by Postgres, which we can then chain
without having to redeclare the entire interface.
2019-11-06 17:28:30 -05:00
Tau
a71a73e324 types/sql-bricks: Export Statement interfaces
We'll need access to these statements so that we can extend them.
2019-11-06 17:28:30 -05:00
Tau
078cb84b35 types/sql-bricks: Export SqlBricksFn type
We'll need to export this in order to define the ops exported from
sql-bricks-postgres in terms of the base sql-bricks exports.
2019-11-06 17:28:30 -05:00
Tau
775584a645 types/sql-bricks: Fixup forked typings
Wrap everything in a module instead of a namespace. I'm still not
entirely clear on what the distinction is but the forked typings
don't seem to get applied without this change.
2019-11-06 17:28:30 -05:00
Tau
384212ce2e Locally fork sql-bricks types 2019-11-06 17:28:30 -05:00
Tau
1567b689b9 Add local typings directory to project 2019-11-06 17:28:30 -05:00
Tau
254478e20c Use workspace TypeScript ver in vscode 2019-11-06 17:28:30 -05:00
Tau
4dd3f39472 Fix sql-bricks import style 2019-11-06 17:28:30 -05:00
Tau
49802602bf Minor package.json cleanups 2019-11-06 17:28:30 -05:00
Tau
6ab2112ea9 Stop using SQL namespaces ("schemas")
This is in preparation for a transition to SQLite. SQLite does have
a similar concept called "attached databases", but it's kind of a
pain to deal with if you're casually browsing a database from the
`sqlite3` CLI so we'll just use some slightly uglier explicitly
namespaced table name identifiers instead.
2019-11-06 17:28:30 -05:00
Tau
6be23145d8 Crack Diva handlers 2019-11-06 17:28:30 -05:00
Tau
cc0cd06c92 Crack Chunithm handlers 2019-11-06 17:28:30 -05:00
Tau
9697b4b06e Use debug package for logging 2019-11-06 17:28:30 -05:00
Tau
db260d5f2f idz/decoder: Drop RequestCode typedef
This is just boilerplate for its own sake.
2019-11-06 17:28:30 -05:00
Tau
3f62f1683b idz/handler/createTeam.ts: Fix incomplete refactor
This looks like duplicated code that wasn't deleted after being
factored out into a helper proc.
2019-11-06 17:28:30 -05:00
Tau
7118a72b3b Use esModuleInterop 2019-11-06 17:28:30 -05:00
Tau
a5256c97d3 Fix SQL column capitalization 2019-11-06 17:28:30 -05:00
Tau
84023e2eb8 chunithm.ts: Beat compression m/ware with a wrench
Force unconditional compression of responses harder.
2019-11-06 17:28:30 -05:00
Tau
39849483c8 Clean up obsolete state files
Hostname is configured from .env now along with everything else.
JSON state storage backend has been abandoned. We might add an
SQLite backend to go with the current Postgres backend at some
point though; SQLite even supports window functions these days.
2019-11-06 17:28:30 -05:00
Tau
490264b35a Check in a canonical PKI
For some reason initpki doesn't generate a set of certs that are
acceptable to the P-Ras core, even though I never modified it.
Maybe some defaults changed in a recent release of OpenSSL or
something.

Well, to make everybody's life easier let's all just use the same
private keys for everything. It's not like it matters.
2019-11-06 17:28:30 -05:00
Tau
4298810728 aimedb: Defensively close connection after a Goodbye
We should probably also add request timeouts and such.
2019-11-06 17:28:30 -05:00
Tau
3fea2dae56 allnet.ts: Restrict request filter to PowerOn
PowerOn uses HTTP slightly incorrectly, but other endpoints use
HTTP incorrectly in different ways (or maybe even correctly, who
knows). Scope the current request interceptor to just PowerOn.
2019-11-06 17:28:30 -05:00
Tau
4a2b3f51a4 allnet.ts: Rename from startup.ts 2019-11-06 17:28:30 -05:00
Tau
355f20c50b Add host/port "switchboard" module
Centrally list all hostnames and port numbers here. Need to push
this into IDZ further but I'm a bit short on time (so what else is
new).
2019-11-06 17:28:30 -05:00
Tau
ff4545d468 aimedb: Return decimal IDm as access code 2019-11-06 17:28:30 -05:00
Tau
7fd6f74986 db: Fix expected schema version 2019-11-06 17:28:30 -05:00
Tau
2478bc5ceb idz: Implement team leadership transfer 2019-11-06 17:28:30 -05:00
Tau
3bee10d948 idz: Implement team member add/remove 2019-11-06 17:28:30 -05:00
Tau
2bd9ce919a idz: Implement saveTeamBanner 2019-11-06 17:28:30 -05:00
Tau
a3df4df277 idz: Wire up team create and load 2019-11-06 17:28:30 -05:00
Tau
ec214d5beb idz: Add team "reservation" repository
This is a hack necessary to support certain quirks of the
Initial D Zero profile creation process.
2019-11-06 17:28:30 -05:00
Tau
a5dbdef33f idz: Add TeamAutoRepository 2019-11-06 17:28:30 -05:00
Tau
be48619a4a idz: Add TeamMemberRepository 2019-11-06 17:28:30 -05:00
Tau
c6a67bd647 idz: Add TeamRepository 2019-11-06 17:28:30 -05:00
Tau
d1c3051a5e idz: Add initial team tables 2019-11-06 17:28:30 -05:00
Tau
f874f56816 idz: Expose some row mappers 2019-11-06 17:28:30 -05:00
Tau
4f044de9fb idz: Add "Auto team" data model
New players get packed into automatically-created teams whose
names follow an automated pattern. Add data models to support this.
2019-11-06 17:28:30 -05:00
Tau
33e2f55dce idz: Clean up Team and TeamMember data models 2019-11-06 17:28:30 -05:00