54 lines
1.6 KiB
Markdown
54 lines
1.6 KiB
Markdown
|
|
# mobile/android — Centralcloud On-Call Android App
|
||
|
|
|
||
|
|
## Role
|
||
|
|
|
||
|
|
Engineer's single pane for on-call: paging, conference bridge, and agent chat.
|
||
|
|
Centrally configured — one hardcoded URL, everything else pulled from the server.
|
||
|
|
|
||
|
|
## Bootstrap
|
||
|
|
|
||
|
|
App hits `GET https://ops.centralcloud.com/api/android/config` on first launch
|
||
|
|
(bearer token from QR/deep-link setup). Receives:
|
||
|
|
|
||
|
|
```json
|
||
|
|
{
|
||
|
|
"push_url": "https://push.infra.centralcloud.com",
|
||
|
|
"push_topic": "oncall-<user>",
|
||
|
|
"push_token": "...",
|
||
|
|
"agent_url": "https://ops.centralcloud.com/chat/",
|
||
|
|
"agent_token": "...",
|
||
|
|
"oncall_url": "https://ops.centralcloud.com/oncall-api/",
|
||
|
|
"bridge_url": "https://ops.centralcloud.com/bridge"
|
||
|
|
}
|
||
|
|
```
|
||
|
|
|
||
|
|
## Features
|
||
|
|
|
||
|
|
| Feature | Backend |
|
||
|
|
|---|---|
|
||
|
|
| Push alerts (DND-bypass) | oncall (`push.infra.centralcloud.com`) |
|
||
|
|
| Incident acknowledge / resolve | `centralcloud-ops` API |
|
||
|
|
| Join conference bridge | Twilio + `centralcloud-ops /bridge` |
|
||
|
|
| Chat with ops agent | `operations-agent` (hermes-agent API) |
|
||
|
|
| On-call schedule view | `centralcloud-ops /oncall-api/` → OnCall |
|
||
|
|
|
||
|
|
## Build
|
||
|
|
|
||
|
|
Kotlin + Gradle. Nix flake for reproducible builds.
|
||
|
|
Fastlane for signing + internal distribution.
|
||
|
|
|
||
|
|
```bash
|
||
|
|
nix develop
|
||
|
|
./gradlew assembleDebug
|
||
|
|
fastlane internal # push to internal track
|
||
|
|
```
|
||
|
|
|
||
|
|
Forgejo repo: `git.infra.centralcloud.com/centralcloud/mobile-android`
|
||
|
|
CI: Forgejo Actions → builds APK → pushes to internal registry
|
||
|
|
|
||
|
|
## Notifications
|
||
|
|
|
||
|
|
oncall topic per engineer, centrally assigned.
|
||
|
|
DND-bypass requires `IMPORTANCE_MAX` notification channel — already configured.
|
||
|
|
Do NOT use Firebase Cloud Messaging — oncall is the push provider.
|