{"id":24649102,"url":"https://github.com/ow2-proactive/catalog","last_synced_at":"2025-08-09T07:23:32.967Z","repository":{"id":15829064,"uuid":"78836483","full_name":"ow2-proactive/catalog","owner":"ow2-proactive","description":null,"archived":false,"fork":false,"pushed_at":"2025-04-25T15:22:45.000Z","size":20853,"stargazers_count":3,"open_issues_count":18,"forks_count":24,"subscribers_count":17,"default_branch":"master","last_synced_at":"2025-05-13T11:15:00.143Z","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":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ow2-proactive.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,"zenodo":null}},"created_at":"2017-01-13T09:47:24.000Z","updated_at":"2025-04-14T14:33:47.000Z","dependencies_parsed_at":"2024-01-03T18:31:28.438Z","dependency_job_id":"fdce6b12-be92-491a-912f-2f4d7b66d6c4","html_url":"https://github.com/ow2-proactive/catalog","commit_stats":null,"previous_names":[],"tags_count":180,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ow2-proactive%2Fcatalog","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ow2-proactive%2Fcatalog/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ow2-proactive%2Fcatalog/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ow2-proactive%2Fcatalog/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ow2-proactive","download_url":"https://codeload.github.com/ow2-proactive/catalog/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253929377,"owners_count":21985804,"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-01-25T17:15:46.647Z","updated_at":"2025-05-13T11:15:12.255Z","avatar_url":"https://github.com/ow2-proactive.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ProActive Catalog\n\n[![Build Status](http://jenkins.activeeon.com/buildStatus/icon?job=generic-catalog)](http://jenkins.activeeon.com/job/generic-catalog/)\n[![Coverage Status](https://coveralls.io/repos/github/ow2-proactive/catalog/badge.svg?branch=origin%2Fmaster)](https://coveralls.io/github/ow2-proactive/catalog?branch=origin%2Fmaster)\n\nThe goal of the catalog is to store ProActive objects. It is the catalog for general purpose.\n\nThe stored objects in the catalog could be:\n- rule for PCW service\n- workflows\n- selection script\n- Proactive pre/post task\n- objects for authentication service\n- any kind of other objects\n\nCatalog contains a set of objects organized into buckets with versioning capabilities.\n\nA single Bucket can store multiple kinds of objects\n\n## Building and deploying\n\nYou can build a WAR file as follows:\n\n```\n$ ./gradlew clean build war\n```\n\nThen, you can directly deploy the service with embedded Tomcat:\n\n```\n$ java -jar build/libs/catalog-X.Y.Z-SNAPSHOT.war\n```\n\nThe WAR file produced by Gradle can also be deployed in the embedded Jetty container started by an instance of [ProActive Server](https://github.com/ow2-proactive/scheduling).\n\n## Samples with REST API\n\nAvailable resources can be listed and tested with Swagger.\nA complete documentation of the Catalog REST API is available by default on:\n\n[http://localhost:8080/catalog/swagger-ui.html](http://localhost:8080/catalog/swagger-ui.html)\n\nBelow are some REST invocations using [HTTPie](https://github.com/jkbrzt/httpie).\n\n### Bucket resource\n\nCreating a new bucket named _test_:\n```\n$ http -f POST http://localhost:8080/buckets name=test-bucket\n```\n\nGetting information about bucket by name as identifier:\n```\n$ http http://localhost:8080/buckets/test-bucket\n```\n\nListing available buckets:\n```\n$ http http://localhost:8080/buckets\n```\n\n\n### Object resource\n\n**REST actions related to existing objects apply to the latest revision of the identified object.**\n\nAdding a new object in bucket with name test-bucket:\n```\n$ http -f POST http://localhost:8080/buckets/test-bucket/objects file@/path/to/object.xml\n```\n\nGetting object metadata for object with name objectName in bucket test-bucket:\n```\n$ http http://localhost:8080/buckets/test-bucket/objects/objectName\n```\n\nFetching the raw content of a last revision for object with identifier objectName:\n```\n$ http http://localhost:8080/buckets/{bucketName}/resources/{objectName}/raw\n```\n\nListing objects managed by bucket with name test-bucket:\n```\n$ http http://localhost:8080/buckets/test-bucket/objects\n```\n\n### Object revision resource\n\nAdding a new object revision for object with name objectName in bucket with name test-bucket:\n```\n$ http -f POST http://localhost:8080/buckets/test-bucket/objects/objectName/revisions file@/path/to/object.xml\n```\n\nGetting object metadata for object with identifier objectName in bucket test-bucket for revision identified by commitTime:\n```\n$ http http://localhost:8080/buckets/test-bucket/objects/objectName/revisions/commitTime\n```\n\nFetching raw object's content for object with identifier objectName and specific revision by commitTime:\n```\n$ http http://localhost:8080/buckets/{bucketName}/resources/{objectName}/revisions/{commitTime}/raw\n\n```\n\nListing all revisions for object with name test-bucket:\n```\n$ http http://localhost:8080/buckets/test-bucket/objects/objectName/revisions\n```\n\n## GraphQL usage\nGraphQL is the standardized query language, which provides opportunity to search and retrieve the Objects by specified criterion from the Catalog.\nNOTE: Please follow the graphiql endpoint: http://localhost:8080/catalog/graphiql in order to query for the specific Object.\n\nIn GraphQL the user can filter Objects by specific parameters. The user will retrieve only the fields of Object that are required.\n\n### Example of GraphQL query\n\nThe next example will fetch all Objects that has name like `Clear%` from `cloud-automation` bucket.\nThe response will return all fields, that are in the query.\n```\n{\n  allCatalogObjects(where: {AND: [{nameArg: {like: \"Clear%\"}}, {bucketNameArg: {eq: \"cloud-automation\"}}]}) {\n    edges {\n      bucketName\n      name\n      kind\n      contentType\n      metadata {\n        key\n        value\n        label\n      }\n      commitMessage\n      commitDateTime\n      link\n    }\n    page\n    size\n    totalPage\n    totalCount\n    hasNext\n    hasPrevious\n  }\n}\n```\nMore complex examples are available inside GraphqlServiceIntegrationTest class implementation.\nFor more information about existing search filters and model of Catalog Object, please check Documentation explorer in graphiql GUI.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fow2-proactive%2Fcatalog","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fow2-proactive%2Fcatalog","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fow2-proactive%2Fcatalog/lists"}