Conversation
|
Warning Rate limit exceeded@akshaydeo has exceeded the limit for the number of commits or files that can be reviewed per hour. Please wait 10 minutes and 42 seconds before requesting another review. ⌛ How to resolve this issue?After the wait time has elapsed, a review can be triggered using the We recommend that you space out your commits to avoid hitting the rate limit. 🚦 How do rate limits work?CodeRabbit enforces hourly rate limits for each developer per organization. Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout. Please see our FAQ for further information. 📒 Files selected for processing (7)
Summary by CodeRabbit
Summary by CodeRabbit
WalkthroughThe changes update documentation and code to streamline configuration by shifting from command-line flags and Docker build arguments to runtime environment variables and config file mounting. The Dockerfile and related instructions were simplified, and plugin configuration now relies on environment variables instead of flags, affecting both documentation and application initialization. Changes
Sequence Diagram(s)sequenceDiagram
participant User
participant DockerContainer
participant App
participant OS
User->>DockerContainer: docker run -v config.json -e VARS
DockerContainer->>App: Start with mounted config and env vars
App->>OS: Read env vars (e.g., MAXIM_LOG_REPO_ID)
App->>App: Initialize plugins using env vars
App-->>User: Application runs with provided configuration
Suggested reviewers
Poem
✨ Finishing Touches
🧪 Generate Unit Tests
🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
SupportNeed help? Create a ticket on our support page for assistance with any issues or questions. Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. CodeRabbit Commands (Invoked using PR comments)
Other keywords and placeholders
CodeRabbit Configuration File (
|
There was a problem hiding this comment.
Actionable comments posted: 6
📜 Review details
Configuration used: CodeRabbit UI
Review profile: ASSERTIVE
Plan: Pro
📒 Files selected for processing (6)
README.md(1 hunks)docs/http-transport-api.md(2 hunks)plugins/maxim/README.md(1 hunks)transports/Dockerfile(1 hunks)transports/README.md(1 hunks)transports/bifrost-http/main.go(2 hunks)
🧰 Additional context used
🪛 LanguageTool
plugins/maxim/README.md
[uncategorized] ~43-~43: The abbreviation “e.g.” (= for example) requires two periods.
Context: ... Use include maxim in --plugins eg. `bifrost-http -config config.json -env ...
(E_G)
transports/README.md
[uncategorized] ~114-~114: Loose punctuation mark.
Context: ...riables for configuration: - APP_PORT: Server port (default: 8080) - `APP_POOL...
(UNLIKELY_OPENING_PUNCTUATION)
🪛 markdownlint-cli2 (0.17.2)
plugins/maxim/README.md
40-40: Ordered list item prefix
Expected: 1; Actual: 2; Style: 1/1/1
(MD029, ol-prefix)
transports/README.md
86-86: Ordered list item prefix
Expected: 1; Actual: 3; Style: 1/1/1
(MD029, ol-prefix)
🪛 Checkov (3.2.334)
transports/Dockerfile
[LOW] 1-47: Ensure that HEALTHCHECK instructions have been added to container images
(CKV_DOCKER_2)
🪛 Hadolint (2.12.0)
transports/Dockerfile
[warning] 6-6: Pin versions in apk add. Instead of apk add <package> use apk add <package>=<version>
(DL3018)
[info] 15-15: Note that A && B || C is not if-then-else. C may run when A is true.
(SC2015)
🔇 Additional comments (4)
README.md (1)
71-84: LGTM: Docker setup successfully simplifiedThe changes properly implement the shift from build-time to runtime configuration:
- Simplified build command removes build arguments
- Runtime configuration through environment variables and volume mounting
- Clear documentation of requirements
This follows container best practices and improves flexibility.
docs/http-transport-api.md (1)
722-755: Excellent documentation update for environment variable configurationThe changes properly document the shift from command-line flags to environment variables:
- Clear examples of environment variable usage
- Dedicated section for plugin-specific environment variables
- Maintains consistency with the code changes
This will help users migrate from the old flag-based approach.
transports/bifrost-http/main.go (1)
162-171: Clean implementation of environment variable migrationThe changes successfully remove the command-line flag dependency:
- Direct use of
os.Getenv("MAXIM_LOG_REPO_ID")instead of flag variable- Maintains proper error handling for missing environment variables
- Consistent with other environment variable usage in the codebase
This is a breaking change but aligns with the PR objectives to standardize on environment variable configuration.
transports/Dockerfile (1)
32-35: Non-root user creation and permission setup looks solid
Using a dedicatedappuserand setting correct ownership of/appenhances container security.
2b7a86a to
310674b
Compare
There was a problem hiding this comment.
Actionable comments posted: 11
🔭 Outside diff range comments (1)
transports/README.md (1)
198-202: Update Plugin Support to useAPP_PLUGINSenv var.The section still refers to the old
-pluginsflag; plugin configuration is now driven by theAPP_PLUGINSenvironment variable. Also fix the “to attached” → “to attach” grammar.Apply this diff:
- You can explore the [available plugins](https://github.com/maximhq/bifrost/tree/main/plugins). And to attached these plugins to your HTTP transport, just pass the flag `-plugins`. - For eg. `-plugins maxim` + You can explore the [available plugins](https://github.com/maximhq/bifrost/tree/main/plugins). To attach these plugins to your HTTP transport, set the `APP_PLUGINS` environment variable: + + ```bash + export APP_PLUGINS=maxim + ```
📜 Review details
Configuration used: CodeRabbit UI
Review profile: ASSERTIVE
Plan: Pro
📒 Files selected for processing (6)
README.md(4 hunks)docs/http-transport-api.md(5 hunks)plugins/maxim/README.md(2 hunks)transports/Dockerfile(1 hunks)transports/README.md(4 hunks)transports/bifrost-http/main.go(2 hunks)
🧰 Additional context used
🧠 Learnings (1)
transports/Dockerfile (1)
Learnt from: Pratham-Mishra04
PR: maximhq/bifrost#97
File: transports/Dockerfile:37-42
Timestamp: 2025-06-19T09:06:25.733Z
Learning: In Docker configurations for this project, plugin-specific environment variables (like MAXIM_LOG_REPO_ID) should not be included in the Dockerfile's ENV section. The architectural goal is to keep Docker images plugin-agnostic and externalize all plugin configuration to runtime via docker run -e flags, rather than baking plugin config into the image.
🪛 LanguageTool
plugins/maxim/README.md
[grammar] ~22-~22: The word “plugin” is a noun. The verb is spelled with a white space.
Context: ...il, err } 3. Pass to plugin to bifrost go client, err := bi...
(NOUN_VERB_CONFUSION)
[uncategorized] ~43-~43: The abbreviation “e.g.” (= for example) requires two periods.
Context: ... Use include maxim in --plugins eg. `bifrost-http -config config.json -env ...
(E_G)
transports/README.md
[uncategorized] ~114-~114: Loose punctuation mark.
Context: ...riables for configuration: - APP_PORT: Server port (default: 8080) - `APP_POOL...
(UNLIKELY_OPENING_PUNCTUATION)
[grammar] ~198-~198: The base form is expected after “to”.
Context: ...maximhq/bifrost/tree/main/plugins). And to attached these plugins to your HTTP transport, j...
(IN_TO_VBD)
🪛 Checkov (3.2.334)
transports/Dockerfile
[LOW] 1-44: Ensure that HEALTHCHECK instructions have been added to container images
(CKV_DOCKER_2)
🪛 Hadolint (2.12.0)
transports/Dockerfile
[warning] 6-6: Pin versions in apk add. Instead of apk add <package> use apk add <package>=<version>
(DL3018)
[info] 15-15: Note that A && B || C is not if-then-else. C may run when A is true.
(SC2015)
🔇 Additional comments (13)
docs/http-transport-api.md (3)
39-79: JSON examples look comprehensive and clear
The updated chat completions examples now includetoolsandfallbacksarrays, along with expanded response fields (extra_fields,latency, etc.). The indentation and syntax are correct.
722-736: Configuration flags section updated correctly
The-maxim-log-repo-idflag has been removed and replaced by environment variable configuration at runtime. The table under “Configuration Flags” accurately reflects the available flags.
748-756: Environment Variables for Plugins table is accurate
ListingMAXIM_LOG_REPO_IDunder plugin-specific environment variables aligns with the code change inmain.go. The earlier Authentication section already coversMAXIM_API_KEY.transports/bifrost-http/main.go (2)
159-167: Plugin initialization via environment variables is correct
Replacing the-maxim-log-repo-idflag withos.Getenv("MAXIM_LOG_REPO_ID")and keeping the API key check aligns with container best practices. No further changes needed here.
168-178: Error handling for plugin setup is clear
The code warns and continues if eitherMAXIM_LOG_REPO_IDorMAXIM_API_KEYis missing. This non-fatal approach prevents startup failures when the plugin list doesn’t include “maxim.”README.md (3)
71-73: Quickstart Docker build simplified correctly
The build command now uses a singledocker build -t bifrost-transports .which matches the updated Dockerfile.
77-82: Docker run example is clear
Mounting the config and passing-e OPENAI_API_KEY/-e ANTHROPIC_API_KEYflags aligns with the new runtime configuration approach.
183-184: Table of Contents anchors updated
Adding anchors fort3.mediumandt3.xlargeimproves navigation. The link targets match the section headings.transports/README.md (5)
76-78: Approve: Download Dockerfile step updated correctly.The snippet now uses the raw GitHub URL and clearly shows how to fetch the Dockerfile at runtime, aligning with the refactor to move config out of build.
82-84: Approve: Simplified Docker build command.The build step is concise and removes unnecessary build arguments, matching the updated Dockerfile.
89-93: Approve: Updated Docker run with volume mount for config file.The runtime command now properly mounts the local
config.jsonand relies on environment variables, fitting the new container best practices.
104-109: Approve: COHERE API key example aligns with new pattern.The example demonstrates setting and passing a single environment variable for the placeholder in
config.example.json.
112-118: Approve: Runtime environment variables section added.The newly documented
APP_*variables cover port, pool size, request dropping, and plugin selection. This matches the refactor’s intent to externalize config.
310674b to
87dcf80
Compare
There was a problem hiding this comment.
Actionable comments posted: 10
📜 Review details
Configuration used: CodeRabbit UI
Review profile: ASSERTIVE
Plan: Pro
📒 Files selected for processing (7)
README.md(4 hunks)core/schemas/meta/azure.go(1 hunks)docs/http-transport-api.md(5 hunks)plugins/maxim/README.md(3 hunks)transports/Dockerfile(1 hunks)transports/README.md(4 hunks)transports/bifrost-http/main.go(2 hunks)
🧰 Additional context used
🧠 Learnings (1)
transports/Dockerfile (1)
Learnt from: Pratham-Mishra04
PR: maximhq/bifrost#97
File: transports/Dockerfile:37-42
Timestamp: 2025-06-19T09:06:25.733Z
Learning: In Docker configurations for this project, plugin-specific environment variables (like MAXIM_LOG_REPO_ID) should not be included in the Dockerfile's ENV section. The architectural goal is to keep Docker images plugin-agnostic and externalize all plugin configuration to runtime via docker run -e flags, rather than baking plugin config into the image.
🪛 LanguageTool
plugins/maxim/README.md
[grammar] ~22-~22: The word “plugin” is a noun. The verb is spelled with a white space.
Context: ...il, err } 3. Pass to plugin to bifrost go client, err := bi...
(NOUN_VERB_CONFUSION)
transports/README.md
[uncategorized] ~114-~114: Loose punctuation mark.
Context: ...riables for configuration: - APP_PORT: Server port (default: 8080) - `APP_POOL...
(UNLIKELY_OPENING_PUNCTUATION)
[grammar] ~198-~198: The base form is expected after “to”.
Context: ...maximhq/bifrost/tree/main/plugins). And to attached these plugins to your HTTP transport, j...
(IN_TO_VBD)
[style] ~199-~199: The phrase ‘for e.g.’ is an tautology (‘e.g.’ means ‘for example’). Consider using just “e.g.” or “for example”.
Context: ...nsport, just pass the flag -plugins. For e.g. -plugins maxim Note: Please check pl...
(FOR_EG_REDUNDANCY)
🪛 Checkov (3.2.334)
transports/Dockerfile
[LOW] 1-50: Ensure that HEALTHCHECK instructions have been added to container images
(CKV_DOCKER_2)
🪛 Hadolint (2.12.0)
transports/Dockerfile
[warning] 6-6: Pin versions in apk add. Instead of apk add <package> use apk add <package>=<version>
(DL3018)
[warning] 21-21: Quote this to prevent word splitting.
(SC2046)
🔇 Additional comments (23)
core/schemas/meta/azure.go (1)
20-23: Typo fix: Standardize Latin abbreviation
Changed "Eg." to "E.g." for consistency with standard English usage of e.g.transports/bifrost-http/main.go (1)
162-165: Env-var fallback for repo ID
Replaced the removed CLI flag withMAXIM_LOG_REPO_IDenvironment variable and emit a warning if unset, aligning with container best practices.README.md (2)
71-72: Simplified Docker build command
Updated to a minimaldocker build -t bifrost-transports .matching the refactored Dockerfile and removing obsolete build arguments.
77-84: Verify ENTRYPOINT uses mounted config
Ensure the image’s ENTRYPOINT or CMD defaults to using/app/config/config.jsonfor the-configflag, so users aren’t required to pass-configexplicitly in thedocker runcommand.Can you confirm that the container’s startup command reads the mounted
/app/config/config.jsonautomatically?docs/http-transport-api.md (15)
7-9: Consistent code fence formatting
The Base URL code block is now uniformly indented with other examples.
39-79: Chat completions request example
The JSON payload now includes thetoolsarray andfallbacksas intended; indentation and structure align with the OpenAPI spec.
83-109: Structured content example
The mixed text and image array undercontentis formatted correctly and demonstrates the structured content feature clearly.
113-154: Chat completions response example
Expanded response fields (model,created,usage,extra_fields) match the updated implementation.
164-180: Text completions request example
Theparamsandfallbacksblocks are properly documented and formatted.
184-216: Text completions response example
Response structure aligns with the spec, includingextra_fieldsfor provider metadata.
476-486: Simple chat curl example
cURL invocation is clear and consistent with other examples.
490-502: Chat with images curl example
Example demonstrates image handling correctly and follows formatting conventions.
509-539: Chat with tools curl example
Tool function definitions andtool_choiceare accurately illustrated.
544-554: Text completion curl example
Example is concise and mirrors the spec for text completions.
560-573: Fallbacks usage example
Multiple fallback providers are demonstrated correctly.
579-611: Python integration example
Code snippet is well-formatted and includes necessary import and function usage.
616-651: Node.js integration example
Proper error handling added; the structure is consistent with other language examples.
656-718: Go integration example
Go snippet is formatted correctly; struct definitions and request logic are clear.
722-735: Configuration example updated
The run command correctly shows environment variable usage for plugin configuration, removing the deprecated flag.transports/Dockerfile (4)
2-2: Builder base image tag
Usinggolang:1.24-alpineis appropriate for a slim build environment. Consider pinning to a digest for immutability if needed.
34-38: Runtime user setup
Copying the binary, creating theappuser, and setting ownership are correct to enforce non-root execution.
41-45: Default environment variables
Providing sensible defaults forAPP_PORT,APP_POOL_SIZE, etc., aligns with the refactoring goals.
50-50: Entrypoint with inline expansion
Usingsh -cto expand environment variables in the entrypoint is clear and concise.
87dcf80 to
552aca5
Compare
There was a problem hiding this comment.
Actionable comments posted: 2
♻️ Duplicate comments (4)
transports/bifrost-http/main.go (1)
162-171: Consider caching environment variable lookups.The current implementation calls
os.Getenvmultiple times for the same variables. Consider caching these values to improve readability and avoid redundant calls.- if os.Getenv("MAXIM_LOG_REPO_ID") == "" { + repoID := os.Getenv("MAXIM_LOG_REPO_ID") + apiKey := os.Getenv("MAXIM_API_KEY") + if repoID == "" { log.Println("warning: maxim log repo id is required to initialize maxim plugin") continue } - if os.Getenv("MAXIM_API_KEY") == "" { + if apiKey == "" { log.Println("warning: maxim api key is required in environment variable MAXIM_API_KEY to initialize maxim plugin") continue } - maximPlugin, err := maxim.NewMaximLoggerPlugin(os.Getenv("MAXIM_API_KEY"), os.Getenv("MAXIM_LOG_REPO_ID")) + maximPlugin, err := maxim.NewMaximLoggerPlugin(apiKey, repoID)plugins/maxim/README.md (1)
22-22: Fix grammatical error in step description.The phrase "Pass to plugin to bifrost" contains a grammatical error.
-3. Pass to plugin to bifrost +3. Pass the plugin to Bifrosttransports/README.md (2)
192-192: Suggest nitpick: remove tautology in Prometheus example
Replace “For e.g.-prometheus-labels team-id,task-id,location” with “E.g.-prometheus-labels team-id,task-id,location” for clarity.- For e.g. `-prometheus-labels team-id,task-id,location` + E.g. `-prometheus-labels team-id,task-id,location`
197-200: Suggest nitpick: fix verb form and tautology in Plugin Support
Correct the infinitive and adjust the example phrasing.- You can explore the [available plugins](https://github.com/maximhq/bifrost/tree/main/plugins). And to attached these plugins to your HTTP transport, just pass the flag `-plugins`. - For e.g. `-plugins maxim` + You can explore the [available plugins](https://github.com/maximhq/bifrost/tree/main/plugins). And to attach these plugins to your HTTP transport, just pass the flag `-plugins`. + E.g. `-plugins maxim`
📜 Review details
Configuration used: CodeRabbit UI
Review profile: ASSERTIVE
Plan: Pro
📒 Files selected for processing (7)
README.md(4 hunks)core/schemas/meta/azure.go(1 hunks)docs/http-transport-api.md(5 hunks)plugins/maxim/README.md(3 hunks)transports/Dockerfile(1 hunks)transports/README.md(4 hunks)transports/bifrost-http/main.go(2 hunks)
🧰 Additional context used
🧠 Learnings (1)
transports/Dockerfile (2)
Learnt from: Pratham-Mishra04
PR: maximhq/bifrost#97
File: transports/Dockerfile:37-42
Timestamp: 2025-06-19T09:06:25.733Z
Learning: In Docker configurations for this project, plugin-specific environment variables (like MAXIM_LOG_REPO_ID) should not be included in the Dockerfile's ENV section. The architectural goal is to keep Docker images plugin-agnostic and externalize all plugin configuration to runtime via docker run -e flags, rather than baking plugin config into the image.
Learnt from: Pratham-Mishra04
PR: maximhq/bifrost#97
File: transports/Dockerfile:21-24
Timestamp: 2025-06-19T12:17:31.188Z
Learning: In transports/Dockerfile, the user prefers to keep the binary move and upx compression steps in separate RUN commands for better Docker layer caching, rather than combining them to reduce image layers.
🪛 LanguageTool
plugins/maxim/README.md
[grammar] ~22-~22: The word “plugin” is a noun. The verb is spelled with a white space.
Context: ...il, err } 3. Pass to plugin to bifrost go client, err := bi...
(NOUN_VERB_CONFUSION)
transports/README.md
[uncategorized] ~114-~114: Loose punctuation mark.
Context: ...riables for configuration: - APP_PORT: Server port (default: 8080) - `APP_POOL...
(UNLIKELY_OPENING_PUNCTUATION)
[grammar] ~198-~198: The base form is expected after “to”.
Context: ...maximhq/bifrost/tree/main/plugins). And to attached these plugins to your HTTP transport, j...
(IN_TO_VBD)
[style] ~199-~199: The phrase ‘for e.g.’ is an tautology (‘e.g.’ means ‘for example’). Consider using just “e.g.” or “for example”.
Context: ...nsport, just pass the flag -plugins. For e.g. -plugins maxim Note: Please check pl...
(FOR_EG_REDUNDANCY)
🪛 Checkov (3.2.334)
transports/Dockerfile
[LOW] 1-50: Ensure that HEALTHCHECK instructions have been added to container images
(CKV_DOCKER_2)
🪛 Hadolint (2.12.0)
transports/Dockerfile
[warning] 6-6: Pin versions in apk add. Instead of apk add <package> use apk add <package>=<version>
(DL3018)
[warning] 21-21: Quote this to prevent word splitting.
(SC2046)
🔇 Additional comments (19)
core/schemas/meta/azure.go (1)
22-22: LGTM! Good grammar correction.The standardization of "Eg." to "E.g." improves documentation consistency across the codebase.
transports/Dockerfile (2)
34-50: Docker refactoring aligns well with PR objectives.The simplified approach using runtime environment variables and config mounting instead of build-time arguments successfully achieves the goal of making Docker images plugin-agnostic. The addition of a non-root user improves security.
2-2: Verify Go 1.24 availability.The Dockerfile uses
golang:1.24-alpinewhich may not be available yet since Go 1.24 is still in development. Consider using a stable version likegolang:1.23-alpine.What is the latest stable version of Go and is Go 1.24 officially released?transports/bifrost-http/main.go (1)
162-162: Successful migration from command-line flag to environment variable.The removal of the
maximLogRepoIdglobal variable and-maxim-log-repo-idflag in favor of readingMAXIM_LOG_REPO_IDfrom the environment aligns perfectly with the PR objectives to externalize plugin configuration.plugins/maxim/README.md (1)
47-61: Documentation updates align well with Docker refactoring.The simplified Docker build command and updated run instructions with environment variables and config mounting properly reflect the new containerization approach.
README.md (2)
71-84: Excellent documentation of the simplified Docker approach.The updated Docker instructions clearly demonstrate the new approach:
- Simplified build command without build arguments
- Runtime config mounting via volumes
- Environment variable passing at runtime
This perfectly aligns with the PR objectives to externalize configuration and make Docker images more flexible.
183-184: Good improvement to table of contents structure.The addition of proper anchors for benchmark test environments improves document navigation.
transports/README.md (5)
76-78: Approve: Dockerfile download snippet is clear and correct
Thecurl -L -o Dockerfile …command concisely shows how to fetch the remote Dockerfile at runtime.
82-84: Approve: Simplified Docker build command
Replacing explicit build arguments with a straightforwarddocker build -t bifrost-transports .aligns with best practices for flexibility.
89-93: Approve: Updated Docker run invocation
Mounting the config file and passing environment variables via-eflags is clearly demonstrated. Consider adding--rmif you want containers to be removed on exit, but this is optional.
104-109: Approve: Cohere example usage
Demonstrates setting a specific API key placeholder and volume mount clearly.
112-118: Approve: Runtime environment variables list
The new bullet list ofAPP_PORT,APP_POOL_SIZE,APP_DROP_EXCESS_REQUESTS, andAPP_PLUGINSis accurate and easy to follow.docs/http-transport-api.md (7)
39-79: Approve: Enhanced Chat Completions request example
The JSON example now includes structuredtoolsandfallbacksarrays, providing a more complete and realistic usage scenario. Indentation is consistent.
83-109: Approve: Structured Content request example
Formatting and content accurately demonstrate text/image blocks in a single request.
113-154: Approve: Expanded Chat Completions response example
Adding fields likemodel,created,usage, andextra_fieldsimproves clarity on what clients can expect.
164-182: Approve: Text Completions request example
The addition of thefallbacksarray and consistent formatting align with the upstream Chat example.
185-216: Approve: Text Completions response example
Full response breakdown withextra_fieldsand usage metrics makes this a thorough reference.
724-735: Approve: Plugin configuration via environment variable example
The new shell snippet correctly shows exportingMAXIM_LOG_REPO_IDand running the transport without the deprecated flag.
748-755: Approve: Environment Variables for Plugins table
DocumentingMAXIM_LOG_REPO_IDunder an optional section is clear and consistent with the code changes.
552aca5 to
22917e2
Compare
Merge activity
|
There was a problem hiding this comment.
Bug: Dockerfile Fails When Source Path Mismatched
The Dockerfile's mv command uses an incorrect source path for the Go binary. When building natively (e.g., linux/amd64 on a linux/amd64 builder), go install places binaries directly in $(go env GOPATH)/bin/ rather than in a linux_amd64 subdirectory. This incorrect path assumption, which is only relevant for cross-compilation, causes the mv command to fail and the Docker build to break.
transports/Dockerfile#L20-L21
Lines 20 to 21 in 22917e2
Was this report helpful? Give feedback by reacting with 👍 or 👎
… variables (#97) # Improved Docker Configuration and Plugin Management This PR enhances the Docker setup and plugin configuration approach: - Simplified Docker build and run commands by moving configuration to runtime - Added volume mounting for config files instead of baking them into the image - Moved plugin-specific configuration from command-line flags to environment variables - Updated Dockerfile for better security and smaller image size: - Added non-root user for container execution - Optimized build with fewer layers and smaller footprint - Added UPX compression for smaller binary size - Improved Alpine base image configuration - Updated documentation in README files and HTTP transport API docs to reflect these changes - Removed hardcoded `-maxim-log-repo-id` flag in favor of the `MAXIM_LOG_REPO_ID` environment variable These changes make the Docker setup more flexible and follow container best practices by keeping configuration external to the image.

Improved Docker Configuration and Plugin Management
This PR enhances the Docker setup and plugin configuration approach:
Simplified Docker build and run commands by moving configuration to runtime
Added volume mounting for config files instead of baking them into the image
Moved plugin-specific configuration from command-line flags to environment variables
Updated Dockerfile for better security and smaller image size:
Updated documentation in README files and HTTP transport API docs to reflect these changes
Removed hardcoded
-maxim-log-repo-idflag in favor of theMAXIM_LOG_REPO_IDenvironment variableThese changes make the Docker setup more flexible and follow container best practices by keeping configuration external to the image.