Extend the OAuth2 connector so a reconnect can request the union of previously granted and newly requested scopes without losing either. Four related changes: - Connection gains Scopes() []string so callers no longer need a type switch to reach the scope set. OAuth2Connection and APIKeyConnection implement it; SlackConnection inherits via embedding. - OAuth2State carries RequestedScopes and CompleteWithState falls back to it when the provider omits the scope field (RFC 6749 §5.1 allows this when granted equals requested). Without the fallback the stored Scope would be empty and the next reconnect would have no diff base. - providerDefinition gains SupportsIncrementalAuth, set only for Google Workspace. When the flag is true and the caller passes InitiateOptions.IncludeGrantedScopes, the auth URL carries include_granted_scopes=true and the prompt=consent param is dropped so reuse flows see only the delta consent screen. - InitiateOptions gains ConnectorID so the reconnect case is passed explicitly instead of relying on the caller to mutate r.URL.Query. Signed-off-by: Aurélien Sibiril <81782+aureliensibiril@users.noreply.github.com>
Probo is an open-source compliance platform built for startups that helps you achieve SOC-2 compliance quickly and efficiently. Unlike traditional solutions, Probo is designed to be accessible, transparent, and community-driven.
🚀 Getting Started
Prerequisites
- Go 1.21+
- Node.js 22+
- Docker
- mkcert
Quick Start
-
Clone the repository:
git clone --recurse-submodules https://github.com/getprobo/probo.git cd probo -
Install dependencies:
# Install Go dependencies go mod download # Install Node.js dependencies npm ci -
Start the development environment:
# Start infrastructure services make stack-up # Build the project make build # Start the application using development settings bin/probod -cfg-file cfg/dev.yaml
The application will be available at:
- Application: http://localhost:8080
Testing Custom Domains
To test the custom domains feature locally, add the CNAME target to your hosts file:
# Add this line to /etc/hosts (macOS/Linux) or C:\Windows\System32\drivers\etc\hosts (Windows)
127.0.0.1 custom.getprobo.com
This allows you to test custom trust center domains on your local machine. The CNAME target can be configured in cfg/dev.yaml under custom-domains.cname-target.
For detailed setup instructions, see our Contributing Guide.
🏗️ Current Status
Probo is in early development, focusing on building a solid foundation for compliance management.
🛠️ Tech Stack
Backend
- Go - API server
- PostgreSQL - Data storage
- GraphQL - API layer
Frontend
- React with TypeScript
- Relay - Data fetching
- TailwindCSS - Styling
Infrastructure
- Docker - Containerization
- OpenTelemetry - Observability
- GitHub Actions - CI/CD
Observability
- Grafana - Metrics visualization
- Prometheus - Metrics collection
- Loki - Log aggregation
- Tempo - Distributed tracing
🤝 Contributing
We love contributions from our community! There are many ways to contribute:
- 🌟 Star the repository to show your support
- 🐛 Report bugs
- 💡 Request features
- 🔧 Submit pull requests
- 📖 Improve documentation
Please read our Contributing Guide before making a pull request.
📚 Documentation
🌐 Community & Support
- Join our Discord community
- Follow us on Twitter
- Connect on LinkedIn
- Visit our website
📄 License
Probo is MIT licensed.