apache / apache/flagon

feat(schema): wire proto-generated types into packageLogs.ts

Open
#142 0 comments 0 reactions 0 assignees View on GitHub
enhancement Userale
Dominant language
Jupyter Notebook
Stars
30
Forks
15
PR merge metrics
No merged PRs in 30d

Description

## Summary

Replace the untyped `Logging.Log = JSONObject` with proto-generated types (`RawLog`, `IntervalLog`, `CustomLog`) from `log_pb.ts` in `packageLogs.ts`.

## Breaking Changes

This changes the default JSON output format:
- Fields restructured to match proto schema (nested `metadata` object)
- Field renames: `type` → `eventType`, `scrnRes` → `screenResolution`
- `buildAttrs()` stops `JSON.parse()`-ing attribute values (always strings)
- `logType` values may change (`raw` → `LOG_TYPE_RAW`)

## Migration Path

- `HttpLegacyJsonExporter` preserves v2.x JSON format
- Users can opt into legacy format via `exporterType: 'http-json-legacy'`

## Depends On

- #105 (proto schema — merged)
- #139 (LogExporter interface)

## Related

- Resolves the TODO on line 77 of types.d.ts: `// TODO: Switch to protobuf for managing log types`

Contributor guide

No contributing guide indexed for this repository

Research direction

Start by reading packageLogs.ts, the generated types in log_pb.ts, and the TODO in types.d.ts. Trace how current log objects and buildAttrs() are assembled, then verify that the new output follows the proto field names and nested metadata shape while HttpLegacyJsonExporter still preserves the v2.x format.

Written by the indexing model from the issue text.

Assessment

Tech stack
typescript
Domain
backend
Issue type
Feature
Difficulty
3/5
Estimated time
1-2 days
Activity status
Quiet
Clarity
Clearly specified
Newbie friendliness
68/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.