-
Notifications
You must be signed in to change notification settings - Fork 9
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Support merging multiple settings properties #108
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good to me in general, I don't have enough context to really approve.
…rge-multiple-configs
export type ConfigApiGetSettingsRequest = ConfigApiRequest<{ property: string }> | ||
|
||
export interface ConfigApiGetMergedSettingsRequest extends ConfigApiRequest { | ||
query: Partial<{ [P in 'p']: string | string[] }> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can you explain what this line is doing? It's a little unclear to me.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It is saying that there is a query string parameter named p
that is optional and can also appear more that once. Equivalent would be:
query: {
p?: string | string[]
}
The chosen syntax (used other places is well) is convenient because query string parameters are always strings. The common usage is:
query: Partial<{ [P in 'a' | 'b' | 'c']: string }>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good!
*Autogenerated Release notes, commits, authors from Squash:* * [mds-metrics] Fix binning bug (#70) * Fix weird array construction bug in metrics API binning method * Remove async modifier * Cleanup and add state_snapshot test * Cleanup * Bump root version * Publish - @container-images/env-inject@0.1.21 - @container-images/mds-agency@0.1.22 - @container-images/mds-audit@0.1.23 - @container-images/mds-compliance@0.1.22 - @container-images/mds-daily@0.1.22 - @container-images/mds-metrics-sheet@0.1.23 - @container-images/mds-metrics@0.0.4 - @container-images/mds-native@0.0.20 - @container-images/mds-policy-author@0.1.22 - @container-images/mds-policy@0.1.22 - @container-images/mds-provider@0.1.22 - @mds-core/mds-agency@0.0.24 - @mds-core/mds-api-authorizer@0.1.22 - @mds-core/mds-api-helpers@0.1.22 - @mds-core/mds-api-server@0.1.22 - @mds-core/mds-audit@0.1.34 - @mds-core/mds-cache@0.1.22 - @mds-core/mds-compliance@0.1.23 - @mds-core/mds-daily@0.0.23 - @mds-core/mds-db@0.1.22 - @mds-core/mds-logger@0.1.20 - @mds-core/mds-metrics-sheet@0.0.23 - @mds-core/mds-metrics@0.0.4 - @mds-core/mds-native@0.0.20 - @mds-core/mds-policy-author@0.0.19 - @mds-core/mds-policy@0.0.23 - @mds-core/mds-provider@1.0.22 - @mds-core/mds-providers@0.1.22 - @mds-core/mds-stream@0.1.22 - @mds-core/mds-test-data@0.1.22 - @mds-core/mds-types@0.1.19 - @mds-core/mds-utils@0.1.22 * Add some more logs for the Metrics API prototype (#73) * Bump root package version * Publish - @container-images/env-inject@0.1.22 - @container-images/mds-agency@0.1.23 - @container-images/mds-audit@0.1.24 - @container-images/mds-compliance@0.1.23 - @container-images/mds-daily@0.1.23 - @container-images/mds-metrics-sheet@0.1.24 - @container-images/mds-metrics@0.0.5 - @container-images/mds-native@0.0.21 - @container-images/mds-policy-author@0.1.23 - @container-images/mds-policy@0.1.23 - @container-images/mds-provider@0.1.23 - @mds-core/mds-agency@0.0.25 - @mds-core/mds-api-authorizer@0.1.23 - @mds-core/mds-api-helpers@0.1.23 - @mds-core/mds-api-server@0.1.23 - @mds-core/mds-audit@0.1.35 - @mds-core/mds-cache@0.1.23 - @mds-core/mds-compliance@0.1.24 - @mds-core/mds-daily@0.0.24 - @mds-core/mds-db@0.1.23 - @mds-core/mds-logger@0.1.21 - @mds-core/mds-metrics-sheet@0.0.24 - @mds-core/mds-metrics@0.0.5 - @mds-core/mds-native@0.0.21 - @mds-core/mds-policy-author@0.0.20 - @mds-core/mds-policy@0.0.24 - @mds-core/mds-provider@1.0.23 - @mds-core/mds-providers@0.1.23 - @mds-core/mds-stream@0.1.23 - @mds-core/mds-test-data@0.1.23 - @mds-core/mds-types@0.1.20 - @mds-core/mds-utils@0.1.23 * [mds-db] Fix `editGeography` (#74) * Fix `editGeography`. * ts assist * Fixed `editGeography` with TS assist. * Bump root version * Publish - @container-images/env-inject@0.1.23 - @container-images/mds-agency@0.1.24 - @container-images/mds-audit@0.1.25 - @container-images/mds-compliance@0.1.24 - @container-images/mds-daily@0.1.24 - @container-images/mds-metrics-sheet@0.1.25 - @container-images/mds-metrics@0.0.6 - @container-images/mds-native@0.0.22 - @container-images/mds-policy-author@0.1.24 - @container-images/mds-policy@0.1.24 - @container-images/mds-provider@0.1.24 - @mds-core/mds-agency@0.0.26 - @mds-core/mds-api-authorizer@0.1.24 - @mds-core/mds-api-helpers@0.1.24 - @mds-core/mds-api-server@0.1.24 - @mds-core/mds-audit@0.1.36 - @mds-core/mds-cache@0.1.24 - @mds-core/mds-compliance@0.1.25 - @mds-core/mds-daily@0.0.25 - @mds-core/mds-db@0.1.24 - @mds-core/mds-logger@0.1.22 - @mds-core/mds-metrics-sheet@0.0.25 - @mds-core/mds-metrics@0.0.6 - @mds-core/mds-native@0.0.22 - @mds-core/mds-policy-author@0.0.21 - @mds-core/mds-policy@0.0.25 - @mds-core/mds-provider@1.0.24 - @mds-core/mds-providers@0.1.24 - @mds-core/mds-stream@0.1.24 - @mds-core/mds-test-data@0.1.24 - @mds-core/mds-types@0.1.21 - @mds-core/mds-utils@0.1.24 * fix error message (#77) * mdscl/istio: install (un)install via helm straight up (#75) * mdscl/istio: install (un)install via helm straight up * mdsctl/istio: uninstallIstio cleanup * [mds-audit] Support attaching media to audits (#76) * Add new tables for audit attachments * Integrate with audit attachments db tables * New endpoints to add and delete attachments; return attachments with audits * Lint * Minor cleanups to s3 upload key and base url * Move S3 config to env variables * Let caller catch writeAttachment exception; type fixes * Lint * [mds-audit] Include initial provider state with audits returned via API (#42) * Add MDS vehicle status and location to get audit response * Add test for provider info in audit response * Capitalize DESC keyword * Add provider_event_time to Get Audit response * Remove references to dropped columns from schema * Use enums * Fix import * Make ORDER BY configurable in readEventsWithTelemetry * Fix errors when running `yarn image` * Use optional chaining from TS 3.7 * Bump root version * Publish - @container-images/env-inject@0.1.24 - @container-images/mds-agency@0.1.25 - @container-images/mds-audit@0.1.26 - @container-images/mds-compliance@0.1.25 - @container-images/mds-daily@0.1.25 - @container-images/mds-metrics-sheet@0.1.26 - @container-images/mds-metrics@0.0.7 - @container-images/mds-native@0.0.23 - @container-images/mds-policy-author@0.1.25 - @container-images/mds-policy@0.1.25 - @container-images/mds-provider@0.1.25 - @mds-core/mds-agency@0.0.27 - @mds-core/mds-api-authorizer@0.1.25 - @mds-core/mds-api-helpers@0.1.25 - @mds-core/mds-api-server@0.1.25 - @mds-core/mds-audit@0.1.37 - @mds-core/mds-cache@0.1.25 - @mds-core/mds-compliance@0.1.26 - @mds-core/mds-daily@0.0.26 - @mds-core/mds-db@0.1.25 - @mds-core/mds-logger@0.1.23 - @mds-core/mds-metrics-sheet@0.0.26 - @mds-core/mds-metrics@0.0.7 - @mds-core/mds-native@0.0.23 - @mds-core/mds-policy-author@0.0.22 - @mds-core/mds-policy@0.0.26 - @mds-core/mds-provider@1.0.25 - @mds-core/mds-providers@0.1.25 - @mds-core/mds-stream@0.1.25 - @mds-core/mds-test-data@0.1.25 - @mds-core/mds-types@0.1.22 - @mds-core/mds-utils@0.1.25 * Backend method for finding policies that use particular geographies. (#49) * [mds-logger] Overloading log with log level parameter to support ternary conditions & fluent syntax (#71) * Overloading log with log level parameter to support ternary conditions & fluent syntax * remove psql-client (#84) * need to have the domain inserted for both TLS and non-TLS (#83) * allow additional hosts for egress if needed (#82) * Add more granular readAllEvents performance logging (#80) * [mds-schema-validators] Pull all JSON Schema-related definitions and code into a new package. (#78) * Consolidating validator/schema-related code in mds-policy to mds-utils * Consolidating validator/schema-related code in mds-compliance to mds-utils * Consolidating validator/schema-related code in mds-compliance to mds-utils * extracting JSON Schema definitions and code into mds-json-schema * fixing build errors caused by moving validation to new package * renaming mds-json-schema -> mds-schema-validators and cleaning up build issues * moving ValidationError back to mds-utils * removing hapi/joi from mds-utils * updating tsconfigs * Referencing RULE_TYPES when constructing schemas * Revert "Referencing RULE_TYPES when constructing schemas" This reverts commit 87def6e65910b44b3e632f6b3525bf993804882b. * Referencing RULE_TYPES when constructing schemas * Configuration Service/API (#91) * Config service client and tests * Config API and tests * Config API container image * Add debug configurations for config api/service * create a configmap from files in helm/mds/mds-config, mount it to the mds-config pod under that path /mds-config * Allow settings to use .json or .json5 extensions * [mds-compliance] Compliance engine sorts vehicles by earliest telemetry data, so most … (#89) * Compliance engine sorts vehicles by earliest telemetry data, so most recent events will be the ones tagged as violators. * Updating sort function. * Removing unnecessary spread operator. * Fix helm configmap glob (#95) * [mds-cache, mds-db] Instrument some cache and db operations with timing logs (#97) * Instrument some cache and db operations with timing logs * Add provider to getVehicles timing log * Update dev/tooling dependencies. (#93) * Upgrade to latest package dependency versions * Clean up test scripts using config files * Bump some coverage levels * [mds-audit] Relax lookup VIN response requirements (#96) * Relax lookup VIN response requirements * Add logs for missing info; return telemetry when possible * Bump root version * Publish - @container-images/env-inject@0.1.25 - @container-images/mds-agency@0.1.26 - @container-images/mds-audit@0.1.27 - @container-images/mds-compliance@0.1.26 - @container-images/mds-config@0.0.2 - @container-images/mds-daily@0.1.26 - @container-images/mds-metrics-sheet@0.1.27 - @container-images/mds-metrics@0.0.8 - @container-images/mds-native@0.0.24 - @container-images/mds-policy-author@0.1.26 - @container-images/mds-policy@0.1.26 - @container-images/mds-provider@0.1.26 - @mds-core/mds-agency@0.0.28 - @mds-core/mds-api-authorizer@0.1.26 - @mds-core/mds-api-helpers@0.1.26 - @mds-core/mds-api-server@0.1.26 - @mds-core/mds-audit@0.1.38 - @mds-core/mds-cache@0.1.26 - @mds-core/mds-compliance@0.1.27 - @mds-core/mds-config-service@0.0.2 - @mds-core/mds-config@0.0.2 - @mds-core/mds-daily@0.0.27 - @mds-core/mds-db@0.1.26 - @mds-core/mds-logger@0.1.24 - @mds-core/mds-metrics-sheet@0.0.27 - @mds-core/mds-metrics@0.0.8 - @mds-core/mds-native@0.0.24 - @mds-core/mds-policy-author@0.0.23 - @mds-core/mds-policy@0.0.27 - @mds-core/mds-provider@1.0.26 - @mds-core/mds-providers@0.1.26 - @mds-core/mds-schema-validators@0.1.2 - @mds-core/mds-stream@0.1.26 - @mds-core/mds-test-data@0.1.26 - @mds-core/mds-types@0.1.23 - @mds-core/mds-utils@0.1.26 * Fix debugging for unit tests (#105) * mdsctl: prompt-to-proceed if not using docker-desktop (#85) * mdsctl: prompt-to-proceed if not using docker-desktop * mdsctl: bit of cleanup * Add moped to VEHICLE_TYPES enum (#106) * Support merging multiple settings properties (#108) * Support merging multiple settings files * Get settings property names from query string * Support existing single settings property API * [mds-agency] [mds-db] Initial Stop Prototype (#47) * Add Stop datatype, and r/w endpoints to Agency * Add proper validation when POSTing stops * Add some basic error handling * Start adding tests... * Clean up bad db types * Test cleanup * More cleanup * More cleanup pt2 * More cleanup * Add read back test * More tests * Last of the tests? * Some formatting cleanup * Remove unused import * Make geography_id optional for stops, add lat/lng requirement * Cleanup * Review nits * Clean up schema, use SqlVals() * Remove markdown plugin * Update carshare -> car, and add moped type to vehicleTypesCountMapSchema definition * Break build... this is intentional, I promise * Revert "Break build... this is intentional, I promise" This reverts commit d8ba98963e3d2c523aa8212e9715f3adf76bd057. * Fixture updates * Add recorded column * Cleanup * Add option to skip bbox check when fetching vehicles by bbox (#113) * [mds-audit] Speed up VIN lookup by parallelizing cache reads (#110) * Speed up VIN lookup by parallelizing cache reads * Fix build error (#114) * Update VS Code ESLint settings (#117) * [mds-db] Refactor makeReadOnlyQuery to permit use of SqlVals() (#116) * Refactor makeReadOnlyQuery to permit use of SqlVals() * Fix minor oversight * [mds-agency] [mds-web-sockets] Basic outbound websocket implementation for MDS-Agency (#99) * First pass at WS * Add tsconfig * Add basic websocket emission to mds-agency * Emission cleanup * Add tsconfig * Cleanup * Dependency cleanup * More dependency cleanup * WIP * More WIP * WIP * WIP * Manual event triggering works, wheee * Remove agency socket interaction, to be replaced with reading from KNE * Added basic auth handling, need to add logic for token expiration. Could also just add a 30s heartbeat requirement. * Validate auth * More auth cleanup * Header validation cleanup * Generate random events and telemetry to send down websocket * Nits * Add outbound ws client * Message emission working * Purge console.log * Clean up authorizers * Cleanup * Bump deps * Bump deps * Cleanup * Test coverage * Cleanup * Moar cleanup * So much cleanup * Bap * nits * Moar nits * Refactor async in forEach to use Promise.all() * Rename nit * Export cleanup * Exception handling cleanup * Add missing index.ts file * Remove stale clients * Make sure to kill the connections too * Exec function * Minor authorizer refactor (#111) * Force exit for agency tests to close open socket * Moar exit forces * Import alignment * Cleanup * Changes for internal routing and basic helm config * Remove test code * Cleanup * [mds-agency] Fix import of package with no default export (#120) * [mds-web-sockets] Check for admin:all scope when authenticating clients (#121) * Add admin-all scope check when authenticating ws clients * Nullish coalesce all the things * Remove unnecessary check * Fix image name for mds-web-sockets (#122) * .Values.api.env will populate all APIs' environments (#92) * [mds-web-sockets] Don't always start WebSocket server (#123) * Don't always start WebSocket server * Add missing launch file * use branch name for docker image tag suffix (#124) * use literal branch name as docker suffix * portable sed * [mds-web-sockets] Fix PING message handling * [mds-processors] Refined Processor Implementation (#104) * Cleanup * update requirement versions * revert to original dir copy * cleanup * Beginning of cleanups * more cleanup/ removed streaming logic scoped for Q1 * trip-proc cleanup * type fixes * ts refactor * helm reconcile * mds-logger * metric cleanup * helm fixes * breaking db methods into seperate file * cache/db refactor * Clean up geo.ts * Clean up annotation.ts * Clean up proc-event.ts * Clean up proc.ts * Clean up misc * Clean up metrics.ts * Update MetricsTableRow type * Resolve/suppress all linter warnings, and resolve compilation errors. * Add eslint-reasons to most directive disables * Refactor geo.ts files into utils * Add stricter typing * Cleanup * Fix dependencies/versions * cache/db fixes * proc fixes * mdsctl: cleanup (comment out nats) * Cleanup * Optional chaining * Add ParseError * upgrade natss * mdsctl: update * mdsctl: update bin/mdsctl add knative(broker,channel) * fix typo * mdsclt: ko hack, mds pause for natss * mdsctl: s/pause/condition/g * [WIP] [mds-metrics] Add dump all metrics rows API endpoint (#94) * WIP codify types add initial request handler test add query construction tests named args obj (no more defaults) Add explanatory comments more comments * s/timestamp/start_time * rename some things + cleanup * update test * fix incorrect import * fix type signature * mdsctl: kne w/o namespace labeling * Remove default param val * - Add id column to reports tables - Restore sorting of code * Do not initialize the db at startup! * Reduce unnecessary switch cases * Fix lint error that's been breaking build * Upgrade to cloudevents 1.0 with typings * added presets to mdsctl * update proc-event * mdsctl uncomment natss * Remove deprecated Redis stream * Remove package-lock file * Generic server for handling knative cloudevents * Make handler async * Unit test placeholder * [mds-metrics] Adds geography_id and provider_id query params to /metr… (#98) * [mds-metrics] Adds geography_id and provider_id query params to /metrics/all Usage: GET /metrics/all?geography_id={}&provider_id={} Both fields are optional. Each id query param must be a valid UUID or you'll get a 500. TODO test w/ cURL or Insomnia @evanxadkins This is also going into PR #88 Closes [MDSAAS-487](https://lacunadotai.atlassian.net/browse/MDSAAS-487) * fix up lint and add comment * remove geography_id query param * initial stab at vehicle_type querying * vehicle_type query param support * add english bin_size support * switch to nifty time utils * crazy time validation logic * add note * fix mutable moment bug * add note * clean up request handler * clean up notes * add tsv format query param * add note * add some tsv export tests * fix failing test * tests should be more stable now * fix import * purge link * remove flaky test (again) * lint * type enforcement * eslint errors * Regenerate lock file * Switch trip/provider handlers to event server * Clean up a couple test commands/timeouts * Add better parsing logs * trip-proc update * promise handling * prov-proc update * metrics update * Handle parse errors from cron source events * Improve test coverage * Minor cleanup * Feature/jwtodd events trips provider processor (#101) * nats: internal deployment of processors * cjs: remove hardwired minute interval * helm: fix cronjobsource schedule * processors: add cronjob template * interval: 1m * event sync * nats: processor (internal-apis; no need to port-forward), simulator cli, natss broker/channel * helm/mds: template cleanup(broker, processor-cronjob) * mdsctl: tad better ko ref * helm/mds cleanup * mdsctl: make natss a pre-condition of mds * mdsctl: cleanup * bug fixes * Package update * [mds-metrics] Add stub endpoint (#103) * add stub endpoint * fix async/string * simplify JSON tsv processing * re-enable/fix up tsv export in main api * WIP * cache update * cache update * Update test scripts for new packages * Update versions of mds-core dependencies * Add missing dependencies, fix build/test errors * package updates * minor syntax changes * mdsctl: sed of osx; todo: fix for all * mdsctl: better (osx,windows) natss install * multimodal changes * mdsctl: support deleting 2+ images * mdsctl: build image cleanup, simulator build * event_count metric addition * [mds-db] [mds-metrics] Add SqlVals() to processors db queries (#107) * refactor to use SqlVals() * revert unrelated changes * helm/mds: +mds-config, for t in helm/mds/templates/* s/key/name/g, move natss-channel into deploy namespace (eg mds); verified: simulator, logs mds-(event,provider,trip)-processor * Add unit tests to mds-event-processor (#112) * Revert "[mds-db] [mds-metrics] Add SqlVals() to processors db queries (#107)" This reverts commit 0cee743787328d6ffa4bbca963370a3030218f4d. * fix weird lint error * initial test * crlf yikes * moar tests * lower codecov * more unit tests * small helm changes * sqlVals * small error handling changes * Revert "sqlVals" This reverts commit f2299b25606045e219fe0a1c374ae8140afbd89b. * vscode settings * kne/natss:0.11.0, multi-tenant nats/redis msg routing (#115) * mdsctl: delete 2+ images * filter prep * natss: conditionally prefix the event:type with the tenantId else use 'mds' as the default * rm tenantId dbug * events/multi-tenancy: patch db statments to vary event-type prefix, attempted to push the tenentId down to utils but bad things happened to my system; next: test concurrent tenants, verify db statements * kne: move deploy process to helm (from kubectl apply -f [url]) * nats: helm'ify * nats/helm: pin to gcr * nats: prioritize (un)install natss via helm * redis: multi-tenant * multi-tenant: cleanup * mdsctl: not to sync kne-contrib from a release * redis/multi-tenant: clean up comment * redis/multi-tenant: clean up argument quoting * mdsctl: helm kne-eventing-init * nats/multi-tenant: filter out tenant-routing prefix prior to forwarding the message to the handler * natss event processor: clean-up * helm/kne-contrib: r0.11.0 natss-channel.yaml * mdsctl: fixme cleanup * tenantid: better ternary * Clean up cloud event parsing. * Suppress deprecation warnings * Feature/maxj/sqlvals (#119) * [mds-audit] Speed up VIN lookup by parallelizing cache reads (#110) * Speed up VIN lookup by parallelizing cache reads * Fix build error (#114) * Update VS Code ESLint settings (#117) * [mds-db] Refactor makeReadOnlyQuery to permit use of SqlVals() (#116) * Refactor makeReadOnlyQuery to permit use of SqlVals() * Fix minor oversight * re-enable sqlvals * [mds-agency] [mds-web-sockets] Basic outbound websocket implementation for MDS-Agency (#99) * First pass at WS * Add tsconfig * Add basic websocket emission to mds-agency * Emission cleanup * Add tsconfig * Cleanup * Dependency cleanup * More dependency cleanup * WIP * More WIP * WIP * WIP * Manual event triggering works, wheee * Remove agency socket interaction, to be replaced with reading from KNE * Added basic auth handling, need to add logic for token expiration. Could also just add a 30s heartbeat requirement. * Validate auth * More auth cleanup * Header validation cleanup * Generate random events and telemetry to send down websocket * Nits * Add outbound ws client * Message emission working * Purge console.log * Clean up authorizers * Cleanup * Bump deps * Bump deps * Cleanup * Test coverage * Cleanup * Moar cleanup * So much cleanup * Bap * nits * Moar nits * Refactor async in forEach to use Promise.all() * Rename nit * Export cleanup * Exception handling cleanup * Add missing index.ts file * Remove stale clients * Make sure to kill the connections too * Exec function * Minor authorizer refactor (#111) * Force exit for agency tests to close open socket * Moar exit forces * Import alignment * Cleanup * Changes for internal routing and basic helm config * Remove test code * Cleanup * [mds-agency] Fix import of package with no default export (#120) * remove quotes around vals.add() * follow existing pattern for IN * clean up unused imports * more cleanup * more lint? * helm/mds: fix values(apis,processors) * Fix Cloud Event emitter cache * Remove deprecated test * Restore cloud event test * minor proc package fix * Feature/maxj/additional query params (#118) * specify multiple provider_id query values * clean up types, normalize logic to arrays * add multiple bin processing support * clean up bin_size handling * add some additional handling code * %s/let/return/g * clean up types/naming * clean up default arg * fix test * mdsctl: fully helm'ify the mds install (by labelling the namespace; noting the cost is an extra 'default' in-memory broker) * CE prefix metric query removal * Dependency updates * added README * Small cleanups * Fix helm template * Fix project reference * Add unit test to fix coverage * add recorded column to reporting tables * Update README.md * added now util function * Update README.md * run triggers on the top of the hour * helm/kne: remove in-memory-controller; tested with `mdsctl -p processors install:mds,simulator` and observing events propogated to logs * helm/mds: add `postgresql.password` empty-by-default field with clarifying comment * helm/knative: remove imc k8s deploy * [mds-provider-processor] A few unit tests for mds-provider-processor. (#128) * A few unit tests for mds-provider-processor. * Fixed test threshold. * this is not right but it makes tests pass * Clean up project references * Adding cache.initialize for consistency. * unit tests for metric utils * formatting * cleanup * Restore configmap functionality * type reduction * hour cron interval * Mount config volume in all pods (#130) Co-authored-by: Neil Goldader <avatarneil@gmail.com> Co-authored-by: Michael Durling <michael@ellis-and-associates.com> Co-authored-by: James Todd <99516+jwtodd@users.noreply.github.com> Co-authored-by: Max Johansen <macsj200@gmail.com> Co-authored-by: Alex Gottschalk <389982+invertigo@users.noreply.github.com> Co-authored-by: janedotx <jane.x.huang@gmail.com> * [mds-web-sockets] Add proper env-injection to mds-web-sockets (#133) * mdsctl: remove dashboard, get cli:postgresql and cli:redis working again (#126) * mdsclt: rm dashhboard, fix cli * mdsctl: get cli:[postgresql|redis] working again * mdsctl: add helm@2 to PATH given it is installed in a non-default/opt location; note: dep on #104, will work as-is if pushed prior * helm/mds: match #104 re $.Values.apis.env parse error * mdsctl: helm init cleanup, don't display usage message when an error is present Co-authored-by: Neil Goldader <avatarneil@gmail.com> * [mds-agency] Don't retry then send a 500 on a failed cache/stream/socket write (#134) * Don't retry then send a 500 on a failed cache/stream/socket write * Use recorded_event rather than event * Refactor telemetry writing * fix crash if values not present (#125) * [mds-audit] Return last active device registered if db has duplicates for provider + vin (#127) * Return last device registered if db has duplicates for provider + vin * Fix lint * Prefer an active device when de-duping * Load configuration data via service (#132) * Load configuration data via service * Rename a few things... * Fix tests Co-authored-by: Neil Goldader <avatarneil@gmail.com> * [mds-agency] [mds-utils] Extract normalizeToArray() and leverage in Daily (#136) * refactor normalizeToArray() * use new helper * [mds-*] Append commit hash to image tag if on non-master branch (#139) * Append commit hash to image tag if on non-master branch * Review nits * replace heisentest with unit tests (#138) Co-authored-by: Neil Goldader <avatarneil@gmail.com> * Update package dependencies (#140) * [mds-web-sockets] Initial web-socket test to get the framework in place. (#137) * Initial web-socket test to get the framework in place. * Minor refactor * mdsctl: number of usability improvements (#135) * mdsctl: seed PATH for non-default install bins; confirm remote-deploy only once * mdsctl: tiller aws * mdsctl: cleanup * mdsctl: better remoting, add ability to cycle a pod, lessen remote warning check * mdsctl: add cycle default, all services and procesors * mdsctl: cleanup neg responses * mdsctl: nit * mdsctl: deploy in-cluster pgcl/redis-cli; note: can remove pcli/redis from brew * mdsctl: rm brew(pgcli, redis) * mdsctl: rm dead preset hook * mdsctl: fix bugs(uninstallHelm, don't require MDS_SIMULATOR_REPOSISORY if MDS_SIMULATOR is set to a viable install) * mdsctl: move some non-obvious configuration switches to comment-notes * helm/natss: provide ability to override default resources(requests.cpu, limits.memory) * readme: update mdsctl invocation * mdsctl: +grafana; note: not configured correctly just yet * mdsctl: +(un)install(dnslookup,curl,grafana) * mdsctl: support kn(eventing,monitoring,serving) * mdsctl: helm-delete by namespace * mdsctl: touch ~/.bashrc if it doesn't exist, better bash command-to-brew-recipe mapping support * helm/natss: set default memory to 512M, override with 32M * mdsctl: install:knative(monintoring); will be continued in another branch * natss: default memory=512M, fix mdsctl dns-lookup ns bug * mdsctl: processors(+websockets) * [mds-agency] [mds-web-sockets] Improve agency/telemetry error handling, and add basic health check to WebSocket client (#141) * First pass at cleaning up telemetry error handling * Patch the client to properly handle not being able to connect to web-sockets * More attemps at fixing client code... * Moar cleanup * More cleanup * add unified state representation (#144) Co-authored-by: Neil Goldader <avatarneil@gmail.com> * [mds-metrics] Fixes metrics scope processing (#146) * adds metrics:read and metrics:read:provider scoping * fix error msg * add note * push provider query logic to middleware * simplify logic * fix import * lint * fix unit tests * coverage * alphabet * add state transition diagram (#148) * Support async access token scope validators (#147) * Support async access token scope validators * Dependency updates * ESLint/Prettier * remove self loop (#149) * [mds-utils] Remove unused state transition function (#145) * remove unused function * lint * add expected transition values * Make redis multi calls async (#151) * [mds-*] Upgrade to Node.js 12 (v12.14.1) runtime (#154) * Upgrade to Node.js 12 (v12.14.1) runtime * Upgrade node types * [mds-metrics] Add unauthorized error if query params attempt to exceed scope (#156) * add unauthorized error if query params attempt to exceed scope * reorder scope checking * Feature/eadks proc cleanup (#150) * cleanup spike * telemetryMap structure change * optimize registered count metric * fixed test case * null vehicle_type cache read bug fix * service area test cases * test case type enforcement * cleanup * query fix * reduce logic * removed unused import * added error msg * removed unused import * syntax edits * migration script and sql logs * Remove provider API from City Services cluster (#159) * Remove provider API from City Services cluster * Remove provider API scopes * fix heisenbug by moving tests to end (#161) Co-authored-by: Neil Goldader <avatarneil@gmail.com> * Extend daily timeout (#162) * increase timeout * timeout env var * reorder number cast * make sure we have AWS env vars before we make the call asking for AWS creds (#164) * two changes to fix heisenbug pt 2 in policy-author (#165) * [mds-cache][mds-processors] Cache optimization for event and trip processors (#160) * cleanup spike * telemetryMap structure change * optimize registered count metric * fixed test case * null vehicle_type cache read bug fix * service area test cases * test case type enforcement * cleanup * query fix * restructure spike * hscan addition * proc cache changes * hscan reformat * hscan bug fix * reduced cache maintanence logic * removed unused import * edit to cache method names * merge cleanup * merge cleanup * more merge cleanup * comment syntax * map edits * reduced logic * typdef fixme comment * revert values.yaml Co-authored-by: Mark Maxham <max@ellis-and-associates.com> Co-authored-by: Neil Goldader <avatarneil@gmail.com> * forward parsing error to client (#166) * Don't mutate datetime (#167) * no mutation * refactor modules + add test * Add moment-based timestamps * Export getCurrentDate() Co-authored-by: Neil Goldader <avatarneil@gmail.com> * Fix clone error on Windows by removing unit test for invalid filename (#168) * [mds-stream] [mds-event-processor] NATS implementation for mds-event-processor. (#143) * First pass at nats implementation for mds-event-processor * Some cleanup * Works in-cluster with manual IP for NATS.connect args * Actually await things * nats: mdsctl(nats), disable kne/natss * Remove trigger.yaml * Check env.NATS instead of env.SINK * mdsctl: natss * Switch from vanilla nats to nats-streaming. This enables us to sychronously handle subscriptions. * stan ftw * add STAN_CLUSTER_ID env var * WIP * WIP * WIP * WIP * Re-add event-server wrapper for mds-event-processor * Revert some prior changes, structure events with CE * Add credentials support * stan.creds * Add STAN_CREDS env var * Some changes... * stan.creds mount * cleanup * Stop using mds-event-server because it causes problems, working end-to-end in cluster * Patch * infer image:tags from remote registry * +gcloud * Re-add getRawData() * Re-add mds-event-server, switch to using nats-streaming 0.3.0 client * Clean up dependencies * Update dependencies * Ack failed messages * helm(nats,stan) * stan/cleanup * +nats-box * +nats-box, pin cluster-id * stan cluster id * add [nats|stan]x which are single-pod no-auth nats-io/k8s deploys * helm'ify (nats,stan)x * Cluster handled pod routing * +stan=statefulset * +stans:0.16.2 * u/d * Event-server refactoring to improve readability * Add getNats() to get a persistent nats client and save it if it falls over * Add re-connect logic * Turns out the nats client will attempt to reconnect for us, groovy. * Enable reconnects * Misc cleanup * disable istio-injection in nats deployments * prune kne * cleanup * stan: disable istio * mdsctl: patch nats helm so that it's operations are distinct from init,cluster * (un)install:stan fix * cleanup natsbox conf * install {tools}/helm:2.14.1 if not preent in the env * bump stan disk allocation * allow for more-more-then-one (natsbox, curl, dns) deploys * add ServiceEntry egress for nats, and DestinationRule to disable mTLS for the destination namespace * switch default nats namespace to "nats" from "default", use correct nats endpoint for stan * mdsctl: +(nats,stan)-local, rm(kne*); next: conf mds->nats.nats * mds: add env NATS=nats.nats, set STAN_CLUSTER=stan; would like to remove env STAN, STAN_CREDENTIALS, SINK * patch * helm/mds/.../egress.yaml: fix typo * patch: get image versions * +kubectx, helm/mds/deployment conf nats ns * cold-start install patch * cleanup * stan: set max-message,max-bytes=0 (unlimited) * mdsctl: keep-cache support for yarn * trip-proc cron job * Cron restart policy fix * cronjobs in the house * sync mds-trip * cleanup * mds/templates: image w/ & w/o registry * cleanup env * Remove CE_NAME and STAN in favor of NATS * Update STAN_CLUSTER to nats-streaming * Switch to using env.NATS for streaming * More switching to env.NATS * provider-proc cron edits * Await parseTripsEvents * u/d readme(mdsctl) * u/d mdsctl * u/d mdsctl * mdsctl: support provider=aws:imageTag (get latest tag by image name) * mdsctl: u/d readme * Optional processor fix * mount mds-config configmap * Remove db.startup, cache.startup, getConfig. They're not working properly at the moment * Remove db.startup from mds-provider-processor * +surveyor, rename stan-statefulset to nats-streaming-server * helm/mds: disable (trip, provider) processors, as they are invokved via cron * surveyor: rm creds * helm/natsbox: rename to nats-box * Force exit after function is done * use namespace name as default TENANT_ID * Fix bad variable injection * allow empty tenantId for legacy installs (ladot), use namespace if key is missing from .Values * helm/mds: clean-up proto dead-code * not using knative anymore * consistent naming * cleanup resource names * differentiate nats/stan config-map names * s/example-nats/nats/ * switch cron to hourly, turn off migrations for agency * Update mdsctl * Update README.md * Update mdsctl * Update mdsctl * remove dependency on ~/.bashrc * mdsctl: remove persisting conf in ~/.bashrc * minor refactor - put event-processor into APIs as a service deployment and put trip- and provider- processors into cronjobs. retire old metrics-sheet specific cronjob * pull out nats-surveyor to be applied to a subsequent branch * Drop nullish coalescence operator in favor of logical OR for TENANT_ID * Update TENANT_REGEXP * update template to match yaml, remove spurious env vars * helm/nats: patch stan conf (store typo) * Switch processors -> cronjobs * mdsctl: build/yarn-clean * helm: prune nats-local * Typo * Env var defaults cleanup * u/d readme re k8s conf * Add comment detailing writeCloudEvent Co-authored-by: James Todd <99516+jwtodd@users.noreply.github.com> Co-authored-by: Alex Gottschalk <389982+invertigo@users.noreply.github.com> Co-authored-by: Evan Adkins <53316916+evanxadkins@users.noreply.github.com> * Update README.md readme/docker-desktop-config cleanup * Assume cache as source-of-truth for output to get time since last event due to performance problems in production (#169) * istio-disable cronjobs (#170) * [mds-*] Add Okteto Configuration for in-cluster debugging (#171) * First-pass at okteto integration * Add per-service okteto config * Move config back to top level * Update docs, fix missing name * update docs * Oops * Update docs * Update docs moar * Docs updates * Bump okteto resources massively to avoid crashes at debug init (#172) * Make all tests async (#173) * change envoy idle timeout to offset from nodejs idle timeout. reduces incidents of a race condition where envoy attempts to connect with a timed-out node, resulting in a 503 UC * [mds-db] Refactor en-mass import/exports in mds-db to be more readable (#177) * Update Config API to support partial configs (#178) * Refactor config service to improve error handling and test coverage * Add partial config support * Unit tests for partial config * Change error (404) response body * Upgrade dependencies; fix typescript/lint errors (#179) * Export interfaces (#181) * move annotation for preventing istio sidecar injection to correct met… (#180) * move annotation for preventing istio sidecar injection to correct metadata location * move annotation for preventing istio sidecar injection to correct metadata location * remove dupe * too many specs and templates * [mds-web-sockets] First pass at some internal JWT validation. (#157) * Promisify all the things * Cleanup * Working with Bearer tokens * WIP * Working tests whoop * Fix error message * Increase default timeout values to reduce spurious 503 errors from Istio (#184) * Update Agency, Policy, and the root README docs (#182) * OMF-26 API Version Middleware (#189) * API Version Middleware * Minor corrections * Swallow STAN fatal errors. Previously, these would cause a node crash dump. (#190) * Convert empty event.event_type_reason to null (#195) * [mds-cache] Clean up promise logic in hreads (#153) * Await batch hgetallasync rather than awaiting each invocation * Remove Promise junk * Remove janky promises, update typedef * Promise.all all of the things * Remove inner Promise.all * Linterz * yarn upgrade-interactive --latest (#193) * Fix redis multi definition (#196) * Jurisdiction API (GET, POST endpoints) (#187) * getOne/getAll jurisdiction service methods * create Jurisdiction service method * initialize/shutdown jurisdiction service * Initial GET /jurisdictions endpoint * Drop schema after unit tests * Clean up return statement * Add container image for MDS Jurisdiction API * API enpoints for create / find jurisdiction * Add validation on create * Update copyright notices * Use port 4011 for local jurisdiction API * Return 404 when jurisdiction not found * Add some error typing to jurisdiction service * Remove unused type * Scopes for writing jurisdictions + api tests * Add scopes for jurisdiction read * Add jurisdiction claim filtering * Stop tests from failing in the presence of extra db tables * mdsctl installs mochawesome; commiting * Rename a scope * Add copyright notices * Add versioning middleware to Jurisdiction API * Updated lock file * Merge origin/develop and update dependencies * mdsctl yarn.lock updates * Add some DB connection logging * Use R/W connection for running TypeORM migrations (#197) * Clean up Versioned API types; Reorganize Jurisdiction/Native APIs (#198) * Refactor Jurisdiction API * Clean up Native API types * Rename some private interfaces/types * Use array destructuring * Reorganize Native API middleware/handlers * Rename utils files * Catch db connection errors separately (#199) * [mds-provider-processor] Provider filter for device cache (#174) * provider-device cache call * cron schedule revert * updated tests * test case bug * cleanup * nullish coalescing * registered device map refactor * registered device map refactor * cleanup * [mds-web-sockets] Add structured response for authentication success and failure (#204) * Add structured response for authentication success and failure * Fix test * [mds-agency] [mds-utils] Add better object validation to agency. (#200) * Add device object validation, begin working on building out event validators * Add event and telemetry validation to agency request handlers * Remove comment * Refactor to match other usage better, add allowUnknown validator option * More cleanup * Cleanup * Endpoints to update/delete a jurisdiction (#201) * Update a single jurisdiction * Add unit tests * Sort versions by timestamp * Support "deleting" jurisdictions (with tests) * Separate out ORM operations into their own module. * Fix import statements * Tidy up some error messaging * Add a comment * carve out exception to jwt auth for websockets api (auth is done internally due to different headers for ws protocol) (#192) * [mds-*] Merge in OMF/develop (#206) * Kubernetes Contribution (#233) * mdsctl/preset: onward to gh * mdsctl: landed in gh * Add additional test + simplify sum logic * generalize over summing any columns * fix test index type * Split up mds-db into more manageable files. * mdsctl: open:dashboard patch * Increase test timeout to support k8s DB/Redis (#4) * mdsctl: uinstall:simulator * mdsctl: add preset:no-events * mdsctl: -p:no-events * mdsctl: install:simulator python pathing * review feedback, boiling all of index.ts down * k8s/util-namespace: bring forward from cola * Add last provider event to audit_events table on every audit event * Add endpoint to get vehicle by provider and vin * mdsctl: support running from path * Add geos summaries endpoint. * mdsctl: support running from any directory, add --quiet option to be 'less verbose' (can likely do more) * Consolidate provider event flattening, fix function-called-before-definition lint error * review feedback * mdsctl: provide a means to disable (postgresql, redis) persistence * mdsctl: conditionally update ~/[rc] to add mdsctl to PATH env * mdsctl: conditionally add mdsctl to PATH * mdsctl: fix install:logging namespace * Bump versions * mdsctl: override fluentbit * mdsctl: logging local * mdsctl: don't istio sidecar logging * test fails fuck * mdsctl: push logging to util namespace * Fixed Geography type. * Using fancier types. * improving tests * review feedback * mdsctl: leverage getopts/optspec * mdsctl: cleanup * Resolve Geography related build errors. * Implement count minimums. * Break readGeographies into separate methods for reading Geography and GeographySummary objects. * Rename readGeographiesSummary -> readGeographiesSummaries, and replace duplicate logic with a call to readGeographies then simply strip out the geography_json * Minor tweaks due to vscode doing some poor automagical renaming * Better parameter destructuring * Rename readGeographiesSummaries -> readGeographySummaries * Resolve lint error, oops * Add additional logging info to getProviderMetrics() * Bump version * mdsctl: tab completion * [mds-agency] s/car/carshare/g MDSAAS-277 Slack discussion https://lacuna-tech.slack.com/archives/CHXQXQK5M/p1571325224046400 * update ref to enum key * add a small test * mdsctl: remove python env dep * mdsctl: s/presets/preset/g * Resolve bad import * finitio * MDSAAS-275 Remove AWS Lambda handlers, etc. (#25) * MDSAAS-275 Remove AWS Lambda handlers, etc. * Remove lambda deployment script runner * Run ESLint concurrently before unit tests * Remove AWS reference from comment * Remove explicit typing * Bump version * Publish - @container-images/env-inject@0.1.13 - @container-images/mds-agency@0.1.14 - @container-images/mds-audit@0.1.15 - @container-images/mds-compliance@0.1.14 - @container-images/mds-daily@0.1.14 - @container-images/mds-metrics-sheet@0.1.15 - @container-images/mds-native@0.0.12 - @container-images/mds-policy-author@0.1.14 - @container-images/mds-policy@0.1.14 - @container-images/mds-provider@0.1.14 - @mds-core/mds-agency@0.0.16 - @mds-core/mds-api-authorizer@0.1.14 - @mds-core/mds-api-helpers@0.1.14 - @mds-core/mds-api-server@0.1.14 - @mds-core/mds-audit@0.1.26 - @mds-core/mds-cache@0.1.14 - @mds-core/mds-compliance@0.1.15 - @mds-core/mds-daily@0.0.15 - @mds-core/mds-db@0.1.14 - @mds-core/mds-logger@0.1.12 - @mds-core/mds-metrics-sheet@0.0.15 - @mds-core/mds-native@0.0.12 - @mds-core/mds-policy-author@0.0.11 - @mds-core/mds-policy@0.0.15 - @mds-core/mds-provider@1.0.14 - @mds-core/mds-providers@0.1.14 - @mds-core/mds-stream@0.1.14 - @mds-core/mds-test-data@0.1.14 - @mds-core/mds-types@0.1.11 - @mds-core/mds-utils@0.1.14 * comments * Rename previous_geographies column and update deleteGeography so it handles all cases where read_only is not true. * Fix bad null checking. Closes MDSAAS-289 * MDSAAS-202 Upgrade to Node.js 10.16.3 LTS runtime (#12) * MDSAAS-202 Upgrade to Node.js 10.16.3 LTS * Suppress node deprecation warnings * review feedback * bump root version * Publish - @container-images/env-inject@0.1.14 - @container-images/mds-agency@0.1.15 - @container-images/mds-audit@0.1.16 - @container-images/mds-compliance@0.1.15 - @container-images/mds-daily@0.1.15 - @container-images/mds-metrics-sheet@0.1.16 - @container-images/mds-native@0.0.13 - @container-images/mds-policy-author@0.1.15 - @container-images/mds-policy@0.1.15 - @container-images/mds-provider@0.1.15 - @mds-core/mds-agency@0.0.17 - @mds-core/mds-api-authorizer@0.1.15 - @mds-core/mds-api-helpers@0.1.15 - @mds-core/mds-api-server@0.1.15 - @mds-core/mds-audit@0.1.27 - @mds-core/mds-cache@0.1.15 - @mds-core/mds-compliance@0.1.16 - @mds-core/mds-daily@0.0.16 - @mds-core/mds-db@0.1.15 - @mds-core/mds-logger@0.1.13 - @mds-core/mds-metrics-sheet@0.0.16 - @mds-core/mds-native@0.0.13 - @mds-core/mds-policy-author@0.0.12 - @mds-core/mds-policy@0.0.16 - @mds-core/mds-provider@1.0.15 - @mds-core/mds-providers@0.1.15 - @mds-core/mds-stream@0.1.15 - @mds-core/mds-test-data@0.1.15 - @mds-core/mds-types@0.1.12 - @mds-core/mds-utils@0.1.15 * match path prefix, optionally followed by a slash, optionally followed by [-a-z] character set * Populate publish_date on geographies. * review feedback * incrase timeout * Fix bad geographies migration * Minor fix * Bump main version * Publish - @container-images/env-inject@0.1.15 - @container-images/mds-agency@0.1.16 - @container-images/mds-audit@0.1.17 - @container-images/mds-compliance@0.1.16 - @container-images/mds-daily@0.1.16 - @container-images/mds-metrics-sheet@0.1.17 - @container-images/mds-native@0.0.14 - @container-images/mds-policy-author@0.1.16 - @container-images/mds-policy@0.1.16 - @container-images/mds-provider@0.1.16 - @mds-core/mds-agency@0.0.18 - @mds-core/mds-api-authorizer@0.1.16 - @mds-core/mds-api-helpers@0.1.16 - @mds-core/mds-api-server@0.1.16 - @mds-core/mds-audit@0.1.28 - @mds-core/mds-cache@0.1.16 - @mds-core/mds-compliance@0.1.17 - @mds-core/mds-daily@0.0.17 - @mds-core/mds-db@0.1.16 - @mds-core/mds-logger@0.1.14 - @mds-core/mds-metrics-sheet@0.0.17 - @mds-core/mds-native@0.0.14 - @mds-core/mds-policy-author@0.0.13 - @mds-core/mds-policy@0.0.17 - @mds-core/mds-provider@1.0.16 - @mds-core/mds-providers@0.1.16 - @mds-core/mds-stream@0.1.16 - @mds-core/mds-test-data@0.1.16 - @mds-core/mds-types@0.1.13 - @mds-core/mds-utils@0.1.16 * better regex - match the pathPrefix followed by either EoL or a slash and zero or more characters * route by FQDN in ingress * update values for ingress routing by domain * ALTER TABLE RENAME COLUMN ... TO ... (#36) * remove letsencrypt option - never worked reliably and not the ingress is not compatible with non-LE TLS (not possible to switch back and forth) * remove letsencrypt option - never worked reliably and not the ingress is not compatible with non-LE TLS (not possible to switch back and forth) * standardize API TCP ports to 4000, remove some never-used selectors for enabling/disabling DB and Cache env vars, make Eventing selector global instead of per-api * bump package version * Publish - @container-images/env-inject@0.1.16 - @container-images/mds-agency@0.1.17 - @container-images/mds-audit@0.1.18 - @container-images/mds-compliance@0.1.17 - @container-images/mds-daily@0.1.17 - @container-images/mds-metrics-sheet@0.1.18 - @container-images/mds-native@0.0.15 - @container-images/mds-policy-author@0.1.17 - @container-images/mds-policy@0.1.17 - @container-images/mds-provider@0.1.17 - @mds-core/mds-agency@0.0.19 - @mds-core/mds-api-authorizer@0.1.17 - @mds-core/mds-api-helpers@0.1.17 - @mds-core/mds-api-server@0.1.17 - @mds-core/mds-audit@0.1.29 - @mds-core/mds-cache@0.1.17 - @mds-core/mds-compliance@0.1.18 - @mds-core/mds-daily@0.0.18 - @mds-core/mds-db@0.1.17 - @mds-core/mds-logger@0.1.15 - @mds-core/mds-metrics-sheet@0.0.18 - @mds-core/mds-native@0.0.15 - @mds-core/mds-policy-author@0.0.14 - @mds-core/mds-policy@0.0.18 - @mds-core/mds-provider@1.0.17 - @mds-core/mds-providers@0.1.17 - @mds-core/mds-stream@0.1.17 - @mds-core/mds-test-data@0.1.17 - @mds-core/mds-types@0.1.14 - @mds-core/mds-utils@0.1.17 * Upgrade dependencies (#29) * Upgrade dependencies to latest versions * More upgrades * hard-code container port * initial commit, docker-compose with an nginx gateway proxy * default ports * move out of subdir * simplify PG_HOST_READER - can leave unset and the mds-db code will fall back to PG_HOST, make PG_PORT optional * add optional slack integration vars, common secret for APIs * changed secret name * Add standard API request logging (#43) * Add standard request logging * port must be string not int * fix slack token and secret * fix value for ingress domain FQDN * Remove provider event processor (#41) * Remove provider event processor * Drop deprecated provider tables * Enable SQL logging during migrations * Only drop tables that are/were part of the schema * need to quote domains in case of a wildcard globa ("*") * Remove read_only column from geographies. * Remove unused provider-stats cache methods * bump version * hard-code port number * correct secret name * template docker-compose with latest build versions * Add perf logging to MDS Daily db/cache calls * fluentbit (mds/requirements rm, util/values pin to es host) (#50) * narrow fluentbit refs * fluentbit: rm from mds/requirements, pin to elasticsearch-master in util/values * helm/(mds,util): rm fluent from mds * pull changes from fix/michael/remove-provider-api * Add perf logging to MDS Daily db/cache calls * Resolve linter errors * Bump root package version * Publish - @container-images/env-inject@0.1.17 - @container-images/mds-agency@0.1.18 - @container-images/mds-audit@0.1.19 - @container-images/mds-compliance@0.1.18 - @container-images/mds-daily@0.1.18 - @container-images/mds-metrics-sheet@0.1.19 - @container-images/mds-native@0.0.16 - @container-images/mds-policy-author@0.1.18 - @container-images/mds-policy@0.1.18 - @container-images/mds-provider@0.1.18 - @mds-core/mds-agency@0.0.20 - @mds-core/mds-api-authorizer@0.1.18 - @mds-core/mds-api-helpers@0.1.18 - @mds-core/mds-api-server@0.1.18 - @mds-core/mds-audit@0.1.30 - @mds-core/mds-cache@0.1.18 - @mds-core/mds-compliance@0.1.19 - @mds-core/mds-daily@0.0.19 - @mds-core/mds-db@0.1.18 - @mds-core/mds-logger@0.1.16 - @mds-core/mds-metrics-sheet@0.0.19 - @mds-core/mds-native@0.0.16 - @mds-core/mds-policy-author@0.0.15 - @mds-core/mds-policy@0.0.19 - @mds-core/mds-provider@1.0.18 - @mds-core/mds-providers@0.1.18 - @mds-core/mds-stream@0.1.18 - @mds-core/mds-test-data@0.1.18 - @mds-core/mds-types@0.1.15 - @mds-core/mds-utils@0.1.18 * Purge mds-provider implementation * Update LICENSE * Remove mds-cache weird duplicate functions * Clean up mds-audit weirdness * Clean up mds-db weirdness * Clean up mds-types weirdness * Clean up helm template weirdness Co-authored-by: Hunter Owens <owens.hunter@gmail.com> * Fix yarn.lock * [mds-policy-author][mds-geography-author] Extract geography author service from policy author. (#203) * Extract geography author service from policy author. * review feedback * review feedback * review feedback * RF * RF * satisfy linter * SqlVals and vals_list used to sanitize db input. * rf * helm unittest (#209) * mdsctl: helm unittest service * heml uuniest: auth * helm unittest: auth disable * helm unittest: autoscaler * helm unittest: +configmap * helm unittest: cronjob * helm unittest: egress * helm unittest: ingress * helm unittest: ingress domain * helm unittest: deployment * helm unittest: deployment secret * helm unittest: deployment overrides * helm unittest: better suite labels * helm force upgrade * mdsctl: ensure resolvable k8s endpoint (thx jane) * Reorder writing an event and related telemetry to avoid race condition where event is written but telemetry has not been written yet (#205) * [mds-agency] [mds-web-sockets] Add NATS-Streaming consumption for mds-web-sockets (#208) * Add mds-web-sockets consumption of NATS stream rather than agency having to persist a direct connection with the web-socket server * Clean up okteto.yml * Handle STAN errors better * eslint-ignore * Istanbul, not eslint * [mds-policy] [mds-geography] Extract read-only geography service from policy service (#211) * Extract read-only geo points from Policy. * making mds-policy tests pass * Tests for mds-geography. * pacifying linter * remove todo comment * removing TODO comment * Feature/alex/monitoring alerting (#213) * initial commit, canned alerts for prometheus * whitespace, add additional alerts * clean up summaries and descriptions * clean up slack notifications * better tracking of container restarts (count over time instead of absolute), better labeling of statefulset failures * use rate over last five minutes * bump version * update lockfile, try removing auth from grafana (thanks james) (currently broken) * add prometheus datasource, some useful dashboards. remove login since access requires authenticated kubectl * update * ignore downloaded charts * more meaningful restart rate * tuning * add alarms for pod CPU and memory going over limit * switch disk usage alerts from static to predictive * Upgrade package dependencies (#212) * Upgrade package dependencies * Add type annotation to fix build error * This test was destined to fail starting yesterday (#215) * [mds-processors][mds-metrics] removal for OMF release (#210) * removal spike * db/cache util and type removal * turf deps * purge metrics + more processors * remove cron from mdsctl Co-authored-by: Max Johansen <macsj200@gmail.com> * [mds-policy-author] Minor changes to policy to bring it back in line with the spec. (#217) * Fixing parameters for policy author. * Adding User Rule type to Policy. * [mds-stream] Add outbound kafka stream support (#216) * Add outbound kafka stream support * Cleanup * Review cleanup pt1 * Refactoring and cleanup * Call KafkaStream.initialize() from top-level initialize method * Call stream.initialize() at the top of mds-agency/request-handlers * Update README.md * Remove stream.initialize() from agency tests * Remove stream.initialize() from compliance tests * Writer refactor, and reader implementation * Fix unhappy exports * Remove callback fallback :P * clean up stream init * Run with new Prettier 2.0 defaults (#221) * Run with new prettier defaults * Revert trailingComma to previous default * Revert arrowParens to previous default * Removing Slack client and pushover notifications (#226) * Removing Slack client and pushover notifications * Implement new method to redact sensitive text * Kafka Stream Processor (#224) * Beginnings of initial refactor * More cleanup of kafkajs, removal of node-rdkafka * Rename and refactor * Use Nullable<T> * Remove temporary type declaration * Remove file * Make producers topic specific * Basic functional streap labeler * Remove EventServer * Remove mds-event-server * Refactor stream processing * Fix module export issues * Add container image for vehicle event processor * Fix package name * Add helm deployment for event-processor * await NATS write instead of returning * Remove reliance on deprecated service_area_id * Incorporate review feedback * Merge remote-tracking branch 'origin/develop' into feature/neil/begin-kafka-refactor-to-kafkajs Co-authored-by: Neil Goldader <neilgoldader@gmail.com> * [mds-utils] Update relative time parsing to snap to the nearest hour when 'now' is provided as a query param (#223) * Update relative time parsing to snap to the nearest hour when is provided as a query param * Undo old prettier weirdness * Add caching of device labels (#229) * Add caching of device labels * Rename some consts * Add control methods to stream processor (#232) * Add control methods to stream processor * Minor package refactoring * Add copyright notices * Remove some spammy logs from mds-cache * [mds-stream-processor] Add geo labeling for mds-stream-processor (#231) * Add geo labeling for mds-stream-processor * Add tests * Add Sinon devDependency * Add LatencyLabeler tests * Filter based on point in shape, then map to geography_id * Remove now unused import * Only compute for published geographies * [ladot-service-areas] [mds-agency] [mds-daily] Purge service-areas (#219) * Purge service-areas * Rename mds-test-data/ladot-service-areas to mds-test-data/test-areas * Get rid of require statements * Remove mds-metrics-sheet vehicle counts (#228) * Remove mds-metrics-sheet vehicle counts * Remove vehicle-counts.ts * Remove duplicate Nullable<T> definition * Fix mds-metrics-sheet container image build (#233) * Reorganize files * Remove extraneous vehicle-counts references Co-authored-by: Neil Goldader <neilgoldader@gmail.com> * Fix event type for vehicle reads in case of a cache miss (#225) * Fix Project References (#234) * Agency should not be writing telemetry to socket * Fix typescript project references * Make sinon a dev dependency * Upgrade dependencies * [mds-native] Removing mds-native. (#214) * Removing mds-native. * Removing helm tests. * Removing reference in nginx. * [mds-db] [mds-policy-author][mds-compliance] Fix/final separation of policy from geo (#218) * Publishing a policy no longer publishes a geography. Instead it throws an error. * minor fixes * Removing container-images directory for mds-native. (#236) * Remove leftover artifacts of mds-metrics (#238) * [mds-stream] [mds-stream-processor] TENANT_ID prefix for Kafka Streams (#235) * Add TENANT_ID prefix to kafka to support multi-tenancy on one Kafka cluster * Yarn.lock changes I guess? * Add a couple source/sink examples (#237) * Re-add stream init that was removed, thanx git (#239) * Add FileSource and FileSync connectors for mds-stream-processors (#240) * [mds-stream-processor] First pass at vehicle telemetry processor (#241) * First pass at vehicle telemetry processor * Add getEnvVar method to mds-utils * Refactor getEnvVar * Refactor TelemetryFlattener to TelemetryLabeler, add OptionalTelemetryLabeler * Rename FlattenedTelemetry, update NullableProperties type * [helm] Update helm for telemetry processor (#245) * Update helm for telemetry processor * do not create auth policies or ingress virtualservices for APIs with no pathPrefix (ie internal-only services) Co-authored-by: Alex Gottschalk <alex.gottschalk@gmail.com> * Initial Metrics Service (#244) * Add ORM model for metrics * Update dependencies * Create some service helper methods * Implement metrics filtering on read * Allow specifying one of more filter values * Refactor metric query tests to minimize redundancy * Refactor utility function and add missing licenses * Remove OptionalTelemetryLabeler * Code review revisions * was missing geography api (#242) * Split metrics-service into server/client modules (#246) * [mds-stream] Switch from NATS Streaming -> Vanilla NATS (#243) * First pass * Minor fix that will be replaced once I merge in * Retry forever * waitOnFirstConnect fix * Fix variable names * Add typing for NATS messages * NATS env var refactor * nats-streaming folder -> nats folder * Thanks F2 * Path fix * Enable ES2019 features in node:12.14.1-alpine (#247) * Refactor ORM Connection Configuration (#249) * Fix coverage excludes * Support named connections * Curry the ORM connection factory functions * Refactor Jurisdiction Service (#250) * ServiceProvider interface * CreateRepository function * CreateRepositoryMethod function * Move jurisdiction types/utils to service package (#251) * Move jurisdiction types/utils to service package * Use helper method for filter * Move schema to separate file * Export default connection for TypeORM CLI (#252) * Export default connection for TypeORM CLI * More robust destructuring * Fix import statement * Clean up error handling * Improve test coverage * Use recommended typescript config for istanbul (#255) * Use recommended typescript config for istanbul * Clean up some config files * Create types for mapping between entity/domain models (#257) * Create types for mapping between entity/domain * Fix test failure * Fluent model mapper syntax * Use object schema for jurisdiction validation * Fix imports and make mapper syntax consistent (#258) * [mds-stream-processor] First pass at pre-computed surrounding bbox (#253) * First pass at pre-computed surrounding bbox * Add some tests * Remove console.log * Typecasting is bads * Add geography caching test * Remove unused import * Better destructuringz Co-authored-by: Mark Maxham <max@ellis-and-associates.com> * Update prettier config to enforce single quotes only in js/ts files, since we may want to have double quotes in yaml files. (#256) * Update prettier config to enforce single quotes only in js/ts files, since we may want to have double quotes in yaml files. * Making file formatting changes restricting to js and ts files * [mds-config][mds-config-service] Remove mds-config and mds-config-service (#254) * Removing mds-config and mds-config-service, as these will not be part of the OMF contribution. * Removing mds-config and mds-config-service as part of prepping for the OMF contribution. * Reverting single quotes in yaml files. * Reverting more single quotes. Co-authored-by: Mark Maxham <max@ellis-and-associates.com> * Allow services to specify TypeORM CLI options. (#259) Use typeorm executable in ./node_modules/.bin * Serializable service errors (#261) * Use service provider interface for unit tests * Move metrics service * Move jurisdiction service * Serializable service error objects * Abstract processing of repository errors * RepositoryError.GetProperty helper * Use static error factory and type guards * Minor refactor of type guard syntax * Resolution of type errors that result from…
Allow merging multiple settings properties with one GET request.
A single settings property is specified as a route param:
GET /config/settings/{property}
Multiple settings properties are specified as query string parameters:
GET /config/settings?p={property1}&p={property2}