devise_scim 0.1.14 → 0.1.15

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f7eff3b7611a100515b696047c48a06bd6522ee74b08ca4dc1b6bafcc80dc0ca
4
- data.tar.gz: 287fc4272e08dbc2025994b5e03bdb9d1ac94d836da7bc213d5157f01f0127b6
3
+ metadata.gz: f70cc2263ef16f703d8098d51c6e19011ea0819825e15a5ab603db3ce1f7aaf4
4
+ data.tar.gz: 166c7f9af35d0e65ca4c68683076f396e2168daaa9d3dd30373cb780c2ba1a15
5
5
  SHA512:
6
- metadata.gz: 3ce6b3b4b645c9e3f454551895f67b5b3243b8a067b1f0693afea3a625861a317a53615816483807425b20c96a85e04d20e8ff478e1de3d46134f02b9185516c
7
- data.tar.gz: df4c4ba45af8f26c96f2a403975eb0d2dc8af669e56b00efe843daa068badf349da2564ef7120171f28108d44aa4c8bc89f8c7e6aaf922b9e02d19a117a393ce
6
+ metadata.gz: b7d028e40b43a183c758b5e106ed45473f146315cc644a957c81139007fc802d0131f2174d3b2b2e5d4bdb1342910f5dc10d4e71e096647364a74841995f75a6
7
+ data.tar.gz: 8f014c03287d33ef0d691bd3142f8a099edc189e63b799258b4e126dd9f29ff7490d3eecfb003403d0da3a11211d514057df43a8b29353ce1b1c121b629f118c
data/AGENTS.md CHANGED
@@ -12,6 +12,7 @@ This is `devise_scim` — a SCIM 2.0 server engine for Rails + Devise applicatio
12
12
  | `spec/` | RSpec suite — unit specs for every subsystem, request specs for all endpoints |
13
13
  | `spec/internal/` | Combustion test app: `db/schema.rb`, `config/routes.rb`, minimal models, warden initializer |
14
14
  | `lib/devise_scim/rspec/` | Host-app test harness: shared examples for Users/Groups/discovery endpoints, `ScimHelpers`, FactoryBot factories |
15
+ | `lib/devise_scim/minitest.rb` | Host-app Minitest assertions (`assert_scim_status`, `assert_scim_error`, payload/header helpers) |
15
16
 
16
17
  ## Required checks before any commit
17
18
 
@@ -68,13 +69,15 @@ The multi-tenant templates reference the `tenant_fk_column` helper method define
68
69
  ```
69
70
  lib/devise_scim/auth/
70
71
  base_strategy.rb # extracts Bearer token from Authorization header
71
- token_strategy.rb # compares against config.token (single) or ScimTenant.authenticate_token (multi)
72
+ token_strategy.rb # compares against config.token (single) or tenant_model.authenticate_token (multi)
72
73
  oauth_strategy.rb # validates Doorkeeper access tokens
73
74
  lib/devise_scim/middleware/authenticator.rb
74
75
  ```
75
76
 
76
77
  `Authenticator` is a Rack middleware inserted early in the stack. It intercepts every request whose path starts with `route_prefix`, delegates to the appropriate strategy, and either sets `env["devise_scim.tenant"]` (multi-tenant) or returns a 401 SCIM error response. It also calls `warden.custom_failure!` so Warden does not swallow the 401.
77
78
 
79
+ In multi-tenant mode with a custom `tenant_model`, auth strategies call class methods/columns on that model (`authenticate_token`, `doorkeeper_application_id`, `active`). Include `DeviseScim::Concerns::ScimTenant` on custom tenant models to satisfy that contract.
80
+
78
81
  Do not move auth logic into controllers — the middleware layer is the single authentication boundary.
79
82
 
80
83
  ## Filter system
data/CHANGELOG.md CHANGED
@@ -1,5 +1,14 @@
1
1
  ## [Unreleased]
2
2
 
3
+ ## [0.1.15] - 2026-05-02
4
+
5
+ - docs: update AGENTS.md with Minitest assertions and clarify auth strategies
6
+ - chore: create SECURITY.md for security policy and guidelines
7
+ - Update issue templates
8
+ - fix: correct link to contributing guidelines in README
9
+ - fix: correct link to contributing guidelines in README
10
+ - Remove test log and ignoring it
11
+
3
12
  ## [0.1.14] - 2026-04-28
4
13
 
5
14
  - ci: populate CHANGELOG with commits on release
data/README.md CHANGED
@@ -344,5 +344,5 @@ MIT. Used at your own risk. No liability is held by the author.
344
344
 
345
345
  This gem was developed with significant assistance from Claude (Anthropic). Contributions and audits welcome, AI or otherwise.
346
346
 
347
- 1. Please follow the [contributing guidelines](CONTRIBUTING.md) for submitting pull requests and reporting issues.
347
+ 1. Please follow the [contributing guidelines](docs/contributing.md) for submitting pull requests and reporting issues.
348
348
  2. Ensure your code adheres to the [code of conduct](CODE_OF_CONDUCT.md) and is tested with the provided test harness.
data/SECURITY.md ADDED
@@ -0,0 +1,64 @@
1
+ # Security Policy
2
+
3
+ `devise_scim` handles authentication and authorization for SCIM 2.0 endpoints — bearer token validation, OAuth 2.0 client-credentials flows, and tenant isolation. Security issues in this library can directly affect identity provisioning pipelines, so responsible disclosure is taken seriously.
4
+
5
+ ## Supported Versions
6
+
7
+ This project is pre-1.0. Only the **latest released version** receives security fixes. There are no backport commitments to older patch or minor versions.
8
+
9
+ | Version | Supported |
10
+ | ------- | --------- |
11
+ | Latest `0.1.x` | ✅ |
12
+ | Older `0.1.x` | ❌ |
13
+
14
+ Once the gem reaches 1.0, the policy will be updated to cover the latest minor series.
15
+
16
+ ## Scope
17
+
18
+ **In scope** — vulnerabilities in this gem's code:
19
+
20
+ - Bearer token validation bypass or timing attacks
21
+ - OAuth 2.0 client-credentials flow weaknesses
22
+ - Tenant isolation failures (cross-tenant data leakage in multi-tenant mode)
23
+ - SCIM filter injection or attribute exposure beyond configured mappings
24
+ - Authentication bypasses in `ScimAdapter` hooks
25
+ - Input validation gaps that allow privilege escalation via provisioned attributes
26
+ - RFC 7643 / RFC 7644 non-conformance that creates a security boundary violation
27
+
28
+ **Out of scope:**
29
+
30
+ - Vulnerabilities in your own application's Devise configuration
31
+ - Weaknesses in the identity provider (Okta, Azure AD, OneLogin, etc.)
32
+ - Issues requiring a misconfigured `devise_scim` initializer to reproduce (e.g., storing tokens in source control)
33
+ - General Rails or Devise security issues unrelated to SCIM handling
34
+
35
+ If you are unsure whether an issue is in scope, report it anyway — it will be evaluated.
36
+
37
+ ## Reporting a Vulnerability
38
+
39
+ **Use GitHub's private vulnerability reporting.** Do not open a public issue.
40
+
41
+ 1. Go to the [Security tab](https://github.com/vertigo-prime/devise_scim/security) of this repository.
42
+ 2. Click **"Report a vulnerability"**.
43
+ 3. Fill in: affected version(s), steps to reproduce, potential impact, and any suggested fix.
44
+
45
+ This opens a private channel visible only to the maintainer.
46
+
47
+ ## Response Timeline
48
+
49
+ This is a solo-maintained project. Responses are best-effort, not guaranteed within a business SLA.
50
+
51
+ | Event | Target |
52
+ | ----- | ------ |
53
+ | Acknowledgement | Within 7 days |
54
+ | Severity assessment | Within 14 days |
55
+ | Patch for critical issues | Within 30 days |
56
+ | Patch for moderate issues | Within 60 days |
57
+
58
+ If a critical vulnerability has not received acknowledgement within 7 days, a follow-up in the private thread is welcome.
59
+
60
+ ## Coordinated Disclosure
61
+
62
+ Please allow time to patch before any public disclosure. A 90-day window from initial report is the standard expectation. For critical issues with active exploitation, a shorter timeline can be negotiated — mention it in the report.
63
+
64
+ Once a fix is released, credit will be given in the CHANGELOG and release notes unless anonymity is requested.
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module DeviseScim
4
- VERSION = "0.1.14"
4
+ VERSION = "0.1.15"
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: devise_scim
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.14
4
+ version: 0.1.15
5
5
  platform: ruby
6
6
  authors:
7
7
  - Vertigo-Prime
@@ -84,6 +84,7 @@ files:
84
84
  - LICENSE.txt
85
85
  - README.md
86
86
  - Rakefile
87
+ - SECURITY.md
87
88
  - app/controllers/devise_scim/application_controller.rb
88
89
  - app/controllers/devise_scim/groups_controller.rb
89
90
  - app/controllers/devise_scim/resource_types_controller.rb