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

chore(API): Refactor authority check functions in API #189

Conversation

szabodaniel995
Copy link
Contributor

@szabodaniel995 szabodaniel995 commented Apr 21, 2024

User description

Description

Refactored the authority checking functionalities into a service
Renamed the lookup functions adhering to the requested new names
Annotated the input of the lookup functions with a common interface
Added requested new lookup functionality

Fixes #180

Developer's checklist

  • My PR follows the style guidelines of this project
  • I have performed a self-check on my work

If changes are made in the code:

  • I have followed the coding guidelines
  • My changes in code generate no new warnings
  • My changes are breaking another fix/feature of the project
  • I have added test cases to show that my feature works
  • I have added relevant screenshots in my PR
  • There are no UI/UX issues

Documentation Update

  • This PR requires an update to the documentation at docs.keyshade.xyz
  • I have made the necessary updates to the documentation, or no documentation changes are required.

Type

enhancement, bug_fix


Description

  • Introduced AuthorityCheckerService to centralize authority checks across various services.
  • Refactored ApprovalService, EnvironmentService, ProjectService, SecretService, VariableService, and WorkspaceService to use the new AuthorityCheckerService.
  • Removed old authority check functions, replacing them with calls to AuthorityCheckerService.
  • Updated CommonModule to include AuthorityCheckerService in its providers and exports.

Changes walkthrough

Relevant files
Enhancement
approval.service.ts
Refactor Approval Service to Use AuthorityCheckerService 

apps/api/src/approval/service/approval.service.ts

  • Refactored authority checks to use AuthorityCheckerService instead of
    standalone functions.
  • Updated method calls to use new service methods for authority
    validation.
  • +16/-14 
    authority-checker.service.ts
    Add AuthorityCheckerService for Centralized Authority Checks

    apps/api/src/common/authority-checker.service.ts

  • Introduced a new service AuthorityCheckerService to handle authority
    checks.
  • Implemented methods to validate user authority over workspaces,
    projects, environments, variables, and secrets.
  • +380/-0 
    environment.service.ts
    Refactor Environment Service to Use AuthorityCheckerService

    apps/api/src/environment/service/environment.service.ts

  • Refactored to use AuthorityCheckerService for authority checks.
  • Removed old authority check functions and replaced them with service
    method calls.
  • +39/-33 
    project.service.ts
    Integrate AuthorityCheckerService in Project Service         

    apps/api/src/project/service/project.service.ts

  • Integrated AuthorityCheckerService for authority validations.
  • Removed old project authority check functions.
  • +39/-33 
    secret.service.ts
    Utilize AuthorityCheckerService in Secret Service               

    apps/api/src/secret/service/secret.service.ts

  • Utilized AuthorityCheckerService for authority checks in secret
    management.
  • Removed old secret authority check functions.
  • +61/-58 
    variable.service.ts
    Adopt AuthorityCheckerService in Variable Service               

    apps/api/src/variable/service/variable.service.ts

  • Adopted AuthorityCheckerService for authority checks in variable
    management.
  • Removed old variable authority check functions.
  • +64/-58 
    workspace.service.ts
    Integrate AuthorityCheckerService in Workspace Service     

    apps/api/src/workspace/service/workspace.service.ts

  • Integrated AuthorityCheckerService for workspace-related authority
    checks.
  • Removed old workspace authority check functions.
  • +86/-74 
    Configuration changes
    common.module.ts
    Update CommonModule to Include AuthorityCheckerService     

    apps/api/src/common/common.module.ts

  • Added AuthorityCheckerService to the providers and exports of the
    CommonModule.
  • +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 (2935c5b)

    Copy link
    Contributor

    PR Review

    ⏱️ Estimated effort to review [1-5]

    4, because the PR involves significant refactoring and centralization of authority checking functions across multiple services. It requires a thorough understanding of the existing codebase and the changes to ensure that the new implementation correctly handles all the authority checks without introducing regressions or security issues.

    🧪 Relevant tests

    Yes

    🔍 Possible issues

    Possible Bug: The refactoring introduces a centralized AuthorityCheckerService which replaces multiple existing functions. If not all use cases are covered by the new service, it could lead to authorization bugs.

    Performance Concern: The centralized authority checks could introduce a single point of failure and potential performance bottlenecks if not properly optimized, especially in high-load environments.

    🔒 Security concerns

    No


    ✨ Review tool usage guide:

    Overview:
    The review tool scans the PR code changes, and generates a PR review which includes several types of feedbacks, such as possible PR issues, security threats and relevant test in the PR. More feedbacks can be added by configuring the tool.

    The tool can be triggered automatically every time a new PR is opened, or can be invoked manually by commenting on any PR.

    • When commenting, to edit configurations related to the review tool (pr_reviewer section), use the following template:
    /review --pr_reviewer.some_config1=... --pr_reviewer.some_config2=...
    
    [pr_reviewer]
    some_config1=...
    some_config2=...
    

    See the review usage page for a comprehensive guide on using this tool.

    Copy link
    Contributor

    PR Code Suggestions

    CategorySuggestions                                                                                                                                                       
    Enhancement
    Add error handling for database access in the checkAuthorityOverWorkspace function.

    Consider adding error handling for the findUnique and findFirst methods in the
    checkAuthorityOverWorkspace function to handle potential database errors more gracefully.

    apps/api/src/common/authority-checker.service.ts [36-40]

    -workspace = await prisma.workspace.findUnique({
    -  where: {
    -    id: entity.id
    +try {
    +  workspace = await prisma.workspace.findUnique({
    +    where: {
    +      id: entity.id
    +    }
    +  });
    +  if (!workspace) {
    +    throw new NotFoundException(`Workspace with id ${entity.id} not found`);
       }
    -})
    +} catch (error) {
    +  throw new InternalServerErrorException('Database access error');
    +}
     
    Improve the exception message for better debugging and user feedback.

    Use a more specific exception message in checkAuthorityOverWorkspace when the workspace is
    not found, including both id and name when available.

    apps/api/src/common/authority-checker.service.ts [54]

    -throw new NotFoundException(`Workspace with id ${entity.id} not found`)
    +throw new NotFoundException(`Workspace not found with id: ${entity.id} or name: ${entity.name}`)
     
    Refactor authority checks into a single reusable method to reduce code duplication.

    Refactor the repeated code for authority checks into a separate method within the
    SecretService class. This method could take parameters like entityId, authorityType, and
    entityType to generalize the authority check process, reducing code duplication.

    apps/api/src/secret/service/secret.service.ts [67-84]

    -const project =
    -  await this.authorityCheckerService.checkAuthorityOverProject({
    +const project = await this.checkAuthority('project', projectId, Authority.CREATE_SECRET);
    +...
    +const environment = await this.checkAuthority('environment', environmentId, Authority.READ_ENVIRONMENT);
    +...
    +private async checkAuthority(entityType: string, entityId: string, authorityType: Authority): Promise<any> {
    +  return await this.authorityCheckerService[`checkAuthorityOver${entityType}`]({
         userId: user.id,
    -    entity: { id: projectId },
    -    authority: Authority.CREATE_SECRET,
    +    entity: { id: entityId },
    +    authority: authorityType,
         prisma: this.prisma
       });
    -...
    -const environment =
    -  await this.authorityCheckerService.checkAuthorityOverEnvironment({
    -    userId: user.id,
    -    entity: { id: environmentId },
    -    authority: Authority.READ_ENVIRONMENT,
    -    prisma: this.prisma
    -  });
    +}
     
    Maintainability
    Refactor permission checks into a separate method to reduce code duplication.

    Refactor the repeated code for checking permissions in checkAuthorityOverWorkspace into a
    separate method to improve code maintainability and reduce duplication.

    apps/api/src/common/authority-checker.service.ts [64-70]

    -if (
    -  !permittedAuthorities.has(authority) &&
    -  !permittedAuthorities.has(Authority.WORKSPACE_ADMIN)
    -) {
    -  throw new UnauthorizedException(
    -    `User ${userId} does not have the required authorities to perform the action`
    -  );
    -}
    +this.verifyPermissions(permittedAuthorities, authority, userId);
     
    Use destructuring for the user object to improve code clarity.

    To improve code readability and maintainability, consider destructuring the user object to
    directly access the id property when it is used multiple times.

    apps/api/src/secret/service/secret.service.ts [69]

    -userId: user.id,
    +const { id: userId } = user;
    +...
    +userId: userId,
     
    Bug
    Add null checks for entity to prevent potential runtime errors.

    To prevent potential null reference errors, add null checks for entity before accessing
    entity.id or entity.name in the checkAuthorityOverWorkspace function.

    apps/api/src/common/authority-checker.service.ts [35-39]

    -if (entity?.id) {
    +if (entity && entity.id) {
       workspace = await prisma.workspace.findUnique({
         where: {
           id: entity.id
         }
       });
     }
     
    Add a null check for the project variable after its asynchronous assignment.

    To ensure that the project variable is always defined before it's used, especially in
    asynchronous operations, consider adding a null check right after its assignment. This can
    prevent runtime errors in subsequent code that assumes the project exists.

    apps/api/src/secret/service/secret.service.ts [67-73]

     const project =
       await this.authorityCheckerService.checkAuthorityOverProject({
         userId: user.id,
         entity: { id: projectId },
         authority: Authority.CREATE_SECRET,
         prisma: this.prisma
       });
    +if (!project) {
    +  throw new Error('Project not found or access denied');
    +}
     
    Performance
    Combine conditions into a single query to optimize database access.

    Optimize the database query in checkAuthorityOverWorkspace by combining the conditions for
    id and name into a single query using OR logic, reducing the need for separate queries.

    apps/api/src/common/authority-checker.service.ts [35-46]

    -if (entity?.id) {
    -  workspace = await prisma.workspace.findUnique({
    -    where: {
    -      id: entity.id
    -    }
    -  });
    -} else {
    -  workspace = await prisma.workspace.findFirst({
    -    where: {
    -      name: entity?.name
    -    }
    -  });
    -}
    +workspace = await prisma.workspace.findFirst({
    +  where: {
    +    OR: [
    +      { id: entity?.id },
    +      { name: entity?.name }
    +    ]
    +  }
    +});
     
    Best practice
    Add error handling for asynchronous authority check operations.

    Consider using a try-catch block around the asynchronous call to checkAuthorityOverProject
    to handle potential exceptions, such as network issues or database errors, which could
    otherwise lead to unhandled promise rejections.

    apps/api/src/secret/service/secret.service.ts [67-73]

    -const project =
    -  await this.authorityCheckerService.checkAuthorityOverProject({
    +let project;
    +try {
    +  project = await this.authorityCheckerService.checkAuthorityOverProject({
         userId: user.id,
         entity: { id: projectId },
         authority: Authority.CREATE_SECRET,
         prisma: this.prisma
    -  })
    +  });
    +} catch (error) {
    +  // Handle error appropriately
    +  console.error('Failed to check authority over project', error);
    +}
     
    Add error handling for the getDefaultEnvironmentOfProject call to manage potential failures gracefully.

    To avoid potential issues with unhandled promise rejections, consider adding error
    handling for the getDefaultEnvironmentOfProject call. This function is likely to interact
    with external systems or databases, which might fail.

    apps/api/src/secret/service/secret.service.ts [87]

    -environment = await getDefaultEnvironmentOfProject(projectId, this.prisma)
    +try {
    +  environment = await getDefaultEnvironmentOfProject(projectId, this.prisma);
    +} catch (error) {
    +  console.error('Failed to get default environment:', error);
    +  // Handle error appropriately
    +}
     
    Make the authorityCheckerService property immutable by adding the readonly modifier.

    Consider using TypeScript's readonly modifier for authorityCheckerService to prevent
    reassignment and ensure the service's immutability within the class.

    apps/api/src/environment/service/environment.service.ts [31]

    -public authorityCheckerService: AuthorityCheckerService
    +public readonly authorityCheckerService: AuthorityCheckerService
     
    Enhance encapsulation by changing the authorityCheckerService access modifier to private.

    To ensure encapsulation and data integrity, change the access modifier of
    authorityCheckerService from public to private since it does not seem to be used outside
    of this class.

    apps/api/src/socket/change-notifier.socket.ts [54]

    -public authorityCheckerService: AuthorityCheckerService
    +private authorityCheckerService: AuthorityCheckerService
     
    Improve class encapsulation by setting authorityCheckerService to private.

    It's a good practice to ensure that all injected services in a constructor are either
    private or protected unless they need to be exposed, which enhances encapsulation. Change
    authorityCheckerService to private.

    apps/api/src/workspace-role/service/workspace-role.service.ts [32]

    -public authorityCheckerService: AuthorityCheckerService
    +private authorityCheckerService: AuthorityCheckerService
     
    Ensure the immutability of authorityCheckerService by using the readonly modifier.

    To maintain consistency and ensure that services are not reassigned after their initial
    assignment, add the readonly modifier to authorityCheckerService.

    apps/api/src/event/service/event.service.ts [10]

    -public authorityCheckerService: AuthorityCheckerService
    +public readonly authorityCheckerService: AuthorityCheckerService
     
    Change authorityCheckerService to private to enhance data encapsulation.

    For better encapsulation and to prevent external modifications, consider changing
    authorityCheckerService from public to private since it does not appear to be used outside
    of this class.

    apps/api/src/approval/service/approval.service.ts [47]

    -public authorityCheckerService: AuthorityCheckerService
    +private authorityCheckerService: AuthorityCheckerService
     
    Mock the AuthorityCheckerService in the test setup to ensure isolation and reliability of the tests.

    Ensure that the AuthorityCheckerService is mocked in the testing module to prevent actual
    authority checks during testing, which can lead to unpredictable test outcomes and
    dependencies on external factors.

    apps/api/src/environment/controller/environment.controller.spec.ts [14]

    -providers: [EnvironmentService, PrismaService, AuthorityCheckerService]
    +providers: [EnvironmentService, PrismaService, { provide: AuthorityCheckerService, useValue: mockDeep<AuthorityCheckerService>() }]
     

    ✨ Improve tool usage guide:

    Overview:
    The improve tool scans the PR code changes, and automatically generates suggestions for improving the PR code. The tool can be triggered automatically every time a new PR is opened, or can be invoked manually by commenting on a PR.

    • When commenting, to edit configurations related to the improve tool (pr_code_suggestions section), use the following template:
    /improve --pr_code_suggestions.some_config1=... --pr_code_suggestions.some_config2=...
    
    [pr_code_suggestions]
    some_config1=...
    some_config2=...
    

    See the improve usage page for a comprehensive guide on using this tool.

    @rajdip-b
    Copy link
    Member

    I'll review this as soon as I can!

    @szabodaniel995 szabodaniel995 changed the title 180 - refactor authority check functions in api refactor: 180 - refactor authority check functions in api Apr 21, 2024
    @rajdip-b rajdip-b changed the title refactor: 180 - refactor authority check functions in api chore(API): Refactor authority check functions in API Apr 21, 2024
    Copy link
    Member

    @rajdip-b rajdip-b left a comment

    Choose a reason for hiding this comment

    The reason will be displayed to describe this comment to others. Learn more.

    Went through the PR, had a few suggestions that I have listed on the lines itself. Had a few general suggestions which I'm listing in here.

    • I feel we should use the existing file-based approach rather than class. This is because the code is maintainable that way.
    • We will need to add the members check that to each and every entity - secret, variable, environment, project and workspace. Mentioned the details in the review.
    • For entities like secret, variable, environment and project that do not have a members attribute, we will need to drill into the parent. Eg: secret will have secret.environment.project.workspace.

    @szabodaniel995
    Copy link
    Contributor Author

    Went through the PR, had a few suggestions that I have listed on the lines itself. Had a few general suggestions which I'm listing in here.

    • I feel we should use the existing file-based approach rather than class. This is because the code is maintainable that way.
    • We will need to add the members check that to each and every entity - secret, variable, environment, project and workspace. Mentioned the details in the review.
    • For entities like secret, variable, environment and project that do not have a members attribute, we will need to drill into the parent. Eg: secret will have secret.environment.project.workspace.

    Thank you for the review

    • Resolved most
    • See my comment on your last suggestion

    I'm not sure the existing tests cover example cases for the results of these queries. It might be a good idea to write some e2e tests simulating real business use cases

    Copy link
    Member

    @rajdip-b rajdip-b left a comment

    Choose a reason for hiding this comment

    The reason will be displayed to describe this comment to others. Learn more.

    Agreed on your suggestions. We do need to add a few tests to cover these scenarios. But there are two blockers:

    • Our test suites need to be refactored a bit.
    • It falls out of the scope of this PR.

    I will be happy to open up another issue in case you feel like fixing it. But that might take some time since I need to refactor the tests.

    And, you will still need to make a few updates to the code!

    • you can move the custom logger that you implemented into the common module.
    • if not already present, add a @ Global() to the common module to export it's providers globally
    • Remove all provider imports(if any) that you have made for authority checker and logger.
    • Add readonly to all occurrences of private authorityCheckerservice

    @szabodaniel995
    Copy link
    Contributor Author

    Agreed on your suggestions. We do need to add a few tests to cover these scenarios. But there are two blockers:

    • Our test suites need to be refactored a bit.
    • It falls out of the scope of this PR.

    I will be happy to open up another issue in case you feel like fixing it. But that might take some time since I need to refactor the tests.

    And, you will still need to make a few updates to the code!

    • you can move the custom logger that you implemented into the common module.
    • if not already present, add a @ Global() to the common module to export it's providers globally
    • Remove all provider imports(if any) that you have made for authority checker and logger.
    • Add readonly to all occurrences of private authorityCheckerservice

    Updated the code.

    Thank you for the opportunity, but I believe that these tests should be created by a person with good insight into the business logic and in possession of some real use cases.

    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 rajdip-b merged commit e9d710d into keyshade-xyz:develop Apr 22, 2024
    5 checks passed
    @rajdip-b
    Copy link
    Member

    Thanks for working on this man! Much appreciated.

    @szabodaniel995
    Copy link
    Contributor Author

    Thanks for working on this man! Much appreciated.

    Glad to have helped.

    Thank you :-)

    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

    🎉 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
    type: enhancement New feature or request
    Projects
    None yet
    Development

    Successfully merging this pull request may close these issues.

    Refactor authority check functions in API
    2 participants