{"id":21614770,"url":"https://github.com/eea/eionet.datadict","last_synced_at":"2025-04-11T06:53:27.870Z","repository":{"id":11109350,"uuid":"13464935","full_name":"eea/eionet.datadict","owner":"eea","description":"Data Dictionary","archived":false,"fork":false,"pushed_at":"2025-03-13T08:27:15.000Z","size":51978,"stargazers_count":3,"open_issues_count":26,"forks_count":6,"subscribers_count":54,"default_branch":"master","last_synced_at":"2025-03-25T04:42:07.985Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/eea.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2013-10-10T07:40:32.000Z","updated_at":"2025-03-13T08:27:19.000Z","dependencies_parsed_at":"2023-11-09T15:30:33.187Z","dependency_job_id":"dec65b58-e04e-4ba7-86d8-fc7b5a44cc53","html_url":"https://github.com/eea/eionet.datadict","commit_stats":null,"previous_names":[],"tags_count":29,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eea%2Feionet.datadict","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eea%2Feionet.datadict/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eea%2Feionet.datadict/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eea%2Feionet.datadict/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/eea","download_url":"https://codeload.github.com/eea/eionet.datadict/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248358555,"owners_count":21090402,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":[],"created_at":"2024-11-24T22:09:19.074Z","updated_at":"2025-04-11T06:53:27.838Z","avatar_url":"https://github.com/eea.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"EIONET Data Dictionary\n======================\n\nIntroduction\n------------\nThe Data Dictionary (DD) is used to support the delivery of environmental data by countries to Reportnet.\nThe contents in the data dictionary are used to generate pdfs of the technical specifications for dataflows as well as Excel templates.\nThe Data Dictionary also introduces the possibility of simple automated validation of deliveries by countries and facilitates the development of data submission interfaces.\n\nData Dictionary holds definitions of datasets, tables and data elements. Each of these three levels is defined by a set of attributes, the core set of which corresponds to ISO 11179 standard for describing data elements.\nThe whole attribute set is flexible and attributes can be added / removed from/to the system.\n\nFor doing a quick-start installation, read the following instructions. They give some hints on how to quickly get DD code from github, and how to set it up as a Tomcat web application. \n\nInstallation\n------------\n\n### Prerequisites\nDD runs on Java platform, and has been tested and run on Tomcat Java Servlet Container. DD source code is built with Maven.\n\nPlease download all of these software and install them according to the instructions found at their websites:\nJava, Tomcat, Maven and GIT client.\n\nThe necessary versions are as follows:\n* Java 8\n* Maven 3.6.1 or higher\n* Tomcat 8.5.45 or higher\n* GIT 2.17.1 or higher\n* Mariadb 5.5.63  or higher\n* (Optional) Docker 1.6 or higher\n\n### Download DD source code\n\nCreate build directory for source code and get code from GitHub\n```sh\n$ cd /var/local/build\n$ git clone https://github.com/eea/eionet.datadict.git\n```\n\nNB! The resulting /var/local/build/eionet.datadict directory will be denoted  below as $CHECKOUT_HOME\n\n### Build the application\n\n```sh\n$ cd $CHECKOUT_HOME\n$ mvn -Denv=local -Dmaven.test.skip=true clean install\n```\n\n##### Custom headers and footers configuration (OPTIONAL):\n\nRevise $CHECKOUT_HOME/custom/*.txt files for modifying the content of headers and footers in DD web pages texts and links.  You will find guidelines from inside $CHECKOUT_HOME/custom/README.txt.\n\n\n### Local tomcat deployment\n\n##### 1. Set up DB and DB user\n\nCreate the DataDict database and the DataDict user identified by a password.\n\n```sh\n$ mysql -u root -p\n```\n\n```sql\nCREATE DATABASE DataDict;\nCREATE USER 'dduser-here'@'localhost' IDENTIFIED BY 'password-here';\nGRANT ALL PRIVILEGES ON DataDict.* TO 'dduser-here'@'localhost';\n```\n\n##### 2. Configure environment variables for tomcat:\n\n###### 2.a Local properties configuration\n\nIn the env_setup/local/catalina_opts.txt file you will find all the CATALINA_OPTS that need to be configured with \nthe specific values for your environment. Set these variables for your local tomcat installation.\n\nAlternatively you can copy the default.properties file and create a local.properties file for development purposes.\n\n###### 2.b Log4j RollingFile appender configuration\n\nAdd the following environment variables in tomcat for log4j2 configuration (these variables are used in log4j2.xml):\nA variable with name logFilePath and value a path to a folder where log files will be stored. \nA variable with name queryLogRetainAll and value=false if log files should be deleted, true otherwise.\nA variable with name queryLogRetentionDays and value the duration for which log files will be retained. Log files older than the specified duration will be deleted.\n\n##### 3. Deploy on tomcat\n\nPlace the resulting $CHECKOUT_HOME/target/datadict.war into Tomcat's webapps directory, and start Tomcat.\nAt tomcat startup liquibase will create the initial DB structure.\n\n### Unit tests\n\nThe unit test mechanism will install its own embedded database and create the tables when you execute them. Note that the embedded database will keep running afterwards. You can run individual tests with: -Dtest=DatasetImportHandlerTest\n```sh\n$ cd $CHECKOUT_HOME\n$ mvn -Denv=unittest -Dmaven.test.skip=false test\n```\n\n### Integration Tests only\n\nIf you wish to skip unit tests and run only integration tests you may do so using the flag: -DskipUTs=true as shown below:\n```sh\n$mvn clean verify -DskipUTs=true\n```\n\n### Build for docker\n\nBuild the application as already described and then create a docker image by executing the docker build command in a directory containing both the Dockerfile and the datadict.war. If no tag is provided then the image will be tagged as \"latest\".\nThe docker file can be found at the env_setup/docker_build directory.\n\n```sh\n$ mkdir docker_build\n$ cd docker_build\n$ cp $CHECKOUT_HOME/target/datadict.war .\n$ cp $CHECKOUT_HOME/env_setup/docker_build/* .\n$ docker build -t eeacms/datadict:tag-here .\n```\n[Optional] In case you need to push the image you have created to DockerHub:\n\n```sh\n$ docker push eeacms/datadict:tag-here\n```\n\n### Rancher/Docker deployment\n\nIn the env_setup/docker_rancher directory you can find example files to be renamed and used as docker-compose.yml files for docker/rancher.\nBoth use the docker.env file for runtime properties configuration.\n\n*Note: After running the docker-compose up or the rancher-compose up commands you have to create the DB and the corresponding user-password and restart the tomcat container.*\n\n### Additional applications for modifying DD access permissions and help texts\n\nAdditional web applications are available for modifying user privileges and help texts in DD:\nAclAdmin tool: https://svn.eionet.europa.eu/repositories/Reportnet/acladmin/trunk\nHelpAdmin tool: https://svn.eionet.europa.eu/repositories/Reportnet/helpadmin/trunk\n\nInstalling these applications is done by similar steps:\n\n1. Checkout from SVN\n2. Create local.properties from default.properties\n3. Modify environment specific properties in local.properties file\n4. call \"mvn install\"\n5. Rename acladmin.properties.dist/helpadmin.properties.dist to acladmin.properties/helpadmin.properties in ROOT/WEB-INF/classes folder and revise the content of the properties files\n6. Rename *.acl.dist files to *.acl files in acladmin_contents/acls folder (only in AclAdminTool) and revise the contents of acladmin.group file\n  More detailed information about ACL's is available at: http://taskman.eionet.europa.eu/projects/reportnet/wiki/AccessControlLists\n7. Copy the created war files to tomcat webapps folder and start tomcat\nPlease find more detailed information in documentation of these applications.\n\n### Logging to Sentry [Production env]\n\nThe file responsible for configuring logging in general and SENTRY integration specifically, is log4j2.xml.\nThe default place to put such a file is on container folder /opt/datadict.\nThe path for logging to that file can be set through CATALINA_OPTS environment variables mechanism by using this flag combined with the file location -Dlog4j.configurationFile=/opt/datadict/log4j2.xml\n\n### Class shadowing\nClasses org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate and org.springframework.jdbc.core.namedparam.JdbcTemplate have been shadowed. Library implementation is ignored\nand local implementation is used instead.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feea%2Feionet.datadict","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Feea%2Feionet.datadict","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feea%2Feionet.datadict/lists"}