Skip to content

Commit dcbd030

Browse files
alagishevweb-flowzloiadilNetcrackerCLPLCIkarpov-aleksandr
authored
chore: release 25.4.4 (#300)
* feat(ci): add security-scan workflow to scan for vulnerabilities in dependencies for APIHUB Related issue: Netcracker/.github#209 * Merge pull request #268 from Netcracker/split-api-internal-external docs: deleted APIHUB API spec and add only "system info" endpoint and… * feat(ci): add security-scan workflow to scan for vulnerabilities in dependencies for APIHUB (#278) * feat(ci): add security-scan workflow to scan for vulnerabilities in dependencies for APIHUB Related issue: Netcracker/.github#209, Netcracker/.github#223 * feat(ci): add security-scan workflow to scan for vulnerabilities in dependencies for APIHUB Related issue: Netcracker/.github#209, Netcracker/.github#223 --------- Co-authored-by: borislavr <noreply@github.com> * fix: business_metric table inconsistent data (#261) * fix: add release_versions_published business metric handling during version patch + data fix * chore: add release_versions_deleted business metric * chore(ci): remove security-scan-apihub workflow (#284) Related issue: Netcracker/.github#236 Co-authored-by: borislavr <noreply@github.com> * feat(ci): add security-scan workflow to scan for vulnerabilities in dependencies for APIHUB (#286) Related issue: Netcracker/.github#209, Netcracker/.github#223 Co-authored-by: borislavr <noreply@github.com> * feat: onboard api-spec-exposure lib (#271) * feat: onboard api-spec-exposure lib * feat: update log messages * feat: switch to release library version --------- Co-authored-by: Aleksandr Agishev <aleksandr.agishev.qubership@gmail.com> * fix: local run (#290) * doc: add mandatory for local run config element * feat: MCP server PoC (#287) * feat: initial PoC implementation - MCP API on stubs * feat: MCP with APIHUB services * feat: add logs, improve prompts * feat: add api-key authentication for MCP endpoint * feat: add parameter to limit MCP requests to workspace configured via MCP_WORKSPACE env var * feat: switch MCP endpoint from /mcp to /api/mcp * Add lite operations search * feat: initial implementation for AI Chat API and OpenAI client * add lite search filters * Update search query * feat: refactoring #1 + adding packages_list MCP resource * feat: refactoring #2 * feat: prompts tuning * feat: refactoring #3 * fix: redo OpenAI proxy support * feat: switch to OpenAI client + add caching for resource api_packages_list * fix: fix proxy parameter for OpenAI * fix: filter out RUNENV packages * fix: adaptation for gpt-5 model * fix: change default model to gpt-5 to be aligned with api-linter * feat: add LLM parameters to config + some errors logging * chore: go mod tidy + renew migration number * feat: bring back old search, make SearchLite in MCP only * feat: add LLM instruction about search query features * feat: lite search v2 (#291) * Updated lite search * Update search logic * Lite search: correct filter for API type. Lite search mode in global search. --------- Co-authored-by: Viacheslav Lunev <viacheslav.lunev.qubership@gmail.com> * MCP refactoring * mcp refactoring * remove comment * feat: adaptation for merging to develop * feat: fix build --------- Co-authored-by: Viacheslav Lunev <viacheslav.lunev.qubership@gmail.com> --------- Co-authored-by: borislavr <noreply@github.com> Co-authored-by: Adil Bektursunov <60805564+zloiadil@users.noreply.github.com> Co-authored-by: NetcrackerCLPLCI <112641018+NetcrackerCLPLCI@users.noreply.github.com> Co-authored-by: Aleksandr Karpov <aleksandr.v.karpov.qubership@gmail.com> Co-authored-by: Viacheslav Lunev <viacheslav.lunev.qubership@gmail.com>
1 parent c1431fb commit dcbd030

40 files changed

+5504
-6163
lines changed
Lines changed: 106 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,106 @@
1+
name: Security Scan Docker Packages
2+
run-name: >
3+
Security Scan #${{ github.run_number }} for ${{ inputs.image != '' && inputs.image != null && inputs.image || 'all repository docker images' }}
4+
on:
5+
workflow_dispatch:
6+
inputs:
7+
target:
8+
description: "Target type for the scan (docker, etc.)"
9+
required: false
10+
type: choice
11+
options:
12+
- docker
13+
- source
14+
image:
15+
description: "Docker image (for docker). By default ghcr.io/<owner>/<repo>:latest"
16+
required: false
17+
default: ""
18+
type: string
19+
tag:
20+
description: "Tag of the image to scan. By default 'latest'"
21+
required: false
22+
default: "latest"
23+
type: string
24+
only-high-critical:
25+
description: "Scope only HIGH + CRITICAL"
26+
required: false
27+
default: true
28+
type: boolean
29+
trivy-scan:
30+
description: "Trivy scan"
31+
required: false
32+
default: true
33+
type: boolean
34+
grype-scan:
35+
description: "Grype scan"
36+
required: false
37+
default: true
38+
type: boolean
39+
continue-on-error:
40+
description: "Continue on error"
41+
required: false
42+
default: true
43+
type: boolean
44+
only-fixed:
45+
description: "Ignore unfixed vulnerabilities"
46+
required: false
47+
default: true
48+
type: boolean
49+
schedule:
50+
- cron: "0 3 * * 0" # every Sunday at 03:00 UTC
51+
52+
jobs:
53+
debug-packages:
54+
runs-on: ubuntu-latest
55+
permissions:
56+
packages: read
57+
outputs:
58+
packages: ${{ steps.ghcr.outputs.packages }}
59+
has-packages: ${{ steps.ghcr.outputs.has-packages }}
60+
steps:
61+
- name: List GHCR packages for this repo
62+
id: ghcr
63+
uses: Netcracker/qubership-workflow-hub/actions/ghcr-discover-repo-packages@396774180000abdb825cbf150b56cc59c6913db8 #v2.0.5
64+
env:
65+
GH_TOKEN: ${{ secrets.GH_ACCESS_TOKEN }}
66+
67+
- name: Print packages
68+
run: echo '${{ steps.ghcr.outputs.packages }}' | jq '.'
69+
70+
- name: Continue only if repo has GHCR packages
71+
if: ${{ steps.ghcr.outputs.has-packages == 'true' }}
72+
run: echo "Packages found!"
73+
74+
- name: No packages found, fail the job
75+
if: ${{ steps.ghcr.outputs.has-packages != 'true' }}
76+
run: |
77+
echo "No packages found in GHCR for this repository."
78+
exit 1
79+
80+
81+
security-scan-matrix:
82+
needs: debug-packages
83+
if: ${{ inputs.image == '' || inputs.image == null }}
84+
strategy:
85+
matrix:
86+
package: ${{ fromJson(needs.debug-packages.outputs.packages) }}
87+
88+
name: "Run Security Scan (matrix)"
89+
uses: netcracker/qubership-workflow-hub/.github/workflows/re-security-scan.yml@396774180000abdb825cbf150b56cc59c6913db8 #v2.0.5
90+
with:
91+
target: ${{ inputs.target || 'docker' }}
92+
image: ${{ format('{0}:{1}', matrix.package.path, inputs.tag || 'dev') }}
93+
94+
security-scan-single:
95+
needs: debug-packages
96+
if: ${{ inputs.image != '' && inputs.image != null }}
97+
name: "Run Security Scan (single image)"
98+
uses: netcracker/qubership-workflow-hub/.github/workflows/re-security-scan.yml@396774180000abdb825cbf150b56cc59c6913db8 #v2.0.5
99+
with:
100+
target: ${{ inputs.target || 'docker' }}
101+
image: ${{ inputs.image }}
102+
only-high-critical: ${{ inputs.only-high-critical || true }}
103+
trivy-scan: ${{ inputs.trivy-scan || true }}
104+
grype-scan: ${{ inputs.grype-scan || true }}
105+
only-fixed: ${{ inputs.only-fixed || true }}
106+
continue-on-error: ${{ inputs.continue-on-error || true }}

docs/README.md

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,10 +17,9 @@
1717

1818
## API documentation
1919
### API specifications
20-
- [APIHUB API](api/APIHUB%20API.yaml)
21-
- [Admin API](api/Admin%20API.yaml)
22-
- [Public Registry API](api/Public%20Registry%20API.yaml)
23-
- [WebSocket API](api/apihub-ws.yaml)
20+
- [APIHUB API](api/APIHUB_API.yaml)
21+
- [APIHUB Admin API](api/Admin%20API.yaml)
22+
- [APIHUB Internal API](api/APIHUB_API_internal.yaml)
2423
### [Postman Collections](postman_collections.md)
2524

2625
## Security

0 commit comments

Comments
 (0)