Skip to content

Commit bcd087a

Browse files
committed
Initial commit
Public release of sail-proxy: SAP AI Core multi-provider gateway exposing OpenAI, Anthropic, and AWS Bedrock-compatible APIs.
0 parents  commit bcd087a

668 files changed

Lines changed: 171764 additions & 0 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.dockerignore

Lines changed: 96 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,96 @@
1+
# Dependencies
2+
**/node_modules
3+
**/.pnpm-store
4+
**/dist
5+
**/build
6+
**/coverage
7+
8+
# Logs
9+
**/*.log
10+
**/logs
11+
npm-debug.log*
12+
yarn-debug.log*
13+
yarn-error.log*
14+
15+
# Environment files
16+
**/.env*
17+
!**/.env.example
18+
19+
# IDE and editor files
20+
**/.vscode
21+
**/.idea
22+
**/*.swp
23+
**/*.swo
24+
**/*~
25+
**/.DS_Store
26+
**/Thumbs.db
27+
28+
# Git and version control
29+
**/.git
30+
**/.gitignore
31+
**/.gitattributes
32+
33+
# Documentation
34+
**/*.md
35+
**/README*
36+
**/CHANGELOG*
37+
**/LICENSE*
38+
39+
# Test and coverage
40+
**/.nyc_output
41+
**/coverage
42+
**/*.test.*
43+
**/*.spec.*
44+
**/test
45+
**/tests
46+
**/__tests__
47+
48+
# Cache directories
49+
**/.cache
50+
**/.parcel-cache
51+
**/.nuxt
52+
**/.next
53+
**/.serverless
54+
55+
# OS generated files
56+
**/.DS_Store
57+
**/.DS_Store?
58+
**/._*
59+
**/.Spotlight-V100
60+
**/.Trashes
61+
**/ehthumbs.db
62+
**/Thumbs.db
63+
64+
# Temporary files
65+
**/tmp
66+
**/temp
67+
**/*.tmp
68+
**/*.temp
69+
70+
# Build artifacts
71+
**/target
72+
**/out
73+
**/*.tgz
74+
**/*.tar.gz
75+
76+
# Docker files (prevent recursion)
77+
**/Dockerfile*
78+
**/.dockerignore
79+
**/docker-compose*
80+
81+
# Scripts and executables that may have permission issues
82+
**/*.sh
83+
# Allow specific required scripts for nginx JWT authentication
84+
!docker/populate-jwks.sh
85+
!docker/nginx-entrypoint.sh
86+
**/*.bat
87+
**/*.cmd
88+
**/*.exe
89+
**/*.dll
90+
**/*.so
91+
**/*.dylib
92+
93+
# Package manager files that may cause issues
94+
**/package-lock.json
95+
**/yarn.lock
96+
**/.npmrc

.github/CODEOWNERS

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
# https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/about-code-owners
2+
3+
4+
# To protect a repository fully against unauthorized changes,
5+
# you also need to define an owner for the CODEOWNERS file itself.
6+
7+
/.github/CODEOWNERS @st-gr
8+
9+
10+
# These owners will be the default owners for everything in
11+
# the repo. Unless a later match takes precedence,
12+
# @st-gr will be requested for
13+
# review when someone opens a pull request.
14+
15+
* @st-gr

.github/FUNDING.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
# These are supported funding model platforms
2+
ko_fi: st0gr
Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
---
2+
name: Bug report
3+
about: Create a report to help us improve
4+
title: 'BUG - '
5+
labels: 'type:bug'
6+
assignees: ''
7+
8+
---
9+
10+
<!-- 🔍 Please search existing issues to avoid creating duplicates. -->
11+
12+
### Related Feature
13+
Feature request: _issue number_
14+
15+
### Description
16+
A clear description of what the bug is.
17+
18+
19+
### Steps to Reproduce
20+
Steps to reproduce the behavior:
21+
1. Use functionality / endpoint '...'
22+
2. Enter / pass data '....'
23+
3. Additional steps '....'
24+
4. See error
25+
26+
27+
### Expected results
28+
29+
30+
31+
### Actual results
32+
33+
34+
35+
### Screenshots
36+
If applicable, add screenshots to help explain the problem.
37+
38+
39+
#### Version/Components/Environment
40+
Add any other context about the problem here
41+
Config:
42+
- [ ] used api_config.json
43+
OS:
44+
- [ ] Mac OS
45+
- [ ] Windows
46+
- [ ] Other
47+
Runtime:
48+
- [ ] local - state nodejs, nvm, pnpm, etc. version
49+
- [ ] npm sail-proxy
50+
- [ ] docker - state which container engine, e. g. containerd, dockerd (moby)
51+
- [ ] BTP Kyma (Kubernetes)
52+
53+
<!-- 🛑 The reporter of this issue can skip filling this section. -->
54+
<!-- 🗒️ When the issue is fixed, developer will document the Root Cause Analysis of the bug to improve process or code in future. -->
55+
## Root Cause Analysis
56+
57+
### Problem
58+
{describe the problem}
59+
60+
### Fix
61+
{describe the fix}
62+
63+
### Why was it missed
64+
{Some explanation why this issue might have been missed during normal development/testing cycle}
65+
66+
### How can we avoid this
67+
{if we don’t want to see this type of issues anymore what we should do to prevent}
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
---
2+
name: "Documentation"
3+
about: Suggest improvements or report missing/unclear documentation.
4+
5+
---
6+
7+
### **Issue Description**
8+
A clear and concise description of the documentation issue.
9+
10+
### **Issue Type**
11+
12+
- [ ] Documentation is unclear
13+
- [ ] Documentation is incorrect
14+
- [ ] Documentation is missing
15+
- [ ] Other
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
---
2+
name: Feature Request
3+
about: Feature Request
4+
title: 'FEATURE - '
5+
labels: 'type:feature'
6+
assignees: ''
7+
8+
---
9+
10+
<!-- 🔎 Please search existing issues to avoid creating duplicates. -->
11+
<!-- Please describe the feature you'd like by filling the template below -->
12+
13+
_As a **persona**,
14+
I want to **do something**,
15+
so that I **can achieve some benefit**_
16+
17+
### Description
18+
19+
_What is the high level purpose and value of the feature? The description should ensure that anyone reading understands what it is doing (at a high level) and most importantly why._
20+
21+
### Technical Design
22+
_What modules need to be created or enhanced?_
23+
_How would the functionality be exposed and how can it be consumed?_
24+
25+
### Acceptance Criteria
26+
GivenWhenThen format (https://martinfowler.com/bliki/GivenWhenThen.html)
27+
28+
**Given** I have a ...
29+
**when** I execute ...
30+
**then** ... will happen.
31+
32+
### Notes
33+
34+
### Tasks
35+
- [ ] <!--Add any tasks relevant to the current feature request -->
36+
- [ ] Unit Tests added
37+
- [ ] Test Cases defined
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
---
2+
name: Technical Backlog Item
3+
about: Technical Backlog Item
4+
title: 'TBI - '
5+
labels: 'type:technical'
6+
assignees: ''
7+
8+
---
9+
<!-- 💡 A Technical Backlog Item (TBI) should contain the technical requirements that must be implemented to fulfill the functional needs. -->
10+
<!-- 🔎 Please search existing issues to avoid creating duplicates. -->
11+
12+
### Description (include screenshots)
13+
What will this TBI achieve, and how will it be measured as done. Is it documentation, increase of test coverage, refactoring
14+
15+
16+
### Value
17+
Optional - details on how this technical backlog item provides value to end-users or dev team eg. Performance, Quality, Maintainability. This will help determine the ranking in relation to feature development
18+
19+
### Architecture Elaboration
20+
Does it requires architecture elaboration?
21+
22+
23+
### Notes
24+
25+
26+
### Tasks
27+
- [ ] Task 1
28+
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
## Description
2+
Please include a summary of change(s) and/or link to associated [issue](https://github.com/st-gr/sail-proxy/issues)
3+
4+
## Type of change
5+
- [ ] Bug (non-breaking change which fixes an issue)
6+
- [ ] New feature (non-breaking change which adds a new feature)
7+
- [ ] Breaking change (Bug or New feature that would cause existing functionality/consumers to not work as expected)
8+
- [ ] Non-Breaking chores (Changes to tools, libraries, build process, documentation, etc)
9+
- [ ] None of the above (Reviewers might ask for more clarification)
10+
11+
## How have you tested?
12+
Make it easier for reviewer by describing the tests you have done to verify your changes and provide clear instructions for reviewers to reproduce.
13+
14+
## Checklist:
15+
- [ ] The code conforms to the [general development principles](https://github.com/st-gr/sail-proxy/blob/main/docs/Guidelines.md)
16+
- [ ] Supplied as many details as possible on this change
17+
- [ ] The code is easy to read and maintainable by others
18+
- [ ] Corresponding changes to the documentation has been done
19+
- [ ] Already existing and new unit tests pass locally

.github/dependabot.yml

Lines changed: 88 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,88 @@
1+
# Dependabot configuration for SAP LLM Gateway
2+
# Security-only updates to avoid dependency hell with 2000+ packages
3+
# https://docs.github.com/en/code-security/dependabot/dependabot-version-updates/configuration-options-for-the-dependabot.yml-file
4+
5+
version: 2
6+
updates:
7+
# ============================================================================
8+
# NPM/PNPM Workspace Dependencies - SECURITY ONLY
9+
# ============================================================================
10+
# Monitor root package.json which manages the entire pnpm workspace
11+
# This includes all services (gateway, admin, ollama), libs, and UI apps
12+
#
13+
# Note: open-pull-requests-limit: 0 disables version updates but security
14+
# updates are ALWAYS created regardless of this setting
15+
- package-ecosystem: "npm"
16+
directory: "/"
17+
schedule:
18+
interval: "daily"
19+
open-pull-requests-limit: 0
20+
labels:
21+
- "dependencies"
22+
- "security"
23+
- "npm"
24+
25+
# ============================================================================
26+
# Docker Images - SECURITY ONLY
27+
# ============================================================================
28+
# Gateway, Admin, and Ollama service Dockerfiles
29+
- package-ecosystem: "docker"
30+
directory: "/docker"
31+
schedule:
32+
interval: "daily"
33+
open-pull-requests-limit: 0
34+
labels:
35+
- "dependencies"
36+
- "security"
37+
- "docker"
38+
39+
# Nginx reverse proxy Dockerfile
40+
- package-ecosystem: "docker"
41+
directory: "/docker/nginx"
42+
schedule:
43+
interval: "daily"
44+
open-pull-requests-limit: 0
45+
labels:
46+
- "dependencies"
47+
- "security"
48+
- "docker"
49+
- "nginx"
50+
51+
# LDAP test server Dockerfile
52+
- package-ecosystem: "docker"
53+
directory: "/docker/configs/providers/ldap/ldap-server"
54+
schedule:
55+
interval: "daily"
56+
open-pull-requests-limit: 0
57+
labels:
58+
- "dependencies"
59+
- "security"
60+
- "docker"
61+
- "ldap"
62+
63+
# Ollama service Docker image
64+
- package-ecosystem: "docker"
65+
directory: "/services/ollama/ollama-docker"
66+
schedule:
67+
interval: "daily"
68+
open-pull-requests-limit: 0
69+
labels:
70+
- "dependencies"
71+
- "security"
72+
- "docker"
73+
- "ollama"
74+
75+
# ============================================================================
76+
# GitHub Actions Workflows - SECURITY ONLY
77+
# ============================================================================
78+
# CI/CD workflow dependencies
79+
- package-ecosystem: "github-actions"
80+
directory: "/"
81+
schedule:
82+
interval: "daily"
83+
open-pull-requests-limit: 0
84+
labels:
85+
- "dependencies"
86+
- "security"
87+
- "github-actions"
88+
- "ci"

0 commit comments

Comments
 (0)