Skip to content

chore(deps): bump go.opentelemetry.io/otel from 1.35.0 to 1.36.0#9

Closed
dependabot[bot] wants to merge 1 commit intomainfrom
dependabot/go_modules/go.opentelemetry.io/otel-1.36.0
Closed

chore(deps): bump go.opentelemetry.io/otel from 1.35.0 to 1.36.0#9
dependabot[bot] wants to merge 1 commit intomainfrom
dependabot/go_modules/go.opentelemetry.io/otel-1.36.0

Conversation

@dependabot
Copy link
Contributor

@dependabot dependabot bot commented on behalf of github May 31, 2025

Bumps go.opentelemetry.io/otel from 1.35.0 to 1.36.0.

Changelog

Sourced from go.opentelemetry.io/otel's changelog.

[1.36.0/0.58.0/0.12.0] 2025-05-20

Added

  • Add exponential histogram support in go.opentelemetry.io/otel/exporters/prometheus. (#6421)
  • The go.opentelemetry.io/otel/semconv/v1.31.0 package. The package contains semantic conventions from the v1.31.0 version of the OpenTelemetry Semantic Conventions. See the migration documentation for information on how to upgrade from go.opentelemetry.io/otel/semconv/v1.30.0. (#6479)
  • Add Recording, Scope, and Record types in go.opentelemetry.io/otel/log/logtest. (#6507)
  • Add WithHTTPClient option to configure the http.Client used by go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp. (#6751)
  • Add WithHTTPClient option to configure the http.Client used by go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp. (#6752)
  • Add WithHTTPClient option to configure the http.Client used by go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp. (#6688)
  • Add ValuesGetter in go.opentelemetry.io/otel/propagation, a TextMapCarrier that supports retrieving multiple values for a single key. (#5973)
  • Add Values method to HeaderCarrier to implement the new ValuesGetter interface in go.opentelemetry.io/otel/propagation. (#5973)
  • Update Baggage in go.opentelemetry.io/otel/propagation to retrieve multiple values for a key when the carrier implements ValuesGetter. (#5973)
  • Add AssertEqual function in go.opentelemetry.io/otel/log/logtest. (#6662)
  • The go.opentelemetry.io/otel/semconv/v1.32.0 package. The package contains semantic conventions from the v1.32.0 version of the OpenTelemetry Semantic Conventions. See the migration documentation for information on how to upgrade from go.opentelemetry.io/otel/semconv/v1.31.0(#6782)
  • Add Transform option in go.opentelemetry.io/otel/log/logtest. (#6794)
  • Add Desc option in go.opentelemetry.io/otel/log/logtest. (#6796)

Removed

  • Drop support for [Go 1.22]. (#6381, #6418)
  • Remove Resource field from EnabledParameters in go.opentelemetry.io/otel/sdk/log. (#6494)
  • Remove RecordFactory type from go.opentelemetry.io/otel/log/logtest. (#6492)
  • Remove ScopeRecords, EmittedRecord, and RecordFactory types from go.opentelemetry.io/otel/log/logtest. (#6507)
  • Remove AssertRecordEqual function in go.opentelemetry.io/otel/log/logtest, use AssertEqual instead. (#6662)

Changed

  • ⚠️ Update github.com/prometheus/client_golang to v1.21.1, which changes the NameValidationScheme to UTF8Validation. This allows metrics names to keep original delimiters (e.g. .), rather than replacing with underscores. This can be reverted by setting github.com/prometheus/common/model.NameValidationScheme to LegacyValidation in github.com/prometheus/common/model. (#6433)
  • Initialize map with len(keys) in NewAllowKeysFilter and NewDenyKeysFilter to avoid unnecessary allocations in go.opentelemetry.io/otel/attribute. (#6455)
  • go.opentelemetry.io/otel/log/logtest is now a separate Go module. (#6465)
  • go.opentelemetry.io/otel/sdk/log/logtest is now a separate Go module. (#6466)
  • Recorder in go.opentelemetry.io/otel/log/logtest no longer separately stores records emitted by loggers with the same instrumentation scope. (#6507)
  • Improve performance of BatchProcessor in go.opentelemetry.io/otel/sdk/log by not exporting when exporter cannot accept more. (#6569, #6641)

Deprecated

  • Deprecate support for model.LegacyValidation for go.opentelemetry.io/otel/exporters/prometheus. (#6449)

Fixes

  • Stop percent encoding header environment variables in go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploggrpc and go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp. (#6392)
  • Ensure the noopSpan.tracerProvider method is not inlined in go.opentelemetry.io/otel/trace so the go.opentelemetry.io/auto instrumentation can instrument non-recording spans. (#6456)
  • Use a sync.Pool instead of allocating metricdata.ResourceMetrics in go.opentelemetry.io/otel/exporters/prometheus. (#6472)
Commits

Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot merge will merge this PR after your CI passes on it
  • @dependabot squash and merge will squash and merge this PR after your CI passes on it
  • @dependabot cancel merge will cancel a previously requested merge and block automerging
  • @dependabot reopen will reopen this PR if it is closed
  • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)

@dependabot dependabot bot added dependencies Pull requests that update a dependency file go Pull requests that update go code labels May 31, 2025
@dependabot dependabot bot force-pushed the dependabot/go_modules/go.opentelemetry.io/otel-1.36.0 branch 2 times, most recently from b60df34 to cf4ce55 Compare June 7, 2025 06:49
@dependabot dependabot bot force-pushed the dependabot/go_modules/go.opentelemetry.io/otel-1.36.0 branch 3 times, most recently from c129a24 to 74b4cf5 Compare June 19, 2025 13:55
Bumps [go.opentelemetry.io/otel](https://github.com/open-telemetry/opentelemetry-go) from 1.35.0 to 1.36.0.
- [Release notes](https://github.com/open-telemetry/opentelemetry-go/releases)
- [Changelog](https://github.com/open-telemetry/opentelemetry-go/blob/main/CHANGELOG.md)
- [Commits](open-telemetry/opentelemetry-go@v1.35.0...v1.36.0)

---
updated-dependencies:
- dependency-name: go.opentelemetry.io/otel
  dependency-version: 1.36.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot dependabot bot force-pushed the dependabot/go_modules/go.opentelemetry.io/otel-1.36.0 branch from 74b4cf5 to 70c3625 Compare June 28, 2025 12:34
@dependabot @github
Copy link
Contributor Author

dependabot bot commented on behalf of github Jun 30, 2025

Superseded by #21.

@dependabot dependabot bot closed this Jun 30, 2025
@dependabot dependabot bot deleted the dependabot/go_modules/go.opentelemetry.io/otel-1.36.0 branch June 30, 2025 06:53
CodeMonkeyCybersecurity pushed a commit that referenced this pull request Nov 7, 2025
…rial analysis

Implemented critical fixes identified in comprehensive security review:

P0 FIXES (BREAKING - Security Critical):

1. RLS Policy Silent Failure Fixed (database.go:178-280)
   - REMOVED 'true' parameter from current_setting() in all RLS policies
   - WHY: With 'true', missing app.current_team_id returned NULL (silent failure)
   - NOW: Missing app.current_team_id causes ERROR (fail loudly, not silently)
   - IMPACT: Prevents operational nightmare where users see no data
   - EVIDENCE: AWS Prescriptive Guidance, Permit.io RLS best practices

2. Superuser Bypass Verification Added (database.go:312-326)
   - Verifies bionic_application is NOT a superuser after hardening
   - WHY: Superusers bypass ALL RLS policies (makes security useless)
   - CHECK: SELECT rolsuper FROM pg_roles WHERE rolname = 'bionic_application'
   - FAILS if user is superuser with clear remediation steps
   - EVIDENCE: Bytebase "Common Postgres RLS Footguns"

P1 FIXES (CRITICAL - Production Readiness):

3. team_id Index Verification Added (verification.go:306-349)
   - Checks 13 critical tables for team_id indexes
   - WHY: Missing indexes cause O(n) sequential scans on EVERY query
   - WARNS: Lists tables missing indexes with CREATE INDEX commands
   - IMPACT: Prevents major performance issues under load
   - EVIDENCE: AWS RLS recommendations (always index policy columns)

4. Thread-Safe Working Directory Handling (worker.go:34-63, 490-522)
   - REMOVED: os.Chdir() (process-wide, not thread-safe)
   - ADDED: execute.Options.WorkDir for docker compose (thread-safe)
   - WHY: os.Chdir() causes race conditions if called concurrently
   - BENEFIT: Safe for API exposure, concurrent executions

5. Directory Existence Validation (worker.go:40-61)
   - Checks /opt/moni exists before attempting operations
   - Checks docker-compose.yml exists with clear error messages
   - WHY: Prevents confusing errors, provides remediation steps
   - UX: "Run 'eos create moni' first to install Moni"

6. CRITICAL Application Integration Warning (database.go:328-352)
   - Loud, clear warning that app MUST set app.current_team_id
   - Explains impact: queries will ERROR without this
   - Shows example code: SET app.current_team_id = <team_id>
   - WHY: Without this, RLS blocks everything (intentional fail-closed)

P2 FIXES (Important - Pattern Compliance):

7. README.md Created (pkg/moni/README.md) - 581 lines
   - REQUIRED: CLAUDE.md P0 Rule #9 (README in each directory)
   - Documents architecture, security, usage, troubleshooting
   - Includes security checklist, best practices, references
   - Comprehensive guide for maintenance and operations

SECURITY IMPROVEMENTS:

RLS Policies Now Fail Loudly:
  Before: app.current_team_id missing -> returns NULL -> user sees nothing
  After:  app.current_team_id missing -> ERROR: unrecognized parameter

Superuser Check:
  Before: No verification - RLS could be silently bypassed
  After:  Explicit check - fails with clear error if superuser detected

Performance Monitoring:
  Before: No index verification - silent performance degradation
  After:  Warns about missing indexes with remediation SQL

EVIDENCE-BASED:
- PostgreSQL 2024/2025 RLS best practices (AWS, Crunchy Data, Permit.io)
- Docker PostgreSQL SSL patterns (Red Gate, PostgreSQL docs)
- Multi-tenant security patterns (Picus Security, Bytebase)

FILES CHANGED:
- pkg/moni/database.go: RLS policy fix + superuser check + warnings
- pkg/moni/verification.go: team_id index verification
- pkg/moni/worker.go: Thread-safe WorkDir + directory checks
- pkg/moni/README.md: Comprehensive documentation (NEW)

TESTING RECOMMENDED:
1. Verify RLS fails without app.current_team_id set
2. Verify superuser check catches misconfiguration
3. Run --verify-rls to check index status
4. Test concurrent --init calls (thread-safety)

All fixes follow Eos patterns (AIE, structured logging, RuntimeContext).
Zero breaking changes to public API.
CodeMonkeyCybersecurity pushed a commit that referenced this pull request Nov 7, 2025
Implements three critical fixes for RLS security:

**Issue #8 (P0): RLS Policies Not Idempotent**
- Added DROP POLICY IF EXISTS before each CREATE POLICY
- Enables safe re-running of --init without failures
- Files: pkg/moni/database.go (15 policies updated)

**Issue #9 (P1): RLS Breaking Change Without Warning**
- Added interactive confirmation before enabling RLS
- Clear warning about application code requirements
- Added --force flag to skip confirmation (CI/CD)
- Files: pkg/moni/database.go, pkg/moni/types.go, cmd/update/moni.go

**Issue #11 (P1): Superuser Check Only Warns**
- Changed from logger.Warn to return error on query failure
- Provides clear remediation steps
- Prevents deploying RLS without verification
- Files: pkg/moni/database.go

**Changes:**
- pkg/moni/types.go: Added Force bool to WorkerConfig
- pkg/moni/database.go:
  - Updated EnableRowLevelSecurity signature to accept config
  - Added interaction.PromptYesNoSafe for breaking change confirmation
  - Added DROP POLICY IF EXISTS for all 15 RLS policies
  - Changed superuser verification to fail hard on error
- pkg/moni/worker.go: Updated EnableRowLevelSecurity call to pass config
- cmd/update/moni.go: Added --force flag and wired to WorkerConfig

**Usage:**
sudo eos update moni --init           # Interactive (prompts)
sudo eos update moni --init --force   # Automated (skips confirmation)

**Breaking Change:** RLS enablement now requires explicit confirmation
unless --force is provided. This ensures operators understand the
application code changes required (setting app.current_team_id).

Refs: Second adversarial analysis - Issues #8, #9, #11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file go Pull requests that update go code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants