Aide is Netspective Labs' helpers libraries monorepo. Sub-modules in this
library (e.g. cache, sql, git, etc.) should generally be independent of
each other, keeping dependencies to a minimum.
Member libraries of Netspective Labs Aide (NLA) should help to eliminate
dependencies in our project by writing minimal, testable, helpers without
unnecessarily relying on 3rd party libraries. For simple to medium complexity
requirements, it's better to write our own (well tested) code instead of relying
on 3rd parties. For high complexity code or widely used dependencies with many
contributors it's great to use 3rd party libraries.
The core NLA technology is Deno and our primary programming language is
strict Typescript (not Javascript).
PRs are welcome. If you're making changes directly (without a PR), after updating and before pushing code, tag the release:
# <git commit ...>
git-chglog --output CHANGELOG.md
git commit -m "auto generate content" CHANGELOG.md
git-semtag final && git push
# or git-semtag final -v "vN.N.N" && git pushAssuming you're using direnv, add this to .envrc or set the variables some
other way:
# .envrc configuration for unit testing, save PG passwords in ~/.pgpass and lookup using --conn-id
export RF_SQL_SHELL_OSQUERYI_LOCATION=`whereis -b osqueryi | awk '{print $2}'`
export PGTEST_PGUSER=`./postgres/pgpass.ts prepare 'conn.username' --conn-id="FCR_GITLAB_PKC"`
export PGTEST_PGPASSWORD=`./postgres/pgpass.ts prepare 'conn.password' --conn-id="FCR_GITLAB_PKC"`
export GLTEST_PGUSER=`./postgres/pgpass.ts prepare 'conn.username' --conn-id="FCR_GITLAB_PKC"`
export GLTEST_PGPASSWORD=`./postgres/pgpass.ts prepare 'conn.password' --conn-id="FCR_GITLAB_PKC"`Then:
direnv allow
deno test -A --unstableThe libraries in this monorepo were initially extracted from resFactory/lib. Not all libraries were initially migrated but if you need more code to do something special check there first.
alasqlwas being used for in-memory SQL and related code but we should use SQLite's in-memory model now. NOTE: since AlaSQL 3.0 has been released, check to see if there's value in doing the migration.dbis a good Deno utility library for PostgreSQL client but no longer useful since Deno's NPM support affords many more, better, packagesknowledgeis the start of a knowledge management IM but isn't universal yetnotificationwas used by the old resFactory admin UI and probably not universalpackagehad an interesting idea for "micro bundling" (on a per-file "twin" basis) but the future is Vite and Rometask/bundle-js.tswrappedpackagemodules inTaskfiletask/transform-css.tswrappedpackagemodules inTaskfile
pathThis is a tiny library and probably faster to just inline in codepresentationare a custom HTML components strategy but we should React, et. al.publicationformed the core of resFactory's SSG output but may not be universalresourceformed the core of resFactory's resource acquisition and tranformation workflow but may not be universalservice-buswas used for HTML UI and may no longer be usefulshellis not as nice asdaxordzxwhich are not the preferred method of shelling outsmtpwas a Deno-specific wrapper when NPM packages were not available to Denostrategyis an OKRs and expectations framework whose universality might not be obvioustelemetryshould probabyl be replaced with OpenTelemetry SDKtunnelwas used for HTML UI and may no longer be useful