{"id":41072731,"url":"https://github.com/mantzas/incata","last_synced_at":"2026-01-22T13:10:56.567Z","repository":{"id":57527236,"uuid":"50233197","full_name":"mantzas/incata","owner":"mantzas","description":"Event Sourcing Data Access Library","archived":false,"fork":false,"pushed_at":"2018-02-28T19:57:11.000Z","size":10328,"stargazers_count":19,"open_issues_count":0,"forks_count":3,"subscribers_count":1,"default_branch":"master","last_synced_at":"2026-01-14T20:24:33.989Z","etag":null,"topics":["database","event-sourcing","go","golang"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mantzas.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2016-01-23T10:03:52.000Z","updated_at":"2021-05-10T08:14:41.000Z","dependencies_parsed_at":"2022-09-13T12:40:54.442Z","dependency_job_id":null,"html_url":"https://github.com/mantzas/incata","commit_stats":null,"previous_names":["mantzas/golinear"],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/mantzas/incata","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mantzas%2Fincata","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mantzas%2Fincata/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mantzas%2Fincata/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mantzas%2Fincata/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mantzas","download_url":"https://codeload.github.com/mantzas/incata/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mantzas%2Fincata/sbom","scorecard":{"id":615776,"data":{"date":"2025-08-11","repo":{"name":"github.com/mantzas/incata","commit":"7691bc7ed872896324aca73b953b39ee342f1a68"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":2.7,"checks":[{"name":"Token-Permissions","score":-1,"reason":"No tokens found","details":null,"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Dangerous-Workflow","score":-1,"reason":"no workflows found","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Code-Review","score":0,"reason":"Found 0/30 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"SAST","score":0,"reason":"no SAST tool detected","details":["Warn: no pull requests merged into dev branch"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: Apache License 2.0: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'master'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: goCommand not pinned by hash: vendor/github.com/lib/pq/.travis.sh:82","Warn: goCommand not pinned by hash: vendor/github.com/lib/pq/.travis.sh:84","Warn: goCommand not pinned by hash: vendor/github.com/lib/pq/.travis.sh:95","Info:   0 out of   3 goCommand dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Vulnerabilities","score":9,"reason":"1 existing vulnerabilities detected","details":["Warn: Project is vulnerable to: CVE-2021-28484"],"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}}]},"last_synced_at":"2025-08-21T03:53:21.102Z","repository_id":57527236,"created_at":"2025-08-21T03:53:21.103Z","updated_at":"2025-08-21T03:53:21.103Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28663776,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-22T01:17:37.254Z","status":"online","status_checked_at":"2026-01-22T02:00:07.137Z","response_time":144,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["database","event-sourcing","go","golang"],"created_at":"2026-01-22T13:10:55.865Z","updated_at":"2026-01-22T13:10:56.562Z","avatar_url":"https://github.com/mantzas.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# incata [![alt text](https://godoc.org/github.com/mantzas/incata?status.png)](https://godoc.org/github.com/mantzas/incata)\u0026nbsp;[![build status](https://img.shields.io/travis/mantzas/incata.svg)](http://travis-ci.org/mantzas/incata)\u0026nbsp;[![Coverage Status](https://coveralls.io/repos/github/mantzas/incata/badge.svg?branch=master)](https://coveralls.io/github/mantzas/incata?branch=master)\u0026nbsp;[![Go Report Card](https://goreportcard.com/badge/github.com/mantzas/incata)](https://goreportcard.com/report/github.com/mantzas/incata)\n\nEvent Sourcing Data Access Library\n\nPackage incata is a source eventing data access library. The name combines incremental (inc) and data (ata).\nDetails about event sourcing can be read on Martin Fowlers [site](http://martinfowler.com/eaaDev/EventSourcing.html).\n\nCurrently we support two relational DB's, MS Sql Server and Postgresql.\n\nThe stored Event has the following structure:\n\n    type Event struct {\n      Id        int64\n      SourceID  uuid.UUID\n      Created   time.Time\n      Payload   interface{}\n      EventType string\n      Version   int\n    }\n\nThe payload is the actual data that we like to store in our DB.\nSince the serializer can be anything the data type is set to interface{}.\nThis means that our db table column for the Payload have to match the serializer's result data type.\n\nIn order to use the appender or retriever we have to provide the following\n\n- A serializer or deserializer which implements the Serializer or Deserializer interface or the .  A JSONMarshaller is provided.\n- A writer or reader which implements the Writer or Reader interface. A SQLWriter and SQLReader is provided.\n- A appender and retriever which implement the Appender and Retriever interface. Appender and Retriever are provided.\n\nThe supported relational DB's are MS Sql Server and PostgreSQL.\n\n## Check out the examples in the examples folder for setting up the default marshaller and reader/writers\n\n### MS SQL Server Setup\n\n SQL Server Driver used:\n\n    \"github.com/denisenkom/go-mssqldb\"\n\n DB Table setup (Provide a table name)\n\n        CREATE TABLE {TableName} (\n          Id BIGINT IDENTITY\n          ,SourceId UNIQUEIDENTIFIER NOT NULL\n          ,Created DATETIME2 NOT NULL\n          ,EventType NVARCHAR(250) NOT NULL\n          ,Version INT NOT NULL\n          ,Payload NVARCHAR(MAX) NOT NULL\n          ,CONSTRAINT PK_Event PRIMARY KEY CLUSTERED (Id)\n        ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]\n\n         GO\n\n         CREATE INDEX IX_Event_SourceId\n         ON {TableName} (SourceId)\n         ON [PRIMARY]\n         GO\n\n### PostgreSQL Setup\n\nPostgreSQL Driver used:\n\n    \"github.com/lib/pq\"\n\nDB Table setup (Provide a table name)\n\n      CREATE TABLE {table_name}\n      (\n        id bigserial NOT NULL,\n        source_id uuid NOT NULL,\n        created timestamp with time zone NOT NULL,\n        event_type character varying(250) NOT NULL,\n        version integer NOT NULL,\n        payload text NOT NULL,\n        CONSTRAINT pk_{table_name}_id PRIMARY KEY (id)\n      )\n      WITH (\n        OIDS=FALSE\n      );\n\n      CREATE INDEX ix_order_event_source_id\n        ON {table_name}\n        USING btree\n        (source_id);\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmantzas%2Fincata","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmantzas%2Fincata","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmantzas%2Fincata/lists"}