TETHYS - Data Publisher for Geoscience Austria is a digital data library and a data publisher for earth system science. Data can be georeferenced in time (date/time) and space (latitude, longitude, depth/height). #geology #data-publisher https://www.tethys.at
Find a file
Arno Kaimbacher b5bbe26ec2
Some checks failed
build.yaml / feat: Enhance background job settings UI and functionality (push) Failing after 0s
feat: Enhance background job settings UI and functionality
- Updated BackgroundJob.vue to improve the display of background job statuses, including missing cross-references and current job mode.
- Added auto-refresh functionality for background job status.
- Introduced success toast notifications for successful status refreshes.
- Modified the XML serialization process in DatasetXmlSerializer for better caching and performance.
- Implemented a new RuleProvider for managing custom validation rules.
- Improved error handling in routes for loading background job settings.
- Enhanced ClamScan configuration with socket support for virus scanning.
- Refactored dayjs utility to streamline locale management.
2025-10-14 12:19:09 +02:00
.gitea/workflows feat: Update CI workflow for reference validation tests and add environment variable configurations 2025-01-27 12:20:49 +01:00
app feat: Enhance background job settings UI and functionality 2025-10-14 12:19:09 +02:00
bin - renamings to the new naming convetion for adonisjs version 6 2024-04-29 11:25:50 +02:00
commands feat: Enhance background job settings UI and functionality 2025-10-14 12:19:09 +02:00
config hotfix(dataset): enhance file upload and update functionality 2025-04-01 13:39:02 +02:00
contracts hotfix (dataset): implement reject to reviewer functionality for editors 2025-05-02 14:35:58 +02:00
database hotfix(dataset): improve dataset classification UI and data handling 2025-05-06 17:43:37 +02:00
docs/commands - feat: Enhance README with setup instructions, usage, and command documentation 2025-09-19 14:35:23 +02:00
providers feat: Enhance background job settings UI and functionality 2025-10-14 12:19:09 +02:00
public feat: Enhance background job settings UI and functionality 2025-10-14 12:19:09 +02:00
resources feat: Enhance background job settings UI and functionality 2025-10-14 12:19:09 +02:00
src - improved vies and controllers for rejecting datasets with email for reviewer and editor role 2024-09-26 13:51:35 +02:00
start feat: Enhance background job settings UI and functionality 2025-10-14 12:19:09 +02:00
tests feat: Add alternate mimetype support, enhance validation for alternate mimetypes, and improve script loading performance 2025-02-13 15:49:09 +01:00
.babelrc - prettier formatting 2023-10-31 15:38:43 +01:00
.dockerignore - second commit 2023-03-17 16:13:37 +01:00
.editorconfig - added own provider for drive methods 2024-04-23 19:36:45 +02:00
.env.example feat: Update CI workflow for reference validation tests and add environment variable configurations 2025-01-27 12:20:49 +01:00
.eslintrc.json - prettier formatting 2023-10-31 15:38:43 +01:00
.gitignore feat: Update .gitignore and refine TypeScript configuration; clean up commented code and enhance dataset validation; npm updates 2025-01-29 11:26:21 +01:00
.prettierignore initial commit 2023-03-03 16:54:28 +01:00
.prettierrc - second commit 2023-03-17 16:13:37 +01:00
ace.js feat: update to vite.js, Refactor configuration files, remove unused assets, and clean up commented code: 2025-02-07 10:14:57 +01:00
adonisrc.ts feat: Enhance background job settings UI and functionality 2025-10-14 12:19:09 +02:00
clamd.conf feat: Enhance background job settings UI and functionality 2025-10-14 12:19:09 +02:00
components.d.ts - prettier format checking 2023-09-05 18:18:42 +02:00
docker-entrypoint.sh feat: Enhance background job settings UI and functionality 2025-10-14 12:19:09 +02:00
Dockerfile feat: Enhance background job settings UI and functionality 2025-10-14 12:19:09 +02:00
freshclam.conf feat: Enhance background job settings UI and functionality 2025-10-14 12:19:09 +02:00
index.d.ts hotfix: enhance radio button and file upload components 2025-03-27 16:04:23 +01:00
LICENSE - feat: Enhance README with setup instructions, usage, and command documentation 2025-09-19 14:35:23 +02:00
package-lock.json feat: Enhance background job settings UI and functionality 2025-10-14 12:19:09 +02:00
package.json feat: Enhance background job settings UI and functionality 2025-10-14 12:19:09 +02:00
postcss.config.cjs feat: update to vite.js, Refactor configuration files, remove unused assets, and clean up commented code: 2025-02-07 10:14:57 +01:00
readme.md - feat: Enhance README with setup instructions, usage, and command documentation 2025-09-19 14:35:23 +02:00
tailwind.config.js hotfix(dataset): enhance radio button and checkbox components and add arrayContainsTypes validation 2025-03-28 17:34:46 +01:00
tsconfig.json feat: update to vite.js, Refactor configuration files, remove unused assets, and clean up commented code: 2025-02-07 10:14:57 +01:00
vite.config.ts feat: update to vite.js, Refactor configuration files, remove unused assets, and clean up commented code: 2025-02-07 10:14:57 +01:00
webpack.config.cjs feat: update to vite.js, Refactor configuration files, remove unused assets, and clean up commented code: 2025-02-07 10:14:57 +01:00

Tethys Research Repository Backend System

Welcome to the Tethys Research Repository Backend System! This is the backend component responsible for managing datasets, users, and the core functionality of the Tethys Data Research Repository.

Table of Contents

Getting Started

Prerequisites

Before you begin, ensure you have met the following requirements:

  • Node.js and npm installed on your development machine.
  • A running PostgreSQL database instance.
  • AdonisJS CLI globally installed.

Installation

  1. Clone this repository:

    git clone git clone https://gitea.geologie.ac.at/geolba/tethys.backend.git
    cd tethys-backend
    
  2. Install dependencies:

    npm install
    
  3. Configure environment variables (see Configuration)

  4. Run database migrations:

    node ace migration:run
    
  5. Start the development server:

    npm run dev
    

Usage

The Tethys Backend provides RESTful APIs for managing research datasets, user authentication, DOI registration, and search functionality.

Configuration

Copy the .env.example file to .env and configure the following variables:

Database Configuration

DB_CONNECTION=pg
DB_HOST=localhost
DB_PORT=5432
DB_USER=your_username
DB_PASSWORD=your_password
DB_DATABASE=tethys_db

DataCite Configuration

# DataCite Credentials
DATACITE_USERNAME=your_datacite_username
DATACITE_PASSWORD=your_datacite_password
DATACITE_PREFIX=10.21388

# Environment-specific API endpoints
DATACITE_API_URL=https://api.test.datacite.org      # Test environment
DATACITE_SERVICE_URL=https://mds.test.datacite.org  # Test MDS

# For production:
# DATACITE_API_URL=https://api.datacite.org
# DATACITE_SERVICE_URL=https://mds.datacite.org

OpenSearch Configuration

OPENSEARCH_HOST=localhost:9200

Application Configuration

BASE_DOMAIN=tethys.at
APP_KEY=your_app_key

Database

The system uses PostgreSQL with Lucid ORM. Key models include:

  • Dataset: Research dataset metadata
  • DatasetIdentifier: DOI and other identifiers for datasets
  • User: User management and authentication
  • XmlCache: Cached XML metadata

Run migrations and seeders:

# Run migrations
node ace migration:run

# Run seeders (if available)
node ace db:seed

API Documentation

API endpoints are available for:

  • Dataset management (/api/datasets)
  • User authentication (/api/auth)
  • DOI registration (/api/doi)
  • Search functionality (/api/search)

Detailed API documentation can be found in the /docs/api directory.

Commands

The system includes several Ace commands for maintenance and data management:

Dataset Indexing

# Index all published datasets to OpenSearch
node ace index:datasets

# Index a specific dataset
node ace index:datasets --publish_id 123

DataCite DOI Management

# Update DataCite records for modified datasets
node ace update:datacite

# Show detailed statistics for datasets needing updates
node ace update:datacite --stats

# Preview what would be updated (dry run)
node ace update:datacite --dry-run

# Force update all DOI records
node ace update:datacite --force

# Update a specific dataset
node ace update:datacite --publish_id 123

For detailed command documentation, see the Commands Documentation

Documentation

Comprehensive documentation is available in the /docs directory:

Contributing

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add some amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

Development Guidelines

  • Follow the existing code style and conventions
  • Write tests for new features
  • Update documentation for any API changes
  • Ensure all commands and migrations work properly

Testing Commands

# Run tests
npm test

# Test specific commands
node ace update:datacite --dry-run --publish_id 123
node ace index:datasets --publish_id 123

License

This project is licensed under the MIT License.