td-dd
is a back-end service developed as part of Truedat project that provides
API's for the following functionality:
- Data Catalog
- Data Lineage
- Connector Management
- Data Quality
These instructions will get you a copy of the project up and running on your local machine for development and testing purposes. See deployment for notes on how to deploy the project on a live system.
Install dependencies with mix deps.get
To start your Phoenix server:
- Create and migrate your database with
mix ecto.create && mix ecto.migrate
- Start Phoenix endpoint with
mix phx.server
- The
td-dd
API is published onlocalhost:4005
- The
td-cx
API is published onlocalhost:4008
Run all aplication tests with mix test
- DB_SSL: boolean value, to enable TSL config, by default is false.
- DB_SSL_CACERTFILE: path of the certification authority cert file "/path/to/ca.crt", required when DB_SSL is true.
- DB_SSL_VERSION: available versions are tlsv1.2, tlsv1.3 by default is tlsv1.2.
- LINEAGE_NODES_DOMAINS_IDS_REFRESHER: default hourly, refresh the lineaje nodes domains ids column to show graph
- BULK_PAGE_SIZE_GRANTS: default 500
- BULK_PAGE_SIZE_IMPLEMENTATIONS: default 100
- BULK_PAGE_SIZE_JOBS: default 100
- BULK_PAGE_SIZE_RULES: default 100
- BULK_PAGE_SIZE_STRUCTURES: default 1000
- BULK_PAGE_SIZE_GRANT_REQUESTS: default 500
- GRANT_STORE_CHUNK_SIZE: default 1000
- GRANT_REQUEST_STORE_CHUNK_SIZE: default 1000
- STRUCTURE_STORE_CHUNK_SIZE: default 1000
- DSV_STORE_CHUNK_SIZE: default 1000
If the variable is set to false, it will not be deleted in the case that there is no index in the hot swap process.
- DELETE_EXISTING_INDEX: detault true
The bulk_wait_interval variable defines the time interval between batches of bulk operations in Elasticsearch.
BULK_WAIT_INTERVAL_GRANTS: default 0
- The aggregation variables are defined as follows: AGG_<AGGREGATION_NAME>_SIZE
Ready to run in production? Please check our deployment guides.
- phoenix - A productive web framework
- ecto - Elixir toolkit for database integration
- postgrex - Elixir PostgreSQL driver
- gettext - Internationalization and localization support
- cowboy - An HTTP server for Erlang/OTP
- httpoison - An HTTP client
- credo - Static code analysis
- guardian - Authentication library
- bodyguard - Authorization library
- ex_machina - A factory library for test data
- cors_plug - Plug for CORS support
- phoenix_swagger - Swagger integration for Phoenix framework
- ex_json_schema - JSON Schema validator
- elasticsearch - Client for Elasticsearch
- vaultex - Client for HashiCorp Vault
- Bluetab Solutions Group, SL - Initial work - Bluetab
See also the list of contributors who participated in this project.
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program. If not, see https://www.gnu.org/licenses/.
In order to use this software, it is necessary that, depending on the type of functionality that you want to obtain, it is assembled with other software whose license may be governed by other terms different than the GNU General Public License version 3 or later. In that case, it will be absolutely necessary that, in order to make a correct use of the software to be assembled, you give compliance with the rules of the concrete license (of Free Software or Open Source Software) of use in each case, as well as, where appropriate, obtaining of the permits that are necessary for these appropriate purposes.