{"id":26190110,"url":"https://github.com/zazuko/cube-creator","last_synced_at":"2025-04-15T02:09:41.938Z","repository":{"id":36961419,"uuid":"292305995","full_name":"zazuko/cube-creator","owner":"zazuko","description":"A tool to create RDF cubes from CSV files","archived":false,"fork":false,"pushed_at":"2025-03-27T14:18:27.000Z","size":14175,"stargazers_count":14,"open_issues_count":85,"forks_count":2,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-04-15T02:09:31.207Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/zazuko.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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":"2020-09-02T14:27:03.000Z","updated_at":"2025-03-27T14:15:40.000Z","dependencies_parsed_at":"2023-10-02T08:48:29.978Z","dependency_job_id":"c435976d-afd0-4964-951d-1f57c78d879c","html_url":"https://github.com/zazuko/cube-creator","commit_stats":null,"previous_names":[],"tags_count":230,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zazuko%2Fcube-creator","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zazuko%2Fcube-creator/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zazuko%2Fcube-creator/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zazuko%2Fcube-creator/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/zazuko","download_url":"https://codeload.github.com/zazuko/cube-creator/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248991544,"owners_count":21194894,"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":"2025-03-12T00:52:33.431Z","updated_at":"2025-04-15T02:09:41.923Z","avatar_url":"https://github.com/zazuko.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n# Cube Creator\n\nCube Creator is a tool to create RDF data Cubes (based on\n[rdf-cube-schema](https://github.com/zazuko/rdf-cube-schema)) out of CSV files.\n\n## Technologies\n\nThe tool is built with [Typescript](https://www.typescriptlang.org/) and is\ncurrently composed of two main parts: a Hydra API (built with\n[hydra-box](https://github.com/zazuko/hydra-box)) and a [Vue.js](https://vuejs.org/)\nuser interface. See the [Architecture](docs/architecture.md) document for a high-level overview.\n\n## Running locally\n\n### Preparing the environment\n\nTo be able to run transform/publish pipelines locally, an OIDC secret must be added to `cli/.env` as\n\n```\nAUTH_RUNNER_CLIENT_SECRET=foo-bar\n```\n\nIt is obtained from [keycloak](https://keycloak.zazukoians.org/admin/master/console/#/zazuko-dev/clients/64f92868-71e3-48e1-9d8b-7bfaf5fac2bd/credentials)\n\nAlternatively, you can bypass authentication altogether by setting the environment variables in `.env` similar to the following example:\n\n```dotenv\nVUE_APP_E2E=true\nVUE_APP_X_USER=john-doe\nVUE_APP_X_PERMISSION=pipelines:read,pipelines:write\n```\n\nIf you have already started the application, make sure to run `lando rebuild -y` to apply the changes.\n\n### Starting\n\nThe easiest way it to start a local dockerized environment which will run the database, API and UI, and provide set up local HTTPS endpoints for them.\n\n1. Download and install [lando](https://github.com/lando/lando/releases)\n   * it will install docker desktop if necessary\n2. Run `yarn` to install packages\n3. Run `lando start` inside the repo\n   * Docker daemon is also started automatically\n4. (Optional) Run `yarn seed-data` to add sample projects to the database\n\nDocker containers will start and the services will be available under the these URLs:\n\n| Service    | URL                                        |\n| ---------- | ------------------------------------------ |\n| API        | \u003chttps://cube-creator.lndo.site/\u003e          |\n| UI         | \u003chttps://app.cube-creator.lndo.site/\u003e      |\n| Fuseki     | \u003chttps://db.cube-creator.lndo.site/\u003e       |\n| Minio      | \u003chttps://s3.cube-creator.lndo.site/\u003e       |\n| Jaeger     | \u003chttp://jaeger.cube-creator.lndo.site\u003e     |\n| Prometheus | \u003chttp://prometheus.cube-creator.lndo.site\u003e |\n\nLando uses its own Certificate Authority and it won't be trusted by your system.\nTo trust the CA, follow the steps on \u003chttps://docs.lando.dev/config/security.html#trusting-the-ca\u003e\n\n## Workflow\n\nThis repository is using the [GitHub-Flow](https://docs.github.com/en/github/collaborating-with-issues-and-pull-requests/github-flow). Hence all changes should be integrated using pull requests.\n\nCommit messages usually follow the guidelines from [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/#summary) with the types in lower case.\n\nTo submit a bug or a feature request please create an issue in this repository.\n\n## Release process\n\nAll notable changes to the project(s) should be documented using [@atlassian/changesets](https://github.com/atlassian/changesets). When preparing a PR, run `yarn changeset` in the repository which will ask what changed, the affected packages, and create a small markdown file which must be committed to the repository.\n\nAlternatively, that file can be created directly in the browser, courtesy of [Changesets bot](https://github.com/changesets/bot) which creates PR comment summarising the changes included in the PR in question.\n\nReleases are managed automatically by [GitHub actions](.github/workflows/releases.yaml). As PRs get merged to master, the first job creates or updates a pull request which bumps package versions according to the combined information from all accumulated changeset files. Once merged, the second job kicks in which tags the repository and triggers INT deployment.\n\nThe package versions can also be bumped manually by running `yarn changeset version` in the repository and committing the result. When pushed, the new versions will be picked up by the aforementioned GitHub workflow job to tag the respository.\n\n## E2E tests\n\nThere are two types of e2e tests:\n- API (Hydra): e2e tests that take the API as entrypoint\n- UI (Cypress): browser-based e2e tests\n\n### API e2e tests\n\nRunning the E2E tests can be done using: `docker compose run --rm e2e-tests`, and `docker compose run --rm e2e-tests -- --grep pattern` lets you select which tests to run.\n\nFor brevity, use npm script `npm run test:e2e --grep pattern`\n\n### UI e2e tests\n\nWe use Cypress to run UI e2e tests.\n\nTo simplify the tests, we circumvent authentication in the app. For that, the following variables need to be set in `.env` before running the UI:\n```\nVUE_APP_E2E=true\nVUE_APP_X_USER=john-doe\nVUE_APP_X_PERMISSION=pipelines:read,pipelines:write\n```\n\nWe need a running instance of the app to test. The easiest way is to start lando: `lando start`\n\nThen the following command can be used to run the tests interactively:\n\n`yarn --cwd ui test:e2e --url https://app.cube-creator.lndo.site`\n\nThe `--headless` option allows running the tests without seeing the browser.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzazuko%2Fcube-creator","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzazuko%2Fcube-creator","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzazuko%2Fcube-creator/lists"}