e135b29433 Feature/Add Permissions To API Keys (#5590)
* feat(database.util.ts): add function to check if column exists in table

* feat(migrations): add permission column to apikey table

* chore(services/apikey): remove auto-create default API key

* chore: remove auto-create default API key

* fix(migrations): rename permission to permissions in apikey table

* feat(services/apikey): add permissions to create and update

* feat(views/apikey): add permissions to create and update

* feat(api): use API key permissions instead of role permissions

* feat(permissions): filter by user.permissions except for ROLE type

* feat(services/apikey): filter keys by user permissions in getAllApiKeys

* feat(services/apikey): limit API key permissions to user permissions during creation/update

* fix(database.util.ts): replace non-null assertion with explicit error handling

* feat(services/apikey): log errors for malformed API key permissions

* refactor(services/apikey): extract permission validation

* feat(permission): enhance permission filtering based on user features and platform type

* chore(migrations): lower API key permission value

* Update packages/ui/src/views/apikey/APIKeyDialog.jsx

Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>

* Update packages/ui/src/views/apikey/APIKeyDialog.jsx

Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>

* refactor: remove deprecated APIKEY_PATH and APIKEY migration

* refactor(apikey): remove functionality related to import apikey

* feat(permission): filter out workspace and admin categories for non-ROLE

* feat(services/apikey): validate API key permissions during create and update

* chore(migrations): clean up role permissions values

* fix(migrations): handle corrupted permissions gracefully

* fix(server/src/index.ts): add error handling for API key permissions parsing

* fix(APIKeyDialog.jsx): handle corrupted permissions when editing API key

* fix(views/apikey/index.jsx): handle corrupted permissions in API key list

* fix(services/apikey): validate permissions JSON in API key operations

* Potential fix for code scanning alert no. 83: Clear-text logging of sensitive information

Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>

* feat(migrations): change ApiKey.permissions column from TEXT to JSON

* Update packages/server/src/services/apikey/index.ts

Co-authored-by: Jocelyn Lin <[email protected]>

* feat(PricingDialog.jsx): handle downgrade with excessive apikey permissions

* feat(controllers\apikey): enforce permissions validation

* chore(services/apikey): remove redundant null checks

* fix(services/dataset): throw error when dataset not found before fetching rows

---------

Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
Co-authored-by: Jocelyn Lin <[email protected]>
2026-01-16 12:21:48 +08:00
2023-04-06 22:17:34 +01:00
2025-05-10 10:21:26 +08:00
2023-04-06 22:17:34 +01:00
2025-11-15 18:09:31 +00:00
2025-05-27 07:29:42 +01:00
2025-12-05 13:23:12 +00:00
2025-11-26 15:59:30 +00:00
2025-11-26 15:59:30 +00:00

Build AI Agents, Visually

📚 Table of Contents

⚡Quick Start

Download and Install NodeJS >= 18.15.0

  1. Install Flowise

    npm install -g flowise
    
  2. Start Flowise

    npx flowise start
    
  3. Open http://localhost:3000

🐳 Docker

Docker Compose

  1. Clone the Flowise project
  2. Go to docker folder at the root of the project
  3. Copy .env.example file, paste it into the same location, and rename to .env file
  4. docker compose up -d
  5. Open http://localhost:3000
  6. You can bring the containers down by docker compose stop

Docker Image

  1. Build the image locally:

    docker build --no-cache -t flowise .
    
  2. Run image:

    docker run -d --name flowise -p 3000:3000 flowise
    
  3. Stop image:

    docker stop flowise
    

👨‍💻 Developers

Flowise has 3 different modules in a single mono repository.

  • server: Node backend to serve API logics
  • ui: React frontend
  • components: Third-party nodes integrations
  • api-documentation: Auto-generated swagger-ui API docs from express

Prerequisite

  • Install PNPM
    npm i -g pnpm
    

Setup

  1. Clone the repository:

    git clone https://github.com/FlowiseAI/Flowise.git
    
  2. Go into repository folder:

    cd Flowise
    
  3. Install all dependencies of all modules:

    pnpm install
    
  4. Build all the code:

    pnpm build
    
    Exit code 134 (JavaScript heap out of memory) If you get this error when running the above `build` script, try increasing the Node.js heap size and run the script again:
    # macOS / Linux / Git Bash
    export NODE_OPTIONS="--max-old-space-size=4096"
    
    # Windows PowerShell
    $env:NODE_OPTIONS="--max-old-space-size=4096"
    
    # Windows CMD
    set NODE_OPTIONS=--max-old-space-size=4096
    

    Then run:

    pnpm build
    
  5. Start the app:

    pnpm start
    

    You can now access the app on http://localhost:3000

  6. For development build:

    • Create .env file and specify the VITE_PORT (refer to .env.example) in packages/ui

    • Create .env file and specify the PORT (refer to .env.example) in packages/server

    • Run:

      pnpm dev
      

    Any code changes will reload the app automatically on http://localhost:8080

🌱 Env Variables

Flowise supports different environment variables to configure your instance. You can specify the following variables in the .env file inside packages/server folder. Read more

📖 Documentation

You can view the Flowise Docs here

🌐 Self Host

Deploy Flowise self-hosted in your existing infrastructure, we support various deployments

☁️ Flowise Cloud

Get Started with Flowise Cloud.

🙋 Support

Feel free to ask any questions, raise problems, and request new features in Discussion.

🙌 Contributing

Thanks go to these awesome contributors



See Contributing Guide. Reach out to us at Discord if you have any questions or issues.

Star History Chart

📄 License

Source code in this repository is made available under the Apache License Version 2.0.

Languages
TypeScript 61.8%
JavaScript 27.2%
HTML 5.6%
Handlebars 5.1%
CSS 0.2%