-
Notifications
You must be signed in to change notification settings - Fork 777
v1.5.16 #4518
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
Open
akshaydeo
wants to merge
58
commits into
main
Choose a base branch
from
dev
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
v1.5.16 #4518
Changes from 55 commits
Commits
Show all changes
58 commits
Select commit
Hold shift + click to select a range
839f16a
fix: fixes redaction setting in plugins config (#4486)
roroghost17 3caf63d
feat: adds scripts to seed and delete bifrost and litellm entities
sammaji 004cc14
feat: adds scripts to migrate litellm entities to bifrost entities
sammaji 0387f60
feat: adds conformance tests
sammaji 2278c80
fix: fix 403 errors for list models request
roroghost17 e25251f
chore: updated the default network config timings
roroghost17 a67098f
fix: helm release tag to the correct commit
BearTS 4bfc551
[docs] : docs for source of truth
Madhuvod 010c702
fixes canonical_model_view migration
akshaydeo fc0c813
docs: adds docs for Claude Desktop with inference provider
roroghost17 ea4fc47
feat: adds group traces by sessions to config json and helm
roroghost17 492c647
fix: model id in bedrock batch request
f66590d
fix: resolve model names for feature gating
a3e1992
fix: nova bedrock fixes
d06b94d
fix: bedrock signauture fix for minimax
bbfca36
fix: handle url encoded file name in url params for single file servi…
danpiths c238014
refactor: skills repo ui refactor
impoiler 3052f96
feat: ability to select timezone in date selectors
impoiler 87b35f1
chore: UI dependency updates for npn audit
impoiler bc1e8b0
feat: add Virtual Key Rankings tab in dashboard
impoiler fcd444f
fix: do not clear selection on virtual keys table on filter or search
impoiler 99bd3c5
fix: workspace/model pages style fixes
impoiler abe5786
feat: dashboard export endpoint
impoiler 7bc8bb1
fix: Seconds to minutes UI bug for provider network form
impoiler bb05be8
feat: allow toggling additional columns in logs and MCP logs tables
impoiler 26ac93d
fix: return 409 for Conflict errors
impoiler 2f96e3a
feat: show inline error for 409 errors
impoiler ded002a
fix: adds explicit content type header for container delete
sammaji 79c6471
fix: e2e ui tests for providers management
sammaji ec3d03c
docs: evaluation mode in schemas for guardrails
021671e
fix: redacts emails from logs and handle wildcard provider in vk
sammaji 5dee81f
chore: rename migration folder to migration-cli
sammaji fe688ab
feat: adds npx script for migration cli
sammaji 5c0f07c
feat: adds github action scripts for migration cli
sammaji 62d3865
fix: run governance on cc oauth requests when vk is present
a9e5ebf
fix: run governance on cc oauth requests when vk is present (#4557)
akshaydeo a3bbb4d
fix: double message start event in anthropic stream closes #4556
a014020
fix: double message start event in anthropic stream closes #4556 (#4559)
akshaydeo 2ebd0ab
fix: e2e ui tests for model limts
sammaji bd8e1d7
fix: e2e ui tests for mcp registry
sammaji 65fa2a2
fix: remove skip key selection check from governance pre llm hook
869c9c9
fix: remove skip key selection check from governance pre llm hook (#4…
akshaydeo 971d4c6
docs: evaluation mode in schemas for guardrails (#4337)
akshaydeo 374d6f7
chore: adds docs for litellm-to-bifrost migration script
sammaji c57f93e
fix: redacts emails from logs and handle wildcard provider in vk (#4550)
akshaydeo ce3a238
chore: adds docs for litellm-to-bifrost migration script (#4488)
akshaydeo e213546
chore: rename migration folder to migration-cli (#4551)
akshaydeo 113f854
feat: adds npx script for migration cli (#4552)
akshaydeo cf58ea4
feat: adds github action scripts for migration cli (#4553)
akshaydeo 6060b08
feat: adds business unit & user names & ids to tracing
roroghost17 5e7460b
feat: adds business unit & user names & ids to tracing (#4562)
akshaydeo 8df5809
fix: adds explicit content type header for container delete (#4490)
akshaydeo fcb3939
fix: e2e ui tests for providers management (#4517)
akshaydeo dc7206e
fix: e2e ui tests for model limts (#4519)
akshaydeo e6b5301
fix: e2e ui tests for mcp registry (#4558)
akshaydeo 24fe11f
add vkey cost compute test cases (#4561)
akshaydeo 2cd95b5
dependabot fixes (#4570)
akshaydeo 1dbcefc
version cut (#4571)
akshaydeo File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,120 @@ | ||
| name: Release Migration CLI | ||
|
|
||
| on: | ||
| push: | ||
| branches: | ||
| - main | ||
|
|
||
| # Prevent concurrent runs | ||
| concurrency: | ||
| group: release-bifrost-migration-cli | ||
| cancel-in-progress: false | ||
|
|
||
| permissions: | ||
| contents: read | ||
|
|
||
| jobs: | ||
| check-version: | ||
| runs-on: ubuntu-latest | ||
| outputs: | ||
| version: ${{ steps.get-version.outputs.version }} | ||
| tag_exists: ${{ steps.check-tag.outputs.exists }} | ||
| steps: | ||
| - name: Harden Runner | ||
| uses: step-security/harden-runner@fe104658747b27e96e4f7e80cd0a94068e53901d # v2.16.1 | ||
| with: | ||
| egress-policy: block | ||
| allowed-endpoints: > | ||
| github.com:443 | ||
|
|
||
| - name: Checkout repository | ||
| uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 | ||
| with: | ||
| fetch-depth: 0 | ||
| fetch-tags: true | ||
| persist-credentials: false | ||
|
|
||
| - name: Get version from file | ||
| id: get-version | ||
| run: echo "version=$(cat scripts/bifrost-migration-cli/version)" >> "$GITHUB_OUTPUT" | ||
|
|
||
| - name: Check if tag exists | ||
| id: check-tag | ||
| env: | ||
| VERSION: ${{ steps.get-version.outputs.version }} | ||
| run: | | ||
| if git rev-parse "bifrost-migration-cli/v${VERSION}" >/dev/null 2>&1; then | ||
| echo "exists=true" >> "$GITHUB_OUTPUT" | ||
| else | ||
| echo "exists=false" >> "$GITHUB_OUTPUT" | ||
| fi | ||
|
|
||
| test-bifrost-migration-cli: | ||
| needs: [check-version] | ||
| if: needs.check-version.outputs.tag_exists == 'false' | ||
| runs-on: ubuntu-latest | ||
| permissions: | ||
| contents: read | ||
| steps: | ||
| - name: Harden the runner (Audit all outbound calls) | ||
| uses: step-security/harden-runner@fe104658747b27e96e4f7e80cd0a94068e53901d # v2.16.1 | ||
| with: | ||
| egress-policy: audit | ||
|
|
||
| - name: Checkout repository | ||
| uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 | ||
| with: | ||
| fetch-depth: 0 | ||
| fetch-tags: true | ||
|
|
||
| - name: Set up Go | ||
| uses: actions/setup-go@4b73464bb391d4059bd26b0524d20df3927bd417 # v6.3.0 | ||
| with: | ||
| go-version: "1.26.4" | ||
|
|
||
| - name: Run bifrost-migration-cli tests | ||
| working-directory: scripts/bifrost-migration-cli | ||
| env: | ||
| GOWORK: "off" | ||
| run: go test ./... | ||
|
|
||
| release-bifrost-migration-cli: | ||
| needs: [check-version, test-bifrost-migration-cli] | ||
| if: needs.check-version.outputs.tag_exists == 'false' | ||
| runs-on: ubuntu-latest | ||
| permissions: | ||
| contents: write | ||
| outputs: | ||
| success: ${{ steps.release.outputs.success }} | ||
| steps: | ||
| - name: Harden the runner (Audit all outbound calls) | ||
| uses: step-security/harden-runner@fe104658747b27e96e4f7e80cd0a94068e53901d # v2.16.1 | ||
| with: | ||
| egress-policy: audit | ||
|
|
||
| - name: Checkout repository | ||
| uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 | ||
| with: | ||
| fetch-depth: 0 | ||
| fetch-tags: true | ||
| token: ${{ secrets.GH_TOKEN }} | ||
|
|
||
| - name: Set up Go | ||
| uses: actions/setup-go@4b73464bb391d4059bd26b0524d20df3927bd417 # v6.3.0 | ||
| with: | ||
| go-version: "1.26.4" | ||
|
|
||
| - name: Configure Git | ||
| run: | | ||
| git config user.name "GitHub Actions Bot" | ||
| git config user.email "github-actions[bot]@users.noreply.github.com" | ||
|
|
||
| - name: Release Migration CLI | ||
| id: release | ||
| env: | ||
| GH_TOKEN: ${{ secrets.GH_TOKEN }} | ||
| R2_ENDPOINT: ${{ secrets.R2_ENDPOINT }} | ||
| R2_ACCESS_KEY_ID: ${{ secrets.R2_ACCESS_KEY_ID }} | ||
| R2_SECRET_ACCESS_KEY: ${{ secrets.R2_SECRET_ACCESS_KEY }} | ||
| R2_BUCKET: ${{ secrets.R2_BUCKET }} | ||
| run: ./.github/workflows/scripts/release-bifrost-migration-cli.sh "${{ needs.check-version.outputs.version }}" | ||
59 changes: 59 additions & 0 deletions
59
.github/workflows/scripts/build-bifrost-migration-cli-executables.sh
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,59 @@ | ||
| #!/usr/bin/env bash | ||
| set -euo pipefail | ||
|
|
||
| # Cross-compile bifrost-migration-cli binaries for multiple platforms | ||
| # Usage: ./build-bifrost-migration-cli-executables.sh <version> | ||
|
|
||
| if [[ -z "${1:-}" ]]; then | ||
| echo "Usage: $0 <version>" >&2 | ||
| exit 1 | ||
| fi | ||
| VERSION="$1" | ||
|
|
||
| echo "🔨 Building bifrost-migration-cli executables with version: $VERSION" | ||
|
|
||
| # Get the script directory and project root | ||
| SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" | ||
| PROJECT_ROOT="$(cd "$SCRIPT_DIR/../../.." && pwd)" | ||
|
|
||
| # Clean and create dist directory | ||
| rm -rf "$PROJECT_ROOT/dist" | ||
| mkdir -p "$PROJECT_ROOT/dist" | ||
|
|
||
| # Define platforms | ||
| platforms=( | ||
| "darwin/amd64" | ||
| "darwin/arm64" | ||
| "linux/amd64" | ||
| "linux/arm64" | ||
| "windows/amd64" | ||
| ) | ||
|
|
||
| MODULE_PATH="$PROJECT_ROOT/scripts/bifrost-migration-cli" | ||
| COMMIT="${GITHUB_SHA:-$(git rev-parse HEAD 2>/dev/null || echo 'unknown')}" | ||
|
|
||
| for platform in "${platforms[@]}"; do | ||
| IFS='/' read -r GOOS GOARCH <<< "$platform" | ||
|
|
||
| output_name="bifrost-migration-cli" | ||
| [[ "$GOOS" = "windows" ]] && output_name+='.exe' | ||
|
|
||
| echo "Building bifrost-migration-cli for $GOOS/$GOARCH..." | ||
| mkdir -p "$PROJECT_ROOT/dist/$GOOS/$GOARCH" | ||
|
|
||
| cd "$MODULE_PATH" | ||
|
|
||
| # bifrost-migration-cli has no CGO dependencies, so we can cross-compile without cross-compilers | ||
| env GOWORK=off CGO_ENABLED=0 GOOS="$GOOS" GOARCH="$GOARCH" \ | ||
| go build -trimpath \ | ||
| -ldflags "-s -w -buildid= -X main.version=v${VERSION} -X main.commit=${COMMIT}" \ | ||
| -o "$PROJECT_ROOT/dist/$GOOS/$GOARCH/$output_name" . | ||
|
|
||
| # Generate SHA-256 checksum for the binary | ||
| (cd "$PROJECT_ROOT/dist/$GOOS/$GOARCH" && shasum -a 256 "$output_name" > "$output_name.sha256") | ||
| echo " → checksum: $(cat "$PROJECT_ROOT/dist/$GOOS/$GOARCH/$output_name.sha256")" | ||
|
|
||
| cd "$PROJECT_ROOT" | ||
| done | ||
|
|
||
| echo "✅ All bifrost-migration-cli binaries built successfully" |
143 changes: 143 additions & 0 deletions
143
.github/workflows/scripts/release-bifrost-migration-cli.sh
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,143 @@ | ||
| #!/usr/bin/env bash | ||
| set -euo pipefail | ||
|
|
||
| # Release bifrost-migration-cli component | ||
| # Usage: ./release-bifrost-migration-cli.sh <version> | ||
|
|
||
| # Get the absolute path of the script directory | ||
| if command -v readlink >/dev/null 2>&1 && readlink -f "$0" >/dev/null 2>&1; then | ||
| SCRIPT_DIR="$(dirname "$(readlink -f "$0")")" | ||
| else | ||
| SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd -P)" | ||
| fi | ||
| REPO_ROOT="$(cd "$SCRIPT_DIR/../../.." && pwd -P)" | ||
|
|
||
| # Validate input argument | ||
| if [ "${1:-}" = "" ]; then | ||
| echo "Usage: $0 <version>" >&2 | ||
| exit 1 | ||
| fi | ||
|
|
||
| VERSION="$1" | ||
| TAG_NAME="bifrost-migration-cli/v${VERSION}" | ||
|
|
||
| echo "🚀 Releasing bifrost-migration-cli v$VERSION..." | ||
|
|
||
| # Validate bifrost-migration-cli build | ||
| echo "🔨 Validating bifrost-migration-cli build..." | ||
| COMMIT="${GITHUB_SHA:-$(git rev-parse HEAD 2>/dev/null || echo 'unknown')}" | ||
| (cd "$REPO_ROOT/scripts/bifrost-migration-cli" && GOWORK=off go build -ldflags "-X main.version=v${VERSION} -X main.commit=${COMMIT}" ./...) | ||
| echo "✅ bifrost-migration-cli build validation successful" | ||
|
|
||
| # Build bifrost-migration-cli executables | ||
| echo "🔨 Building executables..." | ||
| bash "$SCRIPT_DIR/build-bifrost-migration-cli-executables.sh" "$VERSION" | ||
|
|
||
| # --- Preflight checks (no side effects) --- | ||
|
|
||
| # Capturing changelog | ||
| CHANGELOG_BODY=$(cat "$REPO_ROOT/scripts/bifrost-migration-cli/changelog.md") | ||
| # Skip comments from changelog | ||
| CHANGELOG_BODY=$(printf '%s\n' "$CHANGELOG_BODY" | sed '/<!--/,/-->/d') | ||
| # If changelog is empty, return error | ||
| if [ -z "$CHANGELOG_BODY" ]; then | ||
| echo "❌ Changelog is empty" | ||
| exit 1 | ||
| fi | ||
| echo "📝 New changelog: $CHANGELOG_BODY" | ||
|
|
||
| # Finding previous tag | ||
| echo "🔍 Finding previous tag..." | ||
| TAG_COUNT=$(git tag -l "bifrost-migration-cli/v*" | wc -l | tr -d ' ') | ||
| if [[ "$TAG_COUNT" -eq 0 ]]; then | ||
| PREV_TAG="" | ||
| else | ||
| PREV_TAG=$(git tag -l "bifrost-migration-cli/v*" | sort -V | tail -1) | ||
| if [[ "$PREV_TAG" == "$TAG_NAME" ]]; then | ||
| PREV_TAG=$(git tag -l "bifrost-migration-cli/v*" | sort -V | tail -2 | head -1) | ||
| [[ "$PREV_TAG" == "$TAG_NAME" ]] && PREV_TAG="" | ||
| fi | ||
| fi | ||
| echo "🔍 Previous tag: $PREV_TAG" | ||
|
|
||
| # Get message of the tag and compare changelogs | ||
| if [[ -n "$PREV_TAG" ]]; then | ||
| echo "🔍 Getting previous tag message..." | ||
| PREV_CHANGELOG=$(git tag -l --format='%(contents:body)' "$PREV_TAG") | ||
| echo "📝 Previous changelog body: $PREV_CHANGELOG" | ||
|
|
||
| # Checking if tag message is the same as the changelog | ||
| if [[ "$PREV_CHANGELOG" == "$CHANGELOG_BODY" ]]; then | ||
| echo "❌ Changelog is the same as the previous changelog" | ||
| exit 1 | ||
| fi | ||
| else | ||
| echo "ℹ️ No previous bifrost-migration-cli tag found. Skipping changelog comparison." | ||
| fi | ||
|
|
||
| # Verify GitHub token before any publish steps | ||
| if [ -z "${GH_TOKEN:-}" ] && [ -z "${GITHUB_TOKEN:-}" ]; then | ||
| echo "Error: GH_TOKEN or GITHUB_TOKEN is not set. Please export one to authenticate the GitHub CLI." | ||
| exit 1 | ||
| fi | ||
|
|
||
| # --- Publish steps (all checks passed) --- | ||
|
|
||
| # Configure and upload to R2 | ||
| echo "📤 Uploading binaries..." | ||
| bash "$SCRIPT_DIR/configure-r2.sh" | ||
| bash "$SCRIPT_DIR/upload-bifrost-migration-cli-to-r2.sh" "$TAG_NAME" | ||
|
|
||
| # Create and push tag | ||
| if git rev-parse -q --verify "refs/tags/$TAG_NAME" >/dev/null; then | ||
| echo "ℹ️ Tag $TAG_NAME already exists. Reusing it." | ||
| else | ||
| echo "🏷️ Creating tag: $TAG_NAME" | ||
| git tag "$TAG_NAME" -m "Release bifrost-migration-cli v$VERSION" -m "$CHANGELOG_BODY" | ||
| git push origin "$TAG_NAME" | ||
| fi | ||
|
Comment on lines
+92
to
+98
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Check remote tag existence before skipping push. At Line 92, the script only checks local refs. A local-only tag can skip 🔧 Suggested fix-if git rev-parse -q --verify "refs/tags/$TAG_NAME" >/dev/null; then
- echo "ℹ️ Tag $TAG_NAME already exists. Reusing it."
-else
- echo "🏷️ Creating tag: $TAG_NAME"
- git tag "$TAG_NAME" -m "Release bifrost-migration-cli v$VERSION" -m "$CHANGELOG_BODY"
- git push origin "$TAG_NAME"
-fi
+if git ls-remote --exit-code --tags origin "refs/tags/$TAG_NAME" >/dev/null 2>&1; then
+ echo "ℹ️ Remote tag $TAG_NAME already exists. Reusing it."
+else
+ if git rev-parse -q --verify "refs/tags/$TAG_NAME" >/dev/null; then
+ echo "ℹ️ Local tag $TAG_NAME exists; pushing to origin."
+ else
+ echo "🏷️ Creating tag: $TAG_NAME"
+ git tag "$TAG_NAME" -m "Release bifrost-migration-cli v$VERSION" -m "$CHANGELOG_BODY"
+ fi
+ git push origin "refs/tags/$TAG_NAME"
+fi🤖 Prompt for AI Agents |
||
|
|
||
| # Create GitHub release | ||
| TITLE="Bifrost Migration CLI v$VERSION" | ||
|
|
||
| # Mark prereleases when version contains a hyphen | ||
| PRERELEASE_FLAG="" | ||
| if [[ "$VERSION" == *-* ]]; then | ||
| PRERELEASE_FLAG="--prerelease" | ||
| fi | ||
|
|
||
| BODY="## Bifrost Migration CLI Release v$VERSION | ||
|
|
||
| $CHANGELOG_BODY | ||
|
|
||
| ### Installation | ||
|
|
||
| #### Binary Download | ||
| \`\`\`bash | ||
| npx @maximhq/bifrost-migration-cli --cli-version v$VERSION | ||
| \`\`\` | ||
|
|
||
| --- | ||
| _This release was automatically created._" | ||
|
|
||
| if gh release view "$TAG_NAME" >/dev/null 2>&1; then | ||
| echo "ℹ️ GitHub release $TAG_NAME already exists. Skipping." | ||
| else | ||
| echo "🎉 Creating GitHub release for $TITLE..." | ||
| gh release create "$TAG_NAME" \ | ||
| --title "$TITLE" \ | ||
| --notes "$BODY" \ | ||
| ${PRERELEASE_FLAG} | ||
| fi | ||
|
|
||
| echo "✅ Bifrost Migration CLI released successfully" | ||
|
|
||
| # Print summary | ||
| echo "" | ||
| echo "📋 Release Summary:" | ||
| echo " 🏷️ Tag: $TAG_NAME" | ||
| echo " 🎉 GitHub release: Created" | ||
|
|
||
| if [[ -n "${GITHUB_OUTPUT:-}" ]]; then | ||
| echo "success=true" >> "$GITHUB_OUTPUT" | ||
| fi | ||
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
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.
Add
persist-credentials: falseto the checkout step.The static analysis tool flagged this checkout step for credential persistence. Since this job only needs read access and doesn't perform git operations, explicitly disabling credential persistence reduces the attack surface.
🛡️ Suggested fix
- name: Checkout repository uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with: fetch-depth: 0 fetch-tags: true + persist-credentials: false📝 Committable suggestion
🧰 Tools
🪛 zizmor (1.25.2)
[warning] 64-68: credential persistence through GitHub Actions artifacts (artipacked): does not set persist-credentials: false
(artipacked)
🤖 Prompt for AI Agents
Source: Linters/SAST tools