diff --git a/docs/docs.json b/docs/docs.json index 4f9a0ee0a..fe76dde16 100644 --- a/docs/docs.json +++ b/docs/docs.json @@ -282,6 +282,7 @@ { "group": "Features", "pages": [ + "en/enterprise/features/rbac", "en/enterprise/features/tool-repository", "en/enterprise/features/webhook-streaming", "en/enterprise/features/traces", @@ -345,7 +346,7 @@ }, { "group": "Endpoints", - "openapi": "enterprise-api.yaml" + "openapi": "enterprise-api.en.yaml" } ] }, @@ -354,7 +355,7 @@ "groups": [ { "group": "Examples", - "pages": ["en/examples/example"] + "pages": ["en/examples/example", "en/examples/cookbooks"] } ] } @@ -684,7 +685,7 @@ }, { "group": "Endpoints", - "openapi": "enterprise-api.yaml" + "openapi": "enterprise-api.pt-BR.yaml" } ] }, @@ -1030,7 +1031,7 @@ }, { "group": "Endpoints", - "openapi": "enterprise-api.yaml" + "openapi": "enterprise-api.ko.yaml" } ] }, diff --git a/docs/en/enterprise/features/rbac.mdx b/docs/en/enterprise/features/rbac.mdx new file mode 100644 index 000000000..52ff41e5a --- /dev/null +++ b/docs/en/enterprise/features/rbac.mdx @@ -0,0 +1,103 @@ +--- +title: "Role-Based Access Control (RBAC)" +description: "Control access to crews, tools, and data with roles, scopes, and granular permissions." +icon: "shield" +--- + +## Overview + +RBAC in CrewAI Enterprise enables secure, scalable access management through a combination of organization‑level roles and automation‑level visibility controls. + + + RBAC overview in CrewAI Enterprise + + + +## Users and Roles + +Each member in your CrewAI workspace is assigned a role, which determines their access across various features. + +You can: + +- Use predefined roles (Owner, Member) +- Create custom roles tailored to specific permissions +- Assign roles at any time through the settings panel + +You can configure users and roles in Settings → Roles. + + + + Go to Settings → Roles in CrewAI Enterprise. + + + Use a predefined role (Owner, Member) or click Create role to define a custom one. + + + Select users and assign the role. You can change this anytime. + + + +### Configuration summary + +| Area | Where to configure | Options | +|:---|:---|:---| +| Users & Roles | Settings → Roles | Predefined: Owner, Member; Custom roles | +| Automation visibility | Automation → Settings → Visibility | Private; Whitelist users/roles | + +## Automation‑level Access Control + +In addition to organization‑wide roles, CrewAI Automations support fine‑grained visibility settings that let you restrict access to specific automations by user or role. + +This is useful for: + +- Keeping sensitive or experimental automations private +- Managing visibility across large teams or external collaborators +- Testing automations in isolated contexts + +Deployments can be configured as private, meaning only whitelisted users and roles will be able to: + +- View the deployment +- Run it or interact with its API +- Access its logs, metrics, and settings + +The organization owner always has access, regardless of visibility settings. + +You can configure automation‑level access control in Automation → Settings → Visibility tab. + + + + Navigate to Automation → Settings → Visibility. + + + Choose Private to restrict access. The organization owner always retains access. + + + Add specific users and roles allowed to view, run, and access logs/metrics/settings. + + + Save changes, then confirm that non‑whitelisted users cannot view or run the automation. + + + +### Private visibility: access outcomes + +| Action | Owner | Whitelisted user/role | Not whitelisted | +|:---|:---|:---|:---| +| View automation | ✓ | ✓ | ✗ | +| Run automation/API | ✓ | ✓ | ✗ | +| Access logs/metrics/settings | ✓ | ✓ | ✗ | + + +The organization owner always has access. In private mode, only whitelisted users and roles can view, run, and access logs/metrics/settings. + + + + Automation Visibility settings in CrewAI Enterprise + + + + + Contact our support team for assistance with RBAC questions. + + + diff --git a/docs/en/examples/cookbooks.mdx b/docs/en/examples/cookbooks.mdx new file mode 100644 index 000000000..b19ad7eb9 --- /dev/null +++ b/docs/en/examples/cookbooks.mdx @@ -0,0 +1,22 @@ +--- +title: CrewAI Cookbooks +description: Feature-focused quickstarts and notebooks for learning patterns fast. +icon: book +--- + +## Quickstarts & Demos + + + + Interactive notebooks for hands-on exploration. + + + Feature demos and small projects showcasing specific CrewAI capabilities. + + + + +Use Cookbooks to learn a pattern quickly, then jump to Full Examples for production‑grade implementations. + + + diff --git a/docs/en/examples/example.mdx b/docs/en/examples/example.mdx index f92da4a2c..cfd4535d4 100644 --- a/docs/en/examples/example.mdx +++ b/docs/en/examples/example.mdx @@ -1,62 +1,85 @@ --- title: CrewAI Examples -description: A collection of examples that show how to use CrewAI framework to automate workflows. +description: Explore curated examples organized by Crews, Flows, Integrations, and Notebooks. icon: rocket-launch --- +## Crews + - - Automate marketing strategy creation with CrewAI. + + Multi‑agent marketing campaign planning. + + + Personalized surprise travel planning. + + + CV‑to‑job matching with vector search. + + + Automated job description creation. + + + Multi‑agent team that designs and builds Python games. + + + Candidate sourcing and evaluation. + + + See the full list of crew examples. + + + +## Flows + + + + Multi‑crew content generation with routing. + + + Automated email monitoring and replies. + + + Lead qualification with human‑in‑the‑loop. + + + Notes processing with integrations. + + + Iterative self‑improvement workflows. + + + Parallel chapter generation. + + + See the full list of flow examples. + + + +## Integrations + + + + Integration with LangGraph framework. + + + Using CrewAI with Azure OpenAI. + + + NVIDIA ecosystem integrations. + + + See all integration examples. + + + +## Notebooks + + + + Simple QA Crew + Flow. + + + Interactive examples for learning and experimentation. - - Create a surprise trip itinerary with CrewAI. - - - Match a profile to jobpositions with CrewAI. - - - Create a job posting with CrewAI. - - - Create a game with CrewAI. - - - Find job candidates with CrewAI. - diff --git a/docs/enterprise-api.yaml b/docs/enterprise-api.base.yaml similarity index 100% rename from docs/enterprise-api.yaml rename to docs/enterprise-api.base.yaml diff --git a/docs/enterprise-api.en.yaml b/docs/enterprise-api.en.yaml new file mode 100644 index 000000000..645601eae --- /dev/null +++ b/docs/enterprise-api.en.yaml @@ -0,0 +1,435 @@ +openapi: 3.0.3 +info: + title: CrewAI Enterprise API + description: | + REST API for interacting with your deployed CrewAI crews on CrewAI Enterprise. + + ## Getting Started + + 1. **Find your crew URL**: Get your unique crew URL from the CrewAI Enterprise dashboard + 2. **Copy examples**: Use the code examples from each endpoint page as templates + 3. **Replace placeholders**: Update URLs and tokens with your actual values + 4. **Test with your tools**: Use cURL, Postman, or your preferred API client + + ## Authentication + + All API requests require a bearer token for authentication. There are two types of tokens: + + - **Bearer Token**: Organization-level token for full crew operations + - **User Bearer Token**: User-scoped token for individual access with limited permissions + + You can find your bearer tokens in the Status tab of your crew's detail page in the CrewAI Enterprise dashboard. + + ## Reference Documentation + + This documentation provides comprehensive examples for each endpoint: + + - **Request formats** with all required and optional parameters + - **Response examples** for success and error scenarios + - **Code samples** in multiple programming languages + - **Authentication patterns** with proper Bearer token usage + + Copy the examples and customize them with your actual crew URL and authentication tokens. + + ## Workflow + + 1. **Discover inputs** using `GET /inputs` + 2. **Start execution** using `POST /kickoff` + 3. **Monitor progress** using `GET /status/{kickoff_id}` + version: 1.0.0 + contact: + name: CrewAI Support + email: support@crewai.com + url: https://crewai.com +servers: + - url: https://your-actual-crew-name.crewai.com + description: Replace with your actual deployed crew URL from the CrewAI Enterprise dashboard + - url: https://my-travel-crew.crewai.com + description: Example travel planning crew (replace with your URL) + - url: https://content-creation-crew.crewai.com + description: Example content creation crew (replace with your URL) + - url: https://research-assistant-crew.crewai.com + description: Example research assistant crew (replace with your URL) +security: + - BearerAuth: [] +paths: + /inputs: + get: + summary: Get Required Inputs + description: | + **📋 Reference Example Only** - *This shows the request format. To test with your actual crew, copy the cURL example and replace the URL + token with your real values.* + + Retrieves the list of all required input parameters that your crew expects for execution. + Use this endpoint to discover what inputs you need to provide when starting a crew execution. + operationId: getRequiredInputs + responses: + '200': + description: Successfully retrieved required inputs + content: + application/json: + schema: + type: object + properties: + inputs: + type: array + items: + type: string + description: Array of required input parameter names + example: ["budget", "interests", "duration", "age"] + examples: + travel_crew: + summary: Travel planning crew inputs + value: + inputs: ["budget", "interests", "duration", "age"] + outreach_crew: + summary: Outreach crew inputs + value: + inputs: ["name", "title", "company", "industry", "our_product", "linkedin_url"] + '401': + $ref: '#/components/responses/UnauthorizedError' + '404': + $ref: '#/components/responses/NotFoundError' + '500': + $ref: '#/components/responses/ServerError' + + /kickoff: + post: + summary: Start Crew Execution + description: | + **📋 Reference Example Only** - *This shows the request format. To test with your actual crew, copy the cURL example and replace the URL + token with your real values.* + + Initiates a new crew execution with the provided inputs. Returns a kickoff ID that can be used + to track the execution progress and retrieve results. + + Crew executions can take anywhere from seconds to minutes depending on their complexity. + Consider using webhooks for real-time notifications or implement polling with the status endpoint. + operationId: startCrewExecution + requestBody: + required: true + content: + application/json: + schema: + type: object + required: + - inputs + properties: + inputs: + type: object + description: Key-value pairs of all required inputs for your crew + additionalProperties: + type: string + example: + budget: "1000 USD" + interests: "games, tech, ai, relaxing hikes, amazing food" + duration: "7 days" + age: "35" + meta: + type: object + description: Additional metadata to pass to the crew + additionalProperties: true + example: + requestId: "user-request-12345" + source: "mobile-app" + taskWebhookUrl: + type: string + format: uri + description: Callback URL executed after each task completion + example: "https://your-server.com/webhooks/task" + stepWebhookUrl: + type: string + format: uri + description: Callback URL executed after each agent thought/action + example: "https://your-server.com/webhooks/step" + crewWebhookUrl: + type: string + format: uri + description: Callback URL executed when the crew execution completes + example: "https://your-server.com/webhooks/crew" + examples: + travel_planning: + summary: Travel planning crew + value: + inputs: + budget: "1000 USD" + interests: "games, tech, ai, relaxing hikes, amazing food" + duration: "7 days" + age: "35" + meta: + requestId: "travel-req-123" + source: "web-app" + outreach_campaign: + summary: Outreach crew with webhooks + value: + inputs: + name: "John Smith" + title: "CTO" + company: "TechCorp" + industry: "Software" + our_product: "AI Development Platform" + linkedin_url: "https://linkedin.com/in/johnsmith" + taskWebhookUrl: "https://api.example.com/webhooks/task" + crewWebhookUrl: "https://api.example.com/webhooks/crew" + responses: + '200': + description: Crew execution started successfully + content: + application/json: + schema: + type: object + properties: + kickoff_id: + type: string + format: uuid + description: Unique identifier for tracking this execution + example: "abcd1234-5678-90ef-ghij-klmnopqrstuv" + '400': + description: Invalid request body or missing required inputs + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '401': + $ref: '#/components/responses/UnauthorizedError' + '422': + description: Validation error - ensure all required inputs are provided + content: + application/json: + schema: + $ref: '#/components/schemas/ValidationError' + '500': + $ref: '#/components/responses/ServerError' + + /status/{kickoff_id}: + get: + summary: Get Execution Status + description: | + **📋 Reference Example Only** - *This shows the request format. To test with your actual crew, copy the cURL example and replace the URL + token with your real values.* + + Retrieves the current status and results of a crew execution using its kickoff ID. + + The response structure varies depending on the execution state: + - **running**: Execution in progress with current task info + - **completed**: Execution finished with full results + - **error**: Execution failed with error details + operationId: getExecutionStatus + parameters: + - name: kickoff_id + in: path + required: true + description: The kickoff ID returned from the /kickoff endpoint + schema: + type: string + format: uuid + example: "abcd1234-5678-90ef-ghij-klmnopqrstuv" + responses: + '200': + description: Successfully retrieved execution status + content: + application/json: + schema: + oneOf: + - $ref: '#/components/schemas/ExecutionRunning' + - $ref: '#/components/schemas/ExecutionCompleted' + - $ref: '#/components/schemas/ExecutionError' + examples: + running: + summary: Execution in progress + value: + status: "running" + current_task: "research_task" + progress: + completed_tasks: 1 + total_tasks: 3 + completed: + summary: Execution completed successfully + value: + status: "completed" + result: + output: "Comprehensive travel itinerary for 7 days in Japan focusing on tech culture..." + tasks: + - task_id: "research_task" + output: "Research findings on tech destinations in Japan..." + agent: "Travel Researcher" + execution_time: 45.2 + - task_id: "planning_task" + output: "7-day detailed itinerary with activities and recommendations..." + agent: "Trip Planner" + execution_time: 62.8 + execution_time: 108.5 + error: + summary: Execution failed + value: + status: "error" + error: "Task execution failed: Invalid API key for external service" + execution_time: 23.1 + '401': + $ref: '#/components/responses/UnauthorizedError' + '404': + description: Kickoff ID not found + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + example: + error: "Execution not found" + message: "No execution found with ID: abcd1234-5678-90ef-ghij-klmnopqrstuv" + '500': + $ref: '#/components/responses/ServerError' + +components: + securitySchemes: + BearerAuth: + type: http + scheme: bearer + description: | + **📋 Reference Documentation** - *The tokens shown in examples are placeholders for reference only.* + + Use your actual Bearer Token or User Bearer Token from the CrewAI Enterprise dashboard for real API calls. + + **Bearer Token**: Organization-level access for full crew operations + **User Bearer Token**: User-scoped access with limited permissions + + schemas: + ExecutionRunning: + type: object + properties: + status: + type: string + enum: ["running"] + example: "running" + current_task: + type: string + description: Name of the currently executing task + example: "research_task" + progress: + type: object + properties: + completed_tasks: + type: integer + description: Number of completed tasks + example: 1 + total_tasks: + type: integer + description: Total number of tasks in the crew + example: 3 + + ExecutionCompleted: + type: object + properties: + status: + type: string + enum: ["completed"] + example: "completed" + result: + type: object + properties: + output: + type: string + description: Final output from the crew execution + example: "Comprehensive travel itinerary..." + tasks: + type: array + items: + $ref: '#/components/schemas/TaskResult' + execution_time: + type: number + description: Total execution time in seconds + example: 108.5 + + ExecutionError: + type: object + properties: + status: + type: string + enum: ["error"] + example: "error" + error: + type: string + description: Error message describing what went wrong + example: "Task execution failed: Invalid API key" + execution_time: + type: number + description: Time until error occurred in seconds + example: 23.1 + + TaskResult: + type: object + properties: + task_id: + type: string + description: Unique identifier for the task + example: "research_task" + output: + type: string + description: Output generated by this task + example: "Research findings..." + agent: + type: string + description: Name of the agent that executed this task + example: "Travel Researcher" + execution_time: + type: number + description: Time taken to execute this task in seconds + example: 45.2 + + Error: + type: object + properties: + error: + type: string + description: Error type or title + example: "Authentication Error" + message: + type: string + description: Detailed error message + example: "Invalid bearer token provided" + + ValidationError: + type: object + properties: + error: + type: string + example: "Validation Error" + message: + type: string + example: "Missing required inputs" + details: + type: object + properties: + missing_inputs: + type: array + items: + type: string + example: ["budget", "interests"] + + responses: + UnauthorizedError: + description: Authentication failed - check your bearer token + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + example: + error: "Unauthorized" + message: "Invalid or missing bearer token" + + NotFoundError: + description: Resource not found + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + example: + error: "Not Found" + message: "The requested resource was not found" + + ServerError: + description: Internal server error + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + example: + error: "Internal Server Error" + message: "An unexpected error occurred" + diff --git a/docs/enterprise-api.ko.yaml b/docs/enterprise-api.ko.yaml new file mode 100644 index 000000000..da0b6c23f --- /dev/null +++ b/docs/enterprise-api.ko.yaml @@ -0,0 +1,231 @@ +openapi: 3.0.3 +info: + title: CrewAI 엔터프라이즈 API + description: | + CrewAI Enterprise에 배포된 crew와 상호작용하기 위한 REST API입니다. + + ## 시작하기 + 1. **Crew URL 확인**: 대시보드에서 고유한 crew URL을 확인하세요 + 2. **예제 복사**: 각 엔드포인트의 예제를 템플릿으로 사용하세요 + 3. **플레이스홀더 교체**: 실제 URL과 토큰으로 바꾸세요 + 4. **도구로 테스트**: cURL, Postman 등 선호하는 도구로 테스트하세요 + version: 1.0.0 + contact: + name: CrewAI 지원 + email: support@crewai.com + url: https://crewai.com +servers: + - url: https://your-actual-crew-name.crewai.com + description: 대시보드의 실제 crew URL로 교체하세요 +security: + - BearerAuth: [] +paths: + /inputs: + get: + summary: 필요 입력값 조회 + description: | + **📋 참조 예제만 제공** - *요청 형식을 보여줍니다. 실제 호출은 cURL 예제를 복사해 URL과 토큰을 교체하세요.* + + 실행에 필요한 입력 파라미터 목록을 반환합니다. + operationId: getRequiredInputs + responses: + '200': + description: 입력값을 성공적으로 조회 + content: + application/json: + schema: + type: object + properties: + inputs: + type: array + items: + type: string + '401': + $ref: '#/components/responses/UnauthorizedError' + '404': + $ref: '#/components/responses/NotFoundError' + '500': + $ref: '#/components/responses/ServerError' + + /kickoff: + post: + summary: Crew 실행 시작 + description: | + **📋 참조 예제만 제공** - *요청 형식을 보여줍니다. 실제 호출은 cURL 예제를 복사해 URL과 토큰을 교체하세요.* + + 제공된 입력으로 새로운 실행을 시작하고 kickoff ID를 반환합니다. + operationId: startCrewExecution + requestBody: + required: true + content: + application/json: + schema: + type: object + required: + - inputs + properties: + inputs: + type: object + additionalProperties: + type: string + responses: + '200': + description: 실행이 성공적으로 시작됨 + content: + application/json: + schema: + type: object + properties: + kickoff_id: + type: string + format: uuid + '401': + $ref: '#/components/responses/UnauthorizedError' + '500': + $ref: '#/components/responses/ServerError' + + /status/{kickoff_id}: + get: + summary: 실행 상태 조회 + description: | + **📋 참조 예제만 제공** - *요청 형식을 보여줍니다. 실제 호출은 cURL 예제를 복사해 URL과 토큰을 교체하세요.* + + kickoff ID로 실행 상태와 결과를 조회합니다. + operationId: getExecutionStatus + parameters: + - name: kickoff_id + in: path + required: true + schema: + type: string + format: uuid + responses: + '200': + description: 상태를 성공적으로 조회 + content: + application/json: + schema: + oneOf: + - $ref: '#/components/schemas/ExecutionRunning' + - $ref: '#/components/schemas/ExecutionCompleted' + - $ref: '#/components/schemas/ExecutionError' + '401': + $ref: '#/components/responses/UnauthorizedError' + '404': + description: Kickoff ID를 찾을 수 없음 + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + $ref: '#/components/responses/ServerError' + +components: + securitySchemes: + BearerAuth: + type: http + scheme: bearer + description: | + **📋 참고** - *예시의 토큰은 자리 표시자입니다.* 실제 토큰을 사용하세요. + + schemas: + ExecutionRunning: + type: object + properties: + status: + type: string + enum: ["running"] + current_task: + type: string + progress: + type: object + properties: + completed_tasks: + type: integer + total_tasks: + type: integer + + ExecutionCompleted: + type: object + properties: + status: + type: string + enum: ["completed"] + result: + type: object + properties: + output: + type: string + tasks: + type: array + items: + $ref: '#/components/schemas/TaskResult' + execution_time: + type: number + + ExecutionError: + type: object + properties: + status: + type: string + enum: ["error"] + error: + type: string + execution_time: + type: number + + TaskResult: + type: object + properties: + task_id: + type: string + output: + type: string + agent: + type: string + execution_time: + type: number + + Error: + type: object + properties: + error: + type: string + message: + type: string + + ValidationError: + type: object + properties: + error: + type: string + message: + type: string + details: + type: object + properties: + missing_inputs: + type: array + items: + type: string + + responses: + UnauthorizedError: + description: 인증 실패 + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + NotFoundError: + description: 리소스를 찾을 수 없음 + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + ServerError: + description: 서버 내부 오류 + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + diff --git a/docs/enterprise-api.pt-BR.yaml b/docs/enterprise-api.pt-BR.yaml new file mode 100644 index 000000000..77c9e4644 --- /dev/null +++ b/docs/enterprise-api.pt-BR.yaml @@ -0,0 +1,268 @@ +openapi: 3.0.3 +info: + title: CrewAI Enterprise API + description: | + REST API para interagir com suas crews implantadas no CrewAI Enterprise. + + ## Introdução + + 1. **Encontre a URL da sua crew**: Obtenha sua URL única no painel do CrewAI Enterprise + 2. **Copie os exemplos**: Use os exemplos de cada endpoint como modelo + 3. **Substitua os placeholders**: Atualize URLs e tokens com seus valores reais + 4. **Teste com suas ferramentas**: Use cURL, Postman ou seu cliente preferido + + ## Autenticação + + Todas as requisições exigem um token bearer. Existem dois tipos: + + - **Bearer Token**: Token em nível de organização para operações completas + - **User Bearer Token**: Token com escopo de usuário com permissões limitadas + + Você encontra os tokens na aba Status da sua crew no painel do CrewAI Enterprise. + + ## Documentação de Referência + + Este documento fornece exemplos completos para cada endpoint: + + - **Formatos de requisição** com parâmetros obrigatórios e opcionais + - **Exemplos de resposta** para sucesso e erro + - **Amostras de código** em várias linguagens + - **Padrões de autenticação** com uso correto de Bearer token + + Copie os exemplos e personalize com sua URL e tokens reais. + + ## Fluxo + + 1. **Descubra os inputs** usando `GET /inputs` + 2. **Inicie a execução** usando `POST /kickoff` + 3. **Monitore o progresso** usando `GET /status/{kickoff_id}` + version: 1.0.0 + contact: + name: CrewAI Suporte + email: support@crewai.com + url: https://crewai.com +servers: + - url: https://your-actual-crew-name.crewai.com + description: Substitua pela URL real da sua crew no painel do CrewAI Enterprise +security: + - BearerAuth: [] +paths: + /inputs: + get: + summary: Obter Inputs Requeridos + description: | + **📋 Exemplo de Referência** - *Mostra o formato da requisição. Para testar com sua crew real, copie o cURL e substitua URL + token.* + + Retorna a lista de parâmetros de entrada que sua crew espera. + operationId: getRequiredInputs + responses: + '200': + description: Inputs requeridos obtidos com sucesso + content: + application/json: + schema: + type: object + properties: + inputs: + type: array + items: + type: string + description: Nomes dos parâmetros de entrada + example: ["budget", "interests", "duration", "age"] + '401': + $ref: '#/components/responses/UnauthorizedError' + '404': + $ref: '#/components/responses/NotFoundError' + '500': + $ref: '#/components/responses/ServerError' + + /kickoff: + post: + summary: Iniciar Execução da Crew + description: | + **📋 Exemplo de Referência** - *Mostra o formato da requisição. Para testar com sua crew real, copie o cURL e substitua URL + token.* + + Inicia uma nova execução da crew com os inputs fornecidos e retorna um kickoff ID. + operationId: startCrewExecution + requestBody: + required: true + content: + application/json: + schema: + type: object + required: + - inputs + properties: + inputs: + type: object + additionalProperties: + type: string + example: + budget: "1000 USD" + interests: "games, tech, ai, relaxing hikes, amazing food" + duration: "7 days" + age: "35" + + responses: + '200': + description: Execução iniciada com sucesso + content: + application/json: + schema: + type: object + properties: + kickoff_id: + type: string + format: uuid + example: "abcd1234-5678-90ef-ghij-klmnopqrstuv" + '401': + $ref: '#/components/responses/UnauthorizedError' + '500': + $ref: '#/components/responses/ServerError' + + /status/{kickoff_id}: + get: + summary: Obter Status da Execução + description: | + **📋 Exemplo de Referência** - *Mostra o formato da requisição. Para testar com sua crew real, copie o cURL e substitua URL + token.* + + Retorna o status atual e os resultados de uma execução usando o kickoff ID. + operationId: getExecutionStatus + parameters: + - name: kickoff_id + in: path + required: true + schema: + type: string + format: uuid + responses: + '200': + description: Status recuperado com sucesso + content: + application/json: + schema: + oneOf: + - $ref: '#/components/schemas/ExecutionRunning' + - $ref: '#/components/schemas/ExecutionCompleted' + - $ref: '#/components/schemas/ExecutionError' + '401': + $ref: '#/components/responses/UnauthorizedError' + '404': + description: Kickoff ID não encontrado + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + $ref: '#/components/responses/ServerError' + +components: + securitySchemes: + BearerAuth: + type: http + scheme: bearer + description: | + **📋 Referência** - *Os tokens mostrados são apenas exemplos.* + Use seus tokens reais do painel do CrewAI Enterprise. + + schemas: + ExecutionRunning: + type: object + properties: + status: + type: string + enum: ["running"] + current_task: + type: string + progress: + type: object + properties: + completed_tasks: + type: integer + total_tasks: + type: integer + + ExecutionCompleted: + type: object + properties: + status: + type: string + enum: ["completed"] + result: + type: object + properties: + output: + type: string + tasks: + type: array + items: + $ref: '#/components/schemas/TaskResult' + execution_time: + type: number + + ExecutionError: + type: object + properties: + status: + type: string + enum: ["error"] + error: + type: string + execution_time: + type: number + + TaskResult: + type: object + properties: + task_id: + type: string + output: + type: string + agent: + type: string + execution_time: + type: number + + Error: + type: object + properties: + error: + type: string + message: + type: string + + ValidationError: + type: object + properties: + error: + type: string + message: + type: string + details: + type: object + properties: + missing_inputs: + type: array + items: + type: string + + responses: + UnauthorizedError: + description: Autenticação falhou + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + NotFoundError: + description: Recurso não encontrado + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + ServerError: + description: Erro interno do servidor + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + diff --git a/docs/images/enterprise/users_and_roles.png b/docs/images/enterprise/users_and_roles.png new file mode 100644 index 000000000..d1aeadc6d Binary files /dev/null and b/docs/images/enterprise/users_and_roles.png differ diff --git a/docs/images/enterprise/visibility.png b/docs/images/enterprise/visibility.png new file mode 100644 index 000000000..74c8078d4 Binary files /dev/null and b/docs/images/enterprise/visibility.png differ