Skip to content

Proto Reference

Complete Protocol Buffer schema definitions.

events/v1/event.proto

protobuf
syntax = "proto3";
package matchstick.events.v1;

import "google/protobuf/timestamp.proto";
import "google/protobuf/struct.proto";

message Event {
  string id = 1;
  string event_type = 2;
  string issuer = 3;
  string cik = 4;
  google.protobuf.Timestamp filed_at = 5;
  google.protobuf.Timestamp captured_at = 6;
  float confidence = 7;
  google.protobuf.Struct metadata = 8;
}

message EventIndex {
  string id = 1;
  string event_type = 2;
  string issuer = 3;
  string cik = 4;
  google.protobuf.Timestamp filed_at = 5;
}

bars/v1/bar.proto

protobuf
syntax = "proto3";
package matchstick.bars.v1;

import "google/protobuf/timestamp.proto";

message Bar {
  string symbol = 1;
  Timeframe timeframe = 2;
  google.protobuf.Timestamp timestamp = 3;
  double open = 4;
  double high = 5;
  double low = 6;
  double close = 7;
  int64 volume = 8;
  int32 trade_count = 9;
  double vwap = 10;
}

enum Timeframe {
  TIMEFRAME_UNSPECIFIED = 0;
  TIMEFRAME_1M = 1;
  TIMEFRAME_5M = 2;
  TIMEFRAME_15M = 3;
  TIMEFRAME_1H = 4;
  TIMEFRAME_4H = 5;
  TIMEFRAME_1D = 6;
  TIMEFRAME_1W = 7;
}

lineage/v1/lineage.proto

protobuf
syntax = "proto3";
package matchstick.lineage.v1;

import "google/protobuf/timestamp.proto";

message Lineage {
  string id = 1;
  string artifact_id = 2;
  string artifact_type = 3;
  Source source = 4;
  repeated Transformation transformations = 5;
  google.protobuf.Timestamp created_at = 6;
}

message Source {
  string source_type = 1;
  string source_id = 2;
  string source_url = 3;
  string content_hash = 4;
  google.protobuf.Timestamp fetched_at = 5;
}

message Transformation {
  string name = 1;
  string version = 2;
  repeated string input_ids = 3;
  map<string, string> parameters = 4;
  google.protobuf.Timestamp executed_at = 5;
}

manifests/v1/manifest.proto

protobuf
syntax = "proto3";
package matchstick.manifests.v1;

import "google/protobuf/timestamp.proto";

message Manifest {
  string id = 1;
  string name = 2;
  string description = 3;
  string version = 4;
  repeated DataFile files = 5;
  ManifestMetadata metadata = 6;
  google.protobuf.Timestamp created_at = 7;
}

message DataFile {
  string path = 1;
  FileFormat format = 2;
  int64 size_bytes = 3;
  string checksum = 4;
  int64 row_count = 5;
  string schema_id = 6;
}

enum FileFormat {
  FILE_FORMAT_UNSPECIFIED = 0;
  FILE_FORMAT_PARQUET = 1;
  FILE_FORMAT_CSV = 2;
  FILE_FORMAT_JSON = 3;
  FILE_FORMAT_PROTO = 4;
}

message ManifestMetadata {
  google.protobuf.Timestamp start_date = 1;
  google.protobuf.Timestamp end_date = 2;
  string source = 3;
  string update_frequency = 4;
  string license = 5;
}

Built for traders who value data provenance.