{"id":21515682,"url":"https://github.com/sqreen/javastandalonesdk","last_synced_at":"2026-02-06T07:35:16.608Z","repository":{"id":52502022,"uuid":"251577728","full_name":"sqreen/JavaStandaloneSDK","owner":"sqreen","description":"Sqreen Java SDK with no Agent dependency","archived":false,"fork":false,"pushed_at":"2021-04-27T12:53:42.000Z","size":132,"stargazers_count":1,"open_issues_count":0,"forks_count":3,"subscribers_count":7,"default_branch":"master","last_synced_at":"2025-02-02T07:25:23.598Z","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":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sqreen.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-03-31T11:02:08.000Z","updated_at":"2023-09-07T15:20:53.000Z","dependencies_parsed_at":"2022-08-24T01:10:57.471Z","dependency_job_id":null,"html_url":"https://github.com/sqreen/JavaStandaloneSDK","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sqreen%2FJavaStandaloneSDK","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sqreen%2FJavaStandaloneSDK/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sqreen%2FJavaStandaloneSDK/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sqreen%2FJavaStandaloneSDK/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sqreen","download_url":"https://codeload.github.com/sqreen/JavaStandaloneSDK/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245984577,"owners_count":20704793,"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":"2024-11-23T23:56:22.113Z","updated_at":"2026-02-06T07:35:16.562Z","avatar_url":"https://github.com/sqreen.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"Java Standalone SDK\n===================\n\nClient for submission of signals to [Sqreen’s signal ingestion\nendpoint](https://ingestion.sqreen.com/). Usage of the [Sqreen\nAgent](https://docs.sqreen.com/java/introduction/) is not required, although\nfacilities are provided to read the service’s credentials used by the agent\n(requires version \u003e= 2.0 of the Agent).\n\nThis library currently provides little in the way of structure for the signals\nthemselves. Only the bare syntactic general requirements of the signals are\nenforced.  Because the Signal type itself is so generic, the library does not\nactually help writing signals that the ingestion backend understands.\n\nThe API actually accepts also arbitrary objects and lets the user configure its\nserialization to the format that the ingestion endpoint expects.\n\nPut another way, this is currently a fairly low-level library.\n\n\nBare Usage of the Client\n------------------------\n\n```java\n// import io.sqreen.sasdk.backend.*;\n\nIngestionHttpClient.WithAuthentication service = new IngestionHttpClientBuilder()\n        .buildingHttpClient()\n        .withConnectionTimeoutInMs(5000)\n        .withReadTimeoutInMs(10000)\n        .withProxy(\"http://proxy.com/\")\n        .buildHttpClient()\n        .withErrorListener(IngestionErrorListener.LoggingIngestionErrorListener.INSTANCE)\n        .createWithAuthentication(\n                IngestionHttpClientBuilder.authConfigWithAPIKey(\"apiKey\", \"appName\"));\n\nservice.reportSignal(mySignal);\n\nservice.close();\n\n```\n\nRequests are run synchronously.\n\nBatch collector\n---------------\n\nSignals can also be batched. The batches are sent once a certain number of\nobjects have been collected or once certain time passes.\n\n```java\nBatchCollector coll = BatchCollector.builder(service)\n        .withTriggerSize(10)\n        .withMaxConcurrentRequests(3)\n        .withMaxQueueSize(50)\n        .withMaxDelayInMs(30000)\n        .build();\n\ncoll.add(mySignal);\n\ncoll.close();\n```\n\n\n`BatchCollector` does not take ownership of `service`, which must still be\nclosed separately.\n\n\u003c!-- vim: set et tw=80 ai spell: --\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsqreen%2Fjavastandalonesdk","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsqreen%2Fjavastandalonesdk","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsqreen%2Fjavastandalonesdk/lists"}