ctrl-space-labs / gendox-core

Gendox: "Generate. Train. Evolve."
GNU Affero General Public License v3.0
5 stars 0 forks source link

Add organization settings section #332

Open sekasx opened 1 month ago

sekasx commented 1 month ago

Description

Organizations should have a settings sections. In this sections a user will be able to setup:

  1. LLM provider API keys (DB table organization_model_provider_keys). 1.1. In this section the user will be able to select the ai_model_providers and fill in a field with the API Key for this provider. e.g. OpenAI Key -> sk-pr***

    1.2. The user will be able to view what keys they have setup, and they will be able to update them.

    1.3. The Actual API Key will never be returned from the Backend as plain text. Only the first 5 characters will be returned from the backend, like sk-pr******

  2. Organization API Key. Here users will be able to create an API key for Gendox. With this key, API called can be performed to gendox without an actual JWT token. Administrators must keep this key secret. At this first stage, specific Gendox APIs will support the API key, like WP plugin-related APIs. 2.1. Users will be able to create multiple keys. Similar to Github tokens, it has a name and a generated value. 2.2. Users will be able to create new keys, or delete old ones 2.3. Users will be able to view/copy the key, only upon creation. Uses SHA256 or Bcrypt to store the actual key 2.4. Users will NOT be able to view already created keys

  3. Organization website address. The website addresses that the organization owns. This indicates also what are the trusted websites for this organization. Only the websites that are in this list will be able to include the Gendox Widget as an iframe. e.g. if this contains https://ctrlspace.dev and https://gendox.dev, the widget will work only to those 2 websites 3.1. The user can add/remove websites from the list 3.2 The user have a limit on how many websites can add. This is calculated by the Active Plan.no_of_websites * number of seats 3.3. When a user adds a website a validation is applied that the input is actually a website. Starts with http:// or https:// have atleast 1 leter, then . the at least 2 more letters