bluewave-labs / bluewave-onboarding

https://bluewavelabs.ca
GNU Affero General Public License v3.0
30 stars 22 forks source link

PR for Issue#332 [BE: API key & code snippet] #347

Open d02ev opened 1 week ago

d02ev commented 1 week ago

Note: This PR is similar to #345, which I had to close due to some rebasing issues.

  1. Created serverUrl and apiKey columns to the teams table.
  2. Created /set-config BE route to store serverUrl and apiKey.
  3. Added basic BE and FE request validations.
  4. Connected the FE to the BE.
coderabbitai[bot] commented 1 week ago

Walkthrough

This pull request introduces several changes across the backend and frontend components of the application. Key modifications include the addition of a new permission for admin roles in the settings configuration, the introduction of new database columns for storing API keys and server URLs, and the implementation of a new controller function to manage these settings. Additionally, new routes and service methods are created to handle the configuration updates, along with corresponding updates in the frontend to facilitate user input and validation.

Changes

File Change Summary
backend/config/settings.js Added serverUrlAndApiKey permission for userRole.ADMIN.
backend/migrations/20241115084356-api_key_server_url_cols_teams_rel.js Introduced apiKey and serverUrl columns to teams table; added up and down methods for migration.
backend/src/controllers/team.controller.js Added setConfig function for setting server URL and API key; updated exports to include setConfig.
backend/src/models/Team.js Added apiKey and serverUrl fields to Team model.
backend/src/routes/team.routes.js Added PUT endpoint /set-config for setting configuration; integrated setConfig function.
backend/src/service/team.service.js Added addServerUrlAndApiKey method; updated updateTeam and updateUserRole methods to include transaction context.
frontend/src/scenes/settings/CodeTab/CodeTab.jsx Introduced onSave function for saving server URL and API key; updated button functionality.
frontend/src/services/teamServices.js Added setConfig function to send PUT request for configuration updates.
frontend/src/utils/constants.js Modified export of API_BASE_URL for different environments, disabling local URL export and enabling staging URL export.
backend/.env Added API_KEY_ENCRYPTION_KEY environment variable.
backend/.env.production Added API_KEY_ENCRYPTION_KEY for production environment.
backend/.env.test Added API_KEY_ENCRYPTION_KEY for test environment.
backend/src/utils/team.helper.js Introduced encryptApiKey and decryptApiKey functions for API key management.

Possibly related PRs

Suggested reviewers


📜 Recent review details **Configuration used: .coderabbit.yaml** **Review profile: CHILL**
📥 Commits Reviewing files that changed from the base of the PR and between 83020d50f494e4f94d918212aa670469eabf91f1 and 92a7566f3eb15f65614ddaeaf93bde9a82f049dc.
📒 Files selected for processing (1) * `backend/src/utils/team.helper.js` (1 hunks)
🚧 Files skipped from review as they are similar to previous changes (1) * backend/src/utils/team.helper.js

Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media?

❤️ Share - [X](https://twitter.com/intent/tweet?text=I%20just%20used%20%40coderabbitai%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20the%20proprietary%20code.%20Check%20it%20out%3A&url=https%3A//coderabbit.ai) - [Mastodon](https://mastodon.social/share?text=I%20just%20used%20%40coderabbitai%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20the%20proprietary%20code.%20Check%20it%20out%3A%20https%3A%2F%2Fcoderabbit.ai) - [Reddit](https://www.reddit.com/submit?title=Great%20tool%20for%20code%20review%20-%20CodeRabbit&text=I%20just%20used%20CodeRabbit%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20proprietary%20code.%20Check%20it%20out%3A%20https%3A//coderabbit.ai) - [LinkedIn](https://www.linkedin.com/sharing/share-offsite/?url=https%3A%2F%2Fcoderabbit.ai&mini=true&title=Great%20tool%20for%20code%20review%20-%20CodeRabbit&summary=I%20just%20used%20CodeRabbit%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20proprietary%20code)
🪧 Tips ### Chat There are 3 ways to chat with [CodeRabbit](https://coderabbit.ai): > ‼️ **IMPORTANT** > Auto-reply has been disabled for this repository in the CodeRabbit settings. The CodeRabbit bot will not respond to your replies unless it is explicitly tagged. - Files and specific lines of code (under the "Files changed" tab): Tag `@coderabbitai` in a new review comment at the desired location with your query. Examples: - `@coderabbitai generate unit testing code for this file.` - `@coderabbitai modularize this function.` - PR comments: Tag `@coderabbitai` in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples: - `@coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.` - `@coderabbitai read src/utils.ts and generate unit testing code.` - `@coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.` - `@coderabbitai help me debug CodeRabbit configuration file.` Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. ### CodeRabbit Commands (Invoked using PR comments) - `@coderabbitai pause` to pause the reviews on a PR. - `@coderabbitai resume` to resume the paused reviews. - `@coderabbitai review` to trigger an incremental review. This is useful when automatic reviews are disabled for the repository. - `@coderabbitai full review` to do a full review from scratch and review all the files again. - `@coderabbitai summary` to regenerate the summary of the PR. - `@coderabbitai resolve` resolve all the CodeRabbit review comments. - `@coderabbitai configuration` to show the current CodeRabbit configuration for the repository. - `@coderabbitai help` to get help. ### Other keywords and placeholders - Add `@coderabbitai ignore` anywhere in the PR description to prevent this PR from being reviewed. - Add `@coderabbitai summary` to generate the high-level summary at a specific location in the PR description. - Add `@coderabbitai` anywhere in the PR title to generate the title automatically. ### Documentation and Community - Visit our [Documentation](https://docs.coderabbit.ai) for detailed information on how to use CodeRabbit. - Join our [Discord Community](http://discord.gg/coderabbit) to get help, request features, and share feedback. - Follow us on [X/Twitter](https://twitter.com/coderabbitai) for updates and announcements.