{"id":26256474,"url":"https://github.com/netcracker/qubership-graylog-archiving-plugin","last_synced_at":"2025-03-13T20:18:14.562Z","repository":{"id":282188108,"uuid":"905765929","full_name":"Netcracker/qubership-graylog-archiving-plugin","owner":"Netcracker","description":"Graylog plugin (\u003e=3.x) to archive logs from Graylog to S3 or external volume","archived":false,"fork":false,"pushed_at":"2025-01-24T11:22:29.000Z","size":60,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":4,"default_branch":"main","last_synced_at":"2025-03-13T08:37:15.782Z","etag":null,"topics":["logging","observability","plugin"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Netcracker.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE-OF-CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-12-19T13:32:00.000Z","updated_at":"2025-01-24T11:59:24.000Z","dependencies_parsed_at":"2025-03-13T08:47:22.385Z","dependency_job_id":null,"html_url":"https://github.com/Netcracker/qubership-graylog-archiving-plugin","commit_stats":null,"previous_names":["netcracker/qubership-graylog-archiving-plugin"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Netcracker%2Fqubership-graylog-archiving-plugin","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Netcracker%2Fqubership-graylog-archiving-plugin/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Netcracker%2Fqubership-graylog-archiving-plugin/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Netcracker%2Fqubership-graylog-archiving-plugin/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Netcracker","download_url":"https://codeload.github.com/Netcracker/qubership-graylog-archiving-plugin/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243475364,"owners_count":20296714,"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":["logging","observability","plugin"],"created_at":"2025-03-13T20:18:13.818Z","updated_at":"2025-03-13T20:18:14.553Z","avatar_url":"https://github.com/Netcracker.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Graylog Archiving Plugin\n\nPlugin for archiving ElasticSearch indices.\n\n* [Graylog Archiving Plugin](#graylog-archiving-plugin)\n  * [Prerequisites](#prerequisites)\n    * [Common](#common)\n    * [Volumes](#volumes)\n    * [S3-storage](#s3-storage)\n    * [AWS prerequisites](#aws-prerequisites)\n  * [Usage](#usage)\n  * [Examples](#examples)\n    * [Register FS directory](#register-fs-directory)\n    * [Register S3 directory](#register-s3-directory)\n    * [Reload config file](#reload-config-file)\n    * [Create an archive with specific indices](#create-an-archive-with-specific-indices)\n    * [Create an archive with indices by prefix](#create-an-archive-with-indices-by-prefix)\n    * [Create an archive with indices by time](#create-an-archive-with-indices-by-time)\n    * [Create an archive with multiple parameters](#create-an-archive-with-multiple-parameters)\n    * [Get archiving process information](#get-archiving-process-information)\n    * [Get archive information](#get-archive-information)\n    * [Restore archive](#restore-archive)\n    * [Get restoring process information](#get-restoring-process-information)\n    * [Delete archive](#delete-archive)\n    * [Get deleting process information](#get-deleting-process-information)\n    * [Schedule job](#schedule-job)\n    * [Unscheduled job](#unscheduled-job)\n  * [Build](#build)\n  * [Release](#release)\n    * [Before release](#before-release)\n\n## Prerequisites\n\n### Common\n\nFor the successful installation you should install `acl` and `unzip` on your VM.\n\nThe graylog-archiving-plugin uses `Restored index set` to restore logs with `Restored logs` stream.\n\n\u003e **Note:**\n\u003e\n\u003e Only users who have `AuditViewer` role can see restored logs.\n\n### Volumes\n\nThe graylog-archiving-plugin stores zip-archives in ElasticSearch/OpenSearch volume \"archives\" mounted by path\nfrom the `GRAYLOG_SNAPSHOT_DIRECTORY` environment variable.\nThis volume should be created as a shared file system repository (\"type\": \"fs\").\n\nIn order to register the shared file system repository it is necessary to mount the same shared filesystem\nto the same location on all master and data nodes.\nThis location (or one of its parent directories) must be registered in the path.repo setting on all master\nand data nodes.\n\n### S3-storage\n\nFor using S3 storage you should manually add connection parameters to the elasticsearch.keystore with the next commands (the same for the Opensearch):\n\n```bash\ndocker exec -it graylog_elasticsearch_1 sh\necho accessKey| bin/elasticsearch-keystore add --stdin --force s3.client.default.access_key \necho secretKey| bin/elasticsearch-keystore add --stdin --force s3.client.default.secret_key \necho https://s3.amazonaws.com| bin/elasticsearch-keystore add --stdin --force s3.client.default.endpoint \nexit\n```\n\nWhere `accessKey` and `secretKey` - parameters for IAM user in the S3.\n\nCommand for applying settings:\n\n```bash\ncurl -X POST localhost:9200/_nodes/reload_secure_settings\n```\n\n### AWS prerequisites\n\nFor correct work archiving plugin in AWS you should create user with necessary grants.\n\nNote: in case of you have 403 error during usage plugin check that your user has necessary grants for managing\nsnapshots like it described in the\n[Official doc](https://repost.aws/knowledge-center/opensearch-manual-snapshot-error)\n\n## Usage\n\nThere is config file for mapping streams and backup directories: `/var/lib/graylog/config/directories.json`\n\nThere is an example of the content:\n\n```bash\n[root@vm ~]# cat /var/lib/graylog/config/directories.json\n{\n  \"graylog\": \"/usr/share/elasticsearch/snapshots/graylog/graylog\",\n  \"gray_audit\": \"gray_audit\"\n}\n```\n\nIt means that archives for `graylog_*` indices will be stored in `/usr/share/elasticsearch/snapshots/graylog/graylog`\ndirectory and for `gray_audit_*` indices in the S3 bucket `gray_audit`.\nIf prefix for stream can't be found in the directories.conf file it automatically been created as file-system storage.\n\nFor adding settings you can manually edit `direcotries.conf` file with reload conf via REST-api or\nuse special REST-api for add new settings.\n\nThe graylog-archiving-plugin provides next REST-api access via URL: `https://{graylog-server-url}/api/plugins/org.qubership.graylog2.plugin/archiving/{rest-api}`:\n\n| METHOD | PATH                       | RESULT                               |\n|--------|----------------------------|--------------------------------------|\n| POST   | /settings/fs               | Status of registration fs-repository |\n| POST   | /settings/s3               | Status of registration s3-repository |\n| POST   | /settings/reload           | Map with registered repositories     |\n| POST   | /archive                   | Uuid of created archive process      |\n| GET    | /process/{uuid}            | Status of archive/restore process    |\n| GET    | /archive/{archiveName}     | Detailed info about archive          |\n| POST   | /restore/{archiveName}     | Uuid of created restore process      |\n| DELETE | /{storageId}/{archiveName} | Uuid of created delete process       |\n| POST   | /schedule                  | Status of scheduling job             |\n| POST   | /unschedule/{name}         | Status of unscheduling job           |\n\n\u003e **Note:**\n\u003e\n\u003e You should be authorized and use header `X-Requested-By = Graylog Api Browser`.\n\nThere are next parameters for the `FS settings`:\n\n| NAME        | TYPE   | REQUIRED | DESCRIPTION                                                                                                 |\n|-------------|--------|----------|-------------------------------------------------------------------------------------------------------------|\n| storageId   | String | Yes      | Storage identifier for archiving stream. It must be like index-prefix for example `graylog` or `gray_audit` |\n| snapshotDir | String | No       | Snapshot directory for file-system storage. Default value `/usr/share/elasticsearch/snapshots/graylog/`     |\n\n\u003e **Note:**\n\u003e\n\u003e This command can't be performed in case of AWS-deploy with S3 storage\n\n\nThere are next parameters for the `S3 settings`:\n\n| NAME       | TYPE   | REQUIRED | DESCRIPTION                                         |\n|------------|--------|----------|----------------------------------------------------|\n| storageId  | String | Yes      | Storage identifier for archiving stream. It must be like index-prefix for example `graylog` or `gray_audit` |\n| bucket     | String | Yes      | Bucket in the S3 associated with stream from prefix                                                         |\n| region     | String | No       | Region in the S3, by default `us-east-1`                                                                    |\n| endpoint   | String | Yes      | URL for S3-service                                                                                          |\n| roleARN    | String | No       | Role ARN for the user in AWS. Used only in case of AWS-deploy with S3 storage                               |\n\nThere are next parameters for the `archive` procedure:\n\n| NAME      | TYPE   | REQUIRED | DESCRIPTION                                                                                                  |\n|-----------|--------|----------|--------------------------------------------------------------------------------------------------------------|\n| name      | String | Yes      | Name of archive                                                                                              |\n| indices   | List   | No       | Indices names for archiving                                                                                  |\n| time      | String | No       | Timeunit string for archiving indices created before fixed time. Supported values: m, h, d. Example: `1d12h` |\n| prefixes  | List   | No       | Indices prefixes for archiving, for example `[\"graylog_\", \"gray_audit\"]`                                     |\n| storageId | String | Yes      | Storage identifier for archiving stream, for example `\"graylog\"` to manage directory for saving              |\n\n\u003e **Note:**\n\u003e\n\u003e You should set at least one of the not-required parameters\n\nThere are next parameters for the `schedule` procedure:\n\n| NAME      | TYPE   | REQUIRED | DESCRIPTION                                                                                                  |\n|-----------|--------|----------|--------------------------------------------------------------------------------------------------------------|\n| name      | String | Yes      | Name for scheduling job. Also uses by prefix for archive name. It looks like `name_yyyyMMdd_HHmmss`          |\n| indices   | List   | No       | Indices names for archiving                                                                                  |\n| time      | String | No       | Timeunit string for archiving indices created before fixed time. Supported values: m, h, d. Example: `1d12h` |\n| prefixes  | List   | No       | Indices prefixes for archiving, for example `[\"graylog_\", \"gray_audit\"]`                                     |\n| period    | String | Yes      | Cron string for periodically running archiving procedure. Example: `0 0 0/1 * * ?`                           |\n| storageId | String | Yes      | Storage identifier for archiving stream, for example `\"graylog\"` to manage directory for saving              |\n\nMore about CRON format: [java-cron-expression](https://www.javatpoint.com/java-cron-expression)\n\n## Examples\n\n### Register FS directory\n\nThis operation create/override directory for stream on filesystem.\n\nRequest:\n\n```bash\nPOST https://x.x.x.x/api/plugins/org.qubership.graylog2.plugin/archiving/settings/fs\n\n{\n    \"storageId\": \"gray_audit\"\n}\n```\n\nResponse:\n\n```bash\n{\n    \"acknowledged\": true\n}\n```\n\n### Register S3 directory\n\nThis operation create/override directory for stream on S3.\n\nRequest:\n\n```bash\nPOST https://x.x.x.x/api/plugins/org.qubership.graylog2.plugin/archiving/settings/s3\n\n{\n    \"storageId\": \"graylog\",\n    \"bucket\": \"graylog\",\n    \"region\": \"us-east-1\",\n    \"endpoint\": \"http://x.x.x.x:30900\"\n}\n```\n\nResponse:\n\n```bash\n{\n    \"acknowledged\": true\n}\n```\n\n### Reload config file\n\nThis operation create/override directory for stream on S3.\n\nRequest:\n\n```bash\nPOST https://x.x.x.x/api/plugins/org.qubership.graylog2.plugin/archiving/settings/reload\n```\n\nResponse:\n\n```bash\n{\n    \"graylog\": \"/usr/share/elasticsearch/snapshots/graylog/graylog\",\n    \"gray_audit\": \"/usr/share/elasticsearch/snapshots/graylog/gray_audit\"\n}\n```\n\n### Create an archive with specific indices\n\nThis operation archive only indices from parameter `indices`.\n\nRequest:\n\n```bash\nPOST https://x.x.x.x/api/plugins/org.qubership.graylog2.plugin/archiving/archive\n\n{\n    \"name\": \"test001\",\n    \"indices\": [\"graylog_1\", \"graylog_2\"],\n    \"storageId\": \"graylog\"\n}\n```\n\nResponse:\n\n```bash\n1e795c81-5628-4d1e-888b-b92925f59116\n```\n\n### Create an archive with indices by prefix\n\nThis operation archives all indices whose names start from list-parameter `prefixes`.\n\nRequest:\n\n```bash\nPOST https://x.x.x.x/api/plugins/org.qubership.graylog2.plugin/archiving/archive\n\n{\n    \"name\": \"test001\",\n    \"prefixes\": [\"graylog_\"],\n    \"storageId\": \"graylog\"\n}\n```\n\nResponse:\n\n```bash\n3d521a49-5016-8c0e-180a-b34335f97655\n```\n\n### Create an archive with indices by time\n\nThis operation archive all indices created earlier than the value from parameter `time`.\n\nRequest:\n\n```bash\nPOST https://x.x.x.x/api/plugins/org.qubership.graylog2.plugin/archiving/archive\n\n{\n    \"name\": \"test001\",\n    \"time\": \"1d\",\n    \"storageId\": \"graylog\"\n}\n```\n\nResponse:\n\n```bash\n2c665a20-3474-2d1a-369b-b76552f97655\n```\n\n### Create an archive with multiple parameters\n\nThis operation archive all indices whose names start from list-parameter `prefixes` created earlier than the value\nfrom parameter `time`.\n\nRequest:\n\n```bash\nPOST https://x.x.x.x/api/plugins/org.qubership.graylog2.plugin/archiving/archive\n\n{\n    \"name\": \"test001\",\n    \"prefixes\": [\"graylog_\"],\n    \"time\": \"1d\",\n    \"storageId\": \"graylog\"\n}\n```\n\nResponse:\n\n```bash\n2c665a20-3474-2d1a-369b-b76552f97655\n```\n\n### Get archiving process information\n\nRequest:\n\n```bash\nGET https://x.x.x.x/api/plugins/org.qubership.graylog2.plugin/archiving/process/1e795c81-5628-4d1e-888b-b92925f59116\n```\n\nResponse:\n\n```json\n{\n    \"startTime\": \"Mon Dec 21 15:25:08 UTC 2020\",\n    \"id\": \"1e795c81-5628-4d1e-888b-b92925f59116\",\n    \"status\": \"Starting archive procedure\"\n}\n```\n\n```json\n{\n    \"startTime\": \"Mon Dec 21 15:25:09 UTC 2020\",\n    \"id\": \"1e795c81-5628-4d1e-888b-b92925f59116\",\n    \"status\": \"Loading data from Elasticsearch\"\n}\n```\n\n```json\n{\n    \"result\": \"{\\\"snapshots\\\":[{\\\"snapshot\\\":\\\"test001\\\",\\\"uuid\\\":\\\"80mNbGcDTSyKa9LEEwIDhg\\\",\\\"version_id\\\":6081299,\\\"version\\\":\\\"6.8.12\\\",\\\"indices\\\":[\\\"graylog_86\\\"],\\\"include_global_state\\\":true,\\\"state\\\":\\\"SUCCESS\\\",\\\"start_time\\\":\\\"2020-12-21T15:25:08.313Z\\\",\\\"start_time_in_millis\\\":1608564308313,\\\"end_time\\\":\\\"2020-12-21T15:25:40.675Z\\\",\\\"end_time_in_millis\\\":1608564340675,\\\"duration_in_millis\\\":32362,\\\"failures\\\":[],\\\"shards\\\":{\\\"total\\\":4,\\\"failed\\\":0,\\\"successful\\\":4}}]}\",\n    \"startTime\": \"Mon Dec 21 15:25:08 UTC 2020\",\n    \"id\": \"1e795c81-5628-4d1e-888b-b92925f59116\",\n    \"status\": \"Success\"\n}\n```\n\n### Get archive information\n\nRequest:\n\n```bash\nGET https://x.x.x.x/api/plugins/org.qubership.graylog2.plugin/archiving/archive/test001\n```\n\nResponse:\n\n```json\n{\n    \"snapshots\": [\n        {\n            \"snapshot\": \"test001\",\n            \"repository\": \"archives\",\n            \"uuid\": \"YKTKs3dJT9qD0QuUfRyhzw\",\n            \"state\": \"SUCCESS\",\n            \"include_global_state\": true,\n            \"shards_stats\": {\n                \"initializing\": 0,\n                \"started\": 0,\n                \"finalizing\": 0,\n                \"done\": 4,\n                \"failed\": 0,\n                \"total\": 4\n            },\n            \"stats\": {\n                \"incremental\": {\n                    \"file_count\": 0,\n                    \"size_in_bytes\": 0\n                },\n                \"total\": {\n                    \"file_count\": 60,\n                    \"size_in_bytes\": 830777647\n                },\n                \"start_time_in_millis\": 1608557913394,\n                \"time_in_millis\": 117,\n                \"number_of_files\": 0,\n                \"processed_files\": 0,\n                \"total_size_in_bytes\": 0,\n                \"processed_size_in_bytes\": 0\n            },\n            \"indices\": {\n                \"graylog_84\": {\n                    \"shards_stats\": {\n                        \"initializing\": 0,\n                        \"started\": 0,\n                        \"finalizing\": 0,\n                        \"done\": 4,\n                        \"failed\": 0,\n                        \"total\": 4\n                    },\n                    \"stats\": {\n                        \"incremental\": {\n                            \"file_count\": 0,\n                            \"size_in_bytes\": 0\n                        },\n                        \"total\": {\n                            \"file_count\": 60,\n                            \"size_in_bytes\": 830777647\n                        },\n                        \"start_time_in_millis\": 1608557913394,\n                        \"time_in_millis\": 117,\n                        \"number_of_files\": 0,\n                        \"processed_files\": 0,\n                        \"total_size_in_bytes\": 0,\n                        \"processed_size_in_bytes\": 0\n                    },\n                    \"shards\": {\n                        \"0\": {\n                            \"stage\": \"DONE\",\n                            \"stats\": {\n                                \"incremental\": {\n                                    \"file_count\": 0,\n                                    \"size_in_bytes\": 0\n                                },\n                                \"total\": {\n                                    \"file_count\": 15,\n                                    \"size_in_bytes\": 207158834\n                                },\n                                \"start_time_in_millis\": 1608557913466,\n                                \"time_in_millis\": 7,\n                                \"number_of_files\": 0,\n                                \"processed_files\": 0,\n                                \"total_size_in_bytes\": 0,\n                                \"processed_size_in_bytes\": 0\n                            }\n                        },\n                        \"1\": {\n                            \"stage\": \"DONE\",\n                            \"stats\": {\n                                \"incremental\": {\n                                    \"file_count\": 0,\n                                    \"size_in_bytes\": 0\n                                },\n                                \"total\": {\n                                    \"file_count\": 15,\n                                    \"size_in_bytes\": 208091230\n                                },\n                                \"start_time_in_millis\": 1608557913500,\n                                \"time_in_millis\": 11,\n                                \"number_of_files\": 0,\n                                \"processed_files\": 0,\n                                \"total_size_in_bytes\": 0,\n                                \"processed_size_in_bytes\": 0\n                            }\n                        },\n                        \"2\": {\n                            \"stage\": \"DONE\",\n                            \"stats\": {\n                                \"incremental\": {\n                                    \"file_count\": 0,\n                                    \"size_in_bytes\": 0\n                                },\n                                \"total\": {\n                                    \"file_count\": 15,\n                                    \"size_in_bytes\": 207829113\n                                },\n                                \"start_time_in_millis\": 1608557913394,\n                                \"time_in_millis\": 6,\n                                \"number_of_files\": 0,\n                                \"processed_files\": 0,\n                                \"total_size_in_bytes\": 0,\n                                \"processed_size_in_bytes\": 0\n                            }\n                        },\n                        \"3\": {\n                            \"stage\": \"DONE\",\n                            \"stats\": {\n                                \"incremental\": {\n                                    \"file_count\": 0,\n                                    \"size_in_bytes\": 0\n                                },\n                                \"total\": {\n                                    \"file_count\": 15,\n                                    \"size_in_bytes\": 207698470\n                                },\n                                \"start_time_in_millis\": 1608557913422,\n                                \"time_in_millis\": 26,\n                                \"number_of_files\": 0,\n                                \"processed_files\": 0,\n                                \"total_size_in_bytes\": 0,\n                                \"processed_size_in_bytes\": 0\n                            }\n                        }\n                    }\n                }\n            }\n        }\n    ]\n}\n```\n\n### Restore archive\n\nRequest:\n\n```bash\nPOST https://x.x.x.x/api/plugins/org.qubership.graylog2.plugin/archiving/restore/test001\n\n{\n    \"storageId\": \"graylog\"\n}\n```\n\nResponse:\n\n```bash\n8597d4a1-f9c8-4410-8796-51aa90b1312b\n```\n\n### Get restoring process information\n\nRequest:\n\n```bash\nGET https://x.x.x.x/api/plugins/org.qubership.graylog2.plugin/archiving/process/8597d4a1-f9c8-4410-8796-51aa90b1312b\n```\n\nResponse:\n\n```json\n{\n    \"startTime\": \"Mon Dec 21 15:25:08 UTC 2020\",\n    \"id\": \"8597d4a1-f9c8-4410-8796-51aa90b1312b\",\n    \"status\": \"Starting restore procedure\"\n}\n```\n\n```json\n{\n    \"startTime\": \"Mon Dec 21 15:25:10 UTC 2020\",\n    \"id\": \"8597d4a1-f9c8-4410-8796-51aa90b1312b\",\n    \"status\": \"Restoring: graylog_0\"\n}\n```\n\n```json\n{\n    \"result\": \"{\\\"graylog_0\\\":\\\"{\\\\\\\"accepted\\\\\\\":true}\\\",\\\"graylog_2\\\":\\\"{\\\\\\\"accepted\\\\\\\":true}\\\"}\",\n    \"startTime\": \"Thu Dec 24 06:26:41 UTC 2020\",\n    \"id\": \"8597d4a1-f9c8-4410-8796-51aa90b1312b\",\n    \"status\": \"Success\"\n}\n```\n\n### Delete archive\n\nRequest:\n\n```bash\nDELETE https://x.x.x.x/api/plugins/org.qubership.graylog2.plugin/archiving/graylog/test001\n```\n\nResponse:\n\n```bash\n5004efbc-b382-459f-948d-c6a35f442120\n```\n\n### Get deleting process information\n\nRequest:\n\n```bash\nGET https://x.x.x.x/api/plugins/org.qubership.graylog2.plugin/archiving/process/5004efbc-b382-459f-948d-c6a35f442120\n```\n\nResponse:\n\n```json\n{\n  \"startTime\": \"Fri Mar 17 06:28:22 UTC 2023\",\n  \"id\": \"fc3e8fae-aa1b-487d-88f5-535d718113e4\",\n  \"status\": \"Waiting for deletion data from elasticsearch\"\n}\n```\n\n```json\n{\n  \"startTime\": \"Fri Mar 17 06:28:22 UTC 2023\",\n  \"id\": \"fc3e8fae-aa1b-487d-88f5-535d718113e4\",\n  \"status\": \"Waiting for deletion data from volume\"\n}\n```\n\n```json\n{\n  \"result\": \"Success\",\n  \"startTime\": \"Fri Mar 17 06:28:23 UTC 2023\",\n  \"id\": \"fc3e8fae-aa1b-487d-88f5-535d718113e4\",\n  \"status\": \"Success\"\n}\n```\n\n### Schedule job\n\nRequest:\n\n```bash\nPOST https://x.x.x.x/api/plugins/org.qubership.graylog2.plugin/archiving/schedule\n```\n\n```json\n{\n    \"name\": \"test\",\n    \"prefixes\":  [\"graylog_\"],\n    \"time\": \"12h\",\n    \"period\": \"0 0 0 0/1 * ?\",\n    \"storageId\": \"graylog\"\n}\n```\n\nResponse:\n\n```bash\ntrue\n```\n\n### Unscheduled job\n\nRequest:\n\n```bash\nPOST https://x.x.x.x/api/plugins/org.qubership.graylog2.plugin/archiving/unschedule/test\n```\n\nResponse:\n\n```bash\ntrue\n```\n\n## Build\n\nTo run the build for this plugin need the:\n\n* JDK \u003e= 11.x\n* Maven \u003e= 3.8.x\n\nBuild can be run using the command:\n\n```bash\nmvn clean install\n```\n\n## Release\n\n### Before release\n\nAdd builds in the master branch are SNAPSHOT builds. They can be promoted.\n\nSo before creating a tag and running a build for promotion you need to change versions and remote SNAPSHOT word.\nYou can do it by using the command:\n\n```bash\nmvn versions:set -DnewVersion=\"\u003cversion\u003e\"\n```\n\nfor example:\n\n```bash\nmvn versions:set -DnewVersion=\"0.2.0\"\n```\n\nAfter it, you can verify that the plugin working as expected and create a new tag with the version.\nPlugin's version in `pom.xml` and tag should have the same version.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnetcracker%2Fqubership-graylog-archiving-plugin","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnetcracker%2Fqubership-graylog-archiving-plugin","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnetcracker%2Fqubership-graylog-archiving-plugin/lists"}