Skip to content

Support custom APIs and separately mountable team routes - #184

Merged
dblock merged 1 commit into
slack-ruby:masterfrom
dblock:feature/api-composition
Oct 25, 2026
Merged

dblock merged 1 commit into
slack-ruby:masterfrom
dblock:feature/api-composition

Conversation

@dblock

@dblock dblock commented Oct 25, 2026

Copy link
Copy Markdown
Collaborator

Summary

Add config.api to select a custom Rack/Grape API while retaining the framework’s shared middleware stack. A nil default preserves the existing root and third-party extensions; resetting configuration restores it.

Split team routes into separately mountable TeamsEndpoint::Read and TeamsEndpoint::Create. Existing TeamsEndpoint mounts both, preserving its routes. Document composing a custom API alongside the defaults, registration-only APIs without public team reads, initialization and Rails reload timing, and the need to explicitly preserve signed Events routes when replacing the root. No authentication system or default visibility change is introduced.

Closes #151. Closes #171.

Validation

All API specs pass on Ruby 4.0.9 / Grape 4 with Mongoid 9.1 and Active Record 8.1: 47 examples, 0 failures each. Lint passes. New cases exercise custom routes with shared CORS, reset behavior, hidden list/detail routes, and successful OAuth registration through a creation-only root.

Authored by Copilot (AI), on behalf of @dblock.

@dblock
dblock force-pushed the feature/api-composition branch from a7264ff to a408987 Compare October 25, 2026 19:50
@dblock
dblock force-pushed the feature/api-composition branch from a408987 to 6a6835c Compare October 25, 2026 19:55
@github-actions

Copy link
Copy Markdown

Danger Report

No issues found.

View run

@dblock
dblock merged commit 7e42e01 into slack-ruby:master Oct 25, 2026
24 checks passed
@dblock
dblock deleted the feature/api-composition branch October 25, 2026 19:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Disabling/Hiding some teams endpoints. Document adding a RESTful API

1 participant