-
This service uses [viper](github.com/spf13/viper) to resolve configuration through environment variables.
This service uses viper to resolve configuration through environment variables. The default configuration and resolution logic can be found in internal/config/env.go. Updating Configuration If you need to add or remove items to configuration, ensure you are doing so in the following locations:…
-
Datase Migrations
Datase Migrations Database migrations are executed using golang-migrate CLI To install on MacOS brew install golang-migrate Creating a new migration To create a new migration, run the following command with the name of the migration you want to create. migrate create -ext sql -dir ./build/migrations create_results_table…
-
GitLab CI/CD
GitLab CI/CD JobStageDescription[metric-include]-unit-testtestRuns unit testslinttestRuns golintpushpushBuilds mage artifact using kaniko and pushes to Container RegistrydeploydeployInvokes development or staging Spinnaker pipelines to deploy image artifactsreleasereleaseInvokes production Spinnaker pipelines to deploy…
-
Local Development
Local Development To run replay-server locally, you can use the following comamnd which will start the server as well as the Postgres database. Ensure you have Docker running before running this command make dev-serverdocker-compose up -d[+] Running 1/0 ✔ Container replay-server-db-1 Running2024-01-31T15:20:40.698-0700…
-
TechDocs
TechDocs System Design Overall, the purpose of this system is to receive GET requests being fetched from the browser for replay playback and go load those assets. Applying the above rules where appropriate in the system. One thing we need to account for is taking relative URL's, and ensuring they're transformed into fully…
-
Feature Flags
Feature Flags The feature flag package is included out of the box but is not consumed by any application code. The feature flag package is a thin wrapper around the split sdk to make use of feature flags streamlined. Further reading on feature flags usage and best practices can be found at backstage here Implementation In…
-
IAM Client
IAM Client Replay server has a ready to use IAM Client in the api router api/v1/api.go that allows for ease of authentication and identity verification Setting up an IAM Application A IAM dev application has been setup for replay server in iam-dev.quantummetric.com. Currently there is not a production IAM application for…
-
Overview
Overview The replay server, written in GoLang, has the sole purpose of loading up all necessary resources/files/data for the Replay in QM UI to run in a multi-tenant vehicle. This includes: * Resource Loader (all of the resources that need to be either proxied or loaded via hash) * Instrumentation Loader (all of the…
-
Session Creation
Session Creation The following outlines the steps in the authentication and redirect flow for Interactions session creation. * Upon choosing to create the session within the Interactions QM UI, a POST /api/v1/nonce call is made to Replay Server with the current users IAM JWT accessToken. * Replay Server authentication…
-
Layout
Layout The following is a high level overview of the layout of this service with corresponding descriptions of each. ├── .gitlab├── api│ ├── middleware│ ├── v1├── build├── cmd│ ├── cli│ ├── server├── docs│ ├── images├── internal│ ├── cli│ ├── config├── pkg│ ├── data│ ├── db│ ├── entities│ ├── middleware│ ├── migrate│ ├──…