{"id":20801883,"url":"https://github.com/philips-software/logproxy","last_synced_at":"2026-02-28T05:09:57.935Z","repository":{"id":37688610,"uuid":"178883926","full_name":"philips-software/logproxy","owner":"philips-software","description":"Logdrainer for Cloud foundry and IronIO which forwards logs to HSP Logging","archived":false,"fork":false,"pushed_at":"2025-11-10T20:16:46.000Z","size":1330,"stargazers_count":9,"open_issues_count":8,"forks_count":6,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-11-18T12:11:30.023Z","etag":null,"topics":["hsdp","logproxy","rfc5424"],"latest_commit_sha":null,"homepage":"","language":"Go","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/philips-software.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":"CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2019-04-01T14:43:11.000Z","updated_at":"2025-11-10T20:16:48.000Z","dependencies_parsed_at":"2023-02-19T04:30:30.994Z","dependency_job_id":"4466c722-caba-4c82-95d5-dc7e9f4accb7","html_url":"https://github.com/philips-software/logproxy","commit_stats":null,"previous_names":[],"tags_count":37,"template":false,"template_full_name":null,"purl":"pkg:github/philips-software/logproxy","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/philips-software%2Flogproxy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/philips-software%2Flogproxy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/philips-software%2Flogproxy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/philips-software%2Flogproxy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/philips-software","download_url":"https://codeload.github.com/philips-software/logproxy/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/philips-software%2Flogproxy/sbom","scorecard":{"id":731479,"data":{"date":"2025-08-11","repo":{"name":"github.com/philips-software/logproxy","commit":"f1bc4db835f3b7e25ba135818eb602a13c43de76"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":4.9,"checks":[{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/codeql-analysis.yml:1","Warn: no topLevel permission defined: .github/workflows/docker.yml:1","Warn: no topLevel permission defined: .github/workflows/docker_tagged.yml:1","Warn: no topLevel permission defined: .github/workflows/lint.yml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Maintained","score":10,"reason":"24 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 10","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Code-Review","score":0,"reason":"Found 0/3 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Binary-Artifacts","score":9,"reason":"binaries present in source code","details":["Warn: binary detected: docs/design/gradle/wrapper/gradle-wrapper.jar:1"],"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE.md:0","Info: FSF or OSI recognized license: MIT License: LICENSE.md:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/codeql-analysis.yml:33: update your workflow using https://app.stepsecurity.io/secureworkflow/philips-software/logproxy/codeql-analysis.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/codeql-analysis.yml:46: update your workflow using https://app.stepsecurity.io/secureworkflow/philips-software/logproxy/codeql-analysis.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/codeql-analysis.yml:57: update your workflow using https://app.stepsecurity.io/secureworkflow/philips-software/logproxy/codeql-analysis.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/codeql-analysis.yml:71: update your workflow using https://app.stepsecurity.io/secureworkflow/philips-software/logproxy/codeql-analysis.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/docker.yml:13: update your workflow using https://app.stepsecurity.io/secureworkflow/philips-software/logproxy/docker.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/docker.yml:16: update your workflow using https://app.stepsecurity.io/secureworkflow/philips-software/logproxy/docker.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/docker.yml:19: update your workflow using https://app.stepsecurity.io/secureworkflow/philips-software/logproxy/docker.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/docker.yml:26: update your workflow using https://app.stepsecurity.io/secureworkflow/philips-software/logproxy/docker.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/docker.yml:33: update your workflow using https://app.stepsecurity.io/secureworkflow/philips-software/logproxy/docker.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/docker.yml:36: update your workflow using https://app.stepsecurity.io/secureworkflow/philips-software/logproxy/docker.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/docker_tagged.yml:14: update your workflow using https://app.stepsecurity.io/secureworkflow/philips-software/logproxy/docker_tagged.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/docker_tagged.yml:17: update your workflow using https://app.stepsecurity.io/secureworkflow/philips-software/logproxy/docker_tagged.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/docker_tagged.yml:20: update your workflow using https://app.stepsecurity.io/secureworkflow/philips-software/logproxy/docker_tagged.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/docker_tagged.yml:26: update your workflow using https://app.stepsecurity.io/secureworkflow/philips-software/logproxy/docker_tagged.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/docker_tagged.yml:32: update your workflow using https://app.stepsecurity.io/secureworkflow/philips-software/logproxy/docker_tagged.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/docker_tagged.yml:39: update your workflow using https://app.stepsecurity.io/secureworkflow/philips-software/logproxy/docker_tagged.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/docker_tagged.yml:46: update your workflow using https://app.stepsecurity.io/secureworkflow/philips-software/logproxy/docker_tagged.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/docker_tagged.yml:55: update your workflow using https://app.stepsecurity.io/secureworkflow/philips-software/logproxy/docker_tagged.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/lint.yml:16: update your workflow using https://app.stepsecurity.io/secureworkflow/philips-software/logproxy/lint.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/lint.yml:17: update your workflow using https://app.stepsecurity.io/secureworkflow/philips-software/logproxy/lint.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/lint.yml:21: update your workflow using https://app.stepsecurity.io/secureworkflow/philips-software/logproxy/lint.yml/main?enable=pin","Warn: containerImage not pinned by hash: Dockerfile:1","Warn: containerImage not pinned by hash: Dockerfile:14: pin your Docker image by updating alpine:3.22.1 to alpine:3.22.1@sha256:4bcff63911fcb4448bd4fdacec207030997caf25e9bea4045fa6c8c44de311d1","Warn: containerImage not pinned by hash: Dockerfile.build:1: pin your Docker image by updating golang:1.24.5-alpine to golang:1.24.5-alpine@sha256:daae04ebad0c21149979cd8e9db38f565ecefd8547cf4a591240dc1972cf1399","Warn: containerImage not pinned by hash: Dockerfile.dist:1: pin your Docker image by updating alpine:3.22.1 to alpine:3.22.1@sha256:4bcff63911fcb4448bd4fdacec207030997caf25e9bea4045fa6c8c44de311d1","Info:   0 out of   8 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of  13 third-party GitHubAction dependencies pinned","Info:   0 out of   4 containerImage dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'main'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"Packaging","score":10,"reason":"packaging workflow detected","details":["Info: Project packages its releases by way of GitHub Actions.: .github/workflows/docker.yml:8"],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"SAST","score":7,"reason":"SAST tool detected but not run on all commits","details":["Info: SAST configuration detected: CodeQL","Warn: 0 commits out of 27 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}},{"name":"Vulnerabilities","score":9,"reason":"1 existing vulnerabilities detected","details":["Warn: Project is vulnerable to: GO-2025-3553 / GHSA-mh63-6h87-95cp"],"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}}]},"last_synced_at":"2025-08-22T14:33:26.356Z","repository_id":37688610,"created_at":"2025-08-22T14:33:26.356Z","updated_at":"2025-08-22T14:33:26.356Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29925683,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-27T19:37:42.220Z","status":"online","status_checked_at":"2026-02-28T02:00:07.010Z","response_time":90,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["hsdp","logproxy","rfc5424"],"created_at":"2024-11-17T18:24:57.074Z","updated_at":"2026-02-28T05:09:57.919Z","avatar_url":"https://github.com/philips-software.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Logproxy\n\nA microservice which acts as a logdrain and forwards messages to HSP Foundation logging. Supports the new v2 single tenant solution.\n\n## Features\n\n- Cloud foundry logdrain endpoint\n- IronIO project logging endpoint \n- Batch uploads messages (max 25) for good performance\n- Very lean, runs in just 32MB RAM\n- [Plugin support](https://github.com/philips-software/logproxy-plugins/)\n- Filter only mode\n- OpenTracing support\n- IAM Service Identity support\n\n## Distribution\n\nLogproxy is distributed as a [Docker image](https://github.com/philips-software/logproxy/pkgs/container/logproxy):\n\n```shell\ndocker pull philipssoftware/logproxy\n```\n\n## Dependencies\n\nBy default Logproxy uses RabbitMQ for log buffering. This is useful for handlingspikes in log volume. You can also choose to use an internal Go `channel` based queue.\n\n## Environment variables\n\n| Variable                  | Description                          | Required            | Default |\n|---------------------------|--------------------------------------|---------------------|---------|\n| TOKEN                     | Token to use as part of logdrain URL | Yes                 |         |\n| HSDP\\_LOGINGESTOR\\_PRODUCT\\_KEY | Product key for v2 logging     | Yes (hsdp delivery) |         |\n| LOGPROXY\\_SYSLOG          | Enable or disable Syslog drain       |  No                 | true    |\n| LOGPROXY\\_IRONIO          | Enable or disable IronIO drain       |  No                 | false   |\n| LOGPROXY\\_QUEUE           | Use specific queue (rabbitmq, channel) | No                | rabbitmq |\n| LOGPROXY\\_PLUGINDIR       | Search for plugins in this directory | No                  |         |\n| LOGPROXY\\_DELIVERY        | Select delivery type (hsdp, none, buffer)    | No                  | hsdp    |\n| LOGPROXY\\_TRANSPORT\\_URL  | The Jaeager transport endpoint       | No                  |         |\n\n### IAM Service Identity based authentication (recommended)\n\n| Variable                        | Description          | Required            | Default       |\n|---------------------------------|----------------------|---------------------|---------------|\n| LOGPROXY\\_SERVICE\\_ID           | IAM Service ID       | Yes (hsdp delivery) |               |\n| LOGPROXY\\_SERVICE\\_PRIVATE\\_KEY | IAM Service Private Key | Yes (hsdp delivery) |               |\n| LOGPROXY\\_REGION                | IAM Region           | Yes (hsdp delivery) | `us-east`     |\n| LOGPROXY\\_ENV                   | IAM Environment      | Yes (hsdp delivery) | `cllient-test` |\n\n### API Signing based authentication\n\n| Variable                  | Description                          | Required            | Default |\n|---------------------------|--------------------------------------|---------------------|---------|\n| HSDP\\_LOGINGESTOR\\_KEY    | HSDP logging service Key             | Yes (hsdp delivery) |         |\n| HSDP\\_LOGINGESTOR\\_SECRET | HSDP logging service Secret          | Yes (hsdp delivery) |         |\n| HSDP\\_LOGINGESTOR\\_URL    | HSPD logging service endpoint        | Yes (hsdp delivery) |         |\n\n\n## Building\n\n### Requirements\n\n- [Go 1.16 or newer](https://golang.org/doc/install)\n\n### Compiling\n\nClone the repo somewhere (preferably outside your GOPATH):\n\n```\n$ git clone https://github.com/philips-software/logproxy.git\n$ cd logproxy\n$ docker build .\n```\n\n## Installation\n\nSee the below manifest.yml file as an example.\n\n```\napplications:\n- name: logproxy\n  domain: your-domain.com\n  docker:\n    image: philipssoftware/logproxy:latest\n  instances: 2\n  memory: 64M\n  disk_quota: 512M\n  routes:\n  - route: logproxy.your-domain.com\n  env:\n    HSDP_LOGINGESTOR_KEY: SomeKey\n    HSDP_LOGINGESTOR_SECRET: SomeSecret\n    HSDP_LOGINGESTOR_URL: https://logingestor-int2.us-east.philips-healthsuite.com\n    HSDP_LOGINGESTOR_PRODUCT_KEY: product-uuid-here\n    TOKEN: RandomTokenHere\n  services:\n  - rabbitmq\n  stack: cflinuxfs3\n```\n\nPush your application:\n\n```\ncf push\n```\n\nIf everything went OK logproxy should now be reachable on https://logproxy.your-domain.com . The logdrain endpoint would then be:\n\n```\nhttps://logproxy.your-domain.com/syslog/drain/RandomTokenHere\n```\n\n## Configure logdrains\n\n### Syslog\n\nIn each space where you have apps running for which you'd like to drain logs define a user defined service called `logproxy`:\n\n```\ncf cups logproxy -l https://logproxy.your-domain.com/syslog/drain/RandomTokenHere\n```  \n\nThen, bind this service to any app which should deliver their logs:\n\n```\ncf bind-service some-app logproxy\n```\n\nand restart the app to activate the logdrain:\n\n```\ncf restart some-app\n```\n\nLogs should now start flowing from your app all the way to HSDP logging infra through logproxy. You can use Kibana for log searching.\n\n### Structured logs\n\nBelow is an example of an HSDP LogEvent resource type for reference\n\n```json\n{\n  \"resourceType\": \"LogEvent\",\n  \"id\": \"7f4c85a8-e472-479f-b772-2916353d02a4\",\n  \"applicationName\": \"OPS\",\n  \"eventId\": \"110114\",\n  \"category\": \"TRACELOG\",\n  \"component\": \"TEST\",\n  \"transactionId\": \"2abd7355-cbdd-43e1-b32a-43ec19cd98f0\",\n  \"serviceName\": \"OPS\",\n  \"applicationInstance\": \"INST‐00002\",\n  \"applicationVersion\": \"1.0.0\",\n  \"originatingUser\": \"SomeUsr\",\n  \"serverName\": \"ops-dev.apps.internal\",\n  \"logTime\": \"2017-01-31T08:00:00Z\",\n  \"severity\": \"INFO\",\n  \"logData\": {\n    \"message\": \"Test message\"\n  },\n  \"custom\": {\n  \t\t\"key1\": \"val1\",\n  \t\t\"key2\": { \"innerkey\": \"innervalue\" }\n   }\n}\n```\n\n## IronIO\n\nThe IronIO logdrain is available on this endpoint: `/ironio/drain/:token`\n\nYou can configure via the iron.io settings screen of your project:\n\n![settings screen](resources/IronIO-settings.png)\n\n### Field Mapping\n\nLogproxy maps the IronIO field to Syslog fields as follows\n\n| IronIO field      | Syslog field        | LogEvent field      |\n|-------------------|---------------------|---------------------|\n| task\\_id          | ProcID              | applicationInstance |\n| code\\_name        | AppName             | applicationName     |\n| project\\_id       | Hostname            | serverName          |\n| message           | Message             | logData.message     |\n\n## Filter only mode\n\nYou may choose to operate Logproxy in Filter only mode. It will listen \nfor messages on the logdrain endpoints, run these through any active\nfilter plugins and then discard instead of delivering them to HSDP logging.\nThis is useful if you are using plugins for real-time processing only.\nTo enable filter only mode set `LOGPROXY_DELIVERY` to `none`\n\n```\n...\nenv:\n  LOGPROXY_DELIVERY: none\n...\n```\n\nSee the [Logproxy plugins](https://github.com/philips-software/logproxy-plugins) project for more details on plugins.\n\n## TODO\n\n- Better handling of HTTP 635 errors\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fphilips-software%2Flogproxy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fphilips-software%2Flogproxy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fphilips-software%2Flogproxy/lists"}