Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(api): Add OAuth redirection and polished authentication #212

Merged
merged 4 commits into from
May 12, 2024

Conversation

rajdip-b
Copy link
Member

@rajdip-b rajdip-b commented May 12, 2024

User description

Description

  • Added redirect after oauth login/signup.
  • Added AuthProvider enum to distinguish the kind of authentication the user made while signing up.
  • Added checks to ensure that cross provider authentications are blocked.

PR Type

enhancement, bug_fix


Description

  • Enhanced OAuth handling in the authentication controller, including redirection and cookie setting.
  • Updated authentication service to support multiple OAuth providers and prevent cross provider authentication.
  • Added AuthProvider to user creation processes and updated relevant methods across services.
  • Updated environment configurations and Prisma schema to support new OAuth functionalities.

Changes walkthrough 📝

Relevant files
Enhancement
auth.controller.ts
Enhance OAuth handling and refactor authentication methods

apps/api/src/auth/controller/auth.controller.ts

  • Implemented OAuth redirection and cookie setting in OAuth callback
    methods.
  • Refactored OTP validation to use a new setCookie method.
  • Added AuthProvider to OAuth login handling.
  • Added sendRedirect method to handle user redirection after OAuth
    authentication.
  • +44/-12 
    auth.service.ts
    Update authentication service to support multiple OAuth providers

    apps/api/src/auth/service/auth.service.ts

  • Added AuthProvider parameter to handleOAuthLogin and
    createUserIfNotExists methods.
  • Implemented user authentication provider check to prevent cross
    provider authentication.
  • +19/-4   
    create-user.ts
    Update user creation to include authentication provider   

    apps/api/src/common/create-user.ts

  • Modified createUser function to accept AuthProvider and include it in
    user creation.
  • +4/-3     
    user.service.ts
    Refactor user service to specify authentication provider on creation

    apps/api/src/user/service/user.service.ts

  • Updated user creation to specify AuthProvider.EMAIL_OTP as the
    authentication method.
  • +5/-2     
    migration.sql
    Database migration to add authentication provider to users

    apps/api/src/prisma/migrations/20240512141423_add_auth_provider/migration.sql

  • Added AuthProvider enum and updated the User table to include an
    authProvider column.
  • +5/-0     
    schema.prisma
    Update Prisma schema to include AuthProvider enum               

    apps/api/src/prisma/schema.prisma

  • Added AuthProvider enum to the Prisma schema.
  • Included authProvider in the User model.
  • +8/-0     
    Tests
    user.e2e.spec.ts
    Update user service tests to handle new AuthProvider field

    apps/api/src/user/user.e2e.spec.ts

  • Updated tests to include AuthProvider.EMAIL_OTP in expected user
    properties.
  • +2/-1     
    Configuration changes
    .env.example
    Update environment configuration for OAuth redirection     

    .env.example

  • Updated environment variables for platform URL and OAuth redirection
    path.
  • +3/-2     

    💡 PR-Agent usage:
    Comment /help on the PR to get a list of all available PR-Agent tools and their descriptions

    Copy link
    Contributor

    PR Description updated to latest commit (d2a956e)

    Copy link
    Contributor

    codiumai-pr-agent-free bot commented May 12, 2024

    PR Review 🔍

    (Review updated until commit 879da25)

    ⏱️ Estimated effort to review [1-5]

    4, because the PR involves multiple files and complex changes related to authentication, OAuth providers, and environment configurations. It requires a thorough understanding of authentication flows and potential security implications.

    🧪 Relevant tests

    No

    ⚡ Possible issues

    Possible Bug: The createUserIfNotExists method in auth.service.ts throws an exception if the user's authentication provider does not match the one stored in the database. This could prevent users from logging in if they initially signed up with one provider and later try to log in with another, even if it's allowed by the business logic.

    Security Concern: The sendRedirect method in auth.controller.ts appends user data directly into the URL query parameters, which might expose sensitive user information. This could be mitigated by using more secure methods of transmitting data.

    🔒 Security concerns

    Sensitive information exposure: The sendRedirect method in auth.controller.ts potentially exposes user data by appending it to the URL. This method should be reviewed to ensure that sensitive information is not leaked.

    Code feedback:
    relevant fileapps/api/src/auth/controller/auth.controller.ts
    suggestion      

    Consider implementing a more secure method to handle user data during redirection. Instead of appending user data directly to the URL, use server-side sessions or encrypted tokens to pass sensitive information securely. [important]

    relevant line`${platformOAuthRedirectUrl}?data=${encodeURIComponent(

    relevant fileapps/api/src/auth/service/auth.service.ts
    suggestion      

    Modify the createUserIfNotExists method to allow users to log in with different OAuth providers if the business logic permits. This could involve updating the user's authProvider in the database if it changes, rather than throwing an exception. [important]

    relevant lineif (user.authProvider !== authProvider) {

    Copy link
    Contributor

    PR Code Suggestions ✨

    CategorySuggestion                                                                                                                                    Score
    Security
    Modify user data transmission to enhance security

    The redirect URL construction in sendRedirect method exposes sensitive user information as
    URL parameters. Consider using POST requests or secure cookies to pass sensitive data
    securely.

    apps/api/src/auth/controller/auth.controller.ts [276-277]

     response
       .status(302)
    -  .redirect(
    -    `${platformOAuthRedirectUrl}?email=${user.email}&name=${user.name}&profilePictureUrl=${user.profilePictureUrl}&isActive=${user.isActive}&isAdmin=${user.isAdmin}&isOnboardingFinished=${user.isOnboardingFinished}`
    -  )
    +  .redirect(platformOAuthRedirectUrl)
    +// Consider setting sensitive user details in a secure, HttpOnly cookie or via secure POST request.
     
    Suggestion importance[1-10]: 9

    Why: The suggestion to avoid passing sensitive user information via URL parameters is highly relevant for security. Using secure methods like POST requests or secure cookies is a best practice to protect user data during transmission.

    9
    Possible issue
    Validate environment variables before use to prevent runtime errors

    It is recommended to validate the environment variables PLATFORM_FRONTEND_URL and
    PLATFORM_OAUTH_REDIRECT_PATH before constructing platformOAuthRedirectUrl. This will
    prevent runtime errors in cases where the environment variables are not set, ensuring that
    the application fails gracefully or logs a meaningful error.

    apps/api/src/auth/controller/auth.controller.ts [32]

    +if (!platformFrontendUrl || !platformOAuthRedirectPath) {
    +  throw new Error('Environment variables for PLATFORM_FRONTEND_URL and PLATFORM_OAUTH_REDIRECT_PATH must be set.');
    +}
     const platformOAuthRedirectUrl = `${platformFrontendUrl}${platformOAuthRedirectPath}`
     
    Suggestion importance[1-10]: 8

    Why: Validating environment variables is crucial to prevent runtime errors, especially when constructing URLs that are critical for OAuth redirections. This suggestion addresses a significant potential issue that could affect application stability.

    8
    Add error handling for cookie setting to enhance robustness

    The setCookie method should handle potential exceptions that might occur when setting the
    cookie, such as invalid token formats or security settings that block cookies. Using a
    try-catch block can help manage these exceptions gracefully.

    apps/api/src/auth/controller/auth.controller.ts [266-269]

    -response.cookie('token', `Bearer ${token}`, {
    -  domain: process.env.DOMAIN ?? 'localhost',
    -  expires: new Date(Date.now() + 1000 * 60 * 60 * 24 * 7) // 7 days,
    -})
    +try {
    +  response.cookie('token', `Bearer ${token}`, {
    +    domain: process.env.DOMAIN ?? 'localhost',
    +    expires: new Date(Date.now() + 1000 * 60 * 60 * 24 * 7) // 7 days,
    +  })
    +} catch (error) {
    +  console.error('Failed to set cookie', error);
    +  throw new Error('Failed to set authentication cookie.');
    +}
     
    Suggestion importance[1-10]: 7

    Why: Adding error handling for cookie operations is important for robustness, especially given the security implications and potential browser restrictions on cookies. This suggestion correctly identifies a possible improvement in error management.

    7
    Possible bug
    Check for array content before accessing to prevent runtime errors

    Consider adding a check for the existence of emails and photos arrays in the OAuth
    callback methods to ensure that these properties contain elements before accessing them.
    This prevents potential runtime errors from accessing properties of undefined.

    apps/api/src/auth/controller/auth.controller.ts [151-152]

    +if (!emails.length || !photos.length) {
    +  throw new Error('Emails or photos information is missing from the OAuth provider data.');
    +}
     const email = emails[0].value
     const profilePictureUrl = photos[0].value
     
    Suggestion importance[1-10]: 8

    Why: Ensuring that arrays like emails and photos are not empty before accessing them is crucial to prevent runtime errors. This suggestion correctly addresses a common source of bugs in handling OAuth provider data.

    8

    Copy link

    codecov bot commented May 12, 2024

    Codecov Report

    Attention: Patch coverage is 95.23810% with 1 lines in your changes are missing coverage. Please review.

    Project coverage is 91.62%. Comparing base (7bb3d21) to head (aaf9f19).
    Report is 59 commits behind head on develop.

    Files Patch % Lines
    apps/api/src/auth/service/auth.service.ts 75.00% 1 Missing ⚠️
    Additional details and impacted files
    @@             Coverage Diff              @@
    ##           develop     #212       +/-   ##
    ============================================
    + Coverage    62.20%   91.62%   +29.41%     
    ============================================
      Files           76      107       +31     
      Lines         1503     2435      +932     
      Branches       260      455      +195     
    ============================================
    + Hits           935     2231     +1296     
    + Misses         568      204      -364     
    Flag Coverage Δ
    api-e2e-tests 91.62% <95.23%> (+29.41%) ⬆️

    Flags with carried forward coverage won't be shown. Click here to find out more.

    ☔ View full report in Codecov by Sentry.
    📢 Have feedback on the report? Share it here.

    @rajdip-b
    Copy link
    Member Author

    /review

    Copy link
    Contributor

    Persistent review updated to latest commit 879da25

    @rajdip-b
    Copy link
    Member Author

    /improve

    @rajdip-b
    Copy link
    Member Author

    /ask regenerate suggestions

    Copy link
    Contributor

    Ask

    regenerate suggestions

    Answer:

    The PR introduces several enhancements and new functionalities related to OAuth handling in an API, including redirection after OAuth login/signup, setting cookies, and enforcing authentication provider consistency. Here are the detailed responses to the changes:

    1. OAuth Redirection and Cookie Setting:

      • The PR adds a new environment variable PLATFORM_OAUTH_REDIRECT_URL constructed from PLATFORM_FRONTEND_URL and PLATFORM_OAUTH_REDIRECT_PATH. This URL is used to redirect users after successful OAuth authentication.
      • A new method setCookie is introduced in the AuthController. This method sets a cookie with the user's token, which is then used for subsequent authenticated requests. This centralizes the cookie setting logic, which was previously repeated in multiple places.
      • The sendRedirect method is also added to handle the redirection of the user to the specified OAuth redirection URL along with user data appended as a query parameter. This ensures that after OAuth authentication, the user is redirected back to the application frontend with their data.
    2. Handling Multiple OAuth Providers:

      • The PR integrates an AuthProvider enum to manage different types of OAuth providers (Google, GitHub, GitLab, and EMAIL_OTP). This enum is used across the service to ensure that the OAuth provider is consistently handled.
      • In the AuthService, the handleOAuthLogin method is updated to accept an AuthProvider parameter, which is then passed to the createUserIfNotExists method to ensure that the user is created with the correct provider.
      • The createUserIfNotExists method now throws an UnauthorizedException if there is an attempt to authenticate a user with a different provider than the one they originally used. This is a crucial security feature to prevent account takeover through provider switching.
    3. Database and Schema Changes:

      • A new SQL migration adds the AuthProvider enum to the database schema and updates the User table to include an authProvider column. This is necessary to store the provider used during the user's initial authentication.
      • The Prisma schema file is updated accordingly to reflect this new column and enum.
    4. Test and Configuration Updates:

      • The .env.example file is updated with new environment variables reflecting the local development URLs for frontend redirection.
      • End-to-end tests are updated to include the AuthProvider.EMAIL_OTP when creating a user, ensuring that tests reflect the new authentication flow.

    Overall, the PR is well-structured and addresses the enhancement of OAuth functionalities robustly. It ensures better security by enforcing provider consistency and improves user experience by handling redirection and cookie management efficiently. The use of environment variables for configuration and centralizing repeated logic into single methods are good practices that enhance code maintainability and readability.

    Copy link
    Contributor

    PR Code Suggestions ✨

    CategorySuggestion                                                                                                                                    Score
    Best practice
    Validate critical environment variables at the start of the application

    It's recommended to validate the environment variables PLATFORM_FRONTEND_URL and
    PLATFORM_OAUTH_REDIRECT_PATH at the start of your application to ensure they are set. This
    prevents runtime errors in the production environment where these variables might be
    missing.

    apps/api/src/auth/controller/auth.controller.ts [30-32]

    -const platformFrontendUrl = process.env.PLATFORM_FRONTEND_URL
    -const platformOAuthRedirectPath = process.env.PLATFORM_OAUTH_REDIRECT_PATH
    -const platformOAuthRedirectUrl = `${platformFrontendUrl}${platformOAuthRedirectPath}`
    +if (!process.env.PLATFORM_FRONTEND_URL || !process.env.PLATFORM_OAUTH_REDIRECT_PATH) {
    +  throw new Error('Required environment variables PLATFORM_FRONTEND_URL or PLATFORM_OAUTH_REDIRECT_PATH are not set.');
    +}
    +const platformFrontendUrl = process.env.PLATFORM_FRONTEND_URL;
    +const platformOAuthRedirectPath = process.env.PLATFORM_OAUTH_REDIRECT_PATH;
    +const platformOAuthRedirectUrl = `${platformFrontendUrl}${platformOAuthRedirectPath}`;
     
    Suggestion importance[1-10]: 8

    Why: This suggestion correctly identifies a potential runtime error due to missing environment variables and proposes a robust solution to validate them early in the application lifecycle, which is crucial for preventing failures in production environments.

    8
    Possible bug
    Add checks for empty arrays to prevent accessing undefined properties

    Consider handling the case where emails or photos arrays might be empty to prevent runtime
    errors. This can be done by adding checks before accessing their values.

    apps/api/src/auth/controller/auth.controller.ts [151-152]

    -const email = emails[0].value
    -const profilePictureUrl = photos[0].value
    +const email = emails.length > 0 ? emails[0].value : null;
    +const profilePictureUrl = photos.length > 0 ? photos[0].value : null;
    +if (!email || !profilePictureUrl) {
    +  throw new Error('Email or profile picture URL is missing from the OAuth provider data.');
    +}
     
    Suggestion importance[1-10]: 7

    Why: The suggestion addresses a common source of runtime errors by adding checks for empty arrays before accessing their values. This is a good practice to prevent errors when the expected data structure is not present.

    7
    Maintainability
    Refactor repeated OAuth login logic into a single method

    Refactor the repeated OAuth login handling logic into a single method to reduce code
    duplication and improve maintainability.

    apps/api/src/auth/controller/auth.controller.ts [154-161]

    -const data = await this.authService.handleOAuthLogin(email, name, profilePictureUrl, AuthProvider.GITHUB);
    -const user = this.setCookie(req.res, data);
    -this.sendRedirect(req.res, user);
    +handleOAuthProcess(req, AuthProvider.GITHUB);
     
    Suggestion importance[1-10]: 7

    Why: The suggestion to refactor repeated OAuth login handling into a single method is valid and would improve code maintainability and reduce duplication. This is a beneficial change for long-term code management.

    7
    Enhancement
    Handle mismatch of authentication providers more gracefully

    Instead of directly throwing an error when the authentication provider does not match,
    consider logging this event or handling it more gracefully to improve user experience.

    apps/api/src/auth/controller/auth.controller.ts [178-182]

     if (user.authProvider !== authProvider) {
    -  throw new UnauthorizedException(
    -    'The user has signed up with a different authentication provider.'
    -  );
    +  // Log the mismatch of authentication provider
    +  console.warn(`User attempted to log in with ${authProvider} but was registered with ${user.authProvider}.`);
    +  // Redirect to a generic error page or provide a message
    +  response.redirect('/error?message=AuthProviderMismatch');
     }
     
    Suggestion importance[1-10]: 6

    Why: This suggestion improves the user experience by handling authentication provider mismatches more gracefully. It proposes logging and redirecting instead of throwing an error, which enhances the application's robustness and user feedback.

    6

    Copy link

    Quality Gate Passed Quality Gate passed

    Issues
    0 New issues
    0 Accepted issues

    Measures
    0 Security Hotspots
    No data about Coverage
    0.0% Duplication on New Code

    See analysis details on SonarCloud

    @rajdip-b
    Copy link
    Member Author

    /improve

    Copy link
    Contributor

    PR Code Suggestions ✨

    CategorySuggestion                                                                                                                                    Score
    Possible bug
    Correct the URL assignments in OAuth redirect functions to match their intended success and failure outcomes

    Correct the logic in sendOAuthFailureRedirect and sendOAuthSuccessRedirect to ensure that
    the URLs and query parameters are correctly assigned. Currently, the success and failure
    functions are incorrectly swapped.

    apps/api/src/common/redirect.ts [14-27]

    -.redirect(`${platformOAuthSuccessRedirectUrl}?reason=${reason}`)
    -.redirect(`${platformOAuthFailureRedirectUrl}?data=${encodeURIComponent(JSON.stringify(user))}`)
    +.redirect(`${platformOAuthFailureRedirectUrl}?reason=${reason}`)
    +.redirect(`${platformOAuthSuccessRedirectUrl}?data=${encodeURIComponent(JSON.stringify(user))}`)
     
    Suggestion importance[1-10]: 10

    Why: This suggestion correctly identifies a critical bug where the success and failure redirect URLs are swapped. Fixing this is crucial as it directly affects the application's flow and user experience.

    10
    Maintainability
    Refactor repeated email validation checks into a single method to improve code maintainability

    Refactor the repeated logic for checking if the email list is empty in OAuth callback
    methods into a private method within the class to reduce code duplication and improve
    maintainability.

    apps/api/src/auth/controller/auth.controller.ts [153-157]

    -if (!emails.length) {
    -  throw new UnprocessableEntityException(
    -    'Email information is missing from the OAuth provider data.'
    -  )
    -}
    +this.validateEmails(emails);
     
    Suggestion importance[1-10]: 8

    Why: Refactoring repeated email validation logic into a single method is a good practice to reduce code duplication and improve maintainability. This suggestion correctly identifies the repeated code and offers a practical improvement.

    8
    Enhancement
    Use a custom exception for missing email information in OAuth callbacks for clearer error handling

    Instead of throwing an UnprocessableEntityException directly in the OAuth callback methods
    when the email is missing, consider using a more specific custom exception that provides
    clearer information about the error and possibly suggests corrective actions.

    apps/api/src/auth/controller/auth.controller.ts [154-156]

    -throw new UnprocessableEntityException(
    -  'Email information is missing from the OAuth provider data.'
    +throw new MissingEmailException(
    +  'Email information is missing from the OAuth provider data. Please ensure that your OAuth provider is configured to share email addresses.'
     )
     
    Suggestion importance[1-10]: 7

    Why: The suggestion to use a more specific custom exception for missing email information in OAuth callbacks is valid and improves error clarity, which enhances maintainability and debuggability.

    7
    Performance
    Check the authProvider before user creation to optimize database operations

    Optimize the createUserIfNotExists method by checking the authProvider before attempting
    to create a new user, which can prevent unnecessary database operations if the user exists
    but with a different auth provider.

    apps/api/src/auth/service/auth.service.ts [161-174]

     let user = await this.findUserByEmail(email)
    -if (!user) {
    +if (!user || user.authProvider !== authProvider) {
       user = await createUser({
         email,
         name,
         profilePictureUrl,
         authProvider
       }, this.prisma)
     }
     
    Suggestion importance[1-10]: 6

    Why: The suggestion to optimize the createUserIfNotExists method by checking the authProvider is valid and can prevent unnecessary database operations. However, the existing code already includes a check after user creation, which somewhat reduces the impact of this suggestion.

    6

    @rajdip-b rajdip-b merged commit d2968bc into develop May 12, 2024
    6 of 7 checks passed
    @rajdip-b rajdip-b deleted the feat/update-oauth-functionality branch May 12, 2024 16:13
    rajdip-b pushed a commit that referenced this pull request May 12, 2024
    ## [1.3.0](v1.2.0...v1.3.0) (2024-05-12)
    
    ### 🚀 Features
    
    * Add approval support ([#158](#158)) ([e09ae60](e09ae60))
    * **api:** Add configuration live update support ([#181](#181)) ([f7d6684](f7d6684))
    * **api:** Add feature to export data of a workspace ([#152](#152)) ([46833aa](46833aa))
    * **api:** Add Integration support ([#203](#203)) ([f1ae87e](f1ae87e))
    * **api:** Add note to [secure] and variable ([#151](#151)) ([2e62351](2e62351))
    * **api:** Add OAuth redirection and polished authentication ([#212](#212)) ([d2968bc](d2968bc))
    * **api:** Add support for storing and managing variables ([#149](#149)) ([963a8ae](963a8ae))
    * **api:** Added GitLab OAuth ([#188](#188)) ([4d3bbe4](4d3bbe4))
    * **api:** Added validation for reason field ([#190](#190)) ([90b8ff2](90b8ff2))
    * **api:** Create default workspace on user's creation ([#182](#182)) ([3dc0c4c](3dc0c4c))
    * **api:** Reading `port` Dynamically ([#170](#170)) ([fd46e3e](fd46e3e))
    * **auth:** Add Google OAuth ([#156](#156)) ([cf387ea](cf387ea))
    * **web:** Added waitlist ([#168](#168)) ([1084c77](1084c77))
    * **web:** Landing revamp ([#165](#165)) ([0bc723b](0bc723b))
    
    ### 🐛 Bug Fixes
    
    * **web:** alignment issue in “Collaboration made easy” section ([#178](#178)) ([df5ca75](df5ca75))
    * **workspace:** delete duplicate tailwind config ([99d922a](99d922a))
    
    ### 📚 Documentation
    
    * add contributor list ([f37569a](f37569a))
    * Add integration docs ([#204](#204)) ([406ddb7](406ddb7))
    * Added integration docs to gitbook summary ([ab37530](ab37530))
    * **api:** Add swagger docs of API key controller ([#167](#167)) ([2910476](2910476))
    * **api:** Add swagger docs of User Controller ([#166](#166)) ([fd59522](fd59522))
    * fix typo in environment-variables.md ([#163](#163)) ([48294c9](48294c9))
    * Remove supabase from docs ([#169](#169)) ([eddbce8](eddbce8))
    * **setup:** replace NX with Turbo in setup instructions ([#175](#175)) ([af8a460](af8a460))
    * Update README.md ([b59f16b](b59f16b))
    * Update running-the-api.md ([177dbbf](177dbbf))
    * Update running-the-api.md ([#193](#193)) ([3d5bcac](3d5bcac))
    
    ### 🔧 Miscellaneous Chores
    
    * Added lockfile ([60a3b9b](60a3b9b))
    * Added lockfile ([6bb512c](6bb512c))
    * **api:** Added type inference and runtime validation to `process.env` ([#200](#200)) ([249e07d](249e07d))
    * **api:** Fixed prisma script env errors ([#209](#209)) ([8762354](8762354))
    * **API:** Refactor authority check functions in API ([#189](#189)) ([e9d710d](e9d710d))
    * **api:** Refactor user e2e tests ([b38d45a](b38d45a))
    * **ci:** Disabled api stage release ([97877c4](97877c4))
    * **ci:** Update stage deployment config ([868a6a1](868a6a1))
    * **codecov:** update api-e2e project coverage ([1e90d7e](1e90d7e))
    * **dockerfile:** Fixed web dockerfile ([6134bb2](6134bb2))
    * **docker:** Optimized web Dockerfile to reduct image size ([#173](#173)) ([444286a](444286a))
    * **release:** Downgraded package version ([c173fee](c173fee))
    * **release:** Fix failing release ([#213](#213)) ([40f64f3](40f64f3))
    * **release:** Install pnpm ([1081bea](1081bea))
    * **release:** Updated release commit ([b8958e7](b8958e7))
    * **release:** Updated release commit ([e270eb8](e270eb8))
    * Update deprecated husky Install command ([#202](#202)) ([e61102c](e61102c))
    * Upgrade @million/lint from 0.0.66 to 0.0.73 ([#172](#172)) ([dd43ed9](dd43ed9))
    * **web:** Updated fly memory config ([4debc66](4debc66))
    
    ### 🔨 Code Refactoring
    
    * **api:** Made events central to workspace ([#159](#159)) ([9bc00ae](9bc00ae))
    * **api:** Migrated to cookie based authentication ([#206](#206)) ([ad6911f](ad6911f))
    * **monorepo:** Migrate from nx to turbo ([#153](#153)) ([88b4b00](88b4b00))
    @rajdip-b
    Copy link
    Member Author

    🎉 This PR is included in version 1.3.0 🎉

    The release is available on GitHub release

    Your semantic-release bot 📦🚀

    csehatt741 pushed a commit to csehatt741/keyshade that referenced this pull request Feb 15, 2025
    ## 1.0.0 (2025-02-15)
    
    ### ⚠ BREAKING CHANGES
    
    * **api:** Refactor environment, [secure] and variable functionality
    * **api:** update workspace role mechanism and added functionality to create custom roles
    
    ### 🚀 Features
    
    * add api-keys module ([abb2863](https://github.com/csehatt741/keyshade/commit/abb28632c069bd01e95fbcc8081a5d2eed786b8f))
    * Add approval support ([#158](https://github.com/csehatt741/keyshade/issues/158)) ([e09ae60](https://github.com/csehatt741/keyshade/commit/e09ae60f48c2339c2000af2f45b3e07db2780f41))
    * add example for health and email auth ([b834d25](https://github.com/csehatt741/keyshade/commit/b834d254a8d9bc506021b8ab07b6e94c80997b9f))
    * add project module ([c96df17](https://github.com/csehatt741/keyshade/commit/c96df17b94f96578903f3de68394458af8e8a9f2))
    * add project, environment module ([fd5c4d7](https://github.com/csehatt741/keyshade/commit/fd5c4d744467395c0b360916ed85bd6cf88c698e))
    * Add RBAC ([b4cb14f](https://github.com/csehatt741/keyshade/commit/b4cb14f7fbb29c1c53e562c654a4ab5495d69e9f))
    * add [secure] module ([cd79172](https://github.com/csehatt741/keyshade/commit/cd79172ca33aa5c6c72b7859acdeaa2bb5b10970))
    * add swagger ([b15dbb0](https://github.com/csehatt741/keyshade/commit/b15dbb05b3d2dae83d7250437dfa82077fd31ae4))
    * added the auto assign workflow yaml file ([eadca0c](https://github.com/csehatt741/keyshade/commit/eadca0c0a2012344ef9030fade217e9cf57b7783))
    * added the auto assign workflow yaml file ([5e1d0f1](https://github.com/csehatt741/keyshade/commit/5e1d0f153cda371a415c27e92ac558b770058b3e))
    * **api:**  Add icon and remove description field from workspace ([#435](https://github.com/csehatt741/keyshade/issues/435)) ([a99c0db](https://github.com/csehatt741/keyshade/commit/a99c0db079f18bd76437c4bf23e08095b0635c41))
    * **api-client:** Added API Client package ([#346](https://github.com/csehatt741/keyshade/issues/346)) ([6734e1e](https://github.com/csehatt741/keyshade/commit/6734e1e2490915406a82c2e5a6bd88944b0fb664))
    * **api-client:** Added workspace controller ([#427](https://github.com/csehatt741/keyshade/issues/427)) ([2f4edec](https://github.com/csehatt741/keyshade/commit/2f4edecd0837f7658892a37902c62f05ab96c884))
    * **api-client:** Added workspace role controller ([#430](https://github.com/csehatt741/keyshade/issues/430)) ([b03ce8e](https://github.com/csehatt741/keyshade/commit/b03ce8ee346ee054b2460093ee5542551c175f60))
    * **api-client:** Added workspace-membership and related tests ([#452](https://github.com/csehatt741/keyshade/issues/452)) ([6a1c091](https://github.com/csehatt741/keyshade/commit/6a1c091ceabe012eabd247eee04fd9a67717ffec))
    * **api-client:** Create controller for Event module ([#399](https://github.com/csehatt741/keyshade/issues/399)) ([122df35](https://github.com/csehatt741/keyshade/commit/122df351b551e88f0d854f6750faaef94f92e3de))
    * **api-client:** Create controller for Integration module ([#397](https://github.com/csehatt741/keyshade/issues/397)) ([697d38b](https://github.com/csehatt741/keyshade/commit/697d38bbd32d7c025c233fd1724a31d34e56e50c))
    * **api-client:** Create controller for Project module ([#370](https://github.com/csehatt741/keyshade/issues/370)) ([fa25866](https://github.com/csehatt741/keyshade/commit/fa25866cef5497620ab0af9ddc55d320c05050fe))
    * **api-client:** Create controller for Secret module ([#396](https://github.com/csehatt741/keyshade/issues/396)) ([7e929c0](https://github.com/csehatt741/keyshade/commit/7e929c08a2e97d5518efef7c7671aa52068702ca))
    * **api-client:** Create controller for User module ([#484](https://github.com/csehatt741/keyshade/issues/484)) ([f9d8e83](https://github.com/csehatt741/keyshade/commit/f9d8e83f14a0f697828a4d11db869f24a9314359))
    * **api-client:** Create controller for Variable module ([#395](https://github.com/csehatt741/keyshade/issues/395)) ([3e114d9](https://github.com/csehatt741/keyshade/commit/3e114d9407e9a7243b1a24514e07a0b8ac939223))
    * **api-client:** Get all workspace invitation ([#619](https://github.com/csehatt741/keyshade/issues/619)) ([8a23850](https://github.com/csehatt741/keyshade/commit/8a238505c8fd0c4c46c7fa6caf710e35c699ac42))
    * **api-client:** Synced with latest API ([27f4309](https://github.com/csehatt741/keyshade/commit/27f4309817b7736d273e9c3532af00e3ed73d943))
    * **api, schema:** Add preview field in API Key ([#680](https://github.com/csehatt741/keyshade/issues/680)) ([06d8c44](https://github.com/csehatt741/keyshade/commit/06d8c44c4e06d823cdb2a41cd482aace9cba8ec2))
    * **api,cli,api-client,schema:** Enhance permissions to allow filtering by environments through project roles ([#599](https://github.com/csehatt741/keyshade/issues/599)) ([030b539](https://github.com/csehatt741/keyshade/commit/030b53992d0f9901b6f0655f775e17178b788343))
    * **api:** Add `ADMIN` authority for API keys ([#609](https://github.com/csehatt741/keyshade/issues/609)) ([fb6aba7](https://github.com/csehatt741/keyshade/commit/fb6aba7148a7980d65657aa265dfb479a275bdb4))
    * **api:** Add `minio-client` provider ([#237](https://github.com/csehatt741/keyshade/issues/237)) ([cd71c5a](https://github.com/csehatt741/keyshade/commit/cd71c5aae15711ab7309069cf6416d0b25eed9e7))
    * **api:** Add `requireRestart` parameter ([#286](https://github.com/csehatt741/keyshade/issues/286)) ([fb447a1](https://github.com/csehatt741/keyshade/commit/fb447a1852a95dcacfdb0aa896fd1521430fa095))
    * **api:** Add configuration live update support ([#181](https://github.com/csehatt741/keyshade/issues/181)) ([f7d6684](https://github.com/csehatt741/keyshade/commit/f7d668449bfe84286ef973eb1751a2b6c377f2ba))
    * **api:** Add email template for inviting user to workspace ([#480](https://github.com/csehatt741/keyshade/issues/480)) ([f5ddf7a](https://github.com/csehatt741/keyshade/commit/f5ddf7a6b869868abcffba0ba71fb6d23851fbd1))
    * **api:** Add email template for sending OTP to the user ([#582](https://github.com/csehatt741/keyshade/issues/582)) ([cb6bbcb](https://github.com/csehatt741/keyshade/commit/cb6bbcbac97427286e3e149c211438ca77c7438e))
    * **api:** Add endpoint to fetch all workspace invitations for a user ([#586](https://github.com/csehatt741/keyshade/issues/586)) ([d45417a](https://github.com/csehatt741/keyshade/commit/d45417a21cb33705e927175b4e52aeb6d310b290))
    * **api:** add event ([#115](https://github.com/csehatt741/keyshade/issues/115)) ([19e6603](https://github.com/csehatt741/keyshade/commit/19e6603341fb7d4d0f752d1c3b3c02695f25ab25))
    * **api:** Add feature to export data of a workspace ([#152](https://github.com/csehatt741/keyshade/issues/152)) ([46833aa](https://github.com/csehatt741/keyshade/commit/46833aa8bd4362cfdf08817d2faaf2a8e8bdeb99))
    * **api:** Add feature to fork projects ([#239](https://github.com/csehatt741/keyshade/issues/239)) ([3bab653](https://github.com/csehatt741/keyshade/commit/3bab653eb801fa561cd9f3c7c375ba32dda00c36))
    * **api:** Add global search in workspace ([c49962b](https://github.com/csehatt741/keyshade/commit/c49962bf1f4441e95dbcbf1e10520f66c60496bb))
    * **api:** Add Integration support ([#203](https://github.com/csehatt741/keyshade/issues/203)) ([f1ae87e](https://github.com/csehatt741/keyshade/commit/f1ae87ecca47e74ab4897f6e5d1c2457abd18a51))
    * **api:** Add logout endpoint to clear token cookie ([#581](https://github.com/csehatt741/keyshade/issues/581)) ([27f81ba](https://github.com/csehatt741/keyshade/commit/27f81ba11ebee87713e1193b97a2ce64ef64d40c))
    * **api:** Add max page size ([#377](https://github.com/csehatt741/keyshade/issues/377)) ([ed18eb0](https://github.com/csehatt741/keyshade/commit/ed18eb0c846430f2263035431c851520f0cf6421))
    * **api:** Add note to [secure] and variable ([#151](https://github.com/csehatt741/keyshade/issues/151)) ([2e62351](https://github.com/csehatt741/keyshade/commit/2e6235104c6cfeb29889a3c9beee81b893b9a26d))
    * **api:** Add OAuth redirection and polished authentication ([#212](https://github.com/csehatt741/keyshade/issues/212)) ([d2968bc](https://github.com/csehatt741/keyshade/commit/d2968bc3122338599031f3671bbcd3a17b0b5129))
    * **api:** Add pagination metadata to Environment module ([#382](https://github.com/csehatt741/keyshade/issues/382)) ([9baa344](https://github.com/csehatt741/keyshade/commit/9baa344e662e8034ab184f9db2218b8d8b279c61))
    * **api:** Add pagination metadata to Event module ([#394](https://github.com/csehatt741/keyshade/issues/394)) ([60010b4](https://github.com/csehatt741/keyshade/commit/60010b434a15082b90b9b858e0dd9c09748661fb))
    * **api:** Add pagination metadata to Integration module ([#391](https://github.com/csehatt741/keyshade/issues/391)) ([0372e36](https://github.com/csehatt741/keyshade/commit/0372e3629d4d96df7d7263215f866ad8a3e70bc0))
    * **api:** Add pagination metadata to Project module ([#393](https://github.com/csehatt741/keyshade/issues/393)) ([bc274fd](https://github.com/csehatt741/keyshade/commit/bc274fdc241395c022fd6f209c0e951ab4c7694f))
    * **api:** Add pagination metadata to Secret module ([#389](https://github.com/csehatt741/keyshade/issues/389)) ([c4cc667](https://github.com/csehatt741/keyshade/commit/c4cc6676f566c6216ba2e196834aea164c682e51))
    * **api:** Add pagination metadata to Variable module ([#390](https://github.com/csehatt741/keyshade/issues/390)) ([be6aabf](https://github.com/csehatt741/keyshade/commit/be6aabfe218b039d65b62aa01518240487bb5836))
    * **api:** Add pagination metadata to Workspace module  ([#387](https://github.com/csehatt741/keyshade/issues/387)) ([a08c924](https://github.com/csehatt741/keyshade/commit/a08c924dbc52ea45e793d639170333f8824eae2c))
    * **api:** Add pagination metadata to Workspace Role module ([#388](https://github.com/csehatt741/keyshade/issues/388)) ([d8e8f49](https://github.com/csehatt741/keyshade/commit/d8e8f491d966cb794057536922c7469ed4f8f448))
    * **api:** Add prod env schema in env file ([#436](https://github.com/csehatt741/keyshade/issues/436)) ([21c3004](https://github.com/csehatt741/keyshade/commit/21c30045ce4c013c8ef15e828c3561ad0abfa897))
    * **api:** Add resend otp implementation ([#445](https://github.com/csehatt741/keyshade/issues/445)) ([4dc6aa1](https://github.com/csehatt741/keyshade/commit/4dc6aa169c51869bdda4cd0706b513f9af9716ed))
    * **api:** Add Sentry Integeration ([#133](https://github.com/csehatt741/keyshade/issues/133)) ([5ae2c92](https://github.com/csehatt741/keyshade/commit/5ae2c92648dffb5f957ac3fb17812bfb504ded4d))
    * **api:** Add slack integration ([#531](https://github.com/csehatt741/keyshade/issues/531)) ([fe124d8](https://github.com/csehatt741/keyshade/commit/fe124d817c9ff63e699c560ee97930ec52082b21))
    * **api:** Add slug in entities ([#415](https://github.com/csehatt741/keyshade/issues/415)) ([89e2fcc](https://github.com/csehatt741/keyshade/commit/89e2fccc390771c925ea9d1c4ede8270ec6e5a80))
    * **api:** Add support for storing and managing variables ([#149](https://github.com/csehatt741/keyshade/issues/149)) ([963a8ae](https://github.com/csehatt741/keyshade/commit/963a8ae529ddee8716b6a688e272dd635cfeaafd))
    * **api:** add user module ([ebfb2ec](https://github.com/csehatt741/keyshade/commit/ebfb2ec1fd17609fadbe63d56bd169ea21c893cf))
    * **api:** add workspace module ([504f0db](https://github.com/csehatt741/keyshade/commit/504f0db3d4363333251daa813843cc90dccdc067))
    * **api:** Add workspace removal notification email template ([#476](https://github.com/csehatt741/keyshade/issues/476)) ([40b754f](https://github.com/csehatt741/keyshade/commit/40b754f7d3acd8f49e9e9a070fc744c501c3136e))
    * **api:** Added feedback form module ([#210](https://github.com/csehatt741/keyshade/issues/210)) ([ae1efd8](https://github.com/csehatt741/keyshade/commit/ae1efd8a9a3437ed8d3955e6091f4f50d0596f39))
    * **api:** Added GitLab OAuth ([#188](https://github.com/csehatt741/keyshade/issues/188)) ([4d3bbe4](https://github.com/csehatt741/keyshade/commit/4d3bbe482e84025201e4a02b7da3ded4972fcd9a))
    * **api:** Added Project Level Access  ([#221](https://github.com/csehatt741/keyshade/issues/221)) ([564f5ed](https://github.com/csehatt741/keyshade/commit/564f5ed52672dc1e7c47c67c60af9cb142594a8a))
    * **api:** Added support for changing email of users ([#233](https://github.com/csehatt741/keyshade/issues/233)) ([5ea9a10](https://github.com/csehatt741/keyshade/commit/5ea9a10d1972cf6865faa0c051ed9de595eb6d47))
    * **api:** Added validation for reason field ([#190](https://github.com/csehatt741/keyshade/issues/190)) ([90b8ff2](https://github.com/csehatt741/keyshade/commit/90b8ff20fa47799bf7267ba45a3deae70f234d9e))
    * **api:** Create a paginate method ([#379](https://github.com/csehatt741/keyshade/issues/379)) ([09576f1](https://github.com/csehatt741/keyshade/commit/09576f130900ea8d89454332bef9353bfe09a0b2))
    * **api:** Create default workspace on user's creation ([#182](https://github.com/csehatt741/keyshade/issues/182)) ([3dc0c4c](https://github.com/csehatt741/keyshade/commit/3dc0c4c95b6dd0a484806fdf0757754ce58a7200))
    * **api:** Create endpoint for fetching all revisions of a [secure] ([#303](https://github.com/csehatt741/keyshade/issues/303)) ([de2b602](https://github.com/csehatt741/keyshade/commit/de2b602dcd5bdab104d910b12761a6ec778103b8))
    * **api:** Create endpoint for fetching all revisions of a variable ([#304](https://github.com/csehatt741/keyshade/issues/304)) ([9abddc1](https://github.com/csehatt741/keyshade/commit/9abddc11691146045e727078b3b963f8b9c2e990))
    * **api:** Fetch total count of environments, [secure]s and variables in project ([#434](https://github.com/csehatt741/keyshade/issues/434)) ([0c9e50a](https://github.com/csehatt741/keyshade/commit/0c9e50aaca91f236aab35570d6d3f4247409593a))
    * **api:** Included default workspace details in getSelf function ([#414](https://github.com/csehatt741/keyshade/issues/414)) ([e67bbd6](https://github.com/csehatt741/keyshade/commit/e67bbd6d37f01732bbfe65e17b71b2ba8202200b))
    * **api:** Reading `port` Dynamically ([#170](https://github.com/csehatt741/keyshade/issues/170)) ([fd46e3e](https://github.com/csehatt741/keyshade/commit/fd46e3e2d37bf90572d2c9c7ec0b042e644878e0))
    * **api:** Replace `projectId` with `name` and `slug` in workspace-role response.  ([#432](https://github.com/csehatt741/keyshade/issues/432)) ([af06071](https://github.com/csehatt741/keyshade/commit/af0607143aa59397c0d794bce722a8a65b1f359a))
    * **api:** Secret rotation ([#652](https://github.com/csehatt741/keyshade/issues/652)) ([ad9a808](https://github.com/csehatt741/keyshade/commit/ad9a808ac6819c34b67ee77a1c86cb87b962d411))
    * **api:** update workspace role mechanism and added functionality to create custom roles ([6144aea](https://github.com/csehatt741/keyshade/commit/6144aea23ea66cdc1fa7e29080e349d299154933))
    * **api:** Updated API key ([fbac312](https://github.com/csehatt741/keyshade/commit/fbac3120b4aa063119f3b09a2b61996fefb17143))
    * **api:** updated functionality of API key ([#114](https://github.com/csehatt741/keyshade/issues/114)) ([308fbf4](https://github.com/csehatt741/keyshade/commit/308fbf4c566bd00bac5e969a51b0d38ba89772d1))
    * **api:** Workspace-membership invitationAccepted included ([#665](https://github.com/csehatt741/keyshade/issues/665)) ([3877249](https://github.com/csehatt741/keyshade/commit/38772498be229c8d83c8a99c395dded9e0a6ef7f))
    * **auth:** Add Google OAuth ([#156](https://github.com/csehatt741/keyshade/issues/156)) ([cf387ea](https://github.com/csehatt741/keyshade/commit/cf387eade9fd72d6894bb5375d791bc722040f00))
    * AutoCreate Admin On Startup ([#101](https://github.com/csehatt741/keyshade/issues/101)) ([32fac3e](https://github.com/csehatt741/keyshade/commit/32fac3e669a6dd6353ed862a8cb367d184038968))
    * **cli:** Add CLI command to check version flag using `--version` or `-v` ([#650](https://github.com/csehatt741/keyshade/issues/650)) ([31b5efe](https://github.com/csehatt741/keyshade/commit/31b5efe10e1b5d32377b9a303d2177300b24add1))
    * **cli:** Add functionality to operate on Environments ([#324](https://github.com/csehatt741/keyshade/issues/324)) ([4c6f3f8](https://github.com/csehatt741/keyshade/commit/4c6f3f8ba20363f598bb85a76a9c1ebb7e849bce))
    * **cli:** Add functionality to operate on Secrets ([#504](https://github.com/csehatt741/keyshade/issues/504)) ([1b4bf2f](https://github.com/csehatt741/keyshade/commit/1b4bf2f6b89fa981e2a008f9b7e508b578c55a95))
    * **cli:** Add functionality to operate on Variables ([#514](https://github.com/csehatt741/keyshade/issues/514)) ([32d93e6](https://github.com/csehatt741/keyshade/commit/32d93e6146a87175674107319d918157dbcec6d3))
    * **cli:** Add functionality to operate on Workspace Membership ([#589](https://github.com/csehatt741/keyshade/issues/589)) ([0fde62b](https://github.com/csehatt741/keyshade/commit/0fde62b1925d6365483ce23339ac5a5c687aaa55))
    * **cli:** Add import sub commmand for project. ([#594](https://github.com/csehatt741/keyshade/issues/594)) ([9896f27](https://github.com/csehatt741/keyshade/commit/9896f2751f87c52aa143d1fc9430cbefd51faf1d))
    * **cli:** Add List-invitation command ([#633](https://github.com/csehatt741/keyshade/issues/633)) ([874f8c2](https://github.com/csehatt741/keyshade/commit/874f8c2a5b8149ba2fc15b1ab9f4ff922315c997))
    * **cli:** Add project command ([#451](https://github.com/csehatt741/keyshade/issues/451)) ([70448e1](https://github.com/csehatt741/keyshade/commit/70448e1fe9899994fca9b202e6a4ed355af45235))
    * **cli:** Add workspace operations ([#441](https://github.com/csehatt741/keyshade/issues/441)) ([ed38d22](https://github.com/csehatt741/keyshade/commit/ed38d2227020a08972658771d211fe2316f41367))
    * **cli:** Added CLI ([#289](https://github.com/csehatt741/keyshade/issues/289)) ([1143d95](https://github.com/csehatt741/keyshade/commit/1143d9547705808230b3cbcf81a3ff2a8604eaa2))
    * **cli:** Added keyshade command to cli ([cf260ae](https://github.com/csehatt741/keyshade/commit/cf260aebe7a99ff4dcd8874cb6e5c96434773da7))
    * **cli:** Api health probe ([#645](https://github.com/csehatt741/keyshade/issues/645)) ([dd854f4](https://github.com/csehatt741/keyshade/commit/dd854f46e2d7d48dd2ee3060622059baf339efd4))
    * **cli:** Create basic README.md ([a1b74e9](https://github.com/csehatt741/keyshade/commit/a1b74e9247b86540bf8026583fe5055e067f4b29))
    * **cli:** implement commands to get, list, update, and delete, workspace roles ([#469](https://github.com/csehatt741/keyshade/issues/469)) ([957ea8d](https://github.com/csehatt741/keyshade/commit/957ea8df4b3e34ece06c3a9c3a15e7aed3b58bfd))
    * **cli:** Implemented pagination support ([#453](https://github.com/csehatt741/keyshade/issues/453)) ([feb1806](https://github.com/csehatt741/keyshade/commit/feb1806e30ee609e06bb0254040414b775f55606))
    * **cli:** Improved the DX for list profile ([#334](https://github.com/csehatt741/keyshade/issues/334)) ([6bff496](https://github.com/csehatt741/keyshade/commit/6bff4964493f9919b221a5dc6fcc578bc47b2832))
    * **cli:** Log publicKey, privacyKey, & accessLevel after project creation ([#623](https://github.com/csehatt741/keyshade/issues/623)) ([5d5b329](https://github.com/csehatt741/keyshade/commit/5d5b3297b1fa4cb9ffeccf7c12e7c496347d90a2))
    * **cli:** Quit on decryption failure ([#381](https://github.com/csehatt741/keyshade/issues/381)) ([1349d15](https://github.com/csehatt741/keyshade/commit/1349d15b3879527876d41001bdb5d85c22d417ff))
    * **cli:** Secret scan ([#438](https://github.com/csehatt741/keyshade/issues/438)) ([85cb8ab](https://github.com/csehatt741/keyshade/commit/85cb8ab3e7e8f302c793408bddd24abf6e3b4b6a))
    * **cli:** Store `metrics_enabled` key in profile config ([#536](https://github.com/csehatt741/keyshade/issues/536)) ([9283b22](https://github.com/csehatt741/keyshade/commit/9283b22e4387a50ebf3e48ce64a3d6862bb0cc8b))
    * **cli:** Supports to specify environment(s) and its optional description ([#634](https://github.com/csehatt741/keyshade/issues/634)) ([62083b1](https://github.com/csehatt741/keyshade/commit/62083b12f4daa023348eb610de53e15a3c6fbb2d))
    * **cli:** Update environment command outputs ([f4af874](https://github.com/csehatt741/keyshade/commit/f4af874e4811a5c11bd93ad1645564b24513b5ad))
    * **cli:** update README with feature and installation ([#644](https://github.com/csehatt741/keyshade/issues/644)) ([a4d2a6a](https://github.com/csehatt741/keyshade/commit/a4d2a6a4c7d429c1de0acc15016b5db3ee49561b))
    * create user endpoint ([53913f5](https://github.com/csehatt741/keyshade/commit/53913f545aee2a87571cd9798cd4979b8b47cb4d))
    * dockerize api ([ce8ee23](https://github.com/csehatt741/keyshade/commit/ce8ee23769f0bbbf5b2517278f8d2ea1e58661c1))
    * dockerize api ([dfbc58e](https://github.com/csehatt741/keyshade/commit/dfbc58eaaa15f0529d00e1441c0f56d46a9c8ce0))
    * dockerize api ([63f0a27](https://github.com/csehatt741/keyshade/commit/63f0a2752885b39d13e596b35f70318f36004dc5))
    * dockerize api ([265cec0](https://github.com/csehatt741/keyshade/commit/265cec0f58a9efa5001528ac7e9f4f71be20f190))
    * dockerize api ([ed595c7](https://github.com/csehatt741/keyshade/commit/ed595c79e5739f6d15cd80a6f18d081587d55b34))
    * dockerize api ([6b756e8](https://github.com/csehatt741/keyshade/commit/6b756e8c70388057823e3ef05ae72a059da84e9c))
    * finish environment module ([aaf6783](https://github.com/csehatt741/keyshade/commit/aaf67834298bd6b4836686c4342dc75cce63d1cf))
    * husky configured ([77bba02](https://github.com/csehatt741/keyshade/commit/77bba023c52c871b9a54499cdbc72b67c5438e4f))
    * implemented auth, ui for most, and fixed cors ([#217](https://github.com/csehatt741/keyshade/issues/217)) ([feace86](https://github.com/csehatt741/keyshade/commit/feace865d60442fea96b5074e16d0d0f48792aa9))
    * invalidate older OTPs ([8ca222a](https://github.com/csehatt741/keyshade/commit/8ca222aedd6e4532a498a8b70d837095cfd53a68))
    * landing page ([e1ec4d1](https://github.com/csehatt741/keyshade/commit/e1ec4d171e184d381efb0768d9a3deadb92d5dba))
    * **nx-cloud:** setup nx workspace ([#108](https://github.com/csehatt741/keyshade/issues/108)) ([cb61d45](https://github.com/csehatt741/keyshade/commit/cb61d458519ff7b06c87e2a9ac99d2109e934895))
    * **oauth:** add github oauth ([5b930a1](https://github.com/csehatt741/keyshade/commit/5b930a19dd98b77616b8023c30f2c8c18eec8b8b))
    * **oauth:** get 'name' and 'avatar' of the user ([20e8dbf](https://github.com/csehatt741/keyshade/commit/20e8dbf081aa8948f71fb7cf999125cb175f4bc2))
    * **package, api, cli:** Add api-key schemas and types; Fix schema inconsistencies; Minor fix for CLI build errors  ([#557](https://github.com/csehatt741/keyshade/issues/557)) ([126d024](https://github.com/csehatt741/keyshade/commit/126d0242b2d975c8e5a7a4eed185f090019b31fa))
    * **platform:** Add a new [secure] and added loader on project screen ([#603](https://github.com/csehatt741/keyshade/issues/603)) ([c3a08cc](https://github.com/csehatt741/keyshade/commit/c3a08ccb9f653671b7200b9e0429257a5e517f72))
    * **platform:** Add CopySVG icon to the Slug component and update imports ([#677](https://github.com/csehatt741/keyshade/issues/677)) ([2ad93ba](https://github.com/csehatt741/keyshade/commit/2ad93baa24e256aafdbeed9d0ee9b268d4781aa4))
    * **platform:** Add Google OAuth ([#689](https://github.com/csehatt741/keyshade/issues/689)) ([ad3a3d2](https://github.com/csehatt741/keyshade/commit/ad3a3d2d94a77fcd5c0d1b3b48564a298d510f4a))
    * **platform:** Add loading skeleton in the [secure]s page ([#423](https://github.com/csehatt741/keyshade/issues/423)) ([a97681e](https://github.com/csehatt741/keyshade/commit/a97681edab4ffb670b4479e3a8d2d2879c75f992))
    * **platform:** Add new access level SVGs and integrate into ProjectCard component ([#678](https://github.com/csehatt741/keyshade/issues/678)) ([cc3ef77](https://github.com/csehatt741/keyshade/commit/cc3ef77b93054e44fc5de01e12ef9d0d707a0a14))
    * **platform:** Add new design for slug ([#675](https://github.com/csehatt741/keyshade/issues/675)) ([2b8985c](https://github.com/csehatt741/keyshade/commit/2b8985c4725dbf062dc66acf560f8433ce5d87dc))
    * **platform:** Add new variables to a project ([#593](https://github.com/csehatt741/keyshade/issues/593)) ([d6c6252](https://github.com/csehatt741/keyshade/commit/d6c6252f471e839b36ee2adeb674b08f99035941))
    * **platform:** Add roles tab in sidebar ([#749](https://github.com/csehatt741/keyshade/issues/749)) ([bbe4366](https://github.com/csehatt741/keyshade/commit/bbe4366c3131ea2991cbde32454b39e02c45c4c9))
    * **platform:** Add SVGs to projectTabs ([#673](https://github.com/csehatt741/keyshade/issues/673)) ([37bfddf](https://github.com/csehatt741/keyshade/commit/37bfddfc993aa76b4688ac1b8693d0bad25809a4))
    * **platform:** Add warning sonner toast for invalid otp ([#335](https://github.com/csehatt741/keyshade/issues/335)) ([21513f5](https://github.com/csehatt741/keyshade/commit/21513f5be6d36b308cd5926e7ad1b475f96cb668))
    * **platform:** Add workspace slug for projects in url ([#683](https://github.com/csehatt741/keyshade/issues/683)) ([8bdd47f](https://github.com/csehatt741/keyshade/commit/8bdd47fb71e902fcaf2558356be0b35bb79c7151))
    * **platform:** Added screen for CREATE NEW PROJECT ([#540](https://github.com/csehatt741/keyshade/issues/540)) ([b644633](https://github.com/csehatt741/keyshade/commit/b64463384d71e7eb246645bbfb6c2a3159baeb50))
    * **platform:** Added the feature for deleting a [secure] ([#674](https://github.com/csehatt741/keyshade/issues/674)) ([37e7960](https://github.com/csehatt741/keyshade/commit/37e796080fe426b69333b134db4031ba2849e401))
    * **platform:** Clearing email field after waitlisting the user email ([#481](https://github.com/csehatt741/keyshade/issues/481)) ([256d659](https://github.com/csehatt741/keyshade/commit/256d65974babd17d525ce2a41a5e17136e6ac12e))
    * **platform:** Create ui link for resend otp ([#489](https://github.com/csehatt741/keyshade/issues/489)) ([46eb5c5](https://github.com/csehatt741/keyshade/commit/46eb5c5aeee76f60015e65174e9cb9ea97f5e771))
    * **platform:** Delete variable from a project ([#600](https://github.com/csehatt741/keyshade/issues/600)) ([e64a738](https://github.com/csehatt741/keyshade/commit/e64a7388451da7a675700d076b9d2554a3ac2435))
    * **platform:** Edit existing variables in a project ([#602](https://github.com/csehatt741/keyshade/issues/602)) ([bb48f6c](https://github.com/csehatt741/keyshade/commit/bb48f6c6a1534040a0e6ad9099ff436e7cc83b80))
    * **platform:** Edit [secure] in project ([#684](https://github.com/csehatt741/keyshade/issues/684)) ([1e34030](https://github.com/csehatt741/keyshade/commit/1e340302bc34ec061683a4af1ee0da178f59aef0))
    * **platform:** Implement delete project ([#671](https://github.com/csehatt741/keyshade/issues/671)) ([d243c89](https://github.com/csehatt741/keyshade/commit/d243c89be2358f104ad893b5c955d814835aa8e8))
    * **platform:** Improved UI of [secure] listing ([#655](https://github.com/csehatt741/keyshade/issues/655)) ([b19de47](https://github.com/csehatt741/keyshade/commit/b19de47bdbe5c098fd2c256d4d9b65989498786c))
    * **platform:** Operate on environments ([#670](https://github.com/csehatt741/keyshade/issues/670)) ([f45c5fa](https://github.com/csehatt741/keyshade/commit/f45c5fa81728832f6ff74c5c26d52e00e32fb546))
    * **platform:** Restructure workspace settings and user settings ([#682](https://github.com/csehatt741/keyshade/issues/682)) ([cd0013a](https://github.com/csehatt741/keyshade/commit/cd0013ade20f224bf9db24ef7431810c142be6b3))
    * **platform:** Show all the existing variables inside a project ([#591](https://github.com/csehatt741/keyshade/issues/591)) ([5276bb8](https://github.com/csehatt741/keyshade/commit/5276bb8bcd104ffdfd979ebdbd46eb155979e521))
    * **platform:** Update table ui and change variable to accordion ([#676](https://github.com/csehatt741/keyshade/issues/676)) ([71e9ae9](https://github.com/csehatt741/keyshade/commit/71e9ae91b6067a18f144eea3e06f06a97fb73457))
    * **platform:** Updated the empty state of dashboard ([#522](https://github.com/csehatt741/keyshade/issues/522)) ([28739d9](https://github.com/csehatt741/keyshade/commit/28739d96c1f5857de0be3a9c6f1d800559d04754))
    * **platform:** View [secure]s ([#313](https://github.com/csehatt741/keyshade/issues/313)) ([97c4541](https://github.com/csehatt741/keyshade/commit/97c45414d4a3e456170369c07d4f936f06189c7a))
    * **platform:** Workspace integrate ([#241](https://github.com/csehatt741/keyshade/issues/241)) ([6107e7d](https://github.com/csehatt741/keyshade/commit/6107e7dd14c1e167a1a12f1c4b189e73f01dde88))
    * **platfrom:** add delete method in api client ([#225](https://github.com/csehatt741/keyshade/issues/225)) ([55cf09f](https://github.com/csehatt741/keyshade/commit/55cf09f7d9c977b7ab5e1a832ea82fd94b7f9984))
    * **platofrm:** Added online/offline status detection in the platform ([#585](https://github.com/csehatt741/keyshade/issues/585)) ([89aa84f](https://github.com/csehatt741/keyshade/commit/89aa84f151eed76ec9ec4c9c224be5d39c2e3b0c))
    * **postman:** add example for get_self and update_self ([e015acf](https://github.com/csehatt741/keyshade/commit/e015acfdca0f694898f27d49ffd447b70faee215))
    * **project:** Edit project feature ([#685](https://github.com/csehatt741/keyshade/issues/685)) ([a906920](https://github.com/csehatt741/keyshade/commit/a9069200d02cb7555ce5265b462d3cffe3a65f0a))
    * Remove project IDs from workspace role export data and update tests ([#448](https://github.com/csehatt741/keyshade/issues/448)) ([8fdb328](https://github.com/csehatt741/keyshade/commit/8fdb3286876eaddd1f1a32cd18762827a736589a))
    * responsive landing ([97bbb0c](https://github.com/csehatt741/keyshade/commit/97bbb0cb42c3b89fd1c9aede9e4d87a215aab7cf))
    * **schema, api-client:** Migrate auth types to @keyshade/schema ([#532](https://github.com/csehatt741/keyshade/issues/532)) ([d880098](https://github.com/csehatt741/keyshade/commit/d8800989185709fd75f6b7a100de248faaf32156))
    * **schema, api-client:** Migrate event schemas and types to @keyshade/schema ([#546](https://github.com/csehatt741/keyshade/issues/546)) ([a3267de](https://github.com/csehatt741/keyshade/commit/a3267dec679d6a76735443ee9332860a0a69196a))
    * **schema, api-client:** Migrate integration schemas and types to @keyshade/schema ([#547](https://github.com/csehatt741/keyshade/issues/547)) ([08868c3](https://github.com/csehatt741/keyshade/commit/08868c3026f7952c8ac6016809e5f7275ec57c07))
    * **schema, api-client:** Migrate project schemas and environment schemas along with their types to @keyshade/schema ([#538](https://github.com/csehatt741/keyshade/issues/538)) ([c468af0](https://github.com/csehatt741/keyshade/commit/c468af00b8b64a10daed5848ce3b200974b1adc3))
    * **schema, api-client:** Migrate [secure] types and schemas to @keyshade/schema ([#539](https://github.com/csehatt741/keyshade/issues/539)) ([bc3100b](https://github.com/csehatt741/keyshade/commit/bc3100b37fb32394d2dba9578993f18e5ba171b4))
    * **schema, api-client:** Migrate user types and schemas to @keyshade/schema ([#535](https://github.com/csehatt741/keyshade/issues/535)) ([c24695e](https://github.com/csehatt741/keyshade/commit/c24695e44ad65405075381628dfcc5f7b4fe0340))
    * **schema, api-client:** Migrate variable schemas and types to @keyshade/schema ([#545](https://github.com/csehatt741/keyshade/issues/545)) ([0ee8f9a](https://github.com/csehatt741/keyshade/commit/0ee8f9a1f8ff1bfc04e9ff7a0eccd0309627159a))
    * **schema, api-client:** Migrate workspace-membership schemas and types to @keyshade/schema ([#569](https://github.com/csehatt741/keyshade/issues/569)) ([4398969](https://github.com/csehatt741/keyshade/commit/4398969a48d4f6863ca872dcc7230048e14b45ac))
    * **schema, api-client:** Migrate workspace-role schemas and types to @keyshade/schema ([#568](https://github.com/csehatt741/keyshade/issues/568)) ([9efbf2d](https://github.com/csehatt741/keyshade/commit/9efbf2d6347670cb2ad1a670384e4b458475ca4c))
    * **schema:** Add User type inference from UserSchema ([#574](https://github.com/csehatt741/keyshade/issues/574)) ([84c1db5](https://github.com/csehatt741/keyshade/commit/84c1db55bf3e20af15221929aea7ac6dff4178b3))
    * **schema:** Add workspace invitation schema ([#612](https://github.com/csehatt741/keyshade/issues/612)) ([1a5721b](https://github.com/csehatt741/keyshade/commit/1a5721b7fa129c56e9487982ffe92daeb3121715))
    * **schema:** Added a schema package ([01ea232](https://github.com/csehatt741/keyshade/commit/01ea232a9d1bc51a0b0cae3fd6edd378b88a5755))
    * Update details in listing [secure]s ([#686](https://github.com/csehatt741/keyshade/issues/686)) ([84aa5f4](https://github.com/csehatt741/keyshade/commit/84aa5f46083826ce9f84752f5abae0a61da7f90e))
    * Variables listing revamp ([#735](https://github.com/csehatt741/keyshade/issues/735)) ([38b42fa](https://github.com/csehatt741/keyshade/commit/38b42fadb791871f48dfbd3527e9b81cdbb36d1c))
    * **web:** Add and link privacy and tnc page ([#226](https://github.com/csehatt741/keyshade/issues/226)) ([ec81eb9](https://github.com/csehatt741/keyshade/commit/ec81eb919d9370ff3772ed2732f30a0f9ac74be8))
    * **web:** Add Google Analytics integration ([#649](https://github.com/csehatt741/keyshade/issues/649)) ([397d6da](https://github.com/csehatt741/keyshade/commit/397d6da505fd08e0b82852e89cad17a3afa5424c))
    * **web:** Add Pricing Page ([#243](https://github.com/csehatt741/keyshade/issues/243)) ([2c7f1d6](https://github.com/csehatt741/keyshade/commit/2c7f1d6171ac0563a13279676ddaf3d098855fee))
    * **web:** Added waitlist ([#168](https://github.com/csehatt741/keyshade/issues/168)) ([1084c77](https://github.com/csehatt741/keyshade/commit/1084c772199382ee56cb3c515032ae1cc05d211b))
    * **web:** Configured extra check for waitlisted users already in the list and created toast message for them ([#492](https://github.com/csehatt741/keyshade/issues/492)) ([2ddd0ef](https://github.com/csehatt741/keyshade/commit/2ddd0ef59cd1f178059a815d156c73ff6662bd41))
    * **web:** Landing revamp ([#165](https://github.com/csehatt741/keyshade/issues/165)) ([0bc723b](https://github.com/csehatt741/keyshade/commit/0bc723b5c71f7db0c2ab6e99a6ffe5e49cfd0e3d))
    * **web:** show the toast only when email add successfully ([#490](https://github.com/csehatt741/keyshade/issues/490)) ([783c411](https://github.com/csehatt741/keyshade/commit/783c4119ebddce6b1e934b1e25ae3e667a0519d6))
    * **web:** Update about and careers page ([e167f53](https://github.com/csehatt741/keyshade/commit/e167f537bca0218eb071b42e31d963e9852e2885))
    * **workflows:** Tag user on attempt's reply body ([9d01698](https://github.com/csehatt741/keyshade/commit/9d0169881d9ba7a0d84cee6d4de0e5e9c7c1e6ad))
    
    ### 🐛 Bug Fixes
    
    * Added lockfile ([856eb3c](https://github.com/csehatt741/keyshade/commit/856eb3c1446752b3312854e3b63b60cff223140c))
    * **api-client:** Fixed broken export ([096df2c](https://github.com/csehatt741/keyshade/commit/096df2c4971570d093885f9be2392b14c65c4e7f))
    * **api,api-client:** Add environmentSlug in multiple places across the [secure] module ([#509](https://github.com/csehatt741/keyshade/issues/509)) ([ee58f07](https://github.com/csehatt741/keyshade/commit/ee58f071e30c24f12cd657c11e24e01f8a648a93))
    * **api,api-client:** Add environmentSlug in multiple places across the variable module ([#468](https://github.com/csehatt741/keyshade/issues/468)) ([d970aff](https://github.com/csehatt741/keyshade/commit/d970aff1e08a3e4b2bd9bce671c75bafd536a686))
    * **api:** Add NotFound exception on passing an invalid roleId while inviting user in workspace ([#408](https://github.com/csehatt741/keyshade/issues/408)) ([ab441db](https://github.com/csehatt741/keyshade/commit/ab441dbd3f60f2deae36465653c7665296c453d7))
    * **api:** addressed logical errors ([fc14179](https://github.com/csehatt741/keyshade/commit/fc14179b2186711a79c4e6fc025fac2b82588fbc))
    * **api:** Convert email to lowercase ([#694](https://github.com/csehatt741/keyshade/issues/694)) ([b41db33](https://github.com/csehatt741/keyshade/commit/b41db33045091a47afcda0278884caeaffebfccc))
    * **api:** Empty name `""` accepted as a valid name while creating environments ([#583](https://github.com/csehatt741/keyshade/issues/583)) ([a33f4b5](https://github.com/csehatt741/keyshade/commit/a33f4b546db772362e1979845e3e0f0f3f6c175c))
    * **api:** Enable global project access ([#580](https://github.com/csehatt741/keyshade/issues/580)) ([b3a0309](https://github.com/csehatt741/keyshade/commit/b3a0309e3eb902d722672a42837da05874851971))
    * **api:** Error messages fixed in api-key service ([#418](https://github.com/csehatt741/keyshade/issues/418)) ([edfbce0](https://github.com/csehatt741/keyshade/commit/edfbce068dc0c3d23a92ce3a9d69c06f8457b7d8))
    * **api:** Github OAuth redirect not working ([#692](https://github.com/csehatt741/keyshade/issues/692)) ([3495f8a](https://github.com/csehatt741/keyshade/commit/3495f8ad425018e49bb1d85ada76e13594709b99))
    * **api:** Incorrect oauth redirect url ([58d96e5](https://github.com/csehatt741/keyshade/commit/58d96e524a6676fe61cd15b5cfe64deff74e6e45))
    * **api:** Only user's default workspace returns isDefault: true ([#647](https://github.com/csehatt741/keyshade/issues/647)) ([870b4dc](https://github.com/csehatt741/keyshade/commit/870b4dc7b68f57fbd09a51099f701a57fb0c998d))
    * **api:** Project hard sync existing entities deleted ([#660](https://github.com/csehatt741/keyshade/issues/660)) ([3632217](https://github.com/csehatt741/keyshade/commit/36322175290723089b8bd9a1a479925efd00f6f1))
    * **api:** removed api-keys.types.ts ([2b5b1f8](https://github.com/csehatt741/keyshade/commit/2b5b1f8b5ff4b8e13e2b4cfa918e6f6a9a7c2086))
    * **api:** Replace the id with slug in the global-search service ([#455](https://github.com/csehatt741/keyshade/issues/455)) ([74804b1](https://github.com/csehatt741/keyshade/commit/74804b13f33e95af8b69e38fbf4afc9d1f179ebc))
    * **api:** Secrets with empty names ([#738](https://github.com/csehatt741/keyshade/issues/738)) ([5e9c57f](https://github.com/csehatt741/keyshade/commit/5e9c57fce1122289d2ee3cea1b9baae4f1c8ed11))
    * **api:** Update build command ([0ddfa59](https://github.com/csehatt741/keyshade/commit/0ddfa5964b2b64286d055692e3005236a18ec8a6))
    * **api:** Update CORS settings ([4597eea](https://github.com/csehatt741/keyshade/commit/4597eea04998619f95d96a591f1e8206be5fa64b))
    * **api:** update role based access ([5e3456c](https://github.com/csehatt741/keyshade/commit/5e3456cf40ae8a9befa7dba8a9a59be6b95cefb1))
    * **cli:** Add keywords for improved package discoverability ([#641](https://github.com/csehatt741/keyshade/issues/641)) ([57ce10b](https://github.com/csehatt741/keyshade/commit/57ce10bff848b6efe596b50fc18bf0d357e61aab))
    * **cli:** Added parent directory check ([#359](https://github.com/csehatt741/keyshade/issues/359)) ([538ea7f](https://github.com/csehatt741/keyshade/commit/538ea7f2654e4f3ea06fde9fe653342ca769ce44))
    * **cli:** Check for .keyshade dir if profile isn't found ([#636](https://github.com/csehatt741/keyshade/issues/636)) ([a69665d](https://github.com/csehatt741/keyshade/commit/a69665d38b38d0f4db6aaa5cb9f0ad81d883d05b))
    * **cli:** Create project --store-private-key option default value removed ([#638](https://github.com/csehatt741/keyshade/issues/638)) ([20f16c6](https://github.com/csehatt741/keyshade/commit/20f16c64cbffe51b411458c294147a1fd0d83354))
    * **cli:** Fixed binary path in package.json ([e531af0](https://github.com/csehatt741/keyshade/commit/e531af0923e99fd79a39004017cabfc1fc1c4abd))
    * **cli:** Fixed binary path in package.json ([81d674d](https://github.com/csehatt741/keyshade/commit/81d674dd1bd332cd70effac25beb3ee7bd939a57))
    * **cli:** Fixed missing module ([f7a091f](https://github.com/csehatt741/keyshade/commit/f7a091ff21ddef89d12b0208bba5e38e1549ffe6))
    * **cli:** Incorrect message on listing projects ([#624](https://github.com/csehatt741/keyshade/issues/624)) ([eeffa42](https://github.com/csehatt741/keyshade/commit/eeffa428b0d5c429d5e1dc0353ca210c547b2fa5))
    * **cli:** Module errors ([d3432c5](https://github.com/csehatt741/keyshade/commit/d3432c5b5f35b695f44309ef3c03bf0a0d9168c2))
    * **cli:** Module errors ([a639065](https://github.com/csehatt741/keyshade/commit/a6390658abef8d4f50c24be66a8b10e9827e51da))
    * **cli:** Module errors ([a7742b1](https://github.com/csehatt741/keyshade/commit/a7742b19bf80e03b299419032f197de7f73d112a))
    * **cli:** Module errors ([e96300e](https://github.com/csehatt741/keyshade/commit/e96300e8cf4d3d80e6b556a6bcb247b3c73dcb87))
    * **cli:** Profile name now can use - and _ and updated error message ([#639](https://github.com/csehatt741/keyshade/issues/639)) ([00dd66a](https://github.com/csehatt741/keyshade/commit/00dd66a7b712d1a2a73b69b5fd016f46a3b9f3e9))
    * **cli:** Prompt users for all values if no option set and show default values ([#640](https://github.com/csehatt741/keyshade/issues/640)) ([fe862ab](https://github.com/csehatt741/keyshade/commit/fe862abe46b64d880124b81318c39c15254dd658))
    * **cli:** Removed unnecessary console log in [secure]s ([#515](https://github.com/csehatt741/keyshade/issues/515)) ([9403cc4](https://github.com/csehatt741/keyshade/commit/9403cc4a0147528815244fa425534c70156d5dad))
    * **cli:** Version flag causing errors ([#679](https://github.com/csehatt741/keyshade/issues/679)) ([65bb70b](https://github.com/csehatt741/keyshade/commit/65bb70b118f643a3079ece64c8b6ffd7949b8e95))
    * **cli:** Workspace membership API client payload fixed ([#614](https://github.com/csehatt741/keyshade/issues/614)) ([#648](https://github.com/csehatt741/keyshade/issues/648)) ([e23057b](https://github.com/csehatt741/keyshade/commit/e23057b382f0f0d407a9d457876868b9cc39dda1))
    * **docker:** Update build script ([40ef3e2](https://github.com/csehatt741/keyshade/commit/40ef3e24933315c1ec4e264d900148228f170432))
    * fix syntax error in auto-assign.yaml ([e59d410](https://github.com/csehatt741/keyshade/commit/e59d410f714d89daf53f7e99fd7b1ce30a67e059))
    * indendation errors ([8212d59](https://github.com/csehatt741/keyshade/commit/8212d591df508605d011ce0ad7e4c14162351d16))
    * issue auto assign cannot read properties of undefined assignees ([0ecc749](https://github.com/csehatt741/keyshade/commit/0ecc7494dade74d8ad59da25a73430564808f013))
    * **landing-page:** Make mobile responsive ([3fd5a1d](https://github.com/csehatt741/keyshade/commit/3fd5a1d51671483089da6c6390720d80798f8373)), closes [#41](https://github.com/csehatt741/keyshade/issues/41)
    * **landing-page:** Make mobile responsive ([0596473](https://github.com/csehatt741/keyshade/commit/0596473718a6b46e8bbad1b46340a44cbbe33bd9)), closes [#41](https://github.com/csehatt741/keyshade/issues/41)
    * **landing-page:** Make mobile responsive  ([2afaf0d](https://github.com/csehatt741/keyshade/commit/2afaf0dda9d164f4c3a1ed05630a1aa45acf5cda)), closes [#41](https://github.com/csehatt741/keyshade/issues/41)
    * made images not selectable and undraggable ([b8c200e](https://github.com/csehatt741/keyshade/commit/b8c200e7ac33b201a552ca128f6de0938b316313))
    * Merge main and made a small fix ([89b0d71](https://github.com/csehatt741/keyshade/commit/89b0d7181abb198404d37e5f8aabce51d7849e30))
    * nx run dev:api failing due to DI error ([81c63ca](https://github.com/csehatt741/keyshade/commit/81c63ca8c89e0dba801167f0216bb4a8b0b79599))
    * **platform:**  Build failure in platform ([#385](https://github.com/csehatt741/keyshade/issues/385)) ([90dcb2c](https://github.com/csehatt741/keyshade/commit/90dcb2c6f6cb3d89705f4374e66a7f1dc098b0c2))
    * **platform:** Adjust grid layout for environment cards ([#724](https://github.com/csehatt741/keyshade/issues/724)) ([029d3da](https://github.com/csehatt741/keyshade/commit/029d3da61afd70527cd9a561d4d35c86f68ca988))
    * **platform:** Check if `Env. Name` is left empty ([#646](https://github.com/csehatt741/keyshade/issues/646)) ([5f3fac8](https://github.com/csehatt741/keyshade/commit/5f3fac830e3ef341ae239080ce09b67f1a6e0fc6))
    * **platform:** Clickable Workspaces combobox options ([#630](https://github.com/csehatt741/keyshade/issues/630)) ([acc96f7](https://github.com/csehatt741/keyshade/commit/acc96f77123889df0af6d453af7da52d288a3a13))
    * **platform:** ContextMenu not working on variable card ([#688](https://github.com/csehatt741/keyshade/issues/688)) ([fbb147a](https://github.com/csehatt741/keyshade/commit/fbb147a9be27d0510112789fd0e7eaaa4db96083))
    * **platform:** Fixed duplicate Google Logo UI fix  ([#450](https://github.com/csehatt741/keyshade/issues/450)) ([fb0d6f7](https://github.com/csehatt741/keyshade/commit/fb0d6f7fff7814fb7df8cfbd967e1bf469cd6ee3))
    * **platform:** Fixed the typo in query params ([#723](https://github.com/csehatt741/keyshade/issues/723)) ([6c6bb7f](https://github.com/csehatt741/keyshade/commit/6c6bb7f6f20c0110c3f4e94d120a61cdad60b847))
    * **platform:** Follow-up for remaining changes from PR [#724](https://github.com/csehatt741/keyshade/issues/724) ([#736](https://github.com/csehatt741/keyshade/issues/736)) ([271c561](https://github.com/csehatt741/keyshade/commit/271c561b155d7b4c18c5059a33688f8b3e182e7c))
    * **platform:** Optimized user update request body ([#605](https://github.com/csehatt741/keyshade/issues/605)) ([ee1adf0](https://github.com/csehatt741/keyshade/commit/ee1adf0899ef7f15553b2b38aa4c1d51afa4a3d0))
    * **platform:** Platform types fixes ([#374](https://github.com/csehatt741/keyshade/issues/374)) ([8e9d9ff](https://github.com/csehatt741/keyshade/commit/8e9d9ffac0af1f93bb5513bf94aa3a75fb3c31c6))
    * **platform:** Refactor layout structure to improve Navbar positioning & child component ([#661](https://github.com/csehatt741/keyshade/issues/661)) ([31067f3](https://github.com/csehatt741/keyshade/commit/31067f309914fc8cd4ac2c1b854e4d8039af5494))
    * **platform:** Resolve loading SVG blocking input field interaction ([#571](https://github.com/csehatt741/keyshade/issues/571)) ([30f4f65](https://github.com/csehatt741/keyshade/commit/30f4f656eb686b0ca8879cb18560069dbeaad8a6))
    * **platform:** Type error in navbar ([8199de8](https://github.com/csehatt741/keyshade/commit/8199de84a1028128cb033287dbc8304c68ac12ad))
    * **Platfrom:** Replace manual date calculation with dayjs to improve better calculation ([#668](https://github.com/csehatt741/keyshade/issues/668)) ([990eb86](https://github.com/csehatt741/keyshade/commit/990eb86aa5bdeb911c3907df6ea7b52c510e64ad))
    * **README:** Update Discord badge ([6f9382e](https://github.com/csehatt741/keyshade/commit/6f9382ee7bdd9aa8f62ca4fa7307f2e77ed77e8c))
    * remove hardcoded email from adminUserCreateEmail mail function ([b2b9a9e](https://github.com/csehatt741/keyshade/commit/b2b9a9ed87ec999f4d428b819d44f3b129fe4c5d))
    * remove pnpm-lock as it is causing issues in pnpm install ([d3b54d8](https://github.com/csehatt741/keyshade/commit/d3b54d85d9a2c576c3b5964a939538e2dcae33fb))
    * resolve footer website name cut-off or overlap issue ([#444](https://github.com/csehatt741/keyshade/issues/444)) ([fe03ba2](https://github.com/csehatt741/keyshade/commit/fe03ba22aa37741646e48738e4ff3117ee5217db))
    * resolved merge conflict ([7ff7afb](https://github.com/csehatt741/keyshade/commit/7ff7afbd97665bee359399d18f6b6560206fed87))
    * **schema:** Add versions field to project [secure]s and variables response ([#590](https://github.com/csehatt741/keyshade/issues/590)) ([755ea46](https://github.com/csehatt741/keyshade/commit/755ea464835f4929b0cdee840da5be1a1a826ba4))
    * typo ([587f06b](https://github.com/csehatt741/keyshade/commit/587f06b4f0497df22cc5a453c8db13fe0c53f2ef))
    * Update discord link in README.md ([c7e4b5a](https://github.com/csehatt741/keyshade/commit/c7e4b5aac24e04a181a1ab21bad9417cf814c7e4))
    * update lockfile ([b6f6e80](https://github.com/csehatt741/keyshade/commit/b6f6e80b66f8531e9bacce8876bfe3d9ec67fb75))
    * update pnpm scripts ([e73a877](https://github.com/csehatt741/keyshade/commit/e73a87769d235f9c61e5f69d9e0ec73bb4f3eaad))
    * update web workflow ([add46dd](https://github.com/csehatt741/keyshade/commit/add46ddd6fc01f4a9202e4b4adb52e847e18d39f))
    * **web:** alignment issue in “Collaboration made easy” section ([#178](https://github.com/csehatt741/keyshade/issues/178)) ([df5ca75](https://github.com/csehatt741/keyshade/commit/df5ca75471e7bdf611406d76b276e05fccb36db0))
    * **web:** docker next config not found ([#228](https://github.com/csehatt741/keyshade/issues/228)) ([afe3160](https://github.com/csehatt741/keyshade/commit/afe3160d5c25db863e40000d2c4b82ccb82978aa))
    * **web:** Horizontal Scrolling issue on the website ([#440](https://github.com/csehatt741/keyshade/issues/440)) ([655177b](https://github.com/csehatt741/keyshade/commit/655177b47bffbc6892db3c701ddafe676e772f3e))
    * **web:** Resolve encryption glitch in footer text  ([#267](https://github.com/csehatt741/keyshade/issues/267)) ([2b5cb39](https://github.com/csehatt741/keyshade/commit/2b5cb39351d7412002514fd5a7ee6f75e02006aa))
    * **workspace:** delete duplicate tailwind config ([99d922a](https://github.com/csehatt741/keyshade/commit/99d922ac185474435303efd4613daeb251de4bf4))
    
    ### 📚 Documentation
    
    * Add CHANGELOG.md ([184220e](https://github.com/csehatt741/keyshade/commit/184220e511016d8762fa587375b6a1fa3c651062))
    * add contributor list ([f37569a](https://github.com/csehatt741/keyshade/commit/f37569a21091e5cd4b982b588096cc9e116e33a9))
    * add docs folder ([e252d68](https://github.com/csehatt741/keyshade/commit/e252d688357c8bcb0cb4c7d360edca6f2957a945))
    * Add documentation for environment in CLI ([#462](https://github.com/csehatt741/keyshade/issues/462)) ([dad7394](https://github.com/csehatt741/keyshade/commit/dad7394a16c8f98845c0423be0ff9f6d5560343f))
    * Add documentation for project in CLI ([#466](https://github.com/csehatt741/keyshade/issues/466)) ([341fb32](https://github.com/csehatt741/keyshade/commit/341fb32ada96513e6746e7d9df41892b8e1c7929))
    * Add documentation for scan in CLI ([#461](https://github.com/csehatt741/keyshade/issues/461)) ([72281e6](https://github.com/csehatt741/keyshade/commit/72281e66569b05011a7b79a94ae502eaac0b3a6d))
    * Add documentation for workspace command ([#464](https://github.com/csehatt741/keyshade/issues/464)) ([4aad8a2](https://github.com/csehatt741/keyshade/commit/4aad8a2d69c14dc933cfb6fe96ba506db54baa92))
    * Add getting-started.md ([617c346](https://github.com/csehatt741/keyshade/commit/617c3460f6debf6f08bddc38010dc62a7e13b59a))
    * Add instructions for resetting the local Prisma database ([#495](https://github.com/csehatt741/keyshade/issues/495)) ([#501](https://github.com/csehatt741/keyshade/issues/501)) ([b07ea17](https://github.com/csehatt741/keyshade/commit/b07ea178d0835354b8acdc5365f59b9ae782fcc7))
    * Add integration docs ([#204](https://github.com/csehatt741/keyshade/issues/204)) ([406ddb7](https://github.com/csehatt741/keyshade/commit/406ddb7e25198d98e8bf60e4b0273f05dc47435d))
    * Add pictures to Bruno setup ([#541](https://github.com/csehatt741/keyshade/issues/541)) ([210c0fd](https://github.com/csehatt741/keyshade/commit/210c0fdbf1ac815a8f7878e98b604c616d6fdd73))
    * Added docker details in setting-things-up.md ([#358](https://github.com/csehatt741/keyshade/issues/358)) ([ed5093a](https://github.com/csehatt741/keyshade/commit/ed5093ac5df17f8dbf4c7e286af739121b51a692))
    * Added docker support documentation ([#465](https://github.com/csehatt741/keyshade/issues/465)) ([bc04be4](https://github.com/csehatt741/keyshade/commit/bc04be4de99c0b4e86196a1e5e0fbc14f8d8b499))
    * Added docs regarding postman, and refactored architecture diagrams ([f1c9777](https://github.com/csehatt741/keyshade/commit/f1c9777e037bcf7f627624f5ca2a46b087b4a6af))
    * Added documentation for running the platform ([#473](https://github.com/csehatt741/keyshade/issues/473)) ([8b8386b](https://github.com/csehatt741/keyshade/commit/8b8386bb43b8d08ff2744ccd115b1bf515041600))
    * Added integration docs to gitbook summary ([ab37530](https://github.com/csehatt741/keyshade/commit/ab375309fc93218355d1ab12aefa20377c04604c))
    * Added missing mappings to pages ([5de9fd8](https://github.com/csehatt741/keyshade/commit/5de9fd81e4a6c8a9cfa68a6e5f09ecf9c2430130))
    * added running-the-web-app.md ([#269](https://github.com/csehatt741/keyshade/issues/269)) ([755ea12](https://github.com/csehatt741/keyshade/commit/755ea120ae90e62aaaf6b5dccf62d1d633b38c46))
    * Added section for building packages ([#720](https://github.com/csehatt741/keyshade/issues/720)) ([ecfde92](https://github.com/csehatt741/keyshade/commit/ecfde929f7554396ced6dbdc7c6cfb5bb5620edd))
    * **api:** Add swagger docs of API key controller ([#167](https://github.com/csehatt741/keyshade/issues/167)) ([2910476](https://github.com/csehatt741/keyshade/commit/2910476ce1fcf35abf1d6d196ec34811b7f1d943))
    * **api:** Add swagger docs of User Controller ([#166](https://github.com/csehatt741/keyshade/issues/166)) ([fd59522](https://github.com/csehatt741/keyshade/commit/fd5952227663a68393ef5a3a10bcc9faca1683b9))
    * **cli:** Added docs for the CLI package ([#329](https://github.com/csehatt741/keyshade/issues/329)) ([edad166](https://github.com/csehatt741/keyshade/commit/edad166c1a05507da481158f42571d1724179e36))
    * **cli:** Added usage docs ([#330](https://github.com/csehatt741/keyshade/issues/330)) ([b6963d5](https://github.com/csehatt741/keyshade/commit/b6963d5093f9031cd76821eb5faab840ea979d53))
    * **cli:** Update changelog to include missed out changes ([8910c5c](https://github.com/csehatt741/keyshade/commit/8910c5c3d34703445931b8e899fd0a368edba9c3))
    * Fix broken links in README.md ([9266788](https://github.com/csehatt741/keyshade/commit/92667881bbce4d0c2cce186178806054d998808a))
    * Fix Documentation Hyperlink and update expired Discord invite link ([#496](https://github.com/csehatt741/keyshade/issues/496)) ([5a10e39](https://github.com/csehatt741/keyshade/commit/5a10e3940562aa80462f71cabe29fdd4de9e12a8))
    * fix typo in environment-variables.md ([#163](https://github.com/csehatt741/keyshade/issues/163)) ([48294c9](https://github.com/csehatt741/keyshade/commit/48294c978df805a0543dd05375d07aafa43e31c4))
    * Fix typo in organization-of-code.md ([#234](https://github.com/csehatt741/keyshade/issues/234)) ([11244a2](https://github.com/csehatt741/keyshade/commit/11244a26b26c915d3bdd62b4ef93b505a274f35b))
    * Fixed minor typo in postman workspace link ([#411](https://github.com/csehatt741/keyshade/issues/411)) ([ed23116](https://github.com/csehatt741/keyshade/commit/ed231165e341be91f753b02200f8d4d11d42c3b3))
    * Migrate to Bruno ([#525](https://github.com/csehatt741/keyshade/issues/525)) ([1793d92](https://github.com/csehatt741/keyshade/commit/1793d925f248b175ea2115eb8926f4de26d670e5))
    * Modified environment-variable.md ([#256](https://github.com/csehatt741/keyshade/issues/256)) ([4974756](https://github.com/csehatt741/keyshade/commit/497475600467e039745a695a6e69635cebd8f8da))
    * Remove supabase from docs ([#169](https://github.com/csehatt741/keyshade/issues/169)) ([eddbce8](https://github.com/csehatt741/keyshade/commit/eddbce81fe11cca8e3e759aac1524b185e1c18f8))
    * **setup:** replace NX with Turbo in setup instructions ([#175](https://github.com/csehatt741/keyshade/issues/175)) ([af8a460](https://github.com/csehatt741/keyshade/commit/af8a460690b17e68b204d734a94705a61183b64d))
    * update CHANGELOG.md ([b01b5ca](https://github.com/csehatt741/keyshade/commit/b01b5ca6dc5ebce476cdbdfb341236b66484e7bc))
    * Update CONTRIBUTING.md ([7fc895d](https://github.com/csehatt741/keyshade/commit/7fc895d39c128dacb16f184440722fab71f523cf))
    * update DB_URL in .env.example ([325880e](https://github.com/csehatt741/keyshade/commit/325880e42f2ce43736a53a82c1bab0a9c83f4d64))
    * Update Discord link ([871b6cd](https://github.com/csehatt741/keyshade/commit/871b6cdef19fed55d7b34bc1e8b418b6974e9f38))
    * Update postman workspace link ([d6aba27](https://github.com/csehatt741/keyshade/commit/d6aba270a97f03f16e35b5cde75ff472641fe1a7))
    * update PULL_REQUEST_TEMPLATE.md ([e091d40](https://github.com/csehatt741/keyshade/commit/e091d40213fd238c74fbd3ec9f8282fb90c99ca2))
    * update README.md ([fb902e5](https://github.com/csehatt741/keyshade/commit/fb902e5052e6707eae09af296aa93d8dbb6869f4))
    * update README.md ([d3d0d86](https://github.com/csehatt741/keyshade/commit/d3d0d861b8d78348dc050d7c3b16f1bc32359e60))
    * Update README.md ([e66fcd2](https://github.com/csehatt741/keyshade/commit/e66fcd2caf75f75cd3a195139e92c5b27a7321ef))
    * Update README.md ([b59f16b](https://github.com/csehatt741/keyshade/commit/b59f16beead8b7a549182e41abba90592f31a8cb))
    * Update running-the-api.md ([177dbbf](https://github.com/csehatt741/keyshade/commit/177dbbf9e7737246acf3a4c241688e3a000ce66f))
    * Update running-the-api.md ([#193](https://github.com/csehatt741/keyshade/issues/193)) ([3d5bcac](https://github.com/csehatt741/keyshade/commit/3d5bcac76d5c5f64b13eb0f8e7bbd14a3101e322))
    * Updated alignment of pictures in API Testing page ([5d69223](https://github.com/csehatt741/keyshade/commit/5d6922334a23a31e952f80d05bb42e2b1e496a20))
    * Updated alignment of pictures in API Testing page ([e31eeca](https://github.com/csehatt741/keyshade/commit/e31eeca2108167c0cb81d8f11ee7d8701e39a378))
    * Updated CLI docs ([#460](https://github.com/csehatt741/keyshade/issues/460)) ([c7e0f13](https://github.com/csehatt741/keyshade/commit/c7e0f13debea9ec89c98be415f5076f156985533))
    * Updated env and cli docs ([1213d2a](https://github.com/csehatt741/keyshade/commit/1213d2a9b5689d44a260eff9c2e0eb8e6968c7da))
    * Updated Postman links ([444bfb1](https://github.com/csehatt741/keyshade/commit/444bfb1a5d85656ce98011c442e5238d2b786a72))
    * **web:** Add documentation about our web package ([#268](https://github.com/csehatt741/keyshade/issues/268)) ([3d848e7](https://github.com/csehatt741/keyshade/commit/3d848e7e2e20623edcc6c8dec3741f2de506c2c5))
    
    ### 🔧 Miscellaneous Chores
    
    * ad start:api script in package.json ([ee3bc19](https://github.com/csehatt741/keyshade/commit/ee3bc19bcbe83a1840ae64d466065e95b0c827f4))
    * add `getAllUsers` test  ([0b51a02](https://github.com/csehatt741/keyshade/commit/0b51a02c7799d010637dacb357fa6c5a478698b5))
    * Add api client build script and updated CI ([da0e27a](https://github.com/csehatt741/keyshade/commit/da0e27aab1f725adf28d60592e73818bb1584df7))
    * add auto release and commit config ([0fe7d19](https://github.com/csehatt741/keyshade/commit/0fe7d19614621deaec83904721ad97c49d691748))
    * add husky pre-commit check ([62bf77e](https://github.com/csehatt741/keyshade/commit/62bf77ebe3c9941c722c126e2bda325b66275b30))
    * Add more logging to Sentry init ([#470](https://github.com/csehatt741/keyshade/issues/470)) ([de4925d](https://github.com/csehatt741/keyshade/commit/de4925d9691b7bbc5c2322e01ab6787681215cf0))
    * add pr auto tag workflow ([7a44137](https://github.com/csehatt741/keyshade/commit/7a44137bc6dd9e7c64baf8c4dd468b2676d378e3))
    * add PR lint ([bb28cb7](https://github.com/csehatt741/keyshade/commit/bb28cb7b2e6d1501c6525690a744068fc5c6e56c))
    * add prettier:fix in package.json and husky ([2451301](https://github.com/csehatt741/keyshade/commit/2451301fe9bf0f32b354a7b3ffb548866cd6b265))
    * add release drafter config ([de36d9f](https://github.com/csehatt741/keyshade/commit/de36d9f5f5de639be300115b7dd62826613d15a6))
    * add render hook in web to auto-deploy ([b0228d0](https://github.com/csehatt741/keyshade/commit/b0228d021e524a8eaf1760f58b74b623ea6ef64a))
    * add semantic release ([af12daa](https://github.com/csehatt741/keyshade/commit/af12daa7e8947d50bf346246412962738b2c9ee0))
    * Add Sentry and update CI ([#653](https://github.com/csehatt741/keyshade/issues/653)) ([ca96862](https://github.com/csehatt741/keyshade/commit/ca96862ce3ab708d99cb0a99b7b84945bac37cdb))
    * add test workflow ([77c49de](https://github.com/csehatt741/keyshade/commit/77c49def7fc0b9ec06ce2ccd0790b141fb0a4839))
    * add workflow for CI and deployment of web ([f49b7db](https://github.com/csehatt741/keyshade/commit/f49b7db41458583a74a84f4433e2d685ab1855f9))
    * Added back disabled platform CI ([912b02a](https://github.com/csehatt741/keyshade/commit/912b02a782bfe5a74f9ad607928d568f09ba86f0))
    * Added docker build and run commands to` package.json` ([#258](https://github.com/csehatt741/keyshade/issues/258)) ([af61791](https://github.com/csehatt741/keyshade/commit/af61791b18b827de8369cbeac51a22a93ce8be2e))
    * Added lockfile ([60a3b9b](https://github.com/csehatt741/keyshade/commit/60a3b9bbc643beb0af1f6ec4dd7861944c6a1547))
    * Added lockfile ([6bb512c](https://github.com/csehatt741/keyshade/commit/6bb512c2e4ae2dd3bbdaecd2dc51c308772bbd84))
    * Added next backend url in .env.example ([5695254](https://github.com/csehatt741/keyshade/commit/5695254b64d3c504f7ca7cd17681f42947fef232))
    * adding test command to pre commit ([09805a5](https://github.com/csehatt741/keyshade/commit/09805a545639ce4d107dc067e7f50db1a8f4955b))
    * **api-client:** Added pagination structure ([a70e957](https://github.com/csehatt741/keyshade/commit/a70e957afc828be1e72d0ea958de8ba860a04b9c))
    * **api-client:** Fixed test script ([ad70819](https://github.com/csehatt741/keyshade/commit/ad708190771f40596646b54fdda49a01c4742644))
    * **api-client:** Removed try-catch from tests in environment ([a64e48c](https://github.com/csehatt741/keyshade/commit/a64e48cb171b3996bddb74f2cf256d4760e3ccb3))
    * **api:** Add SMTP_SECURE environment variable to Mail Service ([#741](https://github.com/csehatt741/keyshade/issues/741)) ([dd89d57](https://github.com/csehatt741/keyshade/commit/dd89d57d9c5aee3979b31f8036b0870bba20ffa1))
    * **api:** Add user cache for optimization ([#386](https://github.com/csehatt741/keyshade/issues/386)) ([8d730b5](https://github.com/csehatt741/keyshade/commit/8d730b58830a8a0e6be6bf0fe86b3021a2d473eb))
    * **api:** Added type inference and runtime validation to `process.env` ([#200](https://github.com/csehatt741/keyshade/issues/200)) ([249e07d](https://github.com/csehatt741/keyshade/commit/249e07d9b7d6ac699f4a2167eb5b4c3068acb4db))
    * **api:** Alter cache rehydration interval ([f5f9eec](https://github.com/csehatt741/keyshade/commit/f5f9eec5c81b29d7f8eb1e233c4e80e4d36eb0cf))
    * **api:** Fix inconsistencies in zod schema ([#240](https://github.com/csehatt741/keyshade/issues/240)) ([f3a3632](https://github.com/csehatt741/keyshade/commit/f3a36326b4f5c945fb2725620ff92ab31e44e053))
    * **api:** Fixed naming error in variable controller ([0c5a380](https://github.com/csehatt741/keyshade/commit/0c5a380fba843a2eb8a84753cfbe8b3ef86b6e31))
    * **api:** Fixed prisma script env errors ([#209](https://github.com/csehatt741/keyshade/issues/209)) ([8762354](https://github.com/csehatt741/keyshade/commit/8762354f1f70e48614655d10760440cb7d7e60d9))
    * **api:** Get feedback forward email from process.env ([#236](https://github.com/csehatt741/keyshade/issues/236)) ([204c9d1](https://github.com/csehatt741/keyshade/commit/204c9d133df04fb93f965cdb58ea948bcf44df12))
    * **api:** Improve handling of edge cases for paginate module ([#402](https://github.com/csehatt741/keyshade/issues/402)) ([8591487](https://github.com/csehatt741/keyshade/commit/8591487623c5e817ff31aedd6e8cd15074bcfc1c))
    * **api:** Minor updates to user service ([249d778](https://github.com/csehatt741/keyshade/commit/249d778b94a5587b6c7da6d7afe04b9bfee5c0d6))
    * **api:** Optimise API docker image size ([#360](https://github.com/csehatt741/keyshade/issues/360)) ([ea40dc1](https://github.com/csehatt741/keyshade/commit/ea40dc1f7bb8db14dcb20d82a8e106c6e79cf560))
    * **API:** Refactor authority check functions in API ([#189](https://github.com/csehatt741/keyshade/issues/189)) ([e9d710d](https://github.com/csehatt741/keyshade/commit/e9d710d49a872f6c3ca974780bcf1039f31104de))
    * **api:** Refactor user e2e tests ([b38d45a](https://github.com/csehatt741/keyshade/commit/b38d45a4314257030cc3bbcd90dd02cfd3574469))
    * **api:** Remove failing environment tests ([d1b9767](https://github.com/csehatt741/keyshade/commit/d1b9767a9714ee7dfa38b9f066beb80db40b4757))
    * **api:** Reorganized import using path alias ([d5befd1](https://github.com/csehatt741/keyshade/commit/d5befd15a5324e217bff76ef834c4387f6a168ba))
    * **api:** Skip workspace creation when user is admin ([#376](https://github.com/csehatt741/keyshade/issues/376)) ([13f6c59](https://github.com/csehatt741/keyshade/commit/13f6c59fda07e4a8b6f991e670ab055964fb2fb1))
    * **api:** Suppressed version check test in [secure] ([4688e8c](https://github.com/csehatt741/keyshade/commit/4688e8c429e63b3fb18ba0bb77d53fa875999792))
    * **api:** update dockerfile and ci ([ae2d944](https://github.com/csehatt741/keyshade/commit/ae2d9441ab9d73ea61e5924a6157da7260aaf9c7))
    * **api:** update dockerfile entrypoint ([3962beb](https://github.com/csehatt741/keyshade/commit/3962bebf91973e5ca18f47bf5dab5c4fd94cf873))
    * **api:** update sentry log messages ([976026c](https://github.com/csehatt741/keyshade/commit/976026c74f2f1e7de7cab284b751ea87a8ce573d))
    * **api:** Update slug generation method ([#420](https://github.com/csehatt741/keyshade/issues/420)) ([1f864df](https://github.com/csehatt741/keyshade/commit/1f864df4180f65c8f42f8984b6a014d44c366901))
    * **api:** Updated lockfile ([a968e78](https://github.com/csehatt741/keyshade/commit/a968e78198cfe437af4a9b95ecfb47a7452c1678))
    * **api:** Updated response types in environment service ([b8a3ddd](https://github.com/csehatt741/keyshade/commit/b8a3ddd5c2c1f8a9c24f7df6f193eff4fc2da691))
    * **auth:** loading github module optionally ([#112](https://github.com/csehatt741/keyshade/issues/112)) ([9263737](https://github.com/csehatt741/keyshade/commit/9263737bcf7c7e4ed247f8ae8dc69351a30def6a))
    * **ci:** Add CLI deployment script ([51de9d1](https://github.com/csehatt741/keyshade/commit/51de9d115de8e21d0ffd3732b020f4b514c614c4))
    * **ci:** Add docker check   ([#383](https://github.com/csehatt741/keyshade/issues/383)) ([3119001](https://github.com/csehatt741/keyshade/commit/311900177b85035d777acb6d86549cfffc71dbef))
    * **ci:** add [secure] envs to api workflow ([4f6bb44](https://github.com/csehatt741/keyshade/commit/4f6bb4492a47676d56439d730f49c71275c8d60a))
    * **ci:** add fly.io ([46bcd22](https://github.com/csehatt741/keyshade/commit/46bcd225f66aba763ee4619531d3cfec5cb68e11))
    * **ci:** Add internal package dependencies to existing workflows ([#592](https://github.com/csehatt741/keyshade/issues/592)) ([a9fc39e](https://github.com/csehatt741/keyshade/commit/a9fc39ee4ae1f2b3869c1bc8addfa20958049022))
    * **ci:** Add manual trigger ([cfbf4b9](https://github.com/csehatt741/keyshade/comm…
    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.

    1 participant