{"id":13393860,"url":"https://github.com/digota/digota","last_synced_at":"2026-01-17T08:15:21.533Z","repository":{"id":37602089,"uuid":"100262942","full_name":"digota/digota","owner":"digota","description":"ecommerce microservice","archived":false,"fork":false,"pushed_at":"2021-02-14T21:42:48.000Z","size":13432,"stargazers_count":511,"open_issues_count":11,"forks_count":85,"subscribers_count":29,"default_branch":"master","last_synced_at":"2025-03-13T19:39:18.115Z","etag":null,"topics":["digota","ecommerce","microservice","payments","paypal","stripe"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/digota.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2017-08-14T12:01:37.000Z","updated_at":"2025-02-28T03:02:07.000Z","dependencies_parsed_at":"2022-07-19T18:09:18.500Z","dependency_job_id":null,"html_url":"https://github.com/digota/digota","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/digota/digota","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/digota%2Fdigota","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/digota%2Fdigota/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/digota%2Fdigota/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/digota%2Fdigota/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/digota","download_url":"https://codeload.github.com/digota/digota/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/digota%2Fdigota/sbom","scorecard":{"id":342806,"data":{"date":"2025-08-11","repo":{"name":"github.com/digota/digota","commit":"c2a16d57bfe0fd0d6f3a7b9a71122668a24c1e6c"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":1.6,"checks":[{"name":"Code-Review","score":0,"reason":"Found 1/23 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":"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":"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":"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":"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":"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":"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":"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":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: MIT License: 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":"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":"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":"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: containerImage not pinned by hash: docker/build/Dockerfile:1: pin your Docker image by updating golang:1.11 to golang:1.11@sha256:e972c78795b22d5cfab02ac410aa2305fcc036319a7af51065d1af583cd3ec04","Warn: goCommand not pinned by hash: docker/build/Dockerfile:3","Warn: goCommand not pinned by hash: vendor/google.golang.org/grpc/vet.sh:37","Warn: goCommand not pinned by hash: vendor/google.golang.org/grpc/vet.sh:47","Info:   0 out of   1 containerImage dependencies pinned","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":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 15 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}},{"name":"Vulnerabilities","score":0,"reason":"35 existing vulnerabilities detected","details":["Warn: Project is vulnerable to: GO-2022-0209 / GHSA-r5c5-pr8j-pfp7","Warn: Project is vulnerable to: GO-2023-1992 / GHSA-x3jr-pf6g-c48f","Warn: Project is vulnerable to: GO-2022-0229 / GHSA-cjjc-xp8v-855w","Warn: Project is vulnerable to: GO-2020-0012 / GHSA-ffhg-7mh4-33c4","Warn: Project is vulnerable to: GO-2021-0227 / GHSA-3vm4-22fp-5rfm","Warn: Project is vulnerable to: GO-2022-0968 / GHSA-gwc9-m7rh-j2ww","Warn: Project is vulnerable to: GO-2021-0356 / GHSA-8c26-wmh5-6g9v","Warn: Project is vulnerable to: GO-2024-2961","Warn: Project is vulnerable to: GO-2023-2402 / GHSA-45x7-px36-x8w8","Warn: Project is vulnerable to: GO-2024-3321 / GHSA-v778-237x-gjrc","Warn: Project is vulnerable to: GO-2025-3487 / GHSA-hcg3-q754-cr77","Warn: Project is vulnerable to: GO-2022-0493 / GHSA-p782-xgp4-8hr8","Warn: Project is vulnerable to: GO-2025-3372 / GHSA-6wxm-mpqj-6jpf","Warn: Project is vulnerable to: GO-2022-0193 / GHSA-fcf9-6fv2-fc5v","Warn: Project is vulnerable to: GO-2022-0192 / GHSA-2wp2-chmh-r934","Warn: Project is vulnerable to: GO-2022-0197 / GHSA-4r78-hx75-jjj2 / GHSA-mv93-wvcp-7m7r","Warn: Project is vulnerable to: GO-2020-0014 / GHSA-vfw5-hrgq-h5wf","Warn: Project is vulnerable to: GO-2022-0536 / GHSA-39qc-96h7-956f / GHSA-hgr8-6h9x-f7q9","Warn: Project is vulnerable to: GO-2022-0236 / GHSA-h86h-8ppg-mxmh","Warn: Project is vulnerable to: GO-2021-0238 / GHSA-83g2-8m93-v3w7","Warn: Project is vulnerable to: GO-2022-0288","Warn: Project is vulnerable to: GO-2022-0969 / GHSA-69cg-p879-7622","Warn: Project is vulnerable to: GO-2022-1144 / GHSA-xrjj-mj9h-534m","Warn: Project is vulnerable to: GO-2023-1571 / GHSA-vvpx-j8f3-3w6h","Warn: Project is vulnerable to: GO-2023-1988 / GHSA-2wrh-6pvc-2jm9","Warn: Project is vulnerable to: GO-2023-2102 / GHSA-4374-p667-p6c8","Warn: Project is vulnerable to: GHSA-qppj-fm5r-hxr3","Warn: Project is vulnerable to: GO-2024-2687 / GHSA-4v7x-pqxf-cx7m","Warn: Project is vulnerable to: GO-2024-3333","Warn: Project is vulnerable to: GO-2025-3503 / GHSA-qxp5-gwg8-xv66","Warn: Project is vulnerable to: GO-2025-3595 / GHSA-vvgc-356p-c3xw","Warn: Project is vulnerable to: GO-2025-3488 / GHSA-6v2p-p543-phr9","Warn: Project is vulnerable to: GO-2020-0015 / GHSA-5rcv-m4m3-hfh7","Warn: Project is vulnerable to: GO-2021-0113 / GHSA-ppp9-7jff-5vj2","Warn: Project is vulnerable to: GO-2022-1059 / GHSA-69ch-w2m2-3vjp"],"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-18T06:17:49.588Z","repository_id":37602089,"created_at":"2025-08-18T06:17:49.588Z","updated_at":"2025-08-18T06:17:49.588Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28504359,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-17T06:57:29.758Z","status":"ssl_error","status_checked_at":"2026-01-17T06:56:03.931Z","response_time":85,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["digota","ecommerce","microservice","payments","paypal","stripe"],"created_at":"2024-07-30T17:01:01.527Z","updated_at":"2026-01-17T08:15:21.492Z","avatar_url":"https://github.com/digota.png","language":"Go","readme":"\u003ca href=\"http://digota.com/\"\u003e![Logo](http://i.imgur.com/hqEKC51.png)\u003c/a\u003e\n## Digota - ecommerce microservice [![Go Report Card](https://goreportcard.com/badge/github.com/digota/digota)](https://goreportcard.com/report/github.com/digota/digota) [![Build Status](https://travis-ci.org/digota/digota.svg?branch=master)](https://travis-ci.org/digota/digota) [![Coverage Status](https://coveralls.io/repos/github/digota/digota/badge.svg?branch=master)](https://coveralls.io/github/digota/digota?branch=master) [![Gitter chat](https://badges.gitter.im/gitterHQ/gitter.png)](https://gitter.im/digota/Lobby)\n\n[Digota](http://digota.com) is ecommerce microservice built to be the modern standard for ecommerce systems.It is based on grpc,protocol-buffers and http2 provides clean, powerful and secured RPC interface. \n\nOur Goal is to provide the best technology that covers most of the ecommerce flows, just focus of your business logic and not on the ecommerce logic.\n\n___TLDR; scalable ecommerce microservice.___\n\n### Join our community at [gitter](https://gitter.im/digota/Lobby) ! \n\n## Getting started\n\n#### Prerequisites\n\n* Go \u003e 1.8\n* Database \n  * mongodb \u003e 3.2\n  * redis (TBD)\n  * postgresql (TBD - [#2](https://github.com/digota/digota/issues/2))\n* Lock server (default is in-memory locker)\n  * zookeeper \n  * redis !! (thanks @Gerifield)\n  * etcd (TBD - [#3](https://github.com/digota/digota/issues/3))\n\n#### Installation\n\nFrom source  \n\n```bash\n$ go get -u github.com/digota/digota\n```\n\nFrom docker hub\n\n```bash\n$ docker pull digota/digota:0.1\n```\n\n#### Run\n\n```bash\n$ docker run digota/digota:0.1\n```\n\nOr with flags\n\n```bash\n$ docker run digota/digota:0.1 bash -c \"digota --version\"\n```\n\nCheck out this [docker-compose](https://github.com/digota/digota/blob/master/docker/docker-compose.yml) for more details.\n\nFlags:\n       --info                  Set log level to info\n       --debug                 Set log level to debug\n       --help, -h              show help\n       --version, -v           print the version\n\n## Cross languages\n\nKey benefit of using grpc is the native support of major languages (`C++`,`Java`,`Python`,`Go`,`Ruby`,`Node.js`,`C#`,`Objective-C`,`Android Java` and `PHP`). \nLearn How to compile your client right [here](https://grpc.io/docs/quickstart/), You can use you `Makefile` as well.\n\nComplied clients:\n1. [php](https://github.com/digota/digota-php)\n\n## Flexible payment gateways\n\nIt does not matter which payment gateway you are using, it is just matter of config to register it.\n\nSupported gateways for now: \n1. Stripe\n2. Braintree\n\n\u003e Are you payment provider ? \n\u003e Just implement the following [interface](https://github.com/digota/digota/blob/master/payment/service/providers/providers.go#L32) and PR you changes.\n\n## Auth \u0026 Security\n\n##### We take security very seriously, don't hesitate to report a security issue.\n\nDigota is fully Encrypted (end-to-end) using TLS, That fact is leveraged also to Authenticate Clients based on their Certificate in front of the Local Certificate Authority.\nBasically we are creating CA and signing any certificate we want to approve with same CA. \n\n\u003e How about revoking certificate? The CRL approch here is whitelist instead of blacklist, just remove client serial from your config.\n\n##### Create CA\n\n```bash\n$ certstrap init --common-name \"ca.company.com\"\n```\n\n##### Create Client Certificate\n\n```bash\n$ certstrap request-cert --domain client.company.com\n```\n\n##### Sign Certificate\n\n```bash\n$ certstrap sign --CA \"ca.company.com\" client.company.com\n```\n\n##### Approve Certificate\n\nTake the certificate serial and Append the serial and scopes(`WRITE`,`READ`,`WILDCARD`) to your config\n\n```bash\n$ openssl x509 -in out/client.com.crt -serial | grep -Po '(?\u003c=serial=)\\w+'\noutput: A2FF9503829A3A0DDE9CB87191A472D4\n```\n\nFollow [these](https://github.com/digota/digota/tree/master/_example/auth) steps to create your CA and Certificates.\n\n## Money \u0026 Currencies\n\nFloats are tricky when it comes to money, we don't want to lose money so the chosen money representation here is \nbased on the [smallest currency unit](https://martinfowler.com/eaaCatalog/money.html). For example: `4726` is `$47.26`.\n\n## Distributed lock\n\nAll the important data usage is `Exclusively Guaranteed`, means that you don't need to worry about any concurrent data-race across different nodes.\nTypical data access is as following:\n```\nClient #1 GetSomething -\u003e TryLock -\u003e [lock accuired] -\u003e  DoSomething -\u003e ReleaseLock -\u003e Return Something \n                                                                                 \\ \nClient #2 GetSomething -\u003e TryLock -\u003e --------- [wait for lock] -------------------*-----\u003e [lock accuired] -\u003e ...\n                                         \nClient #3 GetSomething -\u003e TryLock -\u003e -------------------- [wait for lock] ---\u003e [accuire error] -\u003e Return Error\n```\n\n## Core Services \n\n### Payment\n\n```proto\nservice Payment {\n    rpc Charge  (chargeRequest) returns (charge)        {}\n    rpc Refund  (refundRequest) returns (charge)        {}\n    rpc Get     (getRequest)    returns (charge)        {}\n    rpc List    (listRequest)   returns (chargeList)    {}\n}\n```\n\n___Full service [definition](https://github.com/digota/digota/blob/master/payment/paymentpb/payment.proto).___\n\nPayment service is used for credit/debit card charge and refund, it is provides support of multiple \npayment providers as well. Usually there is no use in this service externally if you are using `order` functionality.\n\n### Order\n\n```proto\nservice Order {\n    rpc New     (newRequest)    returns (order)         {}\n    rpc Get     (getRequest)    returns (order)         {}\n    rpc Pay     (payRequest)    returns (order)         {}\n    rpc Return  (returnRequest) returns (order)         {}\n    rpc List    (listRequest)   returns (listResponse)  {}\n}\n```\n\n___Full service [definition](https://github.com/digota/digota/blob/master/order/orderpb/order.proto).___\n\nOrder service helps you deal with structured purchases ie `order`. Naturally order is a collection of purchasable\nproducts,discounts,invoices and basic customer information.\n\n### Product\n\n```proto\nservice Product {\n    rpc New     (newRequest)    returns (product)       {}\n    rpc Get     (getRequest)    returns (product)       {}\n    rpc Update  (updateRequest) returns (product)       {}\n    rpc Delete  (deleteRequest) returns (empty)         {}\n    rpc List    (listRequest)   returns (productList)   {}\n}\n```\n\n___Full service [definition](https://github.com/digota/digota/blob/master/product/productpb/product.proto).___\n\nProduct service helps you manage your products, product represent collection of purchasable items(sku), physical or digital.\n\n### Sku\n\n```proto\nservice Sku {\n    rpc New     (newRequest)    returns (sku)           {}\n    rpc Get     (getRequest)    returns (sku)           {}\n    rpc Update  (updateRequest) returns (sku)           {}\n    rpc Delete  (deleteRequest) returns (empty)         {}\n    rpc List    (listRequest)   returns (skuList)       {}\n}\n```\n\n___Full service [definition](https://github.com/digota/digota/blob/master/sku/skupb/sku.proto).___\n\nSku service helps you manage your product Stock Keeping Units(SKU), sku represent specific product configuration such as attributes, currency and price.\n\nFor example, a product may be a `football ticket`, whereas a specific SKU represents the stadium section. \n\nSku is also used to manage its inventory and \nprevent oversell in case that the inventory type is `Finite`. \n\n## Usage example\n\nEventually the goal is to make life easier at the client-side, \nhere's golang example of creating order and paying for it.. easy as that.\n\n### Create new order\n\n```go\norder.New(context.Background(), \u0026orderpb.NewRequest{\n    Currency: paymentpb.Currency_EUR,\n    Items: []*orderpb.OrderItem{\n    \t{\n    \t\tParent:   \"af350ecc-56c8-485f-8858-74d4faffa9cb\",\n    \t\tQuantity: 2,\n    \t\tType:     orderpb.OrderItem_sku,\n    \t},\n    \t{\n    \t\tAmount:      -1000,\n    \t\tDescription: \"Discount for being loyal customer\",\n    \t\tCurrency:    paymentpb.Currency_EUR,\n    \t\tType:        orderpb.OrderItem_discount,\n    \t},\n    \t{\n    \t\tAmount:      1000,\n    \t\tDescription: \"Tax\",\n    \t\tCurrency:    paymentpb.Currency_EUR,\n    \t\tType:        orderpb.OrderItem_tax,\n    \t},\n    },\n    Email: \"yaron@digota.com\",\n    Shipping: \u0026orderpb.Shipping{\n    \tName:  \"Yaron Sumel\",\n    \tPhone: \"+972 000 000 000\",\n    \tAddress: \u0026orderpb.Shipping_Address{\n    \t\tLine1:      \"Loren ipsum\",\n    \t\tCity:       \"San Jose\",\n    \t\tCountry:    \"USA\",\n    \t\tLine2:      \"\",\n    \t\tPostalCode: \"12345\",\n    \t\tState:      \"CA\",\n    \t},\n    },\n})\n```\n\n### Pay the order\n\n```go\n\t\t\t\norder.Pay(context.Background(), \u0026orderpb.PayRequest{\n    Id:                \"bf350ecc-56c8-485f-8858-74d4faffa9cb\",\n    PaymentProviderId: paymentpb.PaymentProviderId_Stripe,\n    Card: \u0026paymentpb.Card{\n        Type:        paymentpb.CardType_Visa,\n    \tCVC:         \"123\",\n    \tExpireMonth: \"12\",\n    \tExpireYear:  \"2022\",\n    \tLastName:    \"Sumel\",\n    \tFirstName:   \"Yaron\",\n    \tNumber:      \"4242424242424242\",\n    },\n})\t\t\t\n\t\t\t\n```\n\n## Contribution\n\n### Development\n\n### Donations \n\n## License\n```\n// Digota \u003chttp://digota.com\u003e - eCommerce microservice\n// Copyright (c) 2018 Yaron Sumel \u003cyaron@digota.com\u003e\n//\n// MIT License\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in all\n// copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n// SOFTWARE.\n\n```\nYou can find the complete license file [here](https://github.com/digota/digota/blob/master/LICENSE), for any questions regarding the license please [contact](https://github.com/digota/digota#contact) us.\n\n## Contact\nFor any questions or inquiries please contact ___yaron@digota.com___\n","funding_links":[],"categories":["Distributed Systems","Go","ecommerce","Relational Databases","分布式系统","\u003cspan id=\"分布式系统-distributed-systems\"\u003e分布式系统 Distributed Systems\u003c/span\u003e"],"sub_categories":["Search and Analytic Databases","Advanced Console UIs","检索及分析资料库","SQL 查询语句构建库","\u003cspan id=\"高级控制台用户界面-advanced-console-uis\"\u003e高级控制台用户界面 Advanced Console UIs\u003c/span\u003e"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdigota%2Fdigota","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdigota%2Fdigota","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdigota%2Fdigota/lists"}