https://github.com/grycap/oscar-hub
Curated OSCAR services definitions (based on RO-CRATE)
https://github.com/grycap/oscar-hub
Last synced: 4 months ago
JSON representation
Curated OSCAR services definitions (based on RO-CRATE)
- Host: GitHub
- URL: https://github.com/grycap/oscar-hub
- Owner: grycap
- Created: 2025-05-25T16:38:39.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2026-01-26T08:24:34.000Z (5 months ago)
- Last Synced: 2026-02-12T07:03:47.396Z (4 months ago)
- Language: JavaScript
- Homepage: https://hub.oscar.grycap.net
- Size: 5.99 MB
- Stars: 1
- Watchers: 0
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# 🧠 OSCAR Hub
Welcome to **OSCAR Hub**, a repository of ready-to-deploy services for the [OSCAR](https://github.com/grycap/oscar) platform. Each service is defined using the [**RO-Crate**](https://www.researchobject.org/ro-crate/) standard, including structured metadata, deployment scripts, and FDL definitions.
---
## 🚀 What's in this repository?
- 📂 Inside the `crates`folder, a collection of directories, each representing a deployable OSCAR service.
- 📄 Inside each directory:
- `ro-crate-metadata.json`: Service description using the RO-Crate format.
- `fdl.yml`: Service definition using the [Functions Definition Language (FDL)](https://docs.oscar.grycap.net/fdl/).
- `script.sh`: Script to be executed upon service invocation.
---
## 📦 Adding a New Service
1. Create a new directory named after your service.
2. Copy the contents of `crates/template` into the new directory and adjust the placeholders.
3. Ensure the directory includes:
- `ro-crate-metadata.json`
- `fdl.yml`
- `script.sh`
4. Validate your RO-Crate before submitting a pull request.
---
## 🧰 Metadata validation
To validate the services defined via RO-Crate:
```bash
pip install roc-validator
```
Then run:
```bash
rocrate-validator validate -p ro-crate-1.1 --verbose --no-paging ./
```
A GitHub action has been configured to automatically validate new entries submitted via PRs.
---
## 🏗️ Local development
1. Install dependencies:
```bash
npm install
```
If you plan to work on the documentation site, also run `npm install` inside `docs/`.
2. Start the development server:
```bash
npm run dev
```
The script builds the site, serves the `dist` output, and watches for changes. By default it listens on [http://localhost:4173](http://localhost:4173); set the `PORT` environment variable to use a different port.
3. Edit the contributor & RO-Crate documentation under `docs/` with:
```bash
npm run docs:dev
```
The documentation is built with [Astro Starlight](https://starlight.astro.build) and published under [`/guide`](https://hub.oscar.grycap.net/guide/).
To produce a static bundle without the dev server, run `npm run build` to regenerate `dist/`. This command now builds both the catalog landing page and the `/guide` documentation bundle.
---
## 📚 Guide
The canonical reference for onboarding, workflow expectations, and field-by-field RO-Crate documentation now lives inside this repository at [`docs/`](docs/). It is published together with the catalog at `https://hub.oscar.grycap.net/guide/` and includes:
- Contributor prerequisites and local setup instructions.
- Branching and review workflow checklists.
- Detailed explanations for each RO-Crate section we rely on, with examples pulled from the in-repo services.
- Validation tips, troubleshooting tables, and templates.
---
## 📄 License
Each service can define its own license. Make sure to include it in the RO-Crate metadata when applicable.
---
## 🤝 Contributing
Contributions are welcome! Please open an issue or a pull request to suggest improvements or add new services.
---
📬 Contact: [GRyCAP](https://www.grycap.upv.es/) - Universitat Politècnica de València