OsWL은 공식 CLI(oswl)와 REST API를 제공하여, 웹 브라우저나 VCS 연결 없이 로컬·CI에서 의존성 스캔을 제출할 수 있습니다.
Mac / Linux
curl -fsSL https://<your-server>/scripts/install.sh | bashWindows (PowerShell)
iex ((New-Object System.Net.WebClient).DownloadString('https://<your-server>/scripts/install.ps1'))사전 요구 도구
| 플랫폼 | 도구 |
|---|---|
| Mac / Linux | curl, jq, zip |
| Windows | PowerShell 5.1+, curl.exe |
oswl auth --key oswl_<your_api_key> --server https://<your-server>cd /your/project
oswl scan -k oswl_<your_api_key> -u you@company.com --server https://<your-server>-u(이메일)는 필수입니다.-p(비밀번호)는 생략 가능 — 생략 시 대화형으로 입력을 요청합니다.project_dir를 생략하면 현재 디렉터리가 대상입니다.
CI/CD 예시
export OSWL_API_KEY=oswl_xxx
export OSWL_USERNAME=ci@company.com
export OSWL_PASSWORD=secret
export OSWL_SERVER_URL=https://sca.company.com
cd /your/project && oswl scan[OsWL] Scanning dependencies... (version: 1.4.2)
[OsWL] Parsing manifests on server...
[OsWL] Found 128 component(s).
[OsWL] Sending to server: https://...
[OsWL] Scan submitted! scanId=87
Analysis is running on the server. Check the Security Center for results.
입력하는 명령은 동일하고, 파싱만 서버에서 Quick Import와 같은 엔진으로 수행됩니다.
로컬 / CI
│
│ 1. manifest 파일 zip (lock, pom, package.json, …)
│ 규칙: GET /scripts/manifest-rules.json
│
│ 2. POST /api/scan/parse (multipart archive)
│ Authorization: Bearer oswl_<key>
▼
OsWL 서버 — DependencyManifestParserService (Quick Import와 공유)
│
│ 3. POST /api/scan (JSON + 제출자 자격증명)
▼
ScanIngestService → CVE·라이선스 비동기 보강 (OSV / deps.dev)
- OsWL에 등록된 프로젝트
- 프로젝트 API 키 (
oswl_...) — 설정 → CLI 또는 프로젝트 API 키 페이지 SCAN_SUBMIT권한과 해당 프로젝트 멤버십이 있는 사용자 계정 (인증 계층)
| Method | Path | 인증 | 설명 |
|---|---|---|---|
GET |
/api/scan/ping |
API key | 키 유효성 확인 |
GET |
/api/scan/manifest-rules |
API key | manifest 수집 규칙 (JSON) |
GET |
/scripts/manifest-rules.json |
없음 | 동일 규칙 (CLI 캐시용 정적 파일) |
POST |
/api/scan/parse |
API key | manifest zip 파싱 → components |
POST |
/api/scan |
API key + 비밀번호 | 스캔 제출·보강 |
GET |
/api/scan/{scanId}/status |
세션 | 스캔 상태 폴링 (UI) |
CLI 엔드포인트는
Authorization: Bearer헤더만으로 인증하며, 세션 쿠키나 CSRF 토큰은 필요 없습니다.POST /api/scan,POST /api/scan/parse,GET /api/scan/ping은 브라우저 CSRF 검사에서 제외되고, 그 외 경로는 기존 CSRF 보호가 유지됩니다. Scan API 보안 참고.
POST /api/projects/{projectId}/keys
UI: 프로젝트 → 설정(⚙) → CLI → 키 생성
설정 → 관리자 → CLI 키 — API 레퍼런스 참고
oswl 스크립트 없이 API만 직접 호출할 수도 있습니다.
curl -s -X POST https://oswl.example.com/api/scan/parse \
-H "Authorization: Bearer oswl_<key>" \
-F "archive=@manifests.zip"POST /api/scan — 요청 본문 형식은 영문 CLI 문서와 동일합니다.
{
"scanId": 87,
"projectId": 42,
"version": "1.4.2",
"status": "PENDING",
"message": "Scan received successfully"
}GET /api/scan/{scanId}/status
상태: PENDING → SCANNING → ANALYZING → COMPLETED (또는 FAILED)
- name: Install OsWL CLI
run: curl -fsSL https://oswl.example.com/scripts/install.sh | bash
- name: Submit OsWL Scan
env:
OSWL_API_KEY: ${{ secrets.OSWL_API_KEY }}
OSWL_USERNAME: ${{ secrets.OSWL_USERNAME }}
OSWL_PASSWORD: ${{ secrets.OSWL_PASSWORD }}
OSWL_SERVER_URL: https://oswl.example.com
run: oswl scan| 에코시스템 | 이름 형식 예시 |
|---|---|
MAVEN |
org.springframework:spring-core |
NPM |
lodash, @angular/core |
PYPI |
requests, django |
GO |
github.com/gin-gonic/gin |
CARGO |
serde |
NUGET |
Newtonsoft.Json |
RUBYGEMS |
rails |
- Scan API 보안
- Quick Import — 동일 파서, 원격 Git URL
- API 레퍼런스