arkavo-org / arkavo-org/specifications

NPE Claims Should Use Binary Format Instead of JSON

Open
#1 1 comment 0 reactions 0 assignees View on GitHub
enhancement
Dominant language
No language data
Stars
0
Forks
0
Avg merge
28m
Merged PRs (30d)
1

Description

## Issue

Currently, NPE (Non-Person Entity) claims are transmitted as JSON in HTTP requests to authnz-rs. This is inconsistent with the NanoTDF binary format used elsewhere in the architecture.

## Current State

**arkavo-edge → authnz-rs (authentication)**: JSON
```json
{
"platform_code": "macos-arm64",
"platform_state": "Trusted",
"device_id": "...",
"app_version": "0.38.2"
}
```

**authnz-rs → arkavo-edge (response)**: NTDF binary token (Z85 encoded)
```
Authorization: NTDF
```

## Proposal

NPE claims should be serialized as binary (matching NanoTDF format) and Z85 encoded for transport, rather than using JSON.

**Benefits:**
1. Consistency with NanoTDF binary format
2. Smaller payload size
3. Unified serialization approach
4. Better alignment with RATS attestation evidence formats

## Impact

- authnz-rs API changes (breaking)
- arkavo-edge client changes
- Update NTDF token specification
- Migration path for existing deployments

## Related Work

- NTDF token specification: `ntdf-token/draft-arkavo-ntdf-token-00.md`
- NanoTDF implementation: `opentdf-rs`
- arkavo-edge implementation: Issue #309

Contributor guide

No contributing guide indexed for this repository

Research direction

Read ntdf-token/draft-arkavo-ntdf-token-00.md first, then compare the NanoTDF implementation in opentdf-rs with the arkavo-edge implementation referenced as Issue #309. The work is done when the binary NPE claim format, Z85 transport, authnz-rs and arkavo-edge API changes, NTDF specification updates, and migration path for existing deployments are defined.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
api, authentication, security
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.