3 Commits

Author SHA1 Message Date
bee6938a67 Add some logging related stubs to express backend 2026-01-01 20:18:37 -06:00
b0ee53f7d5 Listen by default on port 3500
The master process will continue to start at port 3000.  In practice, this
ought to make conflicts between master-superviced processes and ones run by
hand less of an issue.
2026-01-01 20:17:26 -06:00
5c93c9e982 Add TODO items 2026-01-01 20:17:15 -06:00
3 changed files with 72 additions and 15 deletions

74
TODO.md
View File

@@ -1,3 +1,41 @@
## high importance
- [ ] Add unit tests all over the place.
- ⚠️ Huge task - needs breakdown before starting
- [ ] Add logging service
- New golang program, in the same directory as master
- Intended to be started by master
- Listens to a port specified command line arg
- Accepts POSTed (or possibly PUT) json messages, currently in a
to-be-defined format. We will work on this format later.
- Keeps the most recent N messages in memory. N can be a fairly large
number; let's start by assuming 1 million.
- [ ] Log to logging service from the express backend
- Fill out types and functions in `express/logging.ts`
- [ ] Create initial docker-compose.yml file for local development
- include most recent stable postgres
- [ ] Add middleware concept
- [ ] Add authentication
- password
- third party?
- [ ] Add authorization
- for specific routes / resources / etc
- [ ] Add basic text views
## medium importance
- [ ] Add email verification
- [ ] Update check script:
- [x] shellcheck on shell scripts
- [x] `go vet` on go files
@@ -5,27 +43,18 @@
- [x] Run `go fmt` on all .go files
- [ ] Eventually, run unit tests
- [x] Reimplement fixup.sh
- [x] run shfmt on all shell scripts (and the files they `source`)
- [x] Run `go fmt` on all .go files
- [x] Run ~~prettier~~ biome on all .ts files and maybe others
- [ ] write docs
- upgrade docs
- starting docs
- taking over docs
- [x] Adapt master program so that it reads configuration from command line
args instead of from environment variables
- Should have sane defaults
- Adding new arguments should be easy and obvious
- [x] Add wrapper script to run master program (so that various assumptions related
to relative paths are safer)
## low importance
- [ ] move `master-bin` into a subdir like `master/cmd` or whatever is
idiomatic for golang programs; adapt `master` wrapper shell script
accordingly
- [ ] Add unit tests all over the place.
- ⚠️ Huge task - needs breakdown before starting
- [ ] flesh out the `sync.sh` script
- [ ] update framework-managed node
- [ ] update framework-managed pnpm
@@ -37,3 +66,20 @@
- One solution: start and stop workers serially: stop one, restart it with new
code; repeat
- Slow start them: only start a few at first
## finished
- [x] Reimplement fixup.sh
- [x] run shfmt on all shell scripts (and the files they `source`)
- [x] Run `go fmt` on all .go files
- [x] Run ~~prettier~~ biome on all .ts files and maybe others
- [x] Adapt master program so that it reads configuration from command line
args instead of from environment variables
- Should have sane defaults
- Adding new arguments should be easy and obvious
- [x] Add wrapper script to run master program (so that various assumptions related
to relative paths are safer)

View File

@@ -6,6 +6,10 @@ const { values } = parseArgs({
type: "string",
short: "l",
},
"log-address": {
type: "string",
default: "8085",
},
},
strict: true,
allowPositionals: false,
@@ -16,7 +20,7 @@ function parseListenAddress(listen: string | undefined): {
port: number;
} {
const defaultHost = "127.0.0.1";
const defaultPort = 3000;
const defaultPort = 3500;
if (!listen) {
return { host: defaultHost, port: defaultPort };
@@ -43,7 +47,9 @@ function parseListenAddress(listen: string | undefined): {
}
const listenAddress = parseListenAddress(values.listen);
const logAddress = parseListenAddress(values["log-address"]);
export const cli = {
listen: listenAddress,
logAddress,
};

View File

@@ -1,5 +1,7 @@
// internal-logging.ts
import { cli } from "./cli";
// FIXME: Move this to somewhere more appropriate
type AtLeastOne<T> = [T, ...T[]];
@@ -32,6 +34,9 @@ type FilterArgument = {
const log = (_message: Message) => {
// WRITEME
console.log(
`will POST a message to ${cli.logAddress.host}:${cli.logAddress.port}`,
);
};
const getLogs = (filter: FilterArgument) => {