Change Log

[v0.97.1 - 2024-08-28]

Release Notes

1. Added

  • a. Introducing Log Listener in gui

    • The Log Listener view shows a list of the 10 last requests with columns for router, transaction ID, duration and time
    • Log entries can be viewed in full, and copied to clipboard
  • b. Copy code button added for python code in Tutorial - Make a Request

    • Button copies code snippit to clipboard

2. Changed

  • a. Archiving during deployment stage of Tutorials doesn't exit the tutorial

3. Fixed

  • a. gui now provides correct validation errors when router paths are not unique

[v0.96.1 - 2024-07-09]

Release Notes

1. Added

  • a. Introducing Tutorials in gui

    • Tutorials guide you through the most common activites such as how to configure & deploy: New Router, Advanced Router Setup, Deploy Configuration, Activate Logging and Make a Request via Gecholog.ai
  • b. Adding support in gui for additional configuration files

    • nats2file_config.json now supported
    • nats2log_config.json now supported
  • c. When editing processor configuration in gui - A new button is added to add a processor before existing processors

2. Changed

  • a. gl now supports "This header must exist"

    • Set router ingress header value for a header to regex:.+
  • b. File management experience in gui is improved.

3. Fixed

  • a. Sending query parameters and endpoint in request to gl for routers that had outbound endpoint specified caused invalid url path to be built.

    • Query parameters and endpoint in router definition takes precedence over request query param and endpoint info
  • b. nats2log now invalidates spaces in filenames for FileWriter

[v0.95.1 - 2024-05-28]

Release Notes

1. Added

  • a. WebUI service gui created

    • Allows you to update, validate, and deploy new configuration files for gecholog
    • Behavior of gui determined via gui_config.json
    • Try it (via docker) with docker run -d -p 5380:5380 -p 8080:8080 -e GUI_SECRET=changeme gecholog/gecholog:latest and then visit http://localhost:8080/login with your web browser
  • b. gui supports

    • Configuration file gl_config.json
    • Access authentication via environment variable GUI_SECRET
    • TLS and port (default 8080) configuration
    • One session at a time
  • c. healthcheck supports gui

    • Run ./healthcheck -s gui -p to print active checksum

2. Changed

  • a. ginit starts gui by default
    • A non-GUI ginit_config.json file can be found at /app/default-conf/ginit_nogui_config.json

3. Fixed

  • a. Incorrect validation pattern WARNING changed to WARN

[v0.94.1 - 2024-03-19]

1. Added

  • a. Log field inbound_status_code added

    • The response log object now has both inbound_status_code and egress_status_code
    • The behavior of the status_code fields now harmonized with other log fields, ie now available for processors
  • b. Container hardening

    • Non-root user
    • Not bound to specific UID
    • Minimal base container
    • File & folder permissions
    • No container shell
    • Executables not writeable
    • Vulnerability scans
  • c. mock go processor see Section Mock

    • The mock custom processor lets you easily mock and replicate your LLM API responses

2. Changed

  • a. Method for configuration file monitoring updated

    • Monitored for change & size (new config still determined via checksum)
    • More information on ownership, issues and permissions if file operations fail
  • b. No nats2file file or symbolic link

    • Configuration file validation now performed solely via nats2log command

3. Fixed

  • a. Errors from config file monitoring no longer repeated in system log

[v0.93.1 - 2024-02-22]

Release notes

1. Added

  • a. Health check command ./healthcheck

    • Impacted services ginit, gl, nats2log, nats2file and tokencounter
    • -s option to check specific service. Default is ginit
    • -p to print active config sha256 checksum for the service
  • b. Easier to track license status

    • gl option --license now prints days remaining for license
    • Alerts in container log when 30 days left on license
  • c. Ability to control restarts and which services need to run for container to stay alive

    • Service ginit
    • Config file /app/conf/ginit_config.json
  • d. broker go processor on GitHub Gecholog.ai Resources

2. Changed

  • a. Changed/uploaded config files will now automatically be applied (if valid) without restart

    • Impacted services gl, nats-server, nats2log, nats2file and tokencounter
    • Impacted files app/conf/gl_config.json, app/conf/nats-server.conf, app/conf/nats2log_config.json, app/conf/nats2file_config.json and app/conf/tokencounter_config.json
  • b. One unified harmonized system log

    • All services system log goes to container stdout
    • ginit, gl, nats-server, nats2log, nats2file and tokencounter

3. Fixed

  • a. Timing for change of log level

[v0.92.1 - 2024-02-01]

Release notes

1. Added

  • a. Ability to run --validate on config files.

    • Impacted services gl, nats2log, nats2file and tokencounter
    • Works both with stdout pipe and -o option.
  • b. Much stricter config file validation and feedback to users

    • Impacted services gl, nats2log, nats2file and tokencounter
    • Warn & list rejected fields that will not be applied
    • Checking for existence of files, duplicates, stricter format rules
  • c. Services support --version option

    • Impacted services gl, nats2log, nats2file and tokencounter
  • d. version tag on config files + backwards compatibility process for config files

    • Impacted services gl, nats2log, nats2file and tokencounter
    • Config files from v0.91.1 are still supported but not earlier due to missing nats token.
  • e. gl supports --license option

2. Changed

  • a. New service system log format. System logs are harmonized in a jsonl format.

    • Impacted services gl, nats2log, nats2file and tokencounter
    • Impacted files /var/log/supervisar/*.log
    • (Main service orchestrator still on non-jsonl system log format)
  • b. Config file json structure changed.

    • Impacted services app/conf/gl_config.json, app/conf/nats2log_config.json, app/conf/nats2file_config.json and app/conf/tokencounter_config.json
    • All config files have a version field.
    • verbose and debug replaced with log_level
    • Last format v0.91.1 still supported.
  • c. nats2log will not be running without relevant env variables (disabled mode).

    • No user impact but main service orchestrator log with show service as failed. Message to be fixed in future update.

3. Fixed

  • a. Container running without env variable for nats token defined could on rare occasions generate a nats token that was rejected by the services.

[v0.91.1] - 2024-01-15

Release notes

1. Added

  • a. Securing nats-server
    • Mandatory use of token for communication. Container uses $NATS_TOKEN environment variable by default.
    • Configuration files: /app/conf/gl_config.json, /app/conf/nats2log_config.json, /app/conf/nats2file_config.json, /app/conf/tokencounter_config.json and /app/conf/nats-server.conf
  • b. tokenizer example python processor
  • c. contentfilter example python processor
  • d. regex example go processor

2. Changed

  • a. All custom processors have a Dockerfile and better documentation on GitHub

3. Fixed

  • a. Stability improvements to nats2log process function.

[v0.90.1] - 2023-12-28

Release notes

1. Added

  • a. tokencounter standard library processor supports specifying search pattern per router path

    • default pattern supported
  • b. nats-server.conf added

    • /app/conf container folder
  • c. Retry parameters added to nats2log configuration

    • retries and retry_delay_milliseconds

2. Changed

  • a. tokencounter standard library processor uses full search path for patterns
    • Example inbound_payload.usage.prompt_tokens replaces usage.prompt_tokens

3. Fixed

  • a. gecholog outbound url last / issue fixed

[v0.89.1] - 2023-11-28

Release notes

1. Added

  • a. Support for environment variables at container deployment.

    • Implemented support for passing secrets like API keys and shared secrets through environment variables in container deployments. This enhancement eliminates the necessity of storing secrets in config files and enables integration with cloud key vaults in enterprise systems like k8s and other managed container services.
    • Config files that supports environment variables: /app/conf/gl_config.json /app/conf/nats2log_config.json /app/conf/nats2file_config.json /app/conf/tokencounter_config.json.
  • b. A new Standard Library processor: nats2log

    • nats2log will be the new standard library processor to push logs to 3rd party systems such as file store or via rest api to log store. nats2log will support the following write methods file_writer rest_api_writer elastic_writer azure_log_analytics_writer.
    • nats2file is just nats2log configured as file_writer.
  • c. Outbound tls support.

    • Enhanced certificate configuration options including system certificates, custom certificate files, and an 'insecure' mode for development environments.
    • Scope: gl nats2log.
  • d. A public .go processor example.

    • Short sample code in golang for a custom processor. Code published on github.

2. Changed

  • a. nats2elastic depreciated.

    • Replace by more versatile nats2log.
  • b. Structure of config files to support new features.

    • Impacted files /app/conf/gl_config.json /app/conf/nats2log_config.json /app/conf/nats2file_config.json.
  • c. docker-compose.yml for bundle gechologl-ek-dev.

    • Now use environment variables for quicker and easier first deployment.
  • d. How misconfigured routers in /app/conf/gl_config.json are treated.

    • gl will not stop. Router will just be ignored.
  • e. Docs site updated to reflect these changes.

3. Fixed

  • a. Bug fixes and performance improvements.

[v0.88.1] - 2023-11-15

First release.