Serverless application for tracking and allocating Atlassian license costs across TP ICAP business units
Automatically identifies all Atlassian Jira and Confluence licensed users across TP ICAP, matches them to HR data (division, department, cost centre), and presents an interactive dashboard for license cost allocation and chargeback reporting.
┌─────────────────────────────────────────────────────────────────────┐ │ DATA COLLECTION (Your Machine — Scheduled Task, every 4 hours) │ └──────────────────────────┬──────────────────────────────────────────┘ │ ┌────────────────┼────────────────┐ ▼ ▼ ▼ ┌──────────────┐ ┌──────────────┐ ┌──────────────────┐ │ Atlassian │ │ Quarterback │ │ Atlassian Site │ │ Org Admin │ │ HR API │ │ Group Members │ │ API │ │ │ │ API │ └──────┬───────┘ └──────┬───────┘ └────────┬─────────┘ │ │ │ │ 9,000 org │ 6,776 HR │ External users │ users │ records │ (GMEX, etc.) ▼ ▼ ▼ ┌─────────────────────────────────────────────────────────────────┐ │ Refresh_Data.ps1 — Match, Merge, Build JSON │ └──────────────────────────┬──────────────────────────────────────┘ │ POST /upload (API Key auth) │ ┌──────────────────────────┼──────────────────────────────────────────┐ │ AWS (eu-west-1) ▼ │ │ ┌────────────────────────────┐ │ │ │ API Gateway (HTTP API) │ │ │ │ h7larzbbb6 │ │ │ └────────────┬───────────────┘ │ │ ▼ │ │ ┌────────────────────────────┐ ┌───────────────────┐ │ │ │ Lambda │───▶│ S3 Bucket │ │ │ │ chargeback-dashboard │◀───│ tpicap-chargeback │ │ │ │ Node.js 20 │ │ -data │ │ │ └────────────────────────────┘ └───────────────────┘ │ │ │ └────────────────────────────────────────────────────────────────────┘ │ GET / (HTML) GET /chargeback (JSON) │ ▼ ┌──────────────────┐ │ Browser │ │ D3 Bubble Chart │ │ + Drill-down │ └──────────────────┘
| Resource | Name | Purpose |
|---|---|---|
| Lambda | chargeback-dashboard | Serves dashboard HTML, JSON data, and accepts uploads. Node.js 20, 512MB, 120s timeout |
| API Gateway | chargeback-api (h7larzbbb6) | HTTP API. Routes: GET / (HTML), GET /chargeback (JSON), POST /upload (data ingest). Custom domain configured |
| Custom Domain | atlassian-chargeback.dev.sail.tpicapcloud.com | ACM cert + Route 53 alias in dev.sail.tpicapcloud.com hosted zone |
| S3 | tpicap-chargeback-data | Stores chargeback-data.json and dashboard.html |
| IAM Role | chargeback-devops-lambda-role | S3 read/write + Lambda execution + CloudWatch logs |
| Lambda | ~$0.00 (free tier) |
| API Gateway | ~$0.00 (free tier) |
| S3 | ~$0.01 |
| Secrets Manager | ~$0.80 (2 secrets, reference only) |
| CloudWatch Logs | ~$0.01 |
| Total | < $1/month |