Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions .github/CODEOWNERS
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
# Default owners for everything in this repo. The DevOps team is requested for
# review on all changes. Requires the @getoptimum/devops team to have write
# access to the repository for review requests to be assigned.
* @getoptimum/devops
4 changes: 2 additions & 2 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,9 +28,9 @@ jobs:
steps:
# Action versions pinned to commit SHAs (tag in the comment) per the
# OpenSSF / GitHub-hardening guidance used across this repo's workflows.
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0

- uses: actions/setup-python@0b93645e9fea7318ecaed2b359559ac225c90a2b # v5.3.0
- uses: actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1 # v6.3.0
with:
python-version: "3.12"

Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -31,9 +31,9 @@ jobs:
# human-readable tag) per OpenSSF / GitHub-hardening guidance —
# version tags are mutable and an attacker who gains write on the
# action repo can re-point the tag at malicious code.
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0

- uses: actions/setup-python@0b93645e9fea7318ecaed2b359559ac225c90a2b # v5.3.0
- uses: actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1 # v6.3.0
with:
python-version: ${{ matrix.python-version }}
cache: pip
Expand Down
34 changes: 34 additions & 0 deletions SECURITY.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
# Security Policy

## Reporting a vulnerability

Please report security issues privately. Do not open a public issue or pull
request for a suspected vulnerability.

- Preferred: open a private report through GitHub Security Advisories, via the
repository's "Security" tab, then "Report a vulnerability".
- Alternatively, email security@getoptimum.xyz.

Include enough detail to reproduce the issue: the affected version, the steps,
and the impact. We will acknowledge your report and keep you updated through to
a fix.

## Supported versions

Security fixes are released against the latest 1.x version. Upgrade with
`pip install -U optimum-keysync`.

## How keysync handles secrets

keysync authenticates with an `ovi_live_*` operator API key, which is the only
secret it uses:

- The key is presented only as a Bearer token over HTTPS. keysync refuses
non-HTTPS API and auth URLs (loopback excepted, for local dev) and rejects
URLs that embed credentials, so the key is not sent in cleartext.
- No token is cached or persisted; revoking the key in the partners dashboard
takes effect on the next run.
- keysync never writes the key to disk and never logs it.

Keep the key out of shell history and version control: supply it through an
environment variable or a secret manager.