trufflehog/proto/source_metadata.proto
joeleonjr 01a1499600
New Source: HuggingFace (#3000)
* initial spike on hf

* added in user and org enum

* adding huggingface source

* updated with lint suggestions

* updated readme

* addressing resources that require org approval to access

* removing unneeded code

* updating with new error msg for 403

* deleted unused code + added resource check in main
2024-06-27 13:22:06 -04:00

369 lines
6.6 KiB
Protocol Buffer

syntax = "proto3";
package source_metadata;
option go_package = "github.com/trufflesecurity/trufflehog/v3/pkg/pb/source_metadatapb";
import "google/protobuf/timestamp.proto";
message Azure {
string container = 1;
string file = 2;
string uploaded = 3;
string link = 4;
string email = 5;
}
message Bitbucket {
string file = 1;
string repository = 2;
string workspace = 3;
string snippet_id = 4;
string title = 5;
string commit = 6;
string email = 7;
string link = 8;
string timestamp = 9;
int64 line = 10;
}
message Buildkite {
string org = 1;
string pipeline = 2;
string link = 3;
string email = 4;
int64 build_number = 5;
string timestamp = 6;
}
message CircleCI {
string vcs_type = 1;
string username = 2;
string repository = 3;
int64 build_number = 4;
string build_step = 5;
string link = 6;
string email = 7;
}
message TravisCI {
string username = 2;
string repository = 3;
string build_number = 4;
string job_number = 5;
string link = 6;
bool public = 7;
}
message Confluence {
string page = 1;
string space = 2;
string version = 3;
string link = 4;
string email = 5;
string timestamp = 6;
string location = 7;
string file = 8;
}
message Docker {
string file = 1;
string image = 2;
string layer = 3;
string tag = 4;
}
message ECR {
string file = 1;
string layer = 2;
string image = 3;
string registry = 4;
string region = 5;
string link = 6;
string email = 7;
}
message Filesystem {
string file = 1;
string link = 2;
string email = 3;
int64 line = 4;
}
message Git {
string commit = 1;
string file = 2;
string email = 3;
string repository = 4;
string timestamp = 5;
int64 line = 6;
}
message Github {
string link = 1;
string username = 2;
string repository = 3;
string commit = 4;
string email = 5;
string file = 6;
string timestamp = 7;
int64 line = 8;
Visibility visibility = 9;
}
message Gitlab {
string commit = 1;
string file = 2;
string link = 3;
string email = 4;
string repository = 5;
string timestamp = 6;
int64 line = 7;
int64 project_id = 8;
string project_name = 9;
string project_owner = 10;
}
message GCS {
string bucket = 1;
string filename = 2;
string link = 3;
string email = 4;
string created_at = 5;
string updated_at = 6;
repeated string acls = 7;
string content_type = 8;
}
message Huggingface {
string link = 1;
string username = 2;
string repository = 3;
string commit = 4;
string email = 5;
string file = 6;
string timestamp = 7;
int64 line = 8;
Visibility visibility = 9;
string resource_type = 10;
}
message Jira {
string issue = 1;
string author = 2;
string link = 3;
string location = 4;
string email = 5;
string timestamp = 6;
}
message NPM {
string file = 1;
string package = 2;
string release = 3;
string link = 4;
string email = 5;
}
message PyPi {
string file = 1;
string package = 2;
string release = 3;
string link = 4;
string email = 5;
}
message S3 {
string bucket = 1;
string file = 2;
string link = 3;
string email = 5;
string timestamp = 6;
}
enum Visibility {
public = 0;
private = 1;
shared = 2;
unknown = 3;
}
message Slack {
string channel_id = 1;
string channel_name = 2;
string timestamp = 3;
string user_id = 4;
string link = 5;
string file = 6;
string email = 7;
Visibility visibility = 8;
string location = 9;
}
message Gerrit {
string commit = 1;
string file = 2;
string email = 3;
string project = 4; // projects are what Gerrit calls repositories
string timestamp = 5;
int64 line = 6;
}
message Test {
string file = 1;
}
message Jenkins {
string project_name = 1;
int64 build_number = 2;
string link = 3;
string timestamp = 4;
}
message Teams {
string channel_id = 1;
string channel_name = 2;
string timestamp = 3;
string user_id = 4;
string link = 5;
string file = 6;
string email = 7;
string location = 8;
string team_name = 9;
string team_id = 10;
}
// https://www.jfrog.com/confluence/display/JFROG/Artifactory+REST+API#ArtifactoryRESTAPI-FileInfo
message Artifactory {
string repo = 1;
string path = 2;
string link = 3;
string timestamp = 4;
string username = 5;
string email = 6;
}
message Syslog {
string hostname = 1;
string appname = 2;
string procid = 3;
string timestamp = 4;
string client = 5;
string facility = 6;
}
message Forager {
oneof metadata {
Github github = 1;
NPM npm = 2;
PyPi pypi = 3;
}
}
message SharePoint {
string link = 1;
string timestamp = 2;
string author = 3;
string title = 4;
int64 views = 5;
string docid = 6;
string email = 7;
}
message GoogleDrive {
string file = 1;
string link = 2;
string email = 3;
string timestamp = 4;
bool shared = 5;
string last_modified_by = 6;
string path = 7;
}
message AzureRepos {
string link = 1;
string username = 2;
string repository = 3;
string commit = 4;
string email = 5;
string file = 6;
string timestamp = 7;
int64 line = 8;
Visibility visibility = 9;
string project = 10;
string organization = 11;
}
message Postman {
string link = 1;
string workspace_uuid = 2;
string workspace_name = 3;
string globals_id = 4;
string collection_id = 5;
string collection_name = 6;
string environment_id = 7;
string environment_name = 8;
string request_id = 9;
string request_name = 10;
string folder_id = 11;
string folder_name = 12;
string field_type = 13;
string field_name = 14;
string variable_type = 15;
}
message Vector {
google.protobuf.Timestamp timestamp = 1;
string source_type = 2;
string host = 3;
}
message Webhook {
oneof data {
Vector vector = 1;
}
}
message Elasticsearch {
string index = 1;
string document_id = 2;
string timestamp = 3;
}
message MetaData {
oneof data {
Azure azure = 1;
Bitbucket bitbucket = 2;
CircleCI circleci = 3;
Confluence confluence = 4;
Docker docker = 5;
ECR ecr = 6;
GCS gcs = 7;
Github github = 8;
Gitlab gitlab = 9;
Jira jira = 10;
NPM npm = 11;
PyPi pypi = 12;
S3 s3 = 13;
Slack slack = 14;
Filesystem filesystem = 15;
Git git = 16;
Test test = 17;
Buildkite buildkite = 18;
Gerrit gerrit = 19;
Jenkins jenkins = 20;
Teams teams = 21;
Artifactory artifactory = 22;
Syslog syslog = 23;
Forager forager = 24;
SharePoint sharepoint = 25;
GoogleDrive googleDrive = 26;
AzureRepos azureRepos = 27;
TravisCI travisCI = 28;
Postman postman = 29;
Webhook webhook = 30;
Elasticsearch elasticsearch = 31;
Huggingface huggingface = 32;
}
}