Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 10 additions & 2 deletions .github/workflows/nodejs.yml
Original file line number Diff line number Diff line change
@@ -1,16 +1,24 @@
name: Node.js CI

on: [push]
on:
push:
pull_request:

jobs:
build:
environment: dev
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v4
- uses: volta-cli/action@v4
- run: npm ci --no-audit
- run: npm run lint --if-present
- run: npm run prettier:check --if-present
- run: npm test
env:
VITE_ATHENA_CLIENT_ID: ${{ secrets.VITE_ATHENA_CLIENT_ID }}
VITE_ATHENA_CLIENT_SECRET: ${{ secrets.VITE_ATHENA_CLIENT_SECRET }}
VITE_ATHENA_DEPLOYMENT_ID: ${{ secrets.VITE_ATHENA_DEPLOYMENT_ID }}
VITE_ATHENA_AFFILIATE: ${{ secrets.VITE_ATHENA_AFFILIATE }}
VITE_OAUTH_ISSUER: ${{ secrets.VITE_OAUTH_ISSUER }}
- run: npm run build --if-present
28 changes: 28 additions & 0 deletions .github/workflows/typedoc.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
name: Deploy TypeDoc on GitHub pages

on:
push:
branches:
main

env:

jobs:
deploy:
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- uses: actions/checkout@v4
- uses: volta-cli/action@v4
- run: npm ci --no-audit
- run: npm run build --if-present
- run: npm run build:documentation

- name: Deploy to GitHub pages
uses: JamesIves/github-pages-deploy-action@v4
with:
token: ${{ secrets.GITHUB_TOKEN }}
branch: gh-pages
folder: docs
clean: true
18 changes: 18 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,21 @@
# Athena NodeJS SDK

This repository contains the NodeJS SDK.

## Overview
Athena is a gRPC-based image classification service designed for CSAM (Child Sexual Abuse Material) detection by Crisp. The service provides real-time image classification through bidirectional streaming with session-based deployment management and multi-affiliate support.

## Features

- **Real-time Classification**: Bidirectional streaming for immediate image processing
- **Session Management**: Deployment-based grouping enables collaborative processing
- **Multi-format Support**: Supports JPEG, PNG, WebP, TIFF, and many other image formats
- **Compression**: Optional Brotli compression for bandwidth optimization
- **Error Handling**: Comprehensive error codes and detailed error messages
- **Monitoring**: Active deployment tracking and backlog monitoring

## Contributing

## Regenerating the TypeScript gRPC Client

This project uses [`@protobuf-ts/plugin`](https://github.com/timostamm/protobuf-ts) to generate TypeScript-native gRPC clients and message types for use with `@grpc/grpc-js`.
Expand Down
4 changes: 2 additions & 2 deletions __tests__/unit/main.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ describe('classifierHelper', () => {
deploymentId: process.env.VITE_ATHENA_DEPLOYMENT_ID,
affiliate: process.env.VITE_ATHENA_AFFILIATE,
authentication: {
issuerUrl: 'https://crispthinking.auth0.com/',
issuerUrl: process.env.VITE_OAUTH_ISSUER,
clientId: process.env.VITE_ATHENA_CLIENT_ID,
clientSecret: process.env.VITE_ATHENA_CLIENT_SECRET,
scope: 'manage:classify'
Expand Down Expand Up @@ -39,7 +39,7 @@ describe('classifyImage function', () => {
deploymentId: process.env.VITE_ATHENA_DEPLOYMENT_ID,
affiliate: process.env.VITE_ATHENA_AFFILIATE,
authentication: {
issuerUrl: 'https://crispthinking.auth0.com/',
issuerUrl: process.env.VITE_OAUTH_ISSUER,
clientId: process.env.VITE_ATHENA_CLIENT_ID,
clientSecret: process.env.VITE_ATHENA_CLIENT_SECRET,
scope: 'manage:classify'
Expand Down
Loading
Loading