Compare commits

...

2 commits

Author SHA1 Message Date
Rodrigo Rodriguez (Pragmatismo)
bc127816df fix: update titles and labels for consistency; adjust deployment paths in workflow
Some checks failed
GBCI / build (push) Failing after 1m16s
2025-05-11 20:12:38 -03:00
Rodrigo Rodriguez (Pragmatismo)
15e7cbd78e chore: remove unused images and documentation files; add new CSS module for styling 2025-05-11 16:12:19 -03:00
39 changed files with 12654 additions and 5346 deletions

View file

@ -29,5 +29,5 @@ jobs:
- name: Deploy to production
run: |
sudo rm -rf /opt/gbo/websites/docs.pragmatismo.com.br/*
sudo cp -r ./build/. /opt/gbo/websites/docs.pragmatismo.com.br/
sudo rm -rf /opt/gbo/websites/compliance.pragmatismo.com.br/*
sudo cp -r ./build/. /opt/gbo/websites/compliance.pragmatismo.com.br/

View file

@ -1,11 +0,0 @@
---
sidebar_position: 1000
---
# Apendix I - Database Model
The database model can be seen on the picture bellow. In each .gbapp or .gblib
the folder **Model** will contain the Sequelize definition for each one of these
tables and their relationship.
![General Bots Database Model](./images/GeneralBotsDatabaseModel.png)

View file

@ -1,11 +0,0 @@
---
sidebar_position: 1000
---
# Apendix II - Network Diagrams
## Reverse Proxy for Development
When establishing a local development machine, an user can use the ngrok based proxy. The diagram shows how the localhost becomes accesible when the Bot Service need to connect, routing messages from the cloud to the local development server machine.
![General Bots Reverse Proxy](./images/GeneralBotsReverseProxy.png)

View file

@ -1,71 +0,0 @@
---
sidebar_position: 10
---
# Run and Talk
### Bot Development Stack
![General Bot Logo](https://github.com/GeneralBots/BotServer/blob/main/docs/images/general-bots-stack.png)
### Diagram Description
1. **gbapp** and **gblib** are folder extensions within the GeneralBots package type, responsible for GeneralBots services in a back-end development environment. A General Bot App comprises four components: dialogs, models, services, and tests.
2. The **.gbui** extension pertains to the GeneralBots front-end development environment. Angular, Riot, React, and HTML enable dynamic functionality for GeneralBots services.
3. The **.gtheme** extension is utilized by GeneralBots designers using CSS and PS technologies. A theme consists of CSS files and images.
4. **.gbDialog** is an extension responsible for GeneralBots' communication with end-users through bot services. **.gbkb** is a package for executing various types of media.
5. The **.gbot** extension refers to the GeneralBots service product.
6. **.gbai** denotes the architecture construction of the GeneralBots application.
### The Bot Factory
![General Bots Block Architecture](https://raw.githubusercontent.com/pragmatismo-io/BotServer/master/docs/images/general-bots-block-architecture.png)
GeneralBots aims to deliver bots on Azure in an easy and efficient manner. Utilize office tools like Word or Excel for editing your bot, leveraging code (JavaScript or TypeScript) only for custom requirements.
## How To
### Running the Server Locally
1. Install [Node.js](https://www.npmjs.com/get-npm), the current-generation General Bot code execution platform.
2. Open a **Terminal** on Linux and Mac, or a **Command Prompt** or PowerShell window on Windows.
3. Type `npm install -g botserver` and press **ENTER**.
4. Type `gbot` to start the server core.
### Notes:
- [*nodejs.install* Chocolatey Package](https://chocolatey.org/packages/nodejs.install) is also available (Chocolatey is a Windows package manager).
- The zip source code for General Bot is available for [Download](https://codeload.github.com/pragmatismo-io/BotServer/zip/master).
### Running Unit Tests
1. Navigate to the BotServer root folder.
2. Execute tests with `npm test`.
### Copying Source Code to Your Machine
1. [Download](https://codeload.github.com/pragmatismo-io/BotServer/zip/master) the zip file.
## Omnichannel
Omnichannel allows conversations to flow seamlessly regardless of the channel, as all interactions are recorded, preserving the consumer's history and profile.
## Spell Checker
GeneralBots performs spell-checking to identify and correct typographical errors.
## Speech to Text
Enable user speech recognition directly with GeneralBots.
## Branding
Branding encompasses all aspects of a company's identity management, including its name and corporate visual elements.
processing, and output through natural language.
---

View file

@ -0,0 +1,330 @@
---
title: 2. Communication
sidebar_label: 2. Communication
sidebar_position: 2
---
1. Name files, items, documents, and elements with complete and capitalized names;
2. Choose expository texts over first-person texts to facilitate content collaboration;
3. Begin sentences with capital letters and write words in full;
4. Read about the communication in the code of conduct: https://github.com/GeneralBots/BotServer/blob/master/CODE_OF_CONDUCT.md;
5. "OK" in uppercase is easier to visualize as acceptance;
6. When pasting content, check if a corporate tool can be used to store it in the correct location and send only the address in the conversation;
7. When writing a list of items, end each item with a semicolon. End with a period on the last item. Example:
- Tuesday (07/06) at 11:00 AM;
- Wednesday (07/07) at 11:00 AM;
- Thursday (07/08) at 4:00 PM.
8. Number the list if it facilitates indexing or evidence of order;
9. Choose to input information directly into associated systems (e.g., XRM, HR, ALM, etc.) rather than note-taking applications (OneNote, Joplin, etc.);
10. Maintain a professional tone in all communications, avoiding slang, excessive informality, or emotional language;
11. Use inclusive language that respects diversity and avoids gender, cultural, or other biases;
12. When creating technical documentation, include version numbers and last update dates;
13. When referencing sensitive information, use appropriate data classification markings (e.g., CONFIDENTIAL, INTERNAL USE ONLY);
14. Document review processes should follow a consistent method with clearly defined approvers and timelines.
### 2.1.2. Visual Identity and Corporate Branding
1. Use the company's official templates for all formal communications;
2. Apply the correct logo version (full color, monochrome, or inverted) according to the background;
3. Maintain the corporate color palette in all visual communications;
4. Do not modify, stretch, or recolor the company logo;
5. Include appropriate legal notices and disclaimers in external communications;
6. Apply standard footer information on all formal documents including confidentiality statements.
## 2.2. Emails
------------
### 2.2.1 General
1. Keep the client's point of contact (e.g., Project Manager) in copy on messages sent to collaborators at the client or to third parties about ongoing or finishing projects;
2. When pasting from other sources, ensure that the text formatting is consistent with the rest of the message and signature;
3. Avoid long emails and try to include a final sentence where the person reading has the conditions to make decisions with the message quickly. Perform automatic spelling correction and verify the appropriate use of pauses and punctuation, promoting a formal level of writing that leads to immediate understanding, without the need for re-readings;
4. Choose to draft information directly in the associated tools such as Team Services, transmitting only the hyperlink of the item in question already created in the tool;
5. The To and Cc fields should be used with discretion, with only those people who need to take some action with the email being primarily included in the To field. Recipients who are only following the email thread should be inserted in the Cc field;
6. Do not forward internal emails directly to clients, choose to restart the corresponding email thread to respond, or start a new conversation;
7. Choose to thank the person in advance or when meeting them in person rather than sending a "thank you" email only. Within an *empty inbox philosophy*, emails are documents processed in sequence, and items of this nature can considerably increase the amount of work;
8. Only set the email with High Priority (Exclamation Icon) if it is really an urgent case;
9. When asking questions, choose to use only one question mark, which already shows questioning;
10. When commenting on the execution of an ongoing activity, send an estimated completion deadline, minimizing the chance of the question needing to be formulated;
11. The use of attachments by email should be avoided, opting for the use of the Portal, ALM, or associated tool;
12. Choose to update the documentation and respond with the link of the latest edition showing the questioner the answer to the doubt in the form of text insertion(s) in the target documentation;
13. When finalizing a request by email to which the person is notified by another means, for example, when meeting a scheduling request that the person will receive the invitation automatically, it is not necessary to respond to the original email, since the person will already be aware by the invitation received;
14. Keep the email thread unchanged when responding, choosing to duplicate the content and make insertions in the message being composed;
15. Only deal with the subject specified in the subject field in the email. Other issues should be addressed in a new email;
16. When mentioning virtual or physical locations, provide the corresponding URL or address;
17. Apply appropriate data classification markings in the subject line when discussing sensitive information (e.g., [CONFIDENTIAL], [INTERNAL]);
18. Never send passwords, access credentials, or personally identifiable information (PII) through unencrypted email;
19. Use encryption when discussing sensitive client data or transmitting protected information;
20. For emails containing sensitive information, include a confidentiality notice in the footer;
21. Report suspicious emails to the information security team without opening attachments or clicking links.
### 2.2.2. Work Location Reservation
1. Anyone can reserve their workplace with a Do Not Disturb sign;
2. When working remotely, update your status in the corporate communication tool to reflect your availability;
3. For shared workspaces, utilize the company's reservation system to book spaces in advance.
### 2.2.3. Email Farewell and Signature
Maintain the farewell and signature as concise as possible and copy the CEO's, which is the standard example.
Note: Remove all standard offers from your device such as 'Get Program for Service'.
**Standard Signature Format:**
```
Full Name
Position | Department
Pragmatismo
+XX (XX) XXXX-XXXX
email@pragmatismo.com.br
www.pragmatismo.com.br
```
**Confidentiality Notice:**
```
This message and any attached documents contain confidential information and are intended solely for the named recipient. If you have received this message in error, please notify the sender immediately and delete this message from your system. Any unauthorized use, disclosure, copying, or distribution is strictly prohibited.
```
### 2.2.4. Meetings
1. Add ProjectOffice@Pragmatismo as an optional recipient in all invitations sent to clients;
2. Offer date and time suggestions in the invited person's time zone within the first sentence of the invitation, keeping the day suggestions without exceeding more than one week ahead in duration, for example: Tue, Thu, and Mon (extending over the weekend) or Mon, Thu, and Fri (in the same week);
3. List additional dates to facilitate scheduling for those reading the invitation email so they can decide more easily;
4. If it is a physical meeting, make sure to fill in the address correctly so that the GPS feature helps those who are traveling;
5. In case of Conference, send the invitation using Microsoft Teams integration (Web, Windows Calendar, or Outlook Desktop);
6. If there is recurrence, describe in the body of the meeting the topics that should be reviewed in each occurrence of the meeting. Remember that the body of the invitation will be valid until the end of the last occurrence with the same text;
7. Send the invitation with the same email model, including signature;
8. In meetings, prioritize entry through the Standard Communicator, always log in with the corporate account;
9. Choose to join 05 minutes before meetings. Globally establish a tolerance for your own delay of 5 minutes to be in the meeting, warning in advance in case of unforeseen events. Tolerate delays no more than the usable time of the meeting without impairing its quality, or according to your availability - suggesting rescheduling in case of compromise;
10. Do not use Optional in invitations, consult people beforehand before sending only to those who will actually participate in the meeting;
11. Describe the subject of the meeting objectively and add macro topics to be discussed. During the meeting, discuss the planned topics and keep the discussion in the context of the established subject;
12. For team meetings, simply schedule the meeting without the need to ask about availability, which is published in each person's schedule;
13. Even for team meetings, plan the schedules in advance, making sure not to send invitations for meetings on the same day or with less than at least 48 hours in advance;
14. If the client is late, call by phone to find out if they are having any difficulty entering virtual rooms or at the establishment's reception;
15. All meetings discussing sensitive data must be conducted in secure, private spaces;
16. Begin meetings with a reminder of confidentiality obligations when sensitive information will be discussed;
17. Record meetings only with explicit consent from all participants and in compliance with applicable privacy laws;
18. Document all decisions related to data handling or security measures in the meeting minutes;
19. End meetings with clear action items, responsible parties, and deadlines.
Notes:
Subscribe to: https://calendar.help
Meeting Invitation Model:
```
<greeting>
<sentence>
How is your availability next Thursday (12/02) at 10:00 AM?
Other suggestions:
- tomorrow, 12/03 10:00 AM;
- Monday, 12/07 08:00 AM.
<farewell>
```
### 2.2.5. Creating Issues and Updating Requirements Based on Email
If any email is sent with relevant information to the project, the lifecycle tool must be updated before the information is passed on through the tool itself, in a structured manner.
### 2.2.6. Scheduled Email Sending
1. Emails should be sent to clients respecting the destination time zone and business hours through a feature in the collaborative tool;
2. Scheduling allows messages to reside in the outbox for some more time before they depart, thus it is possible to have another chance of editing before the final sending;
3. If the client contacts proactively on a date prior to the message, be sure to review the sense of sending the message still in the Outbox, see [Article](https://support.office.com/pt-br/article/Delay-or-schedule-sending-email-messages-026af69f-c287-490a-a72f-6c65793744ba).
### 2.2.7. Formatting
1. Emails should be sent to the client with minimal formatting to facilitate reading on devices such as smart watches;
2. If the client sends an email without formatting, choose to use the text version of the email from then on;
3. Use structured format (headings, bullet points) for complex information to improve readability;
4. For sensitive data, consider using document links instead of embedding information directly in the email body.
### 2.2.8. Copies
Add ProjectOffice@Pragmatismo as optional in all emails sent to the client. If the email is being exchanged within another corporation, copy the Project Office representative in the client's account in question, so that the information does not leave the perimeter agreed upon in the project in question.
### 2.2.9 Forwarding
1. When forwarding messages internally with strategic commercial comments, add 'INTERNAL:' as the subject prefix;
2. Exchange messages marked as 'INTERNAL:' only within the Pragmatismo domain (do not externalize);
3. Never forward emails containing client data to external parties without explicit authorization;
4. When forwarding emails, review the entire thread to ensure no sensitive information is inadvertently disclosed.
## 2.3. Meeting Minutes with Client
--------------------------------
The minutes should be published on the project Wiki at the end of each meeting to be sent to the participants with the name of Minutes_dd_mm_yyyy (ex.: Minutes_25_01_2023).
### 2.3.1 Minutes Format
#### Information
Alignment of requirements and general discussion on usability and architecture.
| Item | Value |
|----------|-------------------------------------------------------------------------------|
| Date: | January 25, 2023 |
| Time: | 3:00 PM |
| Location:| Av. Pres. Castelo Branco, Portão 3 - Maracanã, Rio de Janeiro - RJ, 20271-130 |
| Video: | [Watch](http://pragmatismo/video) |
| Security Classification: | INTERNAL USE ONLY |
#### Participants
- Name Surname \<client @domain\>
- Name Surname \<someone-from-company @pragmatismo.com.br\>
#### Topics
| Item | Responsible | Date |
|---------------------------------------|------------------------|------------|
| Discussion of Robot requirements | All | \- |
| Presentation of Car requirements | Client | \- |
| Kick-off can be held on 02/29. | Someone from Company | 02/01/2023 |
#### Pending Issues ([Link]))
| ID | Title |
|-----|------------------------------------------------|
| 001 | Access to SharePoint |
| 002 | Obtain list of SharePoint groups and lists |
| 003 | Obtain field suggestions for forms |
| 004 | Send Manual for publication on the Intranet |
#### Data Protection Notes
| Item | Description |
|------|-------------|
| Data Categories Discussed | [List types of data discussed: personal data, financial data, etc.] |
| Processing Purpose | [Document the purpose for data processing discussed in meeting] |
| Data Security Measures | [List any security measures agreed upon for handling this data] |
#### Validity
Participants will have one week (from receipt of this document) to review or even contest the content of these Minutes. After this period, it will be considered as accepted by all.
## 2.4. Document Publication
-----------------------------
1. Whenever possible, send protected and reduced PDF versions to clients and partners for practicality;
2. Remove personal data before sending files that have metadata, consult: https://support.office.com/pt-br/article/Remover-dados-ocultos-e-informa%C3%A7%C3%B5es-pessoais-de-documentos-do-Office-c2499d69-413c-469b-ace3-cf7e31a85953;
3. Follow the company's document classification system for all published materials;
4. Include appropriate data protection notices on documents containing personal or sensitive information;
5. Maintain a document inventory for all published materials with retention schedules;
6. Use digital rights management (DRM) features for highly sensitive documents;
7. Implement version control for all published documents;
8. Include a document history section showing all revisions and approvals;
9. For documents containing personal data, include a reference to the legal basis for processing;
10. Apply watermarks to draft documents or those containing sensitive information.
## 2.5. Secure File Exchange
-----------------------------
1. 1GB available in SFTP to receive database dumps and other files, consult ProjectOffice@pragmatismo.com.br;
2. You can use a program like WinSCP to access FTPS and upload the files via SFTP;
3. For files containing personal data or sensitive information, use end-to-end encrypted transfer methods;
4. Implement secure sharing with expiration dates and access logging for sensitive documents;
5. When sharing credentials for secure file transfers, use separate communication channels for the URL and credentials;
6. Maintain an audit log of all file transfers containing sensitive or regulated data;
7. Scan all files for malware before uploading to company systems;
8. Use secure electronic signature services for documents requiring formal approval.
### 2.5.1 Secure File Transfer Protocols
| Protocol | Use Case | Security Features |
|----------|----------|-------------------|
| SFTP | Standard file transfers | SSH encryption, authentication |
| FTPS | Legacy system compatibility | SSL/TLS encryption |
| HTTPS | Browser-based transfers | TLS encryption, authentication |
| PGP | Additional encryption layer | End-to-end encryption, digital signatures |
## 2.6 Tasks and Self-Management
------------------------
1. Give full credit to what was written in the task and the corporation gains in the culture of self-confidence. Except for the incomplete text of what to do. But, with the minimum of information, if possible, build a first version of what was understood. It is worth more to deliver a preliminary and discuss with this delivery, than to ask before starting;
2. Document all stages of task progression in the designated project management system;
3. Update task status in real-time to maintain transparency across teams;
4. Include time tracking for regulatory compliance purposes when required;
5. For tasks involving personal data processing, document the purpose and legal basis;
6. Maintain clear documentation of security measures implemented during task execution.
## 2.7 Data Protection Communication
-------------------------------
### 2.7.1 Communicating with Data Subjects
1. All communications with data subjects (customers, employees, etc.) regarding their personal data must follow approved templates;
2. Responses to data subject requests (access, deletion, rectification) must be tracked and completed within regulatory timeframes;
3. Verification procedures must be followed before disclosing personal information to individuals claiming to be data subjects;
4. Communications regarding data breaches must follow the Incident Response Plan and comply with notification requirements;
5. When collecting personal data, ensure appropriate privacy notices are provided.
### 2.7.2 Internal Data Protection Communication
1. Changes to data protection policies must be communicated to all employees through official channels;
2. Regular awareness communications should be sent regarding data protection best practices;
3. Department-specific guidance should be provided for teams handling different categories of personal data;
4. Create a clear escalation path for reporting potential data protection issues;
5. Maintain documentation of all data protection communications for compliance purposes.
## 2.8 Communication Security
-----------------------
### 2.8.1 Secure Communications Channels
1. Use encrypted communications channels for all sensitive or confidential information;
2. For highly sensitive discussions, consider in-person meetings in secure locations;
3. Avoid discussing confidential matters in public spaces or on unsecured communication channels;
4. Implement end-to-end encryption for messaging when discussing sensitive topics;
5. Use secure video conferencing solutions that offer encryption and access controls.
### 2.8.2 Digital Communications Security
1. Enable two-factor authentication for all corporate communication accounts;
2. Use strong, unique passwords for all communication platforms;
3. Regularly update communication software and applications;
4. Be vigilant against phishing attempts targeting corporate communications;
5. Apply appropriate access controls to communication channels based on the sensitivity of information;
6. Regularly audit access to communication systems containing sensitive information.
## 2.9 Compliance Documentation Communications
----------------------------------------
### 2.9.1 Regulatory Communications
1. Maintain a register of all communications with regulatory authorities;
2. Route all regulatory inquiries to the designated compliance officer;
3. Document all formal responses to regulatory bodies;
4. Keep records of all compliance-related communications for the period required by applicable regulations;
5. Review regulatory communications for accuracy and consistency before sending.
### 2.9.2 Compliance Reporting
1. Establish clear reporting channels for compliance concerns;
2. Provide regular compliance updates to management through standardized reporting formats;
3. Document all compliance training communications and attendance;
4. Maintain evidence of communication of policy updates to relevant personnel;
5. Create and distribute compliance newsletters highlighting important regulatory changes.
## 2.10 Crisis Communications
-----------------------
### 2.10.1 Emergency Communication Protocol
1. Establish designated spokespersons for different types of crisis situations;
2. Create pre-approved message templates for common crisis scenarios;
3. Implement a notification cascade for emergency communications;
4. Maintain up-to-date emergency contact information for all key personnel;
5. Test emergency communication channels regularly.
### 2.10.2 Data Breach Communications
1. Follow the established Data Breach Response Plan for all communications;
2. Prepare templates for internal and external breach notifications that comply with GDPR, LGPD, and other applicable regulations;
3. Establish timeframes for breach notifications aligned with regulatory requirements;
4. Document all communications during a breach incident;
5. Conduct post-incident reviews of communication effectiveness.

View file

@ -1,94 +0,0 @@
---
sidebar_position: 20
---
# Package Based principles
Packages are folders in the file system, synced with cloud storages and
content management systems like SharePoint and even sent like .zip files on a e-mail.
Just to increse bot knowledge, intelligence and how they look to us. So working on a
General Bots project is like to split the work on several packages if needed and work
on a package at once or even share the work with collegues, agencies or development
companies to more advanced package building. Composite packages on GeneralBots:
![print packages](https://user-images.githubusercontent.com/65977273/94712159-7662fb80-031f-11eb-8217-1c0507bfe5d5.png)
# Your own data
You will see your data in .gbdata.
## How To
### Configure the server to deploy specific directory
1. Create/Edit the .env file and add the ADDITIONAL_DEPLOY_PATH key pointing to the .gbai local parent folder of .gbapp, .gbot, .gbtheme, .gbkb package directories.
2. Specify STORAGE_SYNC to TRUE so database sync is run when the server is run.
3. In case of Microsoft SQL Server add the following keys: STORAGE_SERVER, STORAGE_NAME, STORAGE_USERNAME, STORAGE_PASSWORD, STORAGE_DIALECT to `mssql`.
Note:
- You can specify several bots separated by semicolon, the BotServer will serve all of them at once.
## Description of packages
### .gbai
Embraces all packages types (content, logic & conversation) into a pluggable bot
directory. [A sample .gbai is available](https://github.com/pragmatismo-io/IntranetBotQuickStart.gbai).
### .gbapp
The artificial intelligence extensions in form of pluggable apps. Dialogs,
Services and all model related to data. A set of interactions, use cases,
integrations in form of conversationals dialogs.
The .gbapp adds the General Bot base library (botlib) for building Node.js TypeScript Apps packages.
Four components builds up a General Bot App:
- dialogs
- models
- services
- tests
#### Dialogs
All code contained in a dialog builds the flow to custom conversations in
built-in and additional packages. GeneralBots also has the user's direct speech dialog, containing the spell checker.
#### Models
Models builds the foundation of data relationships in form of entities.
#### Services
Services are a façade for bot back-end logic and other custom processing.
all GeneralBots functionality comes down to services.
#### Tests
Tests try to automate code execution validation before crashing in production.
### .gbot
An expression of an artificial inteligence entity. A .gbot file defines
all bots dependencies related to services and other resources.
### .gbtheme
A theme of a bot at a given time. CSS files & images that can compose all UI
presentation and using it a branding can be done. [A sample .gbtheme is available](https://github.com/pragmatismo-io/Office365.gbtheme)
### .gbkb
A set of subjects that bot knows in a form of hierarchical menu-based QnA. [A sample .gbkb is available](https://github.com/pragmatismo-io/ProjectOnline.gbkb).
### .gblib
Shared code that can be used across bot apps.
## System Package Quick Reference
|Whatsapp|Web|Core|KB|
|----|-----|----|----|
|[whatsapp.gblib](https://github.com/pragmatismo-io/BotServer/tree/master/packages/whatsapp.gblib)|[default.gbui](https://github.com/pragmatismo-io/BotServer/tree/master/packages/default.gbui)|[core.gbapp](https://github.com/pragmatismo-io/BotServer/tree/master/packages/core.gbapp)|[kb.gbapp](https://github.com/pragmatismo-io/BotServer/tree/master/packages/kb.gbapp)|

902
docs/chapter-03-ALM.md Normal file
View file

@ -0,0 +1,902 @@
---
title: 3. ALM - Application Lifecycle Management
sidebar_label: 3. ALM
sidebar_position: 3
---
# 3. Application Lifecycle Management (ALM)
## 3.1. Conceitos Fundamentais de ALM
### 3.1.1. Definição e Importância
O Application Lifecycle Management (ALM) é uma abordagem integrada para gerenciar todos os aspectos do ciclo de vida de uma aplicação, desde a concepção inicial até a implantação e manutenção. Na Pragmatismo, o ALM é especialmente importante devido à natureza crítica dos projetos de IA e General Bots, que exigem rastreabilidade, segurança e conformidade com padrões regulatórios.
O ALM da Pragmatismo foi projetado para atender às necessidades específicas de conformidade com ISO 27001, HIPAA e LGPD, garantindo que todas as fases do desenvolvimento de software atendam aos requisitos de segurança da informação, proteção de dados pessoais e melhores práticas da indústria.
### 3.1.2. Componentes Principais do ALM
- **Gestão de Requisitos**: Documentação, rastreamento e priorização de requisitos
- **Gestão de Desenvolvimento**: Controle de código-fonte, integração contínua e entrega contínua
- **Gestão de Testes**: Testes automatizados, testes de segurança e testes de conformidade
- **Gestão de Implantação**: Implantação em ambientes controlados com registro de auditoria
- **Gestão de Operações**: Monitoramento, manutenção e resposta a incidentes
### 3.1.3. Benefícios do ALM para Projetos de IA e General Bots
- Rastreabilidade completa de requisitos até código e testes
- Auditabilidade para fins regulatórios (ISO 27001, HIPAA, LGPD)
- Redução de riscos de segurança e privacidade
- Melhoria contínua do processo de desenvolvimento
- Aceleração do time-to-market mantendo a qualidade e a conformidade
## 3.2. Estruturação do Ambiente ALM
### 3.2.1. Organização de Áreas e Iterações
1. Use áreas para agrupar (se necessário) requisitos e outras entidades por versão, grupo, ou qualquer outro agrupamento necessário. Geralmente apenas uma área é suficiente para um projeto isolado ou inicial. Ver artigo sobre como [personalizar áreas](https://docs.microsoft.com/en-us/vsts/work/customize/set-area-paths).
2. User iterações para definir o cronograma do projeto. Ver [artigo](https://docs.microsoft.com/en-us/vsts/work/customize/set-iteration-paths-sprints)
3. O modelo CMMI deve ser o modelo usado para confecionar projetos, mesmo em métodos ágeis.
4. Para editar o cronograma do projeto visite ``` https:///_admin/_work
5. Para realizar anotações diversas em tarefas, requisitos, questões e outras entidades, utilize o campo Discussion, de modo que o histórico seja automaticamente registrado com data/hora de quem registrou e o texto da anotação.
6. Apenas inclua as pessoas na linha de conversação, durante a edição de questões, tarefas ou requisitos até que estas precisem realmente ter algum item de ação atribuída a elas.
7. Escreva o texto do item corporativo de modo dissertativo.
### 3.2.2. Estruturação para Compliance
1. **Áreas de Compliance**: Criar áreas específicas para requisitos relacionados a ISO 27001, HIPAA e LGPD, facilitando a rastreabilidade e auditoria.
2. **Iterações de Compliance**: Definir iterações dedicadas à revisão de conformidade antes de cada release major.
3. **Tags de Compliance**: Utilizar tags padronizadas (ISO27001, HIPAA, LGPD) para marcar requisitos e tarefas relacionadas à conformidade.
4. **Artefatos de Compliance**: Manter uma biblioteca de artefatos de compliance que podem ser reutilizados em diferentes projetos.
### 3.2.3. Integrações com Ferramentas de Segurança
1. **SAST (Static Application Security Testing)**: Integração com ferramentas de análise estática de código
2. **DAST (Dynamic Application Security Testing)**: Integração com ferramentas de análise dinâmica
3. **SCA (Software Composition Analysis)**: Verificação de dependências e bibliotecas
4. **Gestão de Vulnerabilidades**: Integração com sistemas de registro e acompanhamento de vulnerabilidades
### 3.2.4. Configuração de Pipelines de CI/CD Seguros
1. **Verificações de Segurança**: Configurar gates de segurança nos pipelines de CI/CD
2. **Testes Automatizados de Compliance**: Incluir testes automatizados de conformidade nos pipelines
3. **Aprovações e Controles de Acesso**: Configurar aprovações baseadas em papéis para implantações em ambientes sensíveis
4. **Logging e Auditoria**: Configurar logging detalhado de todas as ações nos pipelines
## 3.3. Papéis e Responsabilidades
### 3.3.1. Papéis Comuns a Todos os Projetos
#### 3.3.1.1. Capacitação
##### 3.3.1.1.1 Gerenciamento do Ciclo de Vida da Aplicação
(Duração: 30 min. Público: Analistas de Sistemas e Gerentes de Projetos)
[Artigo](https://docs.microsoft.com/pt-br/vsts/security/get-started-stakeholder)
E mais:
Itens de Trabalho(Work Items)
Visão geral de todos os tipos de itens de trabalho como requisitos, questões, defeitos, riscos, revisões, requisições de mudança.
Fluxo de Questões
Como trafegar informações pelo fluxo de questões e usar o campo Discussion mantendo o Description como o campo mais atualizado.
Wiki Como visualizar a Wiki do projeto e contribuir com informações e Atas.
##### 3.3.1.1.2 Criando um Perfil de Navegador por cliente.
1. No canto superior do navegador, clique no nome de seu usuário(a);
2. Em seguida, Gerenciar Pessoas;
3. Clique em Adicionar;
4. Digite o nome do Perfil e clique em Salvar;
5. Pronto.
##### 3.3.1.1.3 Capacitação em Compliance
1. **Treinamento ISO 27001**: Conceitos básicos de segurança da informação e requisitos da ISO 27001
2. **Treinamento HIPAA/LGPD**: Proteção de dados pessoais e dados de saúde
3. **Treinamento em Desenvolvimento Seguro**: Práticas de codificação segura e prevenção de vulnerabilidades
4. **Treinamento em Resposta a Incidentes**: Procedimentos para identificação e resposta a incidentes de segurança
### 3.3.2. Cliente
Porquê principal da companhia, foco das atenções e zelo, tem registradas todas as suas ideias de modo contínuo recebendo a melhor arquitetura disruptiva e sustentável. No contexto de projetos de IA e General Bots, o cliente deve:
1. **Fornecer Requisitos Claros**: Especificar claramente os requisitos funcionais e de segurança/privacidade
2. **Participar das Revisões**: Participar ativamente das revisões de requisitos e demonstrações
3. **Validar Compliance**: Validar que os requisitos de compliance específicos do seu setor foram atendidos
4. **Reportar Incidentes**: Reportar prontamente quaisquer incidentes de segurança ou privacidade
### 3.3.3. Arquiteta de Solução
Quem define o modo que código, artefatos e dados serão elaborados através de novas ideias disruptivas mas factíveis, técnicas e padrões de indústria consagrados. Para projetos de IA e General Bots, a arquiteta de solução também deve:
1. **Arquitetura de Segurança**: Definir controles de segurança e privacidade por design
2. **Arquitetura de Compliance**: Garantir que a arquitetura atenda aos requisitos regulatórios
3. **Avaliação de Risco**: Realizar avaliações de risco durante o design da solução
4. **Revisão de Arquitetura**: Conduzir revisões regulares da arquitetura para identificar possíveis vulnerabilidades
### 3.3.4. Gerente de Projetos
Quem mantém o projeto no custo, prazo, escopo e qualidade utilizando as melhores práticas de comunicação juntamente das melhores ferramentas de gestão do ciclo de vida da aplicação dentro do meio disruptivo. Para projetos de IA e General Bots, o gerente de projetos também deve:
1. **Gestão de Riscos de Compliance**: Identificar e mitigar riscos relacionados à compliance
2. **Coordenação de Auditorias**: Coordenar auditorias internas e externas de segurança e compliance
3. **Gestão de Documentação de Compliance**: Garantir que toda a documentação necessária está sendo produzida e mantida
4. **Comunicação de Riscos**: Comunicar riscos de segurança e compliance aos stakeholders
#### 3.3.4.1. Aplicação de crédito em nuvem
1. Necessário verificar validade e crédito em USD do Voucher para verificar se atende o projeto;
2. Aplicar o voucher numa contra criada especificamente para o projeto ou no cliente consultando o EscritorioDeProjetos@Pragmatismo para tal, [Referência](https://www.microsoftazurepass.com/Home/HowTo).
3. Caso a conta especifica seja usada, ela será a administradora da nuvem. Convidar os envolvidos assim que a conta for criada e colocar operations@Pragmatismo como Administradora e as demais pessoas que terão este tipo de acesso.
#### 3.3.4.2. Reunião do Escritório de Projetos
1. Verificar se existem questões, requisitos, riscos, requisições de mudança e outras pendências antes da reunião.
2. Preparar a lista de itens pendentes para discussão com base em questões pendentes.
3. Além dos itens de controle da aplicação, apresentar cronograma & escopo juntamente da satisfação geral do cliente.
4. Incluir na pauta itens específicos sobre compliance e segurança.
### 3.3.5. Analista Desenvolvedor(a)
Quem identifica requisitos e os codifica em código-fontes e ativos associados de acordo com as melhores práticas da indústria. Para projetos de IA e General Bots, o(a) analista desenvolvedor(a) também deve:
1. **Desenvolvimento Seguro**: Aplicar práticas de desenvolvimento seguro em todo o código
2. **Tratamento Seguro de Dados**: Implementar mecanismos seguros para processamento e armazenamento de dados
3. **Testes de Segurança**: Realizar testes unitários que incluam casos de teste de segurança
4. **Revisão de Código**: Participar de revisões de código com foco em segurança e compliance
### 3.3.6. Analista de Qualidade
Quem certifica que os requisitos especificados estão de acordo com a experiência final de utilização ou operação do projeto. Para projetos de IA e General Bots, o analista de qualidade também deve:
1. **Testes de Segurança**: Realizar testes específicos de segurança e privacidade
2. **Verificação de Compliance**: Verificar se os requisitos de compliance foram atendidos
3. **Testes de Penetração**: Coordenar ou realizar testes de penetração
4. **Análise de Vulnerabilidades**: Realizar varreduras de vulnerabilidade regularmente
#### 3.3.6.1. Métodos
##### BDD com Gherkin
[Gherkin](https://github.com/cucumber/cucumber/wiki/Gherkin)
Para projetos de IA e General Bots, recomenda-se a adaptação do BDD para incluir critérios específicos de segurança e compliance:
```gherkin
Funcionalidade: Processamento seguro de dados pessoais
Como um usuário do sistema
Eu quero que meus dados pessoais sejam processados de forma segura
Para que minha privacidade seja protegida
Cenário: Armazenamento de dados sensíveis
Dado que eu forneço dados sensíveis ao sistema
Quando os dados são armazenados
Então os dados devem ser criptografados
E o acesso aos dados deve ser registrado em log de auditoria
E os dados devem ter uma política de retenção definida
```
### 3.3.7. Oficial de Segurança da Informação
Papel específico para projetos de IA e General Bots com requisitos rigorosos de segurança e compliance:
1. **Avaliação de Segurança**: Realizar avaliações regulares de segurança do projeto
2. **Definição de Políticas**: Definir políticas de segurança específicas para o projeto
3. **Resposta a Incidentes**: Coordenar a resposta a incidentes de segurança
4. **Conformidade Regulatória**: Garantir que o projeto esteja em conformidade com regulamentações aplicáveis
### 3.3.8. Especialista em Compliance
Papel específico para projetos com requisitos rigorosos de compliance:
1. **Interpretação Regulatória**: Interpretar requisitos regulatórios e traduzi-los em requisitos técnicos
2. **Documentação de Compliance**: Preparar e manter documentação de compliance
3. **Auditorias**: Conduzir auditorias internas de compliance
4. **Remediação**: Coordenar esforços de remediação para problemas de compliance identificados
## 3.4. Configuração e Uso do ALM
### 3.4.1. Configuração Inicial do Projeto
1. **Criação do Projeto**: Criar o projeto no ALM utilizando o modelo CMMI
2. **Configuração de Áreas**: Configurar áreas para organizar o trabalho, incluindo áreas específicas para compliance
3. **Configuração de Iterações**: Configurar iterações alinhadas ao cronograma do projeto
4. **Configuração de Políticas**: Configurar políticas de branch, build e release
5. **Configuração de Dashboards**: Configurar dashboards para visualização do status do projeto e métricas de compliance
### 3.4.2. Gestão de Requisitos
1. **Cadastro de Requisitos**: Cadastrar requisitos funcionais, não funcionais e de compliance
2. **Rastreabilidade**: Estabelecer links de rastreabilidade entre requisitos, testes e código
3. **Priorização**: Priorizar requisitos considerando impacto em segurança e compliance
4. **Aprovação**: Estabelecer processo de aprovação formal para requisitos
### 3.4.3. Gestão de Código-Fonte
1. **Organização de Repositórios**: Organizar repositórios de forma a facilitar a gestão de segurança e compliance
2. **Controle de Versão**: Utilizar práticas robustas de controle de versão
3. **Branches e Pull Requests**: Utilizar branches e pull requests para revisão de código
4. **Políticas de Branch**: Configurar políticas de branch que exijam revisão de código
### 3.4.4. Gestão de Build e Release
1. **Pipelines de CI/CD**: Configurar pipelines de integração contínua e entrega contínua
2. **Gates de Qualidade**: Implementar gates de qualidade nos pipelines
3. **Aprovações**: Configurar aprovações necessárias para releases em ambientes de produção
4. **Logs de Auditoria**: Configurar logs de auditoria detalhados para todas as atividades de build e release
### 3.4.5. Gestão de Testes
1. **Planejamento de Testes**: Planejar testes de forma abrangente, incluindo testes de segurança e compliance
2. **Execução de Testes**: Executar testes de forma automatizada sempre que possível
3. **Relatórios de Teste**: Gerar relatórios detalhados dos resultados dos testes
4. **Cobertura de Testes**: Monitorar e melhorar continuamente a cobertura de testes
### 3.4.6. Gestão de Incidentes e Defeitos
1. **Registro de Incidentes**: Registrar todos os incidentes, incluindo incidentes de segurança
2. **Classificação de Incidentes**: Classificar incidentes por gravidade e impacto
3. **Resolução de Incidentes**: Resolver incidentes de acordo com SLAs definidos
4. **Análise de Causa Raiz**: Realizar análise de causa raiz para incidentes significativos
### 3.4.7. Gestão de Documentação
1. **Documentação Técnica**: Manter documentação técnica atualizada
2. **Documentação de Compliance**: Manter documentação específica de compliance
3. **Documentação de Segurança**: Manter documentação de segurança atualizada
4. **Documentação de Operações**: Manter documentação de operações atualizada
## 3.5. Específico para Projetos de IA e General Bots
### 3.5.1. Requisitos Específicos
1. **Rastreabilidade de Dados de Treinamento**: Manter rastreabilidade completa dos dados utilizados para treinamento de modelos de IA
2. **Documentação de Algoritmos**: Documentar detalhadamente os algoritmos utilizados
3. **Registro de Experimentos**: Manter registro detalhado dos experimentos realizados
4. **Versionamento de Modelos**: Implementar versionamento robusto de modelos de IA
### 3.5.2. Testes Específicos
1. **Testes de Viés**: Realizar testes para identificar e mitigar viés nos modelos de IA
2. **Testes de Robustez**: Testar a robustez dos modelos contra entradas adversariais
3. **Testes de Explicabilidade**: Verificar a explicabilidade dos resultados dos modelos
4. **Testes de Conformidade Ética**: Verificar conformidade com princípios éticos de IA
### 3.5.3. Monitoramento Específico
1. **Monitoramento de Drift**: Monitorar drift em modelos de IA em produção
2. **Monitoramento de Performance**: Monitorar continuamente a performance dos modelos
3. **Monitoramento de Uso**: Monitorar padrões de uso dos modelos
4. **Alertas de Anomalias**: Configurar alertas para comportamentos anômalos
## 3.6. Compliance e Regulamentações
### 3.6.1. ISO 27001
1. **Mapeamento de Requisitos**: Mapear requisitos da ISO 27001 para requisitos do sistema
2. **Controles Técnicos**: Implementar controles técnicos requeridos pela ISO 27001
3. **Documentação**: Manter documentação requerida pela ISO 27001
4. **Auditorias**: Preparar para auditorias de certificação e recertificação
### 3.6.2. HIPAA
1. **PHI (Protected Health Information)**: Implementar proteções específicas para PHI
2. **BAAs (Business Associate Agreements)**: Gerenciar BAAs com fornecedores
3. **Notificação de Violações**: Implementar procedimentos para notificação de violações
4. **Treinamento**: Realizar treinamento específico sobre HIPAA
### 3.6.3. LGPD
1. **Bases Legais**: Documentar bases legais para processamento de dados
2. **Direitos dos Titulares**: Implementar mecanismos para atender direitos dos titulares
3. **Relatório de Impacto**: Realizar relatórios de impacto à proteção de dados pessoais
4. **DPO (Data Protection Officer)**: Designar e suportar o DPO
### 3.6.4. Outras Regulamentações
1. **GDPR**: Para projetos com impacto na União Europeia
2. **CCPA/CPRA**: Para projetos com impacto na Califórnia
3. **Regulamentações Setoriais**: Para projetos em setores específicos (financeiro, saúde, etc.)
4. **Regulamentações Locais**: Para projetos com impacto em jurisdições específicas
## 3.7. Métricas e KPIs
### 3.7.1. Métricas de Qualidade
1. **Densidade de Defeitos**: Número de defeitos por linhas de código
2. **Cobertura de Testes**: Percentual do código coberto por testes
3. **Taxa de Retrabalho**: Percentual de código que precisa ser reescrito
4. **Tempo Médio de Resolução de Defeitos**: Tempo médio para resolver defeitos
### 3.7.2. Métricas de Segurança
1. **Vulnerabilidades Encontradas**: Número de vulnerabilidades encontradas em varreduras
2. **Tempo de Remediação de Vulnerabilidades**: Tempo médio para remediar vulnerabilidades
3. **Cobertura de Testes de Segurança**: Percentual de requisitos de segurança testados
4. **Incidentes de Segurança**: Número e gravidade de incidentes de segurança
### 3.7.3. Métricas de Compliance
1. **Conformidade com Requisitos**: Percentual de requisitos de compliance atendidos
2. **Achados de Auditoria**: Número e gravidade de achados em auditorias
3. **Tempo de Remediação**: Tempo médio para remediar achados de auditoria
4. **Cobertura de Treinamento**: Percentual da equipe treinada em requisitos de compliance
### 3.7.4. Métricas Específicas para IA e General Bots
1. **Acurácia do Modelo**: Medida da acurácia dos modelos de IA
2. **Taxa de Falsos Positivos/Negativos**: Taxa de falsos positivos e negativos
3. **Latência**: Tempo de resposta dos modelos em produção
4. **Uso de Recursos**: Uso de recursos computacionais pelos modelos
## 3.8. Melhores Práticas
### 3.8.1. Melhores Práticas Gerais
1. **Revisões Regulares**: Realizar revisões regulares de código, arquitetura e documentação
2. **Automação**: Automatizar o máximo possível do processo de desenvolvimento e testes
3. **Documentação**: Manter documentação atualizada e acessível
4. **Treinamento**: Investir em treinamento contínuo da equipe
### 3.8.2. Melhores Práticas de Segurança
1. **Security by Design**: Incorporar segurança desde o início do projeto
2. **Least Privilege**: Aplicar o princípio do privilégio mínimo
3. **Defense in Depth**: Implementar múltiplas camadas de defesa
4. **Regular Assessments**: Realizar avaliações regulares de segurança
### 3.8.3. Melhores Práticas de Compliance
1. **Privacy by Design**: Incorporar privacidade desde o início do projeto
2. **Data Minimization**: Coletar e armazenar apenas os dados necessários
3. **Regular Audits**: Realizar auditorias regulares de compliance
4. **Documentation**: Manter documentação detalhada de compliance
### 3.8.4. Melhores Práticas para IA e General Bots
1. **Ethical AI**: Seguir princípios éticos no desenvolvimento de IA
2. **Explainable AI**: Desenvolver modelos explicáveis sempre que possível
3. **Human Oversight**: Manter supervisão humana sobre decisões críticas
4. **Continuous Monitoring**: Monitorar continuamente o comportamento dos modelos
## 3.9. Tratamento de Defeitos
### 3.9.1 Desenvolvimento
1. Uma notificação do ALM é recebida;
2. O exame do item de trabalho é realizado destinado a definir o Defeito como sendo um item de trabalho interno, através da classificação como Ativo, ao cálculo do esforço em horas para a resolução;
3. Verifique se o relato do erro contém informações suficientes para a análise, do contrário, solicite tais informações de volta e finalize este ciclo;
4. Determinar se o defeito é originado da plataforma ou da aplicação;
5. Através do texto contido no Log, encontre a possível localização do problema no código-fonte.
Notas
* Os defeitos devem conter o Log emitido pela aplicação, caso a aplicação não esteja disponibilizando informações suficientemente, é necessário que uma alteração seja realizada para a melhoria do Log;
* Informações visuais como cor, podem ser adicionadas ao Log de modo a facilitar a leitura de modo complementar.
* Capturas de telas devem ser acompanhadas dos Log textuais relativas ao mesmo momento da captura
* Caso documentos sejam enviados, uma cópia contendo referências ao ALM deve ser criada e remetida de volta.
### 3.9.2. Classificação de Defeitos
1. **Crítico**: Impacto significativo na segurança, privacidade ou funcionalidade core
2. **Alto**: Impacto na funcionalidade principal, mas sem comprometer segurança ou privacidade
3. **Médio**: Impacto em funcionalidades secundárias
4. **Baixo**: Impacto cosmético ou de usabilidade menor
### 3.9.3. SLAs para Resolução de Defeitos
| Classificação | Tempo de Resposta | Tempo de Resolução |
|---------------|-------------------|-------------------|
| Crítico | 2 horas | 24 horas |
| Alto | 4 horas | 48 horas |
| Médio | 8 horas | 5 dias úteis |
| Baixo | 16 horas | 10 dias úteis |
### 3.9.4. Processo de Escalonamento
1. **Nível 1**: Analista Desenvolvedor(a) responsável
2. **Nível 2**: Arquiteta de Solução
3. **Nível 3**: Gerente de Projetos
4. **Nível 4**: Diretoria
## 3.10. Ferramentas e Integração
1. **Azure DevOps**: Gerenciamento de ciclo de vida
2. **GitHub**: Repositório de código e automaçãos
3. **Jira**: Gestão de tarefas e defeitos (opcional)
4. **Confluence**: Documentação colaborativa (opcional)
5. **Forgejo**: ALM open-source
## 3.11. Templates e Artefatos
### 3.11.1. Templates de Documentação
1. **Documento de Requisitos**: Template padronizado para documentação de requisitos
2. **Plano de Testes**: Template para planos de teste, incluindo testes de segurança e compliance
3. **Relatório de Segurança**: Template para relatórios de segurança
4. **Relatório de Compliance**: Template para relatórios de compliance
### 3.11.2. Checklists
1. **Checklist de Segurança**: Para revisão de segurança
2. **Checklist de Compliance**: Para revisão de compliance
3. **Checklist de Qualidade**: Para revisão de qualidade
4. **Checklist de Prontidão para Produção**: Para revisão antes da implantação
### 3.11.3. Scripts e Automações
1. **Scripts de Análise**: Scripts para análise automatizada de código
2. **Scripts de Deploy**: Scripts para implantação automatizada
3. **Scripts de Teste**: Scripts para testes automatizados
4. **Scripts de Monitoramento**: Scripts para monitoramento automatizado
# Links
| Title | Address |
|------------------------------|--------------------------------------------------------------------------------------------|
| Scaled Agile Framework & TFS | https://msdn.microsoft.com/pt-br/library/dn798712.aspx?f=255&MSPPError=-2147217396 |
| ISO 27001 Overview | https://www.iso.org/isoiec-27001-information-security.html |
| LGPD Guide | https://www.gov.br/cidadania/pt-br/acesso-a-informacao/lgpd |
| HIPAA Guidelines | https://www.hhs.gov/hipaa/for-professionals/index.html |
| Azure DevOps Documentation | https://docs.microsoft.com/en-us/azure/devops/?view=azure-devops |
| Microsoft Security Guide | https://docs.microsoft.com/en-us/security/ |
| OWASP Top 10 | https://owasp.org/www-project-top-ten/ |
| ML Ops Guide | https://ml-ops.org/ |
## 3.13. Gestão de Dados no ALM
### 3.13.1. Classificação de Dados
A classificação de dados é essencial para projetos de IA e General Bots, especialmente para garantir a conformidade com regulamentações como LGPD e HIPAA. O ALM da Pragmatismo implementa as seguintes categorias de classificação:
1. **Dados Públicos**: Informações que podem ser livremente divulgadas sem restrições
2. **Dados Internos**: Informações para uso interno da organização
3. **Dados Confidenciais**: Informações sensíveis que requerem proteção adicional
4. **Dados Restritos**: Informações altamente sensíveis com proteções rigorosas
Cada categoria possui controles específicos de acesso, armazenamento, processamento e transferência que devem ser implementados e documentados no ALM.
### 3.13.2. Ciclo de Vida dos Dados
O ALM da Pragmatismo implementa um ciclo de vida completo para dados utilizados em projetos de IA e General Bots:
1. **Coleta**: Documentação da origem, base legal e consentimento
2. **Processamento**: Aplicação de controles de segurança apropriados
3. **Armazenamento**: Implementação de criptografia e controles de acesso
4. **Transferência**: Proteção durante a transferência interna ou externa
5. **Arquivamento**: Processo seguro para dados que precisam ser retidos
6. **Eliminação**: Processo seguro para apagar dados que não são mais necessários
### 3.13.3. Registros de Processamento de Dados
Para conformidade com a LGPD e outras regulamentações, o ALM mantém registros detalhados de todas as atividades de processamento de dados:
1. **Finalidade do processamento**: Documentação clara da finalidade
2. **Categorias de dados**: Tipos de dados processados
3. **Categorias de titulares**: Indivíduos cujos dados são processados
4. **Categorias de destinatários**: Entidades com quem os dados são compartilhados
5. **Transferências internacionais**: Detalhes de transferências para outros países
6. **Prazos de retenção**: Período pelo qual os dados serão mantidos
7. **Medidas de segurança**: Descrição das medidas técnicas e organizacionais
## 3.14. Segurança no ALM
### 3.14.1. Princípios de Segurança
O ALM da Pragmatismo é fundamentado nos seguintes princípios de segurança:
1. **Security by Design**: Segurança incorporada desde o início do projeto
2. **Defense in Depth**: Múltiplas camadas de controles de segurança
3. **Least Privilege**: Acesso mínimo necessário para realizar a função
4. **Segregation of Duties**: Separação de responsabilidades críticas
5. **Secure Default Configuration**: Configurações padrão seguras
6. **Fail Secure**: Em caso de falha, o sistema deve falhar de forma segura
7. **Continuous Improvement**: Aprimoramento contínuo da postura de segurança
### 3.14.2. Controles de Segurança no ALM
Os seguintes controles de segurança são implementados no ALM da Pragmatismo:
1. **Autenticação**: MFA (Multi-Factor Authentication) para acesso ao ALM
2. **Autorização**: Controle de acesso baseado em papéis (RBAC)
3. **Criptografia**: Criptografia em trânsito e em repouso
4. **Logging e Monitoramento**: Registro e análise de atividades
5. **Gestão de Vulnerabilidades**: Processo para identificação e remediação
6. **Segurança de Código**: Análise estática e dinâmica de código
7. **Segurança de Infraestrutura**: Hardening e configuração segura
### 3.14.3. DevSecOps
O ALM da Pragmatismo implementa práticas de DevSecOps para integrar segurança ao longo do ciclo de desenvolvimento:
1. **Treinamento**: Capacitação regular da equipe em práticas seguras
2. **Automação**: Automação de verificações de segurança nos pipelines
3. **Feedback Rápido**: Feedback imediato sobre problemas de segurança
4. **Remediação Contínua**: Processo ágil para correção de vulnerabilidades
5. **Colaboração**: Colaboração entre equipes de desenvolvimento e segurança
6. **Medição**: Métricas para avaliar a postura de segurança
7. **Melhoria Contínua**: Processo de aprimoramento contínuo
## 3.15. Gestão de Projetos de IA no ALM
### 3.15.1. Características Específicas de Projetos de IA
Projetos de IA e General Bots apresentam características específicas que devem ser consideradas no ALM:
1. **Experimentação Iterativa**: Processo mais experimental que desenvolvimento tradicional
2. **Gestão de Dados**: Volumes maiores e mais complexos de dados
3. **Reprodutibilidade**: Necessidade de reproduzir experimentos e resultados
4. **Explicabilidade**: Requisito de explicar decisões e previsões
5. **Monitoramento de Modelos**: Necessidade de monitorar drift e desempenho
6. **Requisitos Éticos**: Considerações éticas específicas para IA
7. **Regulamentações Específicas**: Requisitos regulatórios para sistemas de IA
### 3.15.2. Adaptação do ALM para Projetos de IA
O ALM da Pragmatismo é adaptado para atender às necessidades específicas de projetos de IA:
1. **MLOps**: Integração de práticas de MLOps ao ALM
2. **Versionamento de Dados**: Controle de versão para conjuntos de dados
3. **Registro de Experimentos**: Documentação detalhada de experimentos
4. **Avaliação de Modelos**: Critérios e métricas para avaliação
5. **Integração de Modelos**: Processo para integração de modelos ao produto
6. **Monitoramento de Modelos**: Ferramentas para monitoramento em produção
7. **Governança de IA**: Estrutura para governança de sistemas de IA
### 3.15.3. Artefatos Específicos para Projetos de IA
Além dos artefatos tradicionais, o ALM para projetos de IA inclui:
1. **Catálogo de Dados**: Documentação detalhada dos conjuntos de dados
2. **Cartões de Modelo**: Documentação das características e limitações dos modelos
3. **Relatórios de Experimentos**: Documentação detalhada de experimentos
4. **Avaliações de Viés**: Análises de viés nos modelos
5. **Avaliações de Explicabilidade**: Análises da explicabilidade dos modelos
6. **Relatórios de Monitoramento**: Documentação do desempenho em produção
7. **Avaliações Éticas**: Análises das implicações éticas
## 3.16. Gestão de Riscos no ALM
### 3.16.1. Processo de Gestão de Riscos
O ALM da Pragmatismo implementa um processo estruturado de gestão de riscos:
1. **Identificação**: Identificação sistemática de riscos
2. **Análise**: Avaliação da probabilidade e impacto
3. **Avaliação**: Priorização com base em critérios definidos
4. **Tratamento**: Desenvolvimento e implementação de planos de mitigação
5. **Monitoramento**: Acompanhamento contínuo da eficácia das medidas
6. **Comunicação**: Comunicação regular sobre riscos aos stakeholders
7. **Melhoria**: Aprimoramento contínuo do processo
### 3.16.2. Categorias de Riscos para Projetos de IA e General Bots
O ALM considera as seguintes categorias de riscos específicas para projetos de IA:
1. **Riscos Técnicos**: Relacionados à tecnologia e sua implementação
2. **Riscos de Dados**: Relacionados à qualidade, disponibilidade e segurança dos dados
3. **Riscos Éticos**: Relacionados às implicações éticas do sistema
4. **Riscos Regulatórios**: Relacionados à conformidade com regulamentações
5. **Riscos de Mercado**: Relacionados à aceitação do mercado
6. **Riscos Operacionais**: Relacionados à operação do sistema
7. **Riscos Reputacionais**: Relacionados à reputação da organização
### 3.16.3. Matriz de Riscos
O ALM utiliza uma matriz de riscos para categorizar e priorizar riscos:
| Probabilidade/Impacto | Baixo | Médio | Alto | Crítico |
|-----------------------|-------|-------|------|---------|
| Muito Alta | Médio | Alto | Crítico | Crítico |
| Alta | Médio | Médio | Alto | Crítico |
| Média | Baixo | Médio | Alto | Alto |
| Baixa | Baixo | Baixo | Médio | Alto |
| Muito Baixa | Baixo | Baixo | Baixo | Médio |
## 3.17. Auditoria e Compliance no ALM
### 3.17.1. Processo de Auditoria
O ALM da Pragmatismo implementa um processo estruturado de auditoria:
1. **Planejamento**: Definição do escopo, objetivos e critérios
2. **Preparação**: Coleta de informações e documentação
3. **Execução**: Realização da auditoria com base no planejamento
4. **Relatório**: Documentação dos resultados e achados
5. **Acompanhamento**: Monitoramento da implementação das correções
6. **Fechamento**: Encerramento formal da auditoria
7. **Aprendizado**: Incorporação de lições aprendidas
### 3.17.2. Trilhas de Auditoria
O ALM mantém trilhas de auditoria para as seguintes atividades:
1. **Acesso ao Sistema**: Registro de todas as tentativas de acesso
2. **Alterações de Configuração**: Registro de alterações em configurações
3. **Alterações de Código**: Registro de alterações em código-fonte
4. **Implantações**: Registro de todas as implantações
5. **Processamento de Dados**: Registro de operações de processamento de dados
6. **Incidentes de Segurança**: Registro de incidentes e resposta
7. **Atividades Administrativas**: Registro de atividades administrativas
### 3.17.3. Relatórios de Compliance
O ALM gera os seguintes relatórios de compliance:
1. **Relatório de Análise de Lacunas**: Identificação de lacunas de conformidade
1. **Plano de Ação de Remediação**: Plano para resolver lacunas identificadas
1. **Relatório de Progresso**: Acompanhamento da implementação de correções
1. **Relatório de Incidentes**: Detalhes sobre incidentes e resposta
## 3.18. Treinamento e Capacitação
### 3.18.1. Programa de Treinamento ALM
O programa de treinamento ALM da Pragmatismo inclui:
1. **Onboarding**: Treinamento inicial para novos membros da equipe
2. **Treinamento Técnico**: Capacitação em ferramentas e tecnologias
3. **Treinamento de Segurança**: Capacitação em práticas de segurança
4. **Treinamento de Compliance**: Capacitação em requisitos regulatórios
5. **Treinamento Específico de IA**: Capacitação em desenvolvimento de IA
6. **Treinamento Ético**: Capacitação em questões éticas de IA
7. **Treinamento de Liderança**: Capacitação para gerentes e líderes
### 3.18.2. Materiais de Treinamento
Os seguintes materiais de treinamento são disponibilizados:
1. **Documentação**: Documentação detalhada de processos e ferramentas
2. **Vídeos**: Tutoriais em vídeo para conceitos importantes
3. **Workshops**: Materiais para workshops interativos
4. **Guides**: Guias passo-a-passo para tarefas comuns
5. **FAQs**: Respostas para perguntas frequentes
6. **Case Studies**: Estudos de caso para aprendizado baseado em problemas
7. **Simulações**: Simulações para prática em ambiente seguro
### 3.18.3. Certificações Recomendadas
As seguintes certificações são recomendadas para a equipe:
1. **Segurança**: Certificações em segurança da informação (CISSP, Security+)
1. **Compliance**: Certificações em compliance (CISA, CRISC)
1. **IA e ML**: Certificações em IA e Machine Learning
1. **Cloud**: Certificações em plataformas de nuvem (Azure, AWS)
1. **Ágil/Scrum**: Certificações em metodologias ágeis
1. **Específicas da Indústria**: Certificações relacionadas à indústria do cliente
## 3.19. Continuidade de Negócios
### 3.19.1. Backup e Recuperação
O ALM da Pragmatismo implementa as seguintes práticas de backup e recuperação:
1. **Backup Regular**: Backup automatizado em intervalos definidos
2. **Verificação de Integridade**: Verificação regular da integridade dos backups
3. **Testes de Restauração**: Testes periódicos de restauração
4. **Armazenamento Seguro**: Armazenamento seguro de backups
5. **Retenção Adequada**: Política de retenção alinhada a requisitos regulatórios
6. **Documentação**: Documentação detalhada dos procedimentos
7. **Treinamento**: Capacitação da equipe em procedimentos de recuperação
### 3.19.2. Plano de Continuidade de Negócios
O ALM integra-se ao plano de continuidade de negócios através de:
1. **Análise de Impacto**: Identificação de sistemas e processos críticos
2. **Estratégias de Recuperação**: Definição de estratégias para diferentes cenários
3. **Planos de Resposta**: Procedimentos detalhados para diversos cenários
4. **Equipes de Resposta**: Definição clara de papéis e responsabilidades
5. **Comunicação**: Procedimentos de comunicação durante incidentes
6. **Testes Regulares**: Exercícios e simulações para validar planos
7. **Melhoria Contínua**: Aprimoramento contínuo com base em lições aprendidas
### 3.19.3. Gestão de Incidentes
O ALM implementa um processo estruturado de gestão de incidentes:
1. **Detecção**: Mecanismos para detecção rápida de incidentes
2. **Classificação**: Classificação de incidentes por gravidade e impacto
3. **Resposta**: Procedimentos para resposta a incidentes
4. **Contenção**: Medidas para limitar o impacto do incidente
5. **Erradicação**: Eliminação da causa raiz do incidente
6. **Recuperação**: Restauração de operações normais
7. **Aprendizado**: Incorporação de lições aprendidas
### 3.20.5. Configuração de Ambiente para Projetos de IA
1. **Ambiente Python**: Configuração de ambiente Python com ferramentas específicas
2. **Frameworks de IA**: Instalação de frameworks como TensorFlow, PyTorch
3. **Ferramentas de MLOps**: Instalação de ferramentas como MLflow, DVC
4. **Jupyter Notebooks**: Configuração para desenvolvimento exploratório
5. **Ferramentas de Visualização**: Instalação de bibliotecas de visualização
6. **Ferramentas de Processamento de Dados**: Instalação de bibliotecas de processamento
7. **Conexões com Serviços de Nuvem**: Configuração de conexões com serviços de nuvem
### 3.20.6. Configurações Recomendadas
#### Visual Studio Code Keybindings Sugeridos
```json
[
{ "key": "ctrl+shift+s", "command": "workbench.action.files.saveAll" },
{ "key": "ctrl+w", "command": "workbench.action.closeActiveEditor", "when": "!editorIsOpen" },
{ "key": "ctrl+shift+w", "command": "workbench.action.files.saveAll" }
]
```
#### Extensões Recomendadas para Visual Studio Code
1. **Python**: Suporte para desenvolvimento Python
2. **Jupyter**: Suporte para Jupyter Notebooks
6. **ESLint**: Análise estática para JavaScript
7. **Prettier**: Formatação de código
## 3.21. Processo de Entrega e Implantação
### 3.21.1. Entrega Contínua
O ALM da Pragmatismo implementa práticas de entrega contínua:
1. **Automação**: Automação completa do processo de build e deploy
2. **Testes Automatizados**: Execução automática de testes
3. **Ambientes**: Múltiplos ambientes (desenvolvimento, teste, produção)
4. **Promoção Controlada**: Promoção controlada entre ambientes
5. **Reversão Rápida**: Capacidade de reverter rapidamente mudanças
6. **Monitoramento**: Monitoramento contínuo de implantações
7. **Feedback Rápido**: Mecanismos para feedback rápido
### 3.21.2. Gates de Qualidade
Os seguintes gates de qualidade são implementados nos pipelines:
1. **Análise de Código**: Verificação de qualidade e segurança do código
2. **Testes Unitários**: Execução de testes unitários
3. **Testes de Integração**: Execução de testes de integração
4. **Testes de Segurança**: Execução de testes de segurança
5. **Testes de Performance**: Execução de testes de performance
6. **Testes de Compliance**: Verificação de compliance
7. **Aprovações**: Aprovações baseadas em papéis
### 3.21.3. Implantação Segura
O ALM implementa as seguintes práticas para implantação segura:
1. **Blue/Green Deployment**: Minimização de downtime e risco
2. **Canary Releases**: Implantação gradual para detecção precoce de problemas
3. **Feature Flags**: Controle granular de funcionalidades
4. **Rollback Automatizado**: Capacidade de reverter automaticamente em caso de falha
5. **Monitoramento Em Tempo Real**: Monitoramento durante a implantação
6. **Checklists de Implantação**: Verificações antes e após implantação
7. **Post-Mortem**: Análise detalhada após cada implantação significativa
### 3.21.4. Entrega do Código-Fonte
1. O código-fonte deve ser desenvolvido internamente no Projeto Base no processo de personalização;
2. A partir do momento em que a personalização via mecanismo declarativo atingiu o processo máximo, um desvio (branch) pode ser aberto para confecção do código sob medida da ou do cliente;
3. O código-fonte entregue deve conter apenas o código relativo à lista de requisitos do projeto, desativando as partes comuns (removendo o código) do Projeto Base não descritas na especificação original do projeto primordialmente para diminuir superfície de ataque.
4. **Sanitização de Código**: Remoção de credenciais, comentários sensíveis e informações internas
5. **Documentação**: Documentação completa do código e sua utilização
6. **Licenciamento**: Inclusão de informações de licenciamento adequadas
7. **Verificação Final**: Verificação final de segurança e qualidade

View file

@ -1,61 +0,0 @@
---
sidebar_position: 30
---
# .gbkb Reference
![generalbots-2018](https://user-images.githubusercontent.com/65977273/94922431-949c3900-0490-11eb-800a-6b478d689f2a.png)
## Media Types
There are several media types that can be used in .gbkb package folder.
The table below shows the description of each one of them:
| Folder | File description |
|----------|----------------------------------------------------------------------------------------------------|
| tabular | .csv, .tsv or any tabular file used as an pair of question/answer and an optional hierarchy. |
| images | Images that can be used to enrich the answer to the user in the [Projector](./glossary.md) |
| videos | Videos used to answer questions made by users. |
| subjects | List of images of subjects that can be trated by the bot. |
| articles | Articles in .md that will be presented instead of text-only answers. |
## Presenting Answers
## With text
To answer with a text phrase, just type the answer in the Answer column. Whenever the
search engine elects the answer as the next thing to say, the text present in this
column will be talked.
## With an article
A Markdown (.md) file can be used as an answer instead of plain text, so the experience
will be more appealing whenever the channel allow the text to be present that way. The
answer column specifies the .md file to be presented whenever the question is elected
as matching the user intent.
## With a video
To display a video on the projector, just provide the Video URL to the desired question,
instead of specifing an text answer in the column **answer**.
The list of answers is a series of tabular files (.tsv, .csv, etc.) inside the **tabular** directory of the .gbkb.
## With a Script (PREVIEW)
To call a VBA script stored on a .gbdialog, just specify the script file name in a form of `script:<FILENAME>` instead of specifing an text answer in the column **answer**. When someone asks that match the **question**, the script will be invoked and the answer dialog will be started.
## Subject Menu
### Associating a [Subject Menu Item](glossary.md#subject-menu-item) to a Dialog
To call a dialog just when an answer would provide the desired question, just
use dialog:*dialogName* instead of specifing an text answer.
## How To
### Updating the Bot Knowledge Base (.gbkb folder)
The subjects.json file contains all information related to the subject tree and can be used to build the menu carrousel as well give a set of words to be used as subject catcher in the conversation. A hierarchy can be specified.
### Use Excel for (Hierarchical) Knowledge Base Editing
![General Bots Inside Excel can enable bot production the masses](https://github.com/pragmatismo-io/BotServer/blob/master/docs/images/general-bots-composing-subjects-json-and-excel.gif)

View file

@ -0,0 +1,379 @@
---
title: 4. Automation
sidebar_label: 4. Automation
sidebar_position: 4
---
## 4.1 Introdução à Automação na Pragmatismo
A automação representa um pilar fundamental na estratégia tecnológica da Pragmatismo, sendo a General Bots nossa plataforma proprietária que democratiza o poder da automação para todos os colaboradores. Neste capítulo, abordaremos como a automação se integra à nossa cultura organizacional, estabelecendo um ambiente onde todos podem contribuir para o desenvolvimento de soluções automatizadas, independentemente de seu conhecimento técnico prévio.
A filosofia central que guiamos é que **a automação deve ser intrínseca** - não apenas uma ferramenta externa, mas parte do DNA de todas as operações. Acreditamos que cada colaborador pode participar ativamente na criação e implementação de automações, contribuindo para um ecossistema de eficiência e inovação contínua.
### 4.1.1. Missão e Visão de Automação
**Missão:** Capacitar cada colaborador a identificar, desenvolver e implementar automações que otimizem processos e aumentem a produtividade organizacional.
**Visão:** Criar um ambiente de trabalho onde a automação seja intrínseca a todos os processos, com participação ativa e colaborativa de toda a equipe, transformando desafios em soluções automatizadas.
### 4.1.2. Princípios Fundamentais da Automação na Pragmatismo
1. **Democratização da Automação:** Todos podem programar, todos podem automatizar.
2. **Facilidade de Uso:** Soluções acessíveis a colaboradores com qualquer nível de conhecimento técnico.
3. **Conformidade Integrada:** Toda automação deve aderir aos padrões de segurança e conformidade desde sua concepção.
4. **Colaboração Cruzada:** Equipes multifuncionais trabalhando juntas em soluções de automação.
5. **Melhoria Contínua:** Iteração constante e aprimoramento das automações existentes.
## 4.2. General Bots: Nossa Plataforma Proprietária de Automação
A General Bots (GB) é a plataforma desenvolvida pela Pragmatismo que permite democratizar a criação e implementação de automações. Sua arquitetura foi desenhada para permitir que colaboradores com diversos níveis de conhecimento técnico possam criar soluções sob medida para seus desafios diários.
### 4.2.1. Arquitetura da Plataforma
A plataforma General Bots foi construída sobre uma arquitetura moderna que integra:
- **Núcleo de Processamento de Linguagem Natural:** Permite comunicação intuitiva com a plataforma.
- **Motor de Automação LLM-BASIC:** Framework proprietário que permite a criação de automações através de uma linguagem simplificada.
- **Conectores Pré-construídos:** Integrações prontas para uso com sistemas internos e externos.
- **Mecanismo de Segurança e Conformidade:** Garantia que toda automação está em conformidade com políticas internas e regulamentações externas.
- **Sistema de Monitoramento e Análise:** Acompanhamento do desempenho das automações implementadas.
### 4.2.2. LLM-BASIC: Nossa Linguagem de Automação
O LLM-BASIC é o coração da plataforma General Bots, uma linguagem de programação simplificada que permite a criação de automações complexas através de comandos intuitivos. Exemplo de sintaxe básica:
```
PARAM name AS STRING LIKE "Nome" DESCRIPTION "Descrição do parâmetro"
IF condição THEN ação
SAVE "arquivo.csv", dados
RETURN "mensagem"
```
Os principais componentes da linguagem incluem:
1. **Definição de Parâmetros:** Especificação dos dados necessários para a automação.
2. **Lógica Condicional:** Definição de fluxos baseados em condições.
3. **Ações de Sistema:** Comandos para interagir com outros sistemas.
4. **Persistência de Dados:** Mecanismos para armazenar e recuperar informações.
5. **Comunicação:** Funções para interagir com usuários e outros sistemas.
## 4.3. Democratização da Automação: Todos Podem Programar
### 4.3.1. Princípio da Automação Intrínseca
A automação intrínseca parte do princípio que o conhecimento sobre processos está distribuído pela organização. Ao capacitar todos os colaboradores para criar automações, aproveitamos esse conhecimento distribuído para identificar e solucionar ineficiências de forma mais eficaz.
### 4.3.2. Níveis de Engajamento com Automação
Na Pragmatismo, reconhecemos diferentes níveis de engajamento com automação:
1. **Identificadores:** Colaboradores que identificam oportunidades de automação.
2. **Designers:** Profissionais que desenham o fluxo lógico da automação.
3. **Desenvolvedores Cidadãos:** Colaboradores que implementam automações simples usando LLM-BASIC.
4. **Especialistas em Automação:** Profissionais dedicados que implementam automações complexas e auxiliam outros colaboradores.
### 4.3.3. Cultura de "Automatize Primeiro"
Incentivamos uma cultura onde a primeira pergunta diante de tarefas repetitivas seja: "Como posso automatizar isso?" Para cultivar essa mentalidade:
- **Tempo Dedicado à Automação:** Reservamos um percentual do tempo de todos os colaboradores para projetos de automação.
- **Reconhecimento de Automações:** Celebramos e reconhecemos implementações bem-sucedidas.
- **Comunidade de Prática:** Mantemos grupos onde conhecimentos e experiências são compartilhados.
- **Desafios de Automação:** Promovemos hackathons e competições internas de automação.
## 4.4. Implementação de Automações na Prática
### 4.4.1. Ciclo de Vida da Automação
Toda automação na Pragmatismo segue um ciclo de vida estruturado:
1. **Identificação:** Reconhecimento de processos candidatos à automação.
2. **Avaliação:** Análise de viabilidade e impacto potencial.
3. **Design:** Especificação do fluxo e requisitos.
4. **Desenvolvimento:** Implementação da automação usando LLM-BASIC ou outras ferramentas.
5. **Teste:** Validação em ambiente controlado.
6. **Implantação:** Disponibilização da automação para usuários.
7. **Monitoramento:** Acompanhamento do desempenho.
8. **Iteração:** Aprimoramento contínuo baseado em feedback e métricas.
### 4.4.2. Metodologia de Desenvolvimento de Automações
Adotamos uma abordagem ágil para o desenvolvimento de automações:
- **Sprints Curtos:** Ciclos de desenvolvimento de 1-2 semanas.
- **Entregas Incrementais:** Começamos com versões mínimas viáveis e expandimos.
- **Feedback Constante:** Coleta e incorporação de feedback dos usuários.
- **Documentação Viva:** Documentação que evolui junto com a automação.
### 4.4.3. Padrões e Melhores Práticas
Estabelecemos padrões para garantir a qualidade e sustentabilidade das automações:
- **Nomenclatura Padronizada:** Convenções claras para nomear variáveis, funções e automações.
- **Modularidade:** Construção de componentes reutilizáveis.
- **Tratamento de Erros:** Mecanismos robustos para lidar com exceções.
- **Logs e Rastreabilidade:** Registro detalhado de ações para auditoria.
- **Verificações de Segurança:** Validações para prevenir vulnerabilidades.
## 4.5. Casos de Uso e Exemplos Práticos
### 4.5.1. Automação de Processos de Negócio (BPA)
#### Agendamento de Reuniões Automatizado
Um exemplo prático é o sistema de agendamento de reuniões implementado com LLM-BASIC:
```
PARAM name AS STRING LIKE "Adauto" DESCRIPTION "Nome da pessoa que o usuário está tentando contatar."
PARAM type AS STRING LIKE "call|video|email" DESCRIPTION "Tipo de contato solicitado"
PARAM priority AS INTEGER LIKE "1|2|3" DESCRIPTION "Nível de prioridade da reunião"
PARAM date AS DATE LIKE "2024-01-30" DESCRIPTION "Data desejada para a reunião"
PARAM time AS TIME LIKE "14:30" DESCRIPTION "Horário desejado para a reunião"
PARAM duration AS INTEGER LIKE "30" DESCRIPTION "Duração em minutos, padrão é 30"
PARAM subject AS STRING LIKE "Revisão de Projeto" DESCRIPTION "Assunto ou tópico da reunião"
PARAM attendees AS STRING ARRAY LIKE "Adauto da A Geradora" DESCRIPTION "Participantes adicionais"
DESCRIPTION "Chamado quando alguém está solicitando contato com alguém."
LOG "Agendando solicitação de reunião para ${name}"
LOG "Tipo: ${type}, Prioridade: ${priority}, Data: ${date}, Hora: ${time}"
items = FIND "rob.csv", "contact LIKE ${name}"
text = REWRITE "Faça um relatório rápido de nome, resumo do histórico, ação" ${TOYAML(items)}
TALK "Encontrei os seguintes itens atribuídos a você: ${text}"
// Análise de prioridade e histórico
IF priority >= 950 THEN
urgentNote = "Reunião de alta prioridade"
ELSE
urgentNote = "Reunião de prioridade padrão"
END IF
// Verifica método de contato preferido
preferredContact = ""
IF items.VIDEO THEN
preferredContact = "video"
ELSIF items.PRP THEN
preferredContact = "presencial"
ELSE
preferredContact = "chamada"
END IF
// Cria reunião
meeting = CREATE MEETING {
subject: "${subject}",
startTime: "${date} ${time}",
duration: ${duration},
type: "${type}",
priority: ${priority},
attendees: ${attendees},
notes: "${urgentNote}\nHistórico: ${items.history}\nContato preferido: ${preferredContact}"
}
TALK "Reunião agendada com sucesso. Um convite de calendário será enviado para todos os participantes."
```
Este exemplo demonstra como uma tarefa comum, como agendamento de reuniões, pode ser completamente automatizada com nosso framework.
### 4.5.2. Automação Robótica de Processos (RPA)
Utilizando nossa plataforma, implementamos automações RPA para:
- **Processamento de Notas Fiscais:** Extração automática de dados e integração com sistemas contábeis.
- **Onboarding de Colaboradores:** Automatização da criação de contas e configuração de acessos.
- **Conciliação Bancária:** Verificação e reconciliação de transações financeiras.
- **Geração de Relatórios:** Coleta e consolidação de dados de múltiplos sistemas.
### 4.5.3. Automação de Atendimento ao Cliente
Nossa plataforma viabiliza automações de atendimento como:
- **Chatbots de Suporte:** Assistentes virtuais para resolução de problemas comuns.
- **Triagem de Tickets:** Categorização e roteamento automático de solicitações.
- **Respostas Automáticas:** Geração de respostas para perguntas frequentes.
- **Coleta de Feedback:** Automatização do processo de coleta e análise de feedback.
## 4.6. Conformidade e Segurança em Automações
### 4.6.1. Considerações de Conformidade
Toda automação deve estar alinhada com requisitos de conformidade:
- **ISO 27001:** Controles de segurança da informação.
- **HIPAA/LGPD:** Proteção de dados pessoais e sensíveis.
- **Políticas Internas:** Alinhamento com diretrizes organizacionais.
### 4.6.2. Avaliação de Riscos em Automações
Antes da implementação, cada automação passa por uma avaliação de riscos:
- **Identificação de Riscos:** Mapeamento de vulnerabilidades potenciais.
- **Análise de Impacto:** Avaliação das consequências em caso de falha.
- **Estratégias de Mitigação:** Definição de controles para reduzir riscos.
- **Monitoramento Contínuo:** Acompanhamento para identificar novos riscos.
### 4.6.3. Auditoria e Rastreabilidade
Implementamos mecanismos para garantir a auditabilidade das automações:
- **Logs Detalhados:** Registro de todas as ações executadas.
- **Histórico de Versões:** Controle das alterações realizadas.
- **Assinaturas Digitais:** Identificação dos responsáveis por cada alteração.
- **Trilhas de Auditoria:** Documentação completa do ciclo de vida.
## 4.7. Governança de Automação
### 4.7.1. Centro de Excelência em Automação (CoE)
Estabelecemos um Centro de Excelência dedicado à automação, responsável por:
- **Definição de Padrões:** Estabelecimento de melhores práticas.
- **Suporte Técnico:** Assistência a desenvolvedores cidadãos.
- **Capacitação:** Treinamentos e recursos educacionais.
- **Avaliação de Qualidade:** Revisão e certificação de automações.
- **Compartilhamento de Conhecimento:** Disseminação de aprendizados.
### 4.7.2. Comitê de Governança de Automação
Um comitê multidisciplinar supervisiona o programa de automação:
- **Aprovação de Projetos:** Avaliação e priorização de iniciativas.
- **Alocação de Recursos:** Distribuição de recursos para projetos de automação.
- **Gestão de Portfólio:** Visão consolidada de todas as automações.
- **Medição de Resultados:** Avaliação do impacto das automações implementadas.
- **Alinhamento Estratégico:** Garantia de alinhamento com objetivos organizacionais.
### 4.7.3. Políticas e Procedimentos
Estabelecemos diretrizes claras para o desenvolvimento e uso de automações:
- **Política de Desenvolvimento Cidadão:** Regras para desenvolvimento distribuído.
- **Procedimento de Certificação:** Processo para validação de automações.
- **Política de Acesso:** Controles para acesso a recursos e dados.
- **Procedimento de Mudança:** Gestão de alterações em automações em produção.
- **Política de Recuperação:** Diretrizes para recuperação em caso de falhas.
## 4.8. Capacitação e Desenvolvimento de Talentos
### 4.8.1. Programa de Capacitação em Automação
Implementamos um programa abrangente de capacitação:
- **Academia de Automação:** Treinamentos estruturados por nível de proficiência.
- **Certificação Interna:** Reconhecimento formal de competências adquiridas.
- **Mentoria:** Acompanhamento por especialistas em automação.
- **Recursos de Autoestudo:** Biblioteca de materiais e tutoriais.
- **Workshops Práticos:** Sessões hands-on para aplicação de conhecimentos.
### 4.8.2. Desenvolvimento de Carreiras em Automação
Criamos trajetórias de carreira específicas para automação:
- **Desenvolvedor Cidadão:** Colaboradores que automatizam processos em sua área.
- **Especialista em Automação:** Profissionais dedicados a projetos complexos.
- **Arquiteto de Automação:** Responsáveis pelo design de soluções integradas.
- **Líder de Automação:** Gestores de equipes e iniciativas de automação.
### 4.8.3. Comunidade de Prática
Fomentamos uma comunidade ativa de entusiastas de automação:
- **Fóruns de Discussão:** Espaço para troca de experiências e dúvidas.
- **Bibliotecas Compartilhadas:** Repositório de componentes reutilizáveis.
- **Eventos de Networking:** Encontros regulares para compartilhamento.
- **Reconhecimento de Contribuições:** Premiação de inovações significativas.
## 4.9. Medição e Melhoria Contínua
### 4.9.1. Indicadores-Chave de Desempenho (KPIs)
Monitoramos o sucesso do programa de automação através de métricas como:
- **Tempo Economizado:** Horas recuperadas por automações.
- **ROI de Automação:** Retorno sobre investimento em projetos de automação.
- **Taxa de Adoção:** Percentual de colaboradores engajados em automação.
- **Redução de Erros:** Diminuição de falhas em processos automatizados.
- **Tempo de Implementação:** Velocidade de desenvolvimento de novas automações.
- **Satisfação do Usuário:** Feedback sobre soluções automatizadas.
### 4.9.2. Ciclos de Feedback e Aprimoramento
Implementamos mecanismos formais para evolução contínua:
- **Revisões Periódicas:** Avaliação regular de automações existentes.
- **Coleta de Sugestões:** Canais para receber ideias de melhorias.
- **Análise de Incidentes:** Investigação e aprendizado a partir de falhas.
- **Benchmarking:** Comparação com melhores práticas do mercado.
- **Programa de Ideias:** Incentivo à proposição de inovações.
### 4.9.3. Evolução da Plataforma General Bots
Mantemos um roadmap de evolução contínua para nossa plataforma:
- **Novas Funcionalidades:** Adição regular de recursos.
- **Atualizações de Segurança:** Reforço contínuo da proteção.
- **Melhorias de Usabilidade:** Aprimoramento da experiência do usuário.
- **Expansão de Conectores:** Integração com novos sistemas.
- **Evolução da Linguagem LLM-BASIC:** Ampliação de capacidades.
## 4.10. Tendências e Futuro da Automação
### 4.10.1. Inteligência Artificial e Aprendizado de Máquina
Estamos integrando capacidades avançadas de IA à nossa plataforma:
- **Automações Preditivas:** Antecipação de necessidades baseada em padrões.
- **Processamento de Linguagem Natural:** Interfaces conversacionais avançadas.
- **Análise de Imagens:** Processamento automático de documentos visuais.
- **Detecção de Anomalias:** Identificação proativa de problemas.
- **Automações Auto-otimizáveis:** Sistemas que aprendem e melhoram autonomamente.
### 4.10.2. Hiperautomação
Avançamos para uma abordagem integrada de automação:
- **Orquestração End-to-End:** Automação completa de processos complexos.
- **Automação Colaborativa:** Integração fluida entre humanos e sistemas.
- **Tomada de Decisão Autônoma:** Sistemas com capacidade de decisão.
- **Análise em Tempo Real:** Processamento e reação instantâneos.
- **Automação Baseada em Contexto:** Adaptação a diferentes cenários.
### 4.10.3. Nossa Visão para o Futuro
Vislumbramos um futuro onde:
- **Automação será Ubíqua:** Presente em todos os aspectos do trabalho.
- **Colaboradores Focados em Valor:** Liberados de tarefas rotineiras.
- **Composability:** Combinação livre de componentes para novas soluções.
- **Inteligência Coletiva:** Aproveitamento do conhecimento distribuído.
- **Autonomia Digital:** Sistemas capazes de autogestão e adaptação.
## 4.11. Conclusão e Próximos Passos
A jornada de automação na Pragmatismo é contínua e evolutiva. Ao capacitar todos os colaboradores a participarem deste processo, criamos um ambiente onde a inovação floresce e a eficiência é constantemente aprimorada.
Convidamos cada membro da organização a:
1. **Explorar:** Conhecer as capacidades da plataforma General Bots.
2. **Identificar:** Reconhecer oportunidades de automação em seu trabalho diário.
3. **Aprender:** Participar dos programas de capacitação disponíveis.
4. **Implementar:** Criar suas primeiras automações, mesmo que simples.
5. **Compartilhar:** Contribuir com a comunidade de prática.
Juntos, estamos construindo uma organização onde a automação é verdadeiramente intrínseca, transformando o modo como trabalhamos e entregamos valor.
## 4.12. Recursos Adicionais
- **Academia de Automação:** [intranet.pragmatismo.com.br/academia-automacao](https://intranet.pragmatismo.com.br/academia-automacao)
- **Documentação da General Bots:** [docs.generalbots.com.br](https://docs.generalbots.com.br)
- **Comunidade de Prática:** [community.pragmatismo.com.br](https://community.pragmatismo.com.br)
- **Biblioteca de Componentes:** [components.generalbots.com.br](https://components.generalbots.com.br)
- **Suporte Técnico:** [suporte@pragmatismo.com.br](mailto:suporte@pragmatismo.com.br)
---
**Referências Normativas:**
- ISO/IEC 27001:2013 - Sistema de Gestão de Segurança da Informação
- Lei Geral de Proteção de Dados (LGPD) - Lei nº 13.709/2018
- HIPAA (Health Insurance Portability and Accountability Act)
- Política de Segurança da Informação da Pragmatismo
- Manual de Governança de TI da Pragmatismo

View file

@ -1,19 +0,0 @@
---
sidebar_position: 40
---
# .gbtheme Reference
![generalbots-2018](https://user-images.githubusercontent.com/65977273/94922431-949c3900-0490-11eb-800a-6b478d689f2a.png)
## How To
### Creating a new Theme folder (.gbtheme folder)
A theme is composed of some CSS files and images. That set of files can change
everything in the General Bot UI. Use them extensively before going to change
the UI application itself (HTML & JS).
## Importance of the themes linked to the visual with user.
The css complements for the final visual with the user, aesthetics is linked to the general usability of GeneralBots which facilitates the interaction with the user. GeneralBots uses what is most current to improve its interface through css.

View file

@ -0,0 +1,448 @@
---
title: 5. Data Science & IoT
sidebar_label: 5. Data Science & IoT
sidebar_position: 5
---
A Pragmatismo adota uma abordagem centrada em código aberto para ciência de dados e Internet das Coisas (IoT), garantindo transparência, interoperabilidade e controle total sobre nossas soluções tecnológicas. Neste capítulo, apresentamos nossa visão, políticas e procedimentos relativos ao desenvolvimento e implementação de soluções de ciência de dados e IoT, fundamentadas em nossa filosofia de liberdade tecnológica e alinhadas com regulamentações vigentes.
Nossa abordagem open source nos permite evitar dependências de grandes empresas de tecnologia (Big Techs), preservando nossa autonomia tecnológica e facilitando a conformidade com regulamentações de privacidade e segurança de dados. Esta escolha estratégica representa não apenas uma preferência técnica, mas um compromisso com valores de transparência, comunidade e sustentabilidade digital.
### 5.1.1. Missão e Visão para Ciência de Dados & IoT
**Missão:** Desenvolver e implementar soluções de ciência de dados e IoT baseadas em tecnologias open source que proporcionem valor significativo aos negócios enquanto mantêm os mais altos padrões de privacidade, segurança e conformidade regulatória.
**Visão:** Estabelecer um ecossistema de ciência de dados e IoT totalmente baseado em ferramentas open source que capacite nossa organização a extrair insights valiosos de dados, sem comprometer a propriedade, a privacidade ou a segurança desses dados.
### 5.1.2. Princípios Fundamentais
1. **Soberania Tecnológica:** Manter controle total sobre nossa infraestrutura de dados e algoritmos.
2. **Transparência e Auditabilidade:** Garantir que todos os processos e algoritmos sejam transparentes e auditáveis.
3. **Privacidade por Design:** Incorporar princípios de privacidade desde a concepção das soluções.
4. **Ética de Dados:** Adotar práticas éticas em todas as etapas do ciclo de vida dos dados.
5. **Comunidade e Colaboração:** Contribuir ativamente para projetos open source e construir sobre o trabalho comunitário.
## 5.2. Stack Open Source para Ciência de Dados
### 5.2.1. Infraestrutura de Processamento de Dados
A Pragmatismo implementa uma infraestrutura robusta e escalável para processamento de dados, utilizando exclusivamente soluções open source:
#### 5.2.1.1. Plataformas de Processamento Distribuído
- **Apache Hadoop:** Framework para processamento distribuído de grandes conjuntos de dados.
- **HDFS (Hadoop Distributed File System):** Sistema de armazenamento distribuído.
- **YARN (Yet Another Resource Negotiator):** Gerenciador de recursos do cluster.
- **MapReduce:** Modelo de programação para processamento paralelo.
- **Apache Spark:** Engine unificada para análise de big data.
- **Spark Core:** Componente fundamental para processamento em memória.
- **Spark SQL:** Módulo para trabalhar com dados estruturados.
- **Spark Streaming:** Processamento de fluxos de dados em tempo real.
- **MLlib:** Biblioteca de machine learning.
- **GraphX:** API para processamento de grafos.
#### 5.2.1.2. Orquestração e Workflow
- **Apache Airflow:** Plataforma de orquestração de workflows de dados.
- **Luigi:** Framework para construção de pipelines de dados complexos.
- **Prefect:** Sistema de orquestração de fluxos de trabalho de dados modernos.
#### 5.2.1.3. Armazenamento e Processamento de Dados em Larga Escala
- **Apache Cassandra:** Banco de dados distribuído altamente escalável.
- **TimescaleDB:** Extensão do PostgreSQL otimizada para dados de séries temporais.
- **InfluxDB:** Banco de dados de séries temporais otimizado para IoT.
- **Apache Druid:** Base de dados analítica de alto desempenho.
### 5.2.2. Ferramentas de Ciência de Dados e Machine Learning
Nossa stack de ciência de dados e machine learning é composta por ferramentas open source robustas e maduras:
#### 5.2.2.1. Linguagens e Ambientes de Desenvolvimento
- **Python:** Principal linguagem para desenvolvimento de soluções de ciência de dados.
- **R:** Linguagem estatística para análises especializadas.
- **Julia:** Linguagem de alto desempenho para computação numérica.
- **Jupyter:** Ambiente interativo para exploração e desenvolvimento.
- **JupyterLab:** Interface avançada baseada em web.
- **JupyterHub:** Plataforma multi-usuário para notebooks.
- **Jupyter Book:** Criação de documentação interativa.
#### 5.2.2.2. Bibliotecas e Frameworks de Análise e Visualização
- **Análise de Dados:**
- **NumPy:** Computação numérica fundamental.
- **pandas:** Análise e manipulação de dados estruturados.
- **Dask:** Computação paralela para grandes volumes de dados.
- **Vaex:** Processamento de grandes datasets tabulares.
- **Visualização:**
- **Matplotlib:** Biblioteca abrangente para visualizações estáticas.
- **Seaborn:** Interface de alto nível para visualizações estatísticas.
- **Plotly Open Source:** Visualizações interativas.
- **Bokeh:** Visualizações interativas para web.
- **Dash:** Framework para aplicações analíticas web.
- **Apache Superset:** Plataforma de exploração e visualização de dados.
- **Grafana:** Plataforma para monitoramento e análise.
#### 5.2.2.3. Machine Learning e Deep Learning
- **Frameworks de Machine Learning:**
- **scikit-learn:** Biblioteca abrangente para machine learning.
- **XGBoost:** Implementação otimizada de árvores de decisão gradient boosted.
- **LightGBM:** Framework de gradient boosting de alta eficiência.
- **CatBoost:** Biblioteca para gradient boosting em dados categóricos.
- **mlflow:** Plataforma para gerenciamento do ciclo de vida de ML.
- **Deep Learning:**
- **PyTorch:** Framework flexível para deep learning.
- **TensorFlow (Apache 2.0):** Plataforma de ML de ponta a ponta.
- **Keras:** API de alto nível para redes neurais.
- **Hugging Face Transformers:** Biblioteca para modelos de linguagem natural.
- **Onnx:** Representação aberta para modelos de ML.
#### 5.2.2.4. Processamento de Linguagem Natural (NLP)
- **spaCy:** Biblioteca para NLP avançado.
- **NLTK:** Kit de ferramentas para processamento de linguagem natural.
- **Gensim:** Biblioteca para modelagem de tópicos e similaridade de documentos.
- **fastText:** Biblioteca para classificação de texto e representação de palavras.
- **StanfordNLP:** Suite de ferramentas NLP da Universidade de Stanford.
### 5.2.3. Ferramentas para IoT
Nossa infraestrutura IoT é construída inteiramente com tecnologias open source:
#### 5.2.3.1. Sistemas Operacionais e Firmware
- **Linux Embarcado:** Diversas distribuições para dispositivos IoT.
- **RIOT OS:** Sistema operacional para dispositivos com restrição de recursos.
- **Zephyr Project:** Sistema operacional escalável para dispositivos conectados.
- **OpenWrt:** Linux para dispositivos embarcados (roteadores, gateways).
#### 5.2.3.2. Protocolos de Comunicação
- **MQTT:** Protocolo leve para mensagens de publish/subscribe.
- **CoAP:** Protocolo de aplicação web para dispositivos restritos.
- **LwM2M:** Protocolo para gerenciamento de dispositivos IoT.
- **ZigBee:** Protocolo para redes de malha de baixa potência.
- **LoRaWAN:** Protocolo para redes de longo alcance e baixo consumo.
#### 5.2.3.3. Plataformas de Integração
- **Eclipse Mosquitto:** Broker MQTT leve.
- **Node-RED:** Ferramenta de programação visual para IoT.
- **Eclipse Kura:** Framework para gateways IoT.
- **ThingsBoard Community Edition:** Plataforma de desenvolvimento IoT.
- **EMQX:** Broker de mensagens escalável para IoT.
#### 5.2.3.4. Monitoramento e Gestão de Dispositivos
- **Zabbix:** Sistema de monitoramento de rede e aplicações.
- **Prometheus:** Sistema de monitoramento e alerta.
- **Grafana:** Visualização de métricas.
- **InfluxDB:** Armazenamento de dados de séries temporais.
- **Eclipse Ditto:** Framework para gêmeos digitais.
## 5.3. Governança de Dados
### 5.3.1. Políticas de Gestão de Dados
A Pragmatismo implementa uma abordagem abrangente para governança de dados:
#### 5.3.1.1. Classificação e Catalogação de Dados
Todos os dados são classificados e catalogados seguindo uma taxonomia padronizada:
- **Dados Públicos:** Informações que podem ser livremente compartilhadas.
- **Dados Internos:** Informações de uso interno da organização.
- **Dados Confidenciais:** Informações sensíveis com acesso restrito.
- **Dados Pessoais:** Informações que identificam indivíduos, sujeitas à LGPD/GDPR.
- **Dados Críticos:** Informações essenciais para operações de negócio.
#### 5.3.1.2. Ciclo de Vida dos Dados
Estabelecemos políticas claras para cada fase do ciclo de vida dos dados:
1. **Coleta:** Procedimentos para aquisição ética e legal de dados.
2. **Processamento:** Diretrizes para transformação e análise de dados.
3. **Armazenamento:** Requisitos para armazenamento seguro de dados.
4. **Uso:** Políticas para utilização apropriada de dados.
5. **Compartilhamento:** Regras para transferência interna e externa de dados.
6. **Arquivamento:** Procedimentos para preservação de longo prazo.
7. **Descarte:** Métodos seguros para eliminação de dados.
#### 5.3.1.3. Qualidade de Dados
Implementamos controles para garantir a qualidade dos dados:
- **Precisão:** Correspondência com a realidade representada.
- **Completude:** Presença de todos os valores necessários.
- **Consistência:** Ausência de contradições nos dados.
- **Atualidade:** Grau de contemporaneidade dos dados.
- **Conformidade:** Aderência a formatos e padrões definidos.
### 5.3.2. Conformidade Regulatória
Nossa abordagem open source facilita a conformidade com regulamentações:
#### 5.3.2.1. LGPD (Lei Geral de Proteção de Dados)
Implementamos controles específicos para atender à LGPD:
- **Mapeamento de Dados Pessoais:** Identificação e documentação de todos os dados pessoais.
- **Base Legal para Processamento:** Documentação da base legal para cada operação.
- **Direitos dos Titulares:** Procedimentos para atendimento de solicitações.
- **Relatórios de Impacto:** Avaliação de impacto para processamentos de alto risco.
- **Controles de Acesso:** Restrição de acesso a dados pessoais.
#### 5.3.2.2. GDPR (General Data Protection Regulation)
Para operações que envolvem dados de cidadãos europeus:
- **Representante na UE:** Designação quando aplicável.
- **Transferências Internacionais:** Controles para transferências seguras.
- **Registros de Atividades:** Documentação detalhada de processamentos.
- **Notificação de Violações:** Procedimentos para notificação dentro de 72 horas.
#### 5.3.2.3. Regulamentações Setoriais
Dependendo do setor de atuação do projeto, implementamos controles adicionais:
- **Saúde (HIPAA/CFM):** Proteções específicas para dados de saúde.
- **Financeiro (BACEN/CVM):** Controles para dados financeiros e transacionais.
- **Governo (IN01/GSI):** Requisitos para projetos governamentais.
### 5.3.3. Segurança de Dados
Nossa estratégia de segurança para dados e IoT inclui:
#### 5.3.3.1. Criptografia End-to-End
- **Em Repouso:** Utilização de LUKS, eCryptfs e VeraCrypt.
- **Em Trânsito:** Implementação de TLS/SSL e VPN baseada em OpenVPN ou WireGuard.
- **Em Processamento:** Uso de técnicas de criptografia homomórfica quando aplicável.
#### 5.3.3.2. Controle de Acesso
- **Autenticação Multi-fator:** Implementada com soluções como FreeOTP ou privacyIDEA.
- **Autorização Baseada em Papéis:** Controles granulares com RBAC.
- **Gerenciamento de Identidade:** Utilização de soluções como Keycloak.
- **Auditoria de Acesso:** Logging e monitoramento de todos os acessos.
#### 5.3.3.3. Segurança para Dispositivos IoT
- **Firmware Seguro:** Atualizações automáticas e assinadas digitalmente.
- **Hardening de Dispositivos:** Remoção de serviços desnecessários e configurações seguras.
- **Isolamento de Rede:** Segregação de dispositivos em VLANs separadas.
- **Monitoramento de Anomalias:** Detecção de comportamentos suspeitos.
## 5.4. Implementação de Projetos de Ciência de Dados & IoT
### 5.4.1. Metodologia de Desenvolvimento
Adotamos uma abordagem sistemática para projetos de ciência de dados e IoT:
#### 5.4.1.1. Ciclo de Vida de Projetos de Ciência de Dados
1. **Definição do Problema:**
- Identificação clara dos objetivos do negócio.
- Definição de métricas de sucesso.
- Avaliação de viabilidade e recursos necessários.
2. **Coleta e Preparação de Dados:**
- Identificação de fontes de dados relevantes.
- Extração e integração de dados.
- Limpeza e transformação de dados.
- Documentação de linhagem de dados.
3. **Exploração e Análise:**
- Análise exploratória de dados (EDA).
- Identificação de padrões e correlações.
- Formulação de hipóteses.
- Validação preliminar de abordagens.
4. **Modelagem:**
- Seleção de algoritmos e técnicas.
- Treinamento e validação de modelos.
- Ajuste de hiperparâmetros.
- Avaliação comparativa de modelos.
5. **Implementação:**
- Integração com sistemas existentes.
- Desenvolvimento de interfaces e APIs.
- Testes de desempenho e escalabilidade.
- Documentação técnica.
6. **Monitoramento e Manutenção:**
- Monitoramento de desempenho do modelo.
- Detecção de drift e degradação.
- Retreinamento periódico.
- Gestão de versões.
#### 5.4.1.2. Ciclo de Vida de Projetos de IoT
1. **Concepção:**
- Definição de requisitos funcionais e não-funcionais.
- Análise de viabilidade técnica e financeira.
- Seleção de hardware e protocolos.
- Avaliação de riscos de segurança.
2. **Design:**
- Arquitetura de sistemas.
- Topologia de rede.
- Design de interfaces de usuário.
- Planejamento de segurança.
3. **Desenvolvimento:**
- Programação de firmware e software.
- Configuração de infraestrutura.
- Integração com sistemas existentes.
- Implementação de controles de segurança.
4. **Testes:**
- Testes de conectividade e comunicação.
- Testes de resistência e performance.
- Testes de segurança (penetração, fuzz testing).
- Validação de requisitos.
5. **Implantação:**
- Instalação de dispositivos.
- Configuração de rede.
- Comissionamento de sistemas.
- Treinamento de usuários.
6. **Operação e Manutenção:**
- Monitoramento de desempenho.
- Atualizações de firmware.
- Manutenção preventiva.
- Gestão de incidentes.
### 5.4.2. Práticas de DevSecOps para Ciência de Dados e IoT
Integramos segurança em todo o ciclo de desenvolvimento:
#### 5.4.2.1. Integração Contínua (CI)
- **Automação de Testes:** Implementação com Jenkins, GitLab CI ou Drone CI.
- **Análise Estática de Código:** Utilização de SonarQube, Bandit e OWASP Dependency Check.
- **Verificação de Segurança:** Integração de ferramentas como OpenSCAP e OWASP ZAP.
#### 5.4.2.2. Implantação Contínua (CD)
- **Infraestrutura como Código:** Uso de Ansible, Terraform e SaltStack.
- **Containerização:** Implementação com Docker e Kubernetes.
- **Gerenciamento de Configuração:** Controle com Puppet ou Chef.
#### 5.4.2.3. MLOps (Machine Learning Operations)
- **Versionamento de Dados e Modelos:** Utilização de DVC (Data Version Control) e MLflow.
- **Pipelines Automatizados:** Implementação com Apache Airflow ou Kubeflow.
- **Monitoramento de Modelos:** Tracking com Prometheus e Grafana.
### 5.4.3. Documentação e Rastreabilidade
Mantemos documentação abrangente para garantir transparência e auditabilidade:
#### 5.4.3.1. Documentação de Código e Algoritmos
- **Documentação In-Code:** Comentários explicativos e docstrings.
- **Documentação de API:** Geração com Sphinx, MkDocs ou Javadoc.
- **Notebooks Documentados:** Explicações detalhadas em notebooks Jupyter.
#### 5.4.3.2. Documentação de Modelos
- **Cartões de Modelo:** Descrição completa baseada em Model Cards.
- **Linhagem de Dados:** Rastreamento com ferramentas como Apache Atlas.
- **Explicabilidade:** Documentação de métodos de interpretabilidade.
#### 5.4.3.3. Documentação de Dispositivos IoT
- **Inventário de Dispositivos:** Registro completo de todos os dispositivos.
- **Topologia de Rede:** Documentação da arquitetura de comunicação.
- **Configurações de Segurança:** Registro de parâmetros e controles.
## 5.5. Ética e Responsabilidade em Ciência de Dados & IoT
### 5.5.1. Princípios Éticos
Adotamos um conjunto robusto de princípios éticos:
#### 5.5.1.1. Justiça e Equidade
- **Detecção de Viés:** Uso de ferramentas como Aequitas e AI Fairness 360.
- **Mitigação de Discriminação:** Implementação de técnicas de debiasing.
- **Avaliação Diferencial:** Análise de impacto em diferentes grupos demográficos.
#### 5.5.1.2. Transparência e Explicabilidade
- **Interpretabilidade de Modelos:** Uso de SHAP, LIME e outros métodos explicativos.
- **Documentação Acessível:** Explicações claras sobre funcionamento de algoritmos.
- **Decisões Contestáveis:** Procedimentos para questionar resultados algorítmicos.
#### 5.5.1.3. Privacidade e Consentimento
- **Privacidade Diferencial:** Implementação de técnicas de anonimização robustas.
- **Minimização de Dados:** Coleta apenas de dados estritamente necessários.
- **Consentimento Informado:** Obtenção e documentação de consentimento explícito.
### 5.5.2. Avaliação de Impacto
Realizamos avaliações sistemáticas de impacto:
#### 5.5.2.1. Impacto Social
- **Análise de Stakeholders:** Identificação de todos os grupos afetados.
- **Avaliação de Consequências:** Análise de efeitos primários e secundários.
- **Consulta Comunitária:** Envolvimento de comunidades impactadas.
#### 5.5.2.2. Impacto Ambiental
- **Eficiência Energética:** Otimização do consumo de recursos computacionais.
- **Ciclo de Vida de Dispositivos:** Planejamento para descarte responsável.
- **Pegada de Carbono:** Monitoramento e redução de emissões.
#### 5.5.2.3. Avaliação de Impacto na Proteção de Dados (DPIA)
- **Mapeamento de Riscos:** Identificação de vulnerabilidades e ameaças.
- **Medidas de Mitigação:** Definição de controles compensatórios.
- **Documentação Formal:** Registro completo da avaliação conforme LGPD/GDPR.
## 5.6. Gestão de Talentos e Capacitação
### 5.6.1. Desenvolvimento de Competências
Investimos no desenvolvimento contínuo de habilidades:
#### 5.6.1.1. Programa de Capacitação
- **Trilhas de Aprendizado:** Percursos personalizados por função e nível.
- **Workshops Práticos:** Sessões hands-on com ferramentas open source.
- **Certificações:** Suporte para certificações relevantes como CDA, Azure Data Scientist, etc.
- **Projetos-Piloto:** Oportunidades para aplicação prática de conhecimentos.
#### 5.6.1.2. Recursos de Aprendizado
- **Biblioteca Digital:** Acesso a livros, artigos e cursos especializados.
- **Assinaturas:** Plataformas como DataCamp, Coursera e edX.
- **Conferências:** Participação em eventos da comunidade open source.
- **Grupos de Estudo:** Comunidades internas para troca de conhecimentos.
### 5.6.2. Comunidade e Colaboração
Fomentamos o compartilhamento de conhecimento:
#### 5.6.2.1. Contribuições Open Source
- **Política de Contribuição:** Diretrizes para participação em projetos open source.
- **Tempo Dedicado:** Alocação de horas para contribuições comunitárias.
- **Reconhecimento:** Valorização de contribuições significativas.
#### 5.6.2.2. Comunidades de Prática
- **Grupos de Interesse:** Comunidades temáticas internas.
- **Meetups Regulares:** Encontros para apresentações e discussões.
- **Fóruns de Discussão:** Espaços virtuais para troca de conhecimentos.
- **Hackathons Internos:** Eventos para solução colaborativa de problemas.

View file

@ -1,866 +0,0 @@
---
sidebar_position: 50
---
# .gbdialog Reference
![generalbots-2018](https://user-images.githubusercontent.com/65977273/94922431-949c3900-0490-11eb-800a-6b478d689f2a.png)
General Bots BASIC using HEAR and TALK keywords provides a easy to write bot language accessible to everyone and used as incomer for people willing to make their own bot.
It's crucial to emphasize just how easy and powerful the General Bots system is:
1. Rapid Development: With just a few lines of BASIC-like code, you can
create complex, AI-powered applications.
2. Automatic REST API: General Bots automatically generates REST API
endpoints for your dialogs, saving you significant development time.
3. Production-Ready: Simply by adding a BASIC text file, you get a General
Bots application running in production. No complex deployment processes
required.
4. Versatility: Whether you're building chatbots, process automation, or
data collection systems, General Bots can handle it all with the same
simple syntax.
5. Integration of LLMs: Seamlessly incorporate the power of Large Language
Models into your applications without dealing with complex AI frameworks.
General Bots truly revolutionizes the way we build AI-powered applications
and REST APIs. Its simplicity belies its power, making it accessible to
developers of all skill levels while providing the capabilities needed for
enterprise-grade applications.
## Architecture
##
A BASIC Isolated Virtual Machine Architecture, like creating a conversation Node.js application just using BASIC. All code will run isolated on a Node, (https://user-images.githubusercontent.com/14840374/200206510-9f5bd788-e710-4932-9ed8-a09599656cea.png).
One of the key security features of the General Bots platform is its use of isolated virtual machines (VMs) for each dialog. This architecture provides a robust layer of security and isolation, significantly reducing the risk of cross-contamination or unauthorized access between different bot interactions.
### How It Works
1. **Individual VM per Dialog**: Each time a user initiates a dialog with a bot, the platform spawns a new, isolated virtual machine dedicated to that specific interaction.
2. **Limited Capabilities**: These VMs are configured with restricted capabilities, adhering to the principle of least privilege. This means that each VM has only the minimum permissions and access necessary to perform its intended functions.
3. **Sandboxing**: The VM acts as a sandbox environment, containing the execution of bot logic and preventing it from affecting other parts of the system or other user interactions.
### Security Benefits
- **Isolation**: If a security breach occurs within one dialog, it remains contained within that specific VM, protecting other user interactions and the broader system.
- **Resource Control**: The VM architecture allows for fine-grained control over resource allocation, preventing any single interaction from monopolizing system resources.
- **Clean Slate**: Each new dialog starts with a fresh VM instance, eliminating the risk of data leakage between different user interactions.
- **Easier Updates and Patches**: Security updates can be applied to the VM template, ensuring that all new dialogs benefit from the latest security measures.
### Considerations for Bot Developers
1. **Performance Impact**: While the isolated VM approach significantly enhances security, it may introduce slight latency in bot responses. Developers should optimize their bot logic to work efficiently within this environment.
2. **Stateless Design**: Since each dialog runs in a new VM instance, developers should design their bots to be stateless or use external state management systems that can be securely accessed from within the VM.
3. **Resource Awareness**: Developers should be mindful of the limited resources available within each VM and design their bots accordingly, avoiding resource-intensive operations where possible.
4. **Security-First Mindset**: Even with the isolated VM architecture, developers should continue to follow security best practices in their bot development, such as input validation and secure handling of sensitive data.
By leveraging this isolated VM architecture, the General Bots platform provides a secure environment for bot interactions, giving both developers and users confidence in the system's integrity and data protection capabilities.
## Using Conversational BASIC
The following file types are loaded from a .gbdialog package: `.vbs`, `.vb`, `.basic` and `.bas`.
## General Bots BASIC reference
To organize the instructions functionally, I'll group them into five categories: **Basic Interaction**, **Data Handling**, **Web Automation**, **File Management**, and **Advanced Operations**. Each group will include relevant instructions with examples.
## Basic Interaction
| Instruction / Usage | Description | Example |
| ----------------------------------------------- | ------------------------------------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------- |
| HEAR _variable_ | Hears something from the person into a _variable_ for later use. | <pre>HEAR name <br/>TALK "Your name is " + name.<br/></pre> |
| TALK _message_ | Talk the specified _message_ to the person. | <pre>TALK "Hello world."</pre> |
| CHART PROMPT _data_, _prompt_ | Generates dynamic charts using natural language | <pre>file = CHART PROMPT data, "product by month in bar chart <br/> SEND FILE TO mobile, file</pre> |
| WAIT _seconds_ | Wait a number of seconds before continuing the conversation. | <pre>WAIT 10 <br/> TALK "Waited for 10 seconds."</pre> |
| confirm _variable_ (Comming soon) | Waits for confirmation like 'yes', 'y', 'yeah' and returns true or false | <pre>HEAR confirm <br/>TALK "Please confirm if you want to proceed." <br/> if confirm THEN TALK "Confirmed." ELSE TALK "Not confirmed."</pre> |
| HEAR _variable_ AS EMAIL | Hears and validates an email address from the user. | <pre>HEAR email AS EMAIL <br/> TALK "Email received: " + email.</pre> |
| HEAR _variable_ AS DATE | Hears and validates a date from the user. | <pre>HEAR date AS DATE <br/> TALK "Date received: " + date.</pre> |
| HEAR _variable_ AS NAME | Hears and validates a name from the user. | <pre>HEAR name AS NAME <br/> TALK "Name received: " + name.</pre> |
| HEAR _variable_ AS INTEGER | Hears and validates an integer from the user. | <pre>HEAR age AS INTEGER <br/> TALK "Age received: " + age.</pre> |
| HEAR _variable_ AS BOOLEAN | Hears and validates a boolean (true/false) from the user. | <pre>HEAR agree AS BOOLEAN <br/> TALK "Agreement status: " + agree.</pre> |
| HEAR _variable_ AS HOUR | Hears and validates an hour from the user. | <pre>HEAR hour AS HOUR <br/> TALK "Hour received: " + hour.</pre> |
| HEAR _variable_ AS MONEY | Hears and validates a monetary amount from the user. | <pre>HEAR amount AS MONEY <br/> TALK "Amount received: " + amount.</pre> |
| HEAR _variable_ AS MOBILE | Hears and validates a mobile number from the user. | <pre>HEAR mobile AS MOBILE <br/> TALK "Mobile number received: " + mobile.</pre> |
| HEAR _variable_ AS ZIPCODE | Hears and validates a ZIP code from the user. | <pre>HEAR zipcode AS ZIPCODE <br/> TALK "ZIP Code received: " + zipcode.</pre> |
| HEAR _variable_ AS "Abacate", "Maçã", "Morango" | Displays the specified menu and waits for user selection. | <pre>HEAR fruit AS "Abacate", "Maçã", "Morango" <br/> TALK "You selected: " + fruit.</pre> |
| HEAR _variable_ AS LANGUAGE | Hears and validates a language code from the user. | <pre>HEAR language AS LANGUAGE <br/> TALK "Language selected: " + language.</pre> |
| HEAR _variable_ AS LOGIN (internal) | Waits for Active Directory login integration before proceeding. | <pre>HEAR user AS LOGIN <br/> TALK "User logged in: " + user.</pre> |
| HEAR _variable_ AS QRCODE | Hears and validates a QR code from a captured image. | <pre>TALK "Send me an image with a QR Code."<br/>HEAR qrcode AS QRCODE <br/> TALK "QR Code received: " + qrcode.</pre> |
## Data Handling
| Instruction / Usage | Description | Example |
| ------------------------------------------------- | -------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| _variable_ = GET "_file_.xlsx", "_A1:A1_" | Gets the value of the cell specified in range address | <pre>name = GET "data.xlsx", "A1:A1" <br/> TALK "The value is " + name.</pre> |
| SET "_file_.xlsx", "_A1:A1_", 42 | Sets the value of the cell specified in range address | <pre>SET "data.xlsx", "A1:A1", 42 <br/> TALK "Value set in Excel."</pre> |
| _variable_ = GET "https://server/query" | Gets the value from the specified web service | <pre>result = GET "https://api.example.com/data" <br/> TALK "Data received: " + result.</pre> |
| POST "https://", _data_ | Sends data to the specified URL | <pre>POST "https://api.example.com/submit", "data" <br/> TALK "Data posted successfully."</pre> |
| data = SELECT a, SUM(b) AS b FROM data GROUP BY a | Use SQL to manipulate a data variable returned from FIND or an array | <pre>data = FIND "sales_data.xlsx", "A1:B10" <br/> result = SELECT product, SUM(amount) AS total FROM data GROUP BY product <br/> TALK "Query result: " + result.</pre> |
| file = data AS IMAGE | Converts a two-dimensional array into an image file. | <pre>file = data AS IMAGE <br/> SAVE file AS "sales_chart.png" <br/> TALK "Chart saved as image."</pre> |
| file = data AS PDF | Converts a two-dimensional array into a PDF file. | <pre>file = data AS PDF <br/> SAVE file AS "sales_report.pdf" <br/> TALK "Report saved as PDF."</pre> |
| file = CONVERT "mydesign.ai" | Converts a Adobe Illustrator to a HTML page. |
| NEW OBJECT | Creates a new object to be used with REST calls. | <pre>data = NEW OBJECT <br/> data.color = "blue" <br/> TALK "New object created."</pre> |
| NEW ARRAY | Creates a new array. | <pre>data = NEW ARRAY <br/> data[0] = "red" <br/> TALK "New array created."</pre> |
| QRCODE | Creates a QR code from specified text. | <pre>file = QRCODE "https://example.com" <br/> SAVE file AS "qrcode.png" <br/> TALK "QR Code generated."</pre> |
| FORMAT value, format | Formats a value according to the specified format. | <pre>d = FORMAT today, "YYYY-MM-dd" <br/> TALK "Formatted date: " + d.</pre> |
| ADD NOTE | Adds a note to a file named Notes.xls of .gbdata. | <pre>ADD NOTE "This is a new note." <br/> TALK "Note added."</pre> |
| ALLOW ROLE | Check if role specified in People sheet (.gbdata) will have access. | <pre>ALLOW ROLE "Admin" <br/> TALK "Role access granted."</pre> |
## Web Automation
| Instruction / Usage | Description | Example |
| --------------------------------------------------- | --------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------- |
| page = OPEN _url_ [AS #namedSession] | Web automation retrieval of a web page, saving the session for reuse. | <pre>page = OPEN "https://example.com" AS #session1 <br/> TALK "Page opened and session saved."</pre> |
| \* _variable_ = GET page, cssSelector, "body > img" | Retrieves an element within an IFRAME specified by selector. | <pre>image = GET page, "#profile-picture" <br/> TALK "Profile picture retrieved."</pre> |
| \* SET page, cssSelector, value | Defines a field to a value on the webpage specified by selector. | <pre>SET page, "#username", "user123" <br/> TALK "Username set."</pre> |
| \* CLICK page, cssSelector | Clicks on an element inside the web page being automated. | <pre>CLICK page, "#submit-button" <br/> TALK "Submit button clicked."</pre> |
| \* file = DOWNLOAD _url_ | Downloads a file from the specified URL. | <pre>file = DOWNLOAD "https://example.com/file.zip" <br/> SAVE file AS "downloads/file.zip" <br/> TALK "File downloaded."</pre> |
## File Management
| Instruction / Usage | Description | Example |
| ------------------------ | ------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- |
| HEAR _variable_ AS FILE | Returns a file uploaded by the user to be saved. | <pre>HEAR file AS FILE <br/> SAVE file AS "uploads/myfile.pdf" <br/> TALK "File uploaded and saved."</pre> |
| HEAR _variable_ AS AUDIO | Returns an audio file uploaded by the user to be saved. | <pre>HEAR audio AS AUDIO <br/> SAVE audio AS "recordings/audiofile.mp3" <br/> TALK "Audio received and saved."</pre> |
| INCLUDE file | Includes a file into .gbdialog. | <pre>INCLUDE "script.gbdialog" <br/> TALK "File included."</pre> |
| UPLOAD file | Uploads a file to a storage blob, like Azure Storage. | <pre>UPLOAD "path/to/file.pdf" <br/> TALK "File uploaded to cloud storage."</pre> |
| DIR path | Returns a list of files in the specified directory. | <pre>files = DIR "uploads/" <br/> TALK "Files in directory: " + files.</pre> |
| FILL | Fills data into a Word document to be exported as images. | <pre>FILL "template.docx", data <br/> TALK "Document filled and exported."</pre> |
| SAVE _variable_ AS "path/file" | Saves the specified variable as a file at the given path. | <pre>SAVE file AS "path/to/save/file.pdf" <br/> TALK "File saved."</pre> |
## Advanced Operations
| Instruction / Usage | Description | Example |
| ------------------------ | ------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- |
| TABLE name ON connection | Defines a TABLE on the specified storage (database) connection. | <pre>TABLE "Sales" ON "DBConnection" <br/> TALK "Table defined."</pre> |
| field AS dataType | Defines a field in TABLE. Eg.: name string(50). | <pre>field = "price" AS number(10,2) <br/> TALK "Field defined as number."</pre> |
| CONTINUATION TOKEN | Returns the value of the continuation token associated with the current dialog. | <pre>token = CONTINUATION TOKEN <br/> TALK "Continuation token: " + token.</pre> |
| NEW OBJECT | Creates a new object to be used with REST calls. | <pre>data = NEW OBJECT <br/> data.color = "blue" <br/> TALK "New object created."</pre> |
| NEW ARRAY | Creates a new array. | <pre>data = NEW ARRAY <br/> data[0] = "red" <br/> TALK "New array created."</pre> |
### Internal Variables and Functions.
These are variables that can be used in General Bots BASIC to faster dialog and services faster.
All values from .gbot Config.xlsx are also provided as variables, so it can be acessed directly in dialog.
| Instruction / Usage | Description |
| ------------------------------------------------------------- | ---------------------------------------------------------------------------- |
| aadToken() | Auto generated variable that contains Azure AD Token useful for calling Microsoft Web Services. |
### Options
| Instruction / Usage | Description |
| ------------------------------------------------------------- | ---------------------------------------------------------------------------- |
| SET PARAM name AS value | Defines a retrievable param in the storage in the scope of the user |
| GET PARAM name | Returns a previously user scoped param via SET PARAM from the storage. |
| SET HTTP HEADER _key = _value_ | Defines an HTTP header to be used to next GET call. |
| SET HTTP USERNAME = _value_ | Defines the HTTP username to be used to next GET call. |
| SET HTTP PASSWORD = _value_ | Defines the HTTP password to be used to next GET call. |
| * SET HEAR ON "mobile" | |
| SET MAX LINES _value_ | |
| SET SCHEDULE "2 * * * * *" | |
| SET LANGUAGE _value_ | |
| SET TRANSLATOR [ON or OFF] | |
| SET WHOLE WORD [TRUE or FALSE] | |
| SET THEME "dark" or "white" or "blue" | Defines the theme to the next content generation (PDF, images, vídeos, etc.) |
| SET OPERATOR [OR] | Defines OR operations on multiple FIND filters separated by comma, eg.: FIND "A1=2", "A3=4" |
| SET FILTER TYPE [comma separated list of types]| Uses the specified type in next FIND calls, disabling auto detection of filter type, eg.: SET FILTER TYPE date, string |
| SET PAGED "auto" or "none" | Defines auto pagging for HTTP REST GET calls. |
* = Work in progress.
## How To
### Use code in Excel
To reply as code in Excel, start the cell value with /basic followed by the code itself. Eg.:
```
/basic
TALK "Hello."
````
### Use General Bots computer vision
1. Develop a BASIC dialog and publish;
![image](https://user-images.githubusercontent.com/14840374/146782500-26f0dc27-e722-41aa-b79e-619d6403fa0d.png)
2. Test it in the conversation
![image](https://user-images.githubusercontent.com/14840374/146782691-7c28998b-7485-4d34-af33-da87d1b26088.png)
### Using General Bots Web Automation to ask humans about unreadable captchas
```BASIC
mobile = "5521000000000"
page = GET HTML "https://www.any-website.com/"
SET page, "#usuario", "user"
SET page, "#j_password", "xxxxxxxxxxx"
img = GET page, "[name=iCaptcha]", "body > img"
SEND FILE TO mobile, img
TALK TO mobile, "Digite o código da imagem para prosseguir:"
SET HEAR ON mobile
HEAR captcha
SET page, "#captcha", captcha
CLICK page, "#bt-login"
TALK TO mobile, "Login done, thanks."
````
### Using General Bots SQL and dynamic image and chart generation
On the fly table as images.
```BASIC
SET MAX LINES 1000
data = FIND "data.xlsx",
data = SELECT a, SUM(b) AS b FROM data GROUP BY a
SET THEME dark
png = data as IMAGE
SEND FILE png
```
On the fly charts
```BASIC
data = [10, 20, 30]
legends= "Steve;Yui;Carlos"
img = CHART "pie", data, legends
SEND FILE img
SAVE img as "folder/filename.jpg"
```
### Using General Bots Web Automation to custom notify about Google Calendar
```basic
REM Perform G. Login.
OPEN "https://accounts.google.com/ServiceLogin"
SET "#identifierId", "test@gmail.com"
PRESS ENTER
WAIT 3
SET "input[type='password']", "******"
PRESS ENTER
WAIT 5
REM Enter on the Calendar page and capture the calendar grid inside the page.
OPEN "https://calendar.google.com/calendar/u/0/r?tab=mc&pli=1"
file = SCREENSHOT "div.K2fuAf"
REM Notify all team members with the updated calendar image.
list = FIND "People.xlsx", "Calendar=Y"
index = 1
DO WHILE index < ubound(list)
row = list[index]
TALK TO row.Mobile, "Hello " + row.Name + ", here is your calendar:"
SEND FILE TO row.Mobile, file, "Calendar"
index = index + 1
LOOP
```
### Using complete General Bots Conversational Data Analytics
```BASIC
TALK "General Bots Labs presents FISCAL DATA SHOW BY BASIC"
TALK "Gift Contributions to Reduce the Public Debt API (https://fiscaldata.treasury.gov/datasets/gift-contributions-reduce-debt-held-by-public/gift-contributions-to-reduce-the-public-debt)"
result = GET "https://api.fiscaldata.treasury.gov/services/api/fiscal_service/v2/accounting/od/gift_contributions?page[size]=500"
data = result.data
data = SELECT YEAR(record_date) as Yr, SUM(CAST(contribution_amt AS NUMBER)) AS Amount FROM data GROUP BY YEAR(record_date)
TALK "Demonstration of Gift Contributions with AS IMAGE keyword"
SET THEME dark
png = data as IMAGE
SEND FILE png
DELAY 5
TALK " Demonstration of Gift Contributions CHART keyword"
img = CHART "bar", data
SEND FILE img
```
![image](https://user-images.githubusercontent.com/14840374/178154826-8188029e-b4f4-48aa-bc0d-126307ce5121.png)
### Using General Bots Office templates
```
data = FIND "Customer.xlsx", "Idade=25"
doc = TEMPLATE "template.docx" WITH data
SAVE doc AS "resume.docx"
SEND EMAIL "noreply@pragmatismo.io", "Subject", doc
```
### Automating GitHub Issue creation with General Bots Automation
```BASIC
REM Realiza login no GitHub.
page = GET HTML "https://github.com/login"
SET page, "#login_field", "username"
SET page, "#password", "*******"
PRESS ENTER ON page
REM Verifica 2FA.
SET HEAR ON "5521999999999"
TALK "Digite o código de dupla autenticação enviado..."
HEAR code
SET page, "#otp", code
PRESS ENTER ON page
REM Extrai cada Issue da planilha e cria no GitHub.
list = FIND "issues.xlsx"
index = 1
DO WHILE index <38
row = list[index]
page = GET HTML "https://github.com/GeneralBots/BotServer/issues/new"
SET page, "#issue_title", row.title
SET page, "#issue_body", row.body
CLICK page, "#new_issue > div > div > div.Layout-main > div > div.timeline-comment.color-bg-default.hx_comment-box--tip > div > div.flex-items-center.flex-justify-end.d-none.d-md-flex.mx-2.mb-2.px-0 > button"
TALK "Issue '" + row.title + "' criado."
WAIT 5
index = index + 1
LOOP
EXIT
```
## Turn an LLM into a REST API server
General Bots offers an incredibly simple way to transform a Large Language
Model (LLM) into a fully functional REST API server. With just a few lines
of our proprietary BASIC-like syntax, you can create sophisticated
AI-powered applications.
For example, here's how easy it is to create a chatbot for a store:
```basic
PARAM operator AS number LIKE 12312312
DESCRIPTION "Operator code."
DESCRIPTION It is a WebService of GB.
products = FIND "products.csv"
BEGIN SYSTEM PROMPT
You must act as a chatbot that will assist a store attendant by
following these rules: Whenever the attendant places an order, it must
include the table and the customer's name. Example: A 400ml Pineapple
Caipirinha for Rafael at table 10. Orders are based on the products and
sides from this product menu: ${JSON.stringify(products)}.
For each order placed, return a JSON containing the product name, the
table, and a list of sides with their respective ids.
END SYSTEM PROMPT
```
That's it! With just this simple BASIC code, you've created a fully
functional LLM-powered chatbot that can handle complex order processing.
The system automatically generates the necessary REST API endpoints:
```
pid = http://localhost:1111/llm-server/dialogs/start?operator=123&userSystemId=999
```
This call will return a process identifier or PID, a number like 24795078551392. This should be passed within call chain. So, it is
possible now to TALK to the bot, like an UI App input or microphone.
And the return will be the JSON, because BEGIN SYSTEM PROMPT in start
has told LLM to respond with a valid JSON.
TALK "PDF report generated and saved!"
```
http://localhost:1111/llm-server/dk/talk?pid=4893749837&text=add%20soda
```
So this call will act like talking to LLM, but in fact, it can be used
to anything that General Bots can do in a robotic conversation between systems mediated by LLM.
## Using dialogs as REST API Server
Creating a REST API server for any business process is equally
straightforward. Here's an example of an enrollment process:
```basic
PARAM name AS string LIKE "João Silva"
DESCRIPTION "Required full name of the individual."
PARAM birthday AS date LIKE "23/09/2001" DESCRIPTION "Required birth date of the individual in DD/MM/YYYY format."
PARAM email AS string LIKE "joao.silva@example.com" DESCRIPTION "Required email address for contact purposes."
PARAM personalid AS integer LIKE "12345678900" DESCRIPTION "Required Personal ID number of the individual (only numbers)."
PARAM address AS string LIKE "Rua das Flores, 123, São Paulo, SP" DESCRIPTION "Required full address of the individual."
DESCRIPTION "This is the enrollment process, called when the user wants to enroll. Once all information is collected, confirm the details and inform them that their enrollment request has been successfully submitted. Provide a polite and professional tone throughout the interaction."
SAVE "enrollments.csv", id, name, birthday, email, cpf, rg, address
```
Incredibly, this is all you need to create a full-fledged enrollment system
with data validation, user interaction, and data storage. The system
automatically generates a REST API endpoint that is called by LLM as a tool.
So LLM can answer with data of external model train data.
```
http://api.pragmatismo.cloud/llm-server/dialogs/enrollment?birthday...
```
### Using POST data
You can use POST passing a variable as the second param in the POST call. The example
bellow shows how to call POST using an object that is returned from the Excel file.
Given the Excel file with the following contents and saved to the standard .gbdialog folder:
| tokenId | token | comment |
| ------- | ---------------- | ------- |
| 29187 | AAMkAGEzMWIxMmI5 | Prod1 |
| 98739 | jZWYtNGQ3My1iNmM | Prod2 |
The Word bellow will invoke POST call by using line contents as object attributes:
```BASIC
obj = FIND "dados.xlsx", "tokenId=29187"
POST "https://server/query", obj
' obj here is {tokenId: 29187, token: "AAMkAGEzMWIxMmI5", comment: "Prod1"}
```
- OAuth2 is being implemented and no modification to previous calls will be necessary
as this configuration will be an administrative conversation to get the token setup.
### Generate a password for the person
```vb
talk "Let's generate a very dificult to guess password for the new bot:"
generate a password
talk "Your password is *" + password + "*. Keep it on a safe place only acessible to you."
```
### Get the list of cloud subscriptions
```vb
hear one of subscriptions with email, password into subscriptionId
talk "The subscription selected was: " + subscriptionId
```
# General Bots Simple and Complex Programs
These are sample programs in General Bots BASIC, each presented with a modern and engaging approach. The first 20 examples are simple, while the next 20 delve into more advanced concepts. Check the list
of [templates](https://github.com/GeneralBots/BotServer/tree/main/templates)
The set of 20 advanced General Bots BASIC programs that integrate web services, web automation, file handling, and dynamic interactions. These samples are designed to showcase the full potential of General Bots BASIC for advanced users. These advanced samples illustrate a range of functionalities that can be implemented with General Bots BASIC, from data manipulation and web automation to dynamic content generation and complex file handling.
## 1. **Retrieve and Save Web Data to Excel**
```basic
GET "https://api.example.com/data"
data = result.data
SAVE "data.xlsx", "A1:A" + UBOUND(data), data
TALK "Data retrieved and saved to data.xlsx successfully!"
```
## 2. **Automated Web Form Submission**
```basic
OPEN "https://example.com/form"
SET page, "#name", "John Doe"
SET page, "#email", "john.doe@example.com"
SET page, "#message", "This is a test message."
CLICK page, "#submit"
TALK "Form submitted successfully!"
```
## 3. **Generate and Save Dynamic Report as PDF**
```basic
data = FIND "report_data.xlsx", "A1:C10"
pdf = data AS PDF
SAVE pdf AS "report.pdf"
TALK "Dynamic report generated and saved as report.pdf!"
```
## 4. **Create and Upload Image from Data**
```basic
data = [10, 20, 30, 40]
labels = "Q1;Q2;Q3;Q4"
img = CHART "bar", data, labels
UPLOAD img
TALK "Chart image generated and uploaded!"
```
## 5. **Automate GitHub Issue Creation from Spreadsheet**
```basic
list = FIND "issues.xlsx"
index = 1
DO WHILE index <= UBOUND(list)
row = list[index]
page = GET HTML "https://github.com/GeneralBots/BotServer/issues/new"
SET page, "#issue_title", row.title
SET page, "#issue_body", row.body
CLICK page, "#new_issue > div > div > div.Layout-main > div > div.timeline-comment.color-bg-default.hx_comment-box--tip > div > div.flex-items-center.flex-justify-end.d-none.d-md-flex.mx-2.mb-2.px-0 > button"
TALK "Issue '" + row.title + "' created."
WAIT 5
index = index + 1
LOOP
```
## 6. **Extract and Save Web Page Content**
```basic
OPEN "https://example.com/page"
content = GET page, "body"
SAVE "page_content.txt", content
TALK "Page content saved as page_content.txt!"
```
## 7. **Interactive Poll Results Analysis**
```basic
HEAR poll_data AS FILE
data = LOAD poll_data
analysis = SELECT question, COUNT(*) AS responses FROM data GROUP BY question
SAVE "poll_analysis.xlsx", "A1:C" + UBOUND(analysis), analysis
TALK "Poll results analyzed and saved to poll_analysis.xlsx!"
```
## 8. **Send User-Specific Notifications**
```basic
list = FIND "users.xlsx", "Notify=Y"
index = 1
DO WHILE index <= UBOUND(list)
row = list[index]
SEND MAIL row.email, "Notification", "Hello " + row.name + ", you have a new notification!"
index = index + 1
LOOP
TALK "Notifications sent to all users."
```
## 9. **Automate Data Entry into Web Application**
```basic
OPEN "https://example.com/data-entry"
SET page, "#field1", "Value1"
SET page, "#field2", "Value2"
SET page, "#field3", "Value3"
CLICK page, "#submit"
TALK "Data entry completed successfully!"
```
## 10. **Generate and Save QR Codes for Multiple URLs**
```basic
urls = ["https://example1.com", "https://example2.com", "https://example3.com"]
index = 1
DO WHILE index <= UBOUND(urls)
file = QRCODE urls[index]
SAVE file AS "qrcode_" + index + ".png"
index = index + 1
LOOP
TALK "QR codes generated and saved!"
```
## 11. **Automate Google Calendar Event Creation**
```basic
OPEN "https://calendar.google.com/calendar/u/0/r?tab=mc&pli=1"
HEAR event_date AS DATE
HEAR event_details AS STRING
SET "#title", "New Event"
SET "#details", event_details
SET "#date", event_date
CLICK "#save"
TALK "Event created on Google Calendar for " + event_date
```
## 12. **Send Customized Reports to a List of Recipients**
```basic
data = FIND "reports.xlsx"
index = 1
DO WHILE index <= UBOUND(data)
row = data[index]
report = TEMPLATE "report_template.docx" WITH row
SEND MAIL row.email, "Your Report", report
index = index + 1
LOOP
TALK "Reports sent to all recipients."
```
## 13. **Create and Save Dynamic Chart with User Input**
```basic
HEAR user_data AS "10,20,30,40"
data = SPLIT(user_data, ",")
img = CHART "line", data
SAVE img AS "dynamic_chart.png"
TALK "Dynamic chart created and saved as dynamic_chart.png!"
```
## 14. **Extract and Save Image Metadata**
```basic
SEE TEXT OF "https://example.com/image.jpg" AS metadata
SAVE "image_metadata.txt", metadata
TALK "Image metadata extracted and saved as image_metadata.txt!"
```
## 15. **Automate Form Filling Based on Data from Excel**
```basic
data = FIND "form_data.xlsx", "A1:C1"
OPEN "https://example.com/form"
SET page, "#name", data[0].name
SET page, "#email", data[0].email
SET page, "#message", data[0].message
CLICK page, "#submit"
TALK "Form filled and submitted based on Excel data!"
```
## 16. **Generate PDF from Dynamic SQL Query Results**
```basic
data = FIND "database.xlsx", "A1:C100"
query = SELECT name, age, city FROM data WHERE age > 30
pdf = query AS PDF
SAVE pdf AS "filtered_data_report.pdf"
TALK "PDF report generated and saved!"
```
## 17. **Capture and Save Web Page Screenshot with Timestamp**
```basic
timestamp = FORMAT NOW(), "YYYY-MM-DD_HH-MM-SS"
OPEN "https://example.com"
file = SCREENSHOT "body"
SAVE file AS "screenshot_" + timestamp + ".png"
TALK "Screenshot captured and saved with timestamp!"
```
## 18. **Handle and Save User-Uploaded Files**
```basic
HEAR user_file AS FILE
SAVE user_file AS "uploads/user_file_" + FORMAT NOW(), "YYYY-MM-DD_HH-MM-SS" + ".pdf"
TALK "File uploaded and saved successfully!"
```
## 19. **Extract Data from Web Page and Save to Excel**
```basic
OPEN "https://example.com/data-page"
data = GET page, "#data-table"
SAVE "web_data.xlsx", "A1:A" + UBOUND(data), data
TALK "Data extracted from web page and saved to web_data.xlsx!"
```
## 20. **Perform Complex Data Analysis and Save Results**
```basic
data = FIND "complex_data.xlsx", "A1:D100"
analysis = SELECT category, SUM(amount) AS total FROM data GROUP BY category
SAVE "data_analysis.xlsx", "A1:B" + UBOUND(analysis), analysis
TALK "Data analysis completed and saved to data_analysis.xlsx!"
```
And even more simple examples can be seen in this list as begginers use BASIC
to understand code:
## 1. Welcome Message
```basic
HEAR name AS NAME
TALK "Hey " + name + ", welcome to our awesome service! 🎉"
```
## 2. Simple Password Generator
```basic
GENERATE A PASSWORD
TALK "Your new password is: " + password
```
## 3. Remind User to Take a Break
```basic
WAIT 3600
TALK "You've been working for an hour! Remember to take a break and stretch! 💪"
```
## 4. Get User's Favorite Fruit
```basic
HEAR fruit AS "Apple", "Banana", "Cherry"
TALK "Nice choice! " + fruit + " is a great fruit! 🍓"
```
## 5. Send a Calendar Invite
```basic
HEAR email AS EMAIL
HEAR date AS DATE
TALK "Sending a calendar invite for " + date + " to " + email
SEND MAIL email, "Calendar Invite", "You are invited to an event on " + date
```
## 6. Generate and Send QR Code
```basic
HEAR url AS "https://example.com"
file = QRCODE url
SEND FILE file
TALK "Here is your QR code for the URL: " + url
```
## 7. Weather Update
```basic
GET "https://api.weatherapi.com/v1/current.json?key=YOUR_API_KEY&q=YOUR_LOCATION"
data = result.current
TALK "The current temperature is " + data.temp_c + "°C with " + data.condition.text
```
## 8. Todo List Reminder
```basic
HEAR task AS STRING
TALK "Got it! I'll remind you about: " + task
```
## 9. Send Motivational Quote
```basic
quotes = ["Keep going!", "You got this!", "Believe in yourself!"]
index = RANDOM(0, 2)
TALK quotes[index]
```
## 10. Capture and Send Screenshot
```basic
OPEN "https://example.com"
file = SCREENSHOT "body"
SEND FILE file
TALK "Here's a screenshot of the page."
```
## 11. Daily Affirmation
```basic
HEAR user AS NAME
TALK "Good morning " + user + "! Remember, today is going to be amazing! 🌟"
```
## 12. Send a Joke
```basic
jokes = ["Why dont scientists trust atoms? Because they make up everything!", "Why did the scarecrow win an award? Because he was outstanding in his field!"]
index = RANDOM(0, 1)
TALK jokes[index]
```
## 13. User Poll
```basic
HEAR choice AS "Option 1", "Option 2", "Option 3"
TALK "You selected " + choice + ". Thanks for your input! 🗳️"
```
## 14. Image Caption Extraction
```basic
SEE CAPTION OF "https://example.com/image.jpg" AS caption
TALK "The caption of the image is: " + caption
```
## 15. Send Reminder Email
```basic
HEAR email AS EMAIL
HEAR reminder AS STRING
SEND MAIL email, "Reminder", "Just a friendly reminder: " + reminder
```
## 16. Capture Text from Image
```basic
SEE TEXT OF "https://example.com/image-with-text.jpg" AS text
TALK "The text from the image is: " + text
```
## 17. Add a Note
```basic
HEAR note AS STRING
ADD NOTE note
TALK "Note added: " + note
```
## 18. Generate Dynamic Chart
```basic
data = [5, 15, 25]
labels = "Red;Green;Blue"
img = CHART "bar", data, labels
SEND FILE img
TALK "Heres your dynamic chart!"
```
## 19. Create and Send PDF Report
```basic
data = FIND "data.xlsx", "A1:B10"
pdf = data AS PDF
SEND FILE pdf
TALK "Here's your report in PDF format."
```
## 20. Interactive Game
```basic
TALK "Guess a number between 1 and 10."
HEAR guess AS INTEGER
IF guess == 7
TALK "Congratulations! You guessed the right number! 🎉"
ELSE
TALK "Oops! Try again next time!"
```
These examples demonstrate various capabilities of the language, from simple text manipulation to more complex tasks like image processing.

346
docs/chapter-06-Tools.md Normal file
View file

@ -0,0 +1,346 @@
---
title: 6. Tools
sidebar_label: 6. Tools
sidebar_position: 6
---
# Chapter 6: Ferramentas (Tools)
## 6.1 Introdução
Este capítulo apresenta o conjunto de ferramentas oficialmente aprovadas e homologadas pela Pragmatismo para uso em seus processos de desenvolvimento, operação e gestão. A padronização das ferramentas é um requisito essencial para garantir a conformidade com normas como ISO 27001, HIPAA e LGPD, além de promover a eficiência operacional e reduzir riscos de segurança.
As ferramentas aqui listadas foram avaliadas quanto a critérios de segurança, compatibilidade, desempenho e conformidade regulatória. O uso de ferramentas não listadas neste documento deve ser submetido ao processo de avaliação e homologação pela equipe de segurança e compliance antes de sua adoção.
## 6.2 Políticas de Uso de Ferramentas
### 6.2.1 Requisitos Gerais
- Todas as ferramentas utilizadas nos ambientes de desenvolvimento, teste e produção devem estar listadas neste documento
- Ferramentas devem ser utilizadas apenas nas versões especificadas ou mais recentes, desde que aprovadas
- Atualizações de segurança devem ser aplicadas em até 30 dias de sua liberação
- É proibido o uso de ferramentas pirateadas ou com licenças irregulares
- Ferramentas com acesso a dados sensíveis devem utilizar autenticação forte e comunicação criptografada
### 6.2.2 Processo de Homologação
Novas ferramentas devem passar pelo seguinte processo antes de serem aprovadas para uso:
1. Solicitação formal indicando necessidade e casos de uso
2. Avaliação de segurança e privacidade pela equipe de compliance
3. Análise de compatibilidade com infraestrutura existente
4. Período de testes em ambiente controlado
5. Documentação e inclusão na lista de ferramentas homologadas
6. Treinamento para os usuários finais
## 6.3 Ambiente de Desenvolvimento
### 6.3.1 Sistema Operacional e Virtualização
| Ferramenta | Versão | Propósito | Notas de Compliance |
|------------|--------|-----------|---------------------|
| Ubuntu Desktop | 22.04 LTS, 24.04 LTS | Sistema operacional para estações de trabalho | Deve implementar criptografia de disco e manter atualizações de segurança |
| Ubuntu Server | 22.04 LTS, 24.04 LTS | Sistema operacional para servidores Linux | Deve implementar SELinux ou AppArmor |
| Debian | 12+ | Sistema operacional alternativo | Apenas versões estáveis |
| Podman | Latest | Containerização sem daemon | Alternativa ao Docker com permissões não-root |
| Docker | Latest | Containerização | Imagens devem ser escaneadas antes do uso |
| KVM/QEMU | Latest | Virtualização nativa | Preferido para ambientes de produção |
### 6.3.2 IDEs e Editores de Código
| Ferramenta | Versão | Propósito | Notas de Compliance |
|------------|--------|-----------|---------------------|
| Visual Studio Code | Latest | Editor de código principal | Deve usar extensões aprovadas |
| Neovim | Latest | Editor de texto avançado | Configuração padronizada obrigatória |
| Helix | Latest | Editor de texto modal | Alternativa moderna ao Vim |
| DBeaver | Latest | Gerenciamento universal de bancos de dados | Conexões criptografadas obrigatórias |
#### 6.3.2.1 Extensões Aprovadas para VSCode
| Nome | Propósito | ID |
|------|-----------|-----|
| TGit Commands | Integração com TortoiseGit | mbinic.tgit-cmds |
| Markdown Table Format | Formatação de tabelas Markdown | tomashubelbauer.vscode-markdown-table-format |
| Prettier | Formatação de código | esbenp.prettier-vscode |
| .env | Suporte a arquivos .env | mikestead.dotenv |
| Codewall | Bloqueio de sites distrativos | abhinavk99.codewall |
| npm Intellisense | Autocompletar módulos npm | christian-kohler.npm-intellisense |
| Excel to Markdown Table | Conversão de Excel para Markdown | csholmq.excel-to-markdown-table |
| Markdownlint | Validação de Markdown | davidanson.vscode-markdownlint |
| TS Lint | Linting de TypeScript | eg2.ts-tslint |
| npm Script | Execução de scripts npm | eg2.vscode-npm-script |
| Auto Rename Tag | Renomeação automática de tags | formulahendry.auto-rename-tag |
| Align Mode | Alinhamento de texto em colunas | gruntfuggly.align-mode |
| Space Block Jumper | Navegação entre blocos de código | jmfirth.vsc-space-block-jumper |
| Indentation Level Movement | Movimentação de linhas respeitando indentação | kaiwood.indentation-level-movement |
| Rainbow CSV | Destaque de cores para CSV/TSV | mechatroner.rainbow-csv |
| Indenticator | Destaque do nível de indentação atual | sirtori.indenticator |
| Color Basic | Esquemas de cores | tandy.color-basic |
### 6.3.3 Controle de Versão e ALM
| Ferramenta | Versão | Propósito | Notas de Compliance |
|------------|--------|-----------|---------------------|
| Git | 2.40.0+ | Sistema de controle de versão | Exige credenciais seguras |
| GitUI | Latest | Interface TUI para Git | Alternativa moderna em terminal |
| Forgejo | Latest | Hospedagem de repositórios e CI/CD | Solução ALM auto-hospedada |
| Drone CI | Latest | Integração contínua | Pipelines como código |
| Woodpecker CI | Latest | Integração contínua alternativa | Compatível com Forgejo |
### 6.3.4 Linguagens e Frameworks
| Ferramenta | Versão | Propósito | Notas de Compliance |
|------------|--------|-----------|---------------------|
| Node.js | 20.17.0+, 22.x | Ambiente JavaScript | Sem vulnerabilidades críticas |
| Python | 3.8+, 9.0+ | Processamento de dados e IA | Ambientes virtuais obrigatórios |
| Rust | 1.70+ | Desenvolvimento de alto desempenho e segurança | Análise estática integrada |
| TypeScript | 5.0+ | Tipagem para JavaScript | Obrigatório para frontend |
| React | 18+ | Biblioteca principal de UI | Deve usar análise estática |
| Next.js | 14+ | Framework React com SSR/SSG | Configuração segura de rotas API |
| Tailwind CSS | 3+ | Framework CSS utilitário | Configuração com purge CSS obrigatória |
| ShadcN UI | Latest | Componentes React reutilizáveis | Baseados em Radix UI e Tailwind |
### 6.3.5 Bancos de Dados e Armazenamento
| Ferramenta | Versão | Propósito | Notas de Compliance |
|------------|--------|-----------|---------------------|
| PostgreSQL | 14+ | Banco de dados relacional principal | Encriptação em repouso obrigatória |
| TimescaleDB | Latest | Extensão PostgreSQL para séries temporais | Retenção de dados configurada |
| MariaDB | 10.6+ | Banco de dados relacional alternativo | Autenticação forte obrigatória |
| MongoDB | 6+ | Banco de dados NoSQL | Autenticação e autorização configuradas |
| Redis | 7+ | Cache e mensageria | Sem acesso direto da internet |
| MinIO | Latest | Armazenamento compatível com S3 | Criptografia em repouso e em trânsito |
### 6.3.6 Ferramentas de Linha de Comando
| Ferramenta | Versão | Propósito | Notas de Compliance |
|------------|--------|-----------|---------------------|
| npm-check-updates | Latest | Verificação de atualizações NPM | Uso regular obrigatório |
| cost-of-modules | Latest | Análise de tamanho de dependências | Para otimização de pacotes |
| cpulimit | Latest | Limitação de uso de CPU | Para ambientes compartilhados |
| expect | Latest | Automação de scripts interativos | Evitar senhas em texto claro |
## 6.4 Ferramentas de Produtividade e Colaboração
### 6.4.1 Editores e Conversores
| Ferramenta | URL | Propósito | Notas de Compliance |
|------------|-----|-----------|---------------------|
| Excel to MD | http://www.tablesgenerator.com/markdown_tables | Conversão de tabelas Excel para Markdown | Sem armazenamento de dados |
| CSV Tools | http://codebeautify.org/csv-tools | Manipulação de arquivos CSV | Processamento local recomendado |
| JS2Coffee | http://js2.coffee/ | Conversão JavaScript para CoffeeScript | Apenas código não-sensível |
| Lorem Ipsum | http://www.lipsum.com/ | Gerador de texto de placeholder | Sem dados reais |
| Hemingway App | http://www.hemingwayapp.com/ | Análise de legibilidade | Documentação pública apenas |
### 6.4.2 Otimização e SEO
| Ferramenta | URL | Propósito | Notas de Compliance |
|------------|-----|-----------|---------------------|
| Palavras-chave | https://keywordtool.io | Pesquisa de palavras-chave | Uso restrito ao Marketing |
| SEO Copyright Detector | http://www.copyscape.com/ | Detecção de plágio | Validação de conteúdo original |
| Check Page Rank | http://checkpagerank.net/ | Verificação de ranking | Análise de visibilidade |
| Wappalyzer | https://wappalyzer.com/ | Identificação de tecnologias | Análise de concorrentes |
### 6.4.3 Desenvolvimento Web
| Ferramenta | URL | Propósito | Notas de Compliance |
|------------|-----|-----------|---------------------|
| CSS Font Stack | http://www.cssfontstack.com/ | Referência de fontes CSS | Verificar licenças das fontes |
| DNS Query | http://dnsquery.org/ | Consulta de registros DNS | Apenas domínios autorizados |
| IP Tools | http://ipaddress.com/ip-tools/ | Ferramentas de diagnóstico IP | Sem uso para reconhecimento externo |
| Gradient Generator | http://gradientgenerator.com/ | Gerador de gradientes CSS | Design consistente |
| RegExr | http://regexr.com/ | Teste de expressões regulares | Sem dados sensíveis |
### 6.4.4 Produtividade e Comunicação
| Ferramenta | URL | Propósito | Notas de Compliance |
|------------|-----|-----------|---------------------|
| Agregador de RSS | http://feedly.com/i/welcome | Acompanhamento de feeds RSS | Apenas fontes aprovadas |
| Speech to Text | https://speechlogger.appspot.com/en/ | Conversão de voz para texto | Sem dados confidenciais |
| Join.me | https://secure.join.me/ | Compartilhamento de tela | Apenas para conteúdo não-sensível |
| TalkTyper | https://www.talktyper.com/ | Digitação por voz | Sem dados confidenciais |
| TypeRacer | http://play.typeracer.com/ | Treinamento de digitação | Permitido em horários de pausa |
### 6.4.5 Ferramentas de Design e Visualização
| Ferramenta | URL | Propósito | Notas de Compliance |
|------------|-----|-----------|---------------------|
| Storyboard Creator | https://www.storyboardthat.com/storyboard-creator | Criação de storyboards | Documentação de fluxos |
| Snip Insights | https://github.com/Microsoft/ailab/releases/tag/1.0.0.0 | Captura e análise de tela | Sem captura de dados sensíveis |
| Sequence Diagram Generator | https://bramp.github.io/js-sequence-diagrams/ | Diagramas de sequência | Documentação técnica |
| D3.js | http://blog.avenuecode.com/a-library-for-data-visualization-d3.js | Visualização de dados | Sanitização de inputs |
## 6.5 Ferramentas para Desenvolvimento JavaScript/TypeScript
### 6.5.1 Bibliotecas e Frameworks
| Ferramenta | URL | Propósito | Notas de Compliance |
|------------|-----|-----------|---------------------|
| Deep Learning JS | https://deeplearnjs.org/ | IA no navegador | Processamento local de dados |
| Oimo.js | http://lo-th.github.io/Oimo.js/ | Motor de física 3D | Experiências interativas |
| D3.js | http://blog.avenuecode.com/a-library-for-data-visualization-d3.js | Visualização de dados | Sanitização de inputs |
| Puppeteer | https://github.com/GoogleChrome/puppeteer | Automação de Chrome | Sem automação de login |
| node-xlsx | https://github.com/mgcrea/node-xlsx | Processamento de Excel | Validação de entradas |
| Sequelize | https://sequelize.org/ | ORM para SQL | Prevenção de SQL Injection |
### 6.5.2 Recursos e Referências JavaScript
| Ferramenta | URL | Propósito | Notas de Compliance |
|------------|-----|-----------|---------------------|
| JS Jargon | http://jargon.js.org | Glossário de termos | Referência para documentação |
| RegExp101 | https://regexp101.com | Teste de expressões regulares | Sem dados sensíveis |
| API Repository | https://any-api.com/ | Catálogo de APIs | Avaliação antes da integração |
| CoffeeScript REPL | http://larryng.github.io/coffeescript-repl/ | Teste de CoffeeScript | Apenas código não-sensível |
## 6.6 Ferramentas de Segurança, Compliance e Infraestrutura
### 6.6.1 Análise de Segurança
| Ferramenta | URL | Propósito | Notas de Compliance |
|------------|-----|-----------|---------------------|
| Security Repository | https://cybersectools.com/ | Ferramentas de segurança | Uso restrito à equipe de segurança |
| StackShare | https://stackshare.io/ | Comparativo de tecnologias | Análise de stack tecnológico |
| Remove One List | http://alphabetizer.flap.tv/remove-one-list-from-another.php | Comparação de listas | Verificação de permissões |
| OWASP ZAP | https://www.zaproxy.org/ | Testes de penetração | Somente em ambientes de teste |
| Trivy | https://github.com/aquasecurity/trivy | Scanner de vulnerabilidades | Obrigatório para imagens Docker |
### 6.6.2 Infraestrutura e DevOps
| Ferramenta | Versão | Propósito | Notas de Compliance |
|------------|--------|-----------|---------------------|
| Zitadel | Latest | Gerenciamento de identidade e acesso (IAM) | OIDC/OAuth2 compatível |
| Stalwart | Latest | Servidor de email seguro | Anti-phishing e criptografia obrigatórios |
| Caddy | Latest | Servidor web e proxy reverso | TLS automático |
| Traefik | Latest | Proxy reverso alternativo | Descoberta automática de serviços |
| Vault | Latest | Gerenciamento de segredos | Rotação automática de credenciais |
| Teleport | Latest | Acesso seguro a infraestrutura | SSO para servidores e bancos |
### 6.6.3 Colaboração e Comunicação
| Ferramenta | Versão | Propósito | Notas de Compliance |
|------------|--------|-----------|---------------------|
| LiveKit Meeting | Latest | Videoconferências e colaboração | Auto-hospedado para maior privacidade |
| Element/Matrix | Latest | Comunicação criptografada | E2EE para mensagens sensíveis |
| Mattermost | Latest | Chat em equipe | Auto-hospedado para controle total |
## 6.7 Scripts de Instalação Padrão
### 6.7.1 Linux (Script de Ambiente de Desenvolvimento)
```bash
#!/bin/bash
# Script de instalação do ambiente de desenvolvimento Pragmatismo
# Atualizar sistema
sudo apt update && sudo apt upgrade -y
# Instalar dependências básicas
sudo apt install -y build-essential curl wget git unzip fontconfig
# Instalar Node.js 22.x
curl -fsSL https://deb.nodesource.com/setup_22.x | sudo -E bash -
sudo apt-get install -y nodejs
node -v
# Instalar Rust
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y
source "$HOME/.cargo/env"
rustup default stable
# Instalar VS Code
wget -qO- https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > packages.microsoft.gpg
sudo install -D -o root -g root -m 644 packages.microsoft.gpg /etc/apt/keyrings/packages.microsoft.gpg
sudo sh -c 'echo "deb [arch=amd64,arm64,armhf signed-by=/etc/apt/keyrings/packages.microsoft.gpg] https://packages.microsoft.com/repos/code stable main" > /etc/apt/sources.list.d/vscode.list'
rm -f packages.microsoft.gpg
sudo apt update
sudo apt install -y code
# Instalar ferramentas de desenvolvimento adicionais
sudo apt install -y neovim dbeaver-ce
# Instalar pacotes NPM globais
sudo npm install -g npm-check-updates cost-of-modules typescript ts-node next
# Configurar Git
git config --global user.name "Seu Nome"
git config --global user.email "email@pragmatismo.com.br"
git config --global init.defaultBranch main
# Clonar repositório General Bots
git clone https://github.com/GeneralBots/BotServer.git
cd BotServer
# Instalar dependências do projeto
npm install
# Abrir no VS Code
code .
```
### 6.7.2 Linux (Ubuntu)
#### Visual Studio Code
```bash
apt update
apt install software-properties-common apt-transport-https wget
wget -q https://packages.microsoft.com/keys/microsoft.asc -O- | apt-key add -
add-apt-repository "deb [arch=amd64] https://packages.microsoft.com/repos/vscode stable main"
apt update
apt install code
```
#### Node.js 22.x
```bash
curl -fsSL https://deb.nodesource.com/setup_22.x -o nodesource_setup.sh && sudo -E bash nodesource_setup.sh && sudo apt-get install -y nodejs && node -v
```
#### Additional Infrastructure
```bash
apt-get update
apt-get install build-essential cmake git pkg-config libjpeg-dev libtiff-dev libpng-dev libavcodec-dev libavformat-dev libswscale-dev libv4l-dev libatlas-base-dev gfortran python3-dev
export OPENCV4NODEJS_DISABLE_AUTOBUILD=1
export OPENCV_LIB_DIR=/usr/lib/x86_64-linux-gnu
apt-get install cpulimit
apt-get install expect
apt-get install libxtst-dev
apt-get install libpng-dev
# Fix Key Bindings in VSCode on Ubuntu
echo 'export GTK_IM_MODULE="xim"' >> ~/.profile
```
#### Git Configuration
```bash
git config --global user.name "Your Name"
git config --global user.email "someone@domain.com"
```
## 6.8 Restrições e Proibições
As seguintes categorias de ferramentas são expressamente proibidas nos ambientes da Pragmatismo:
1. Ferramentas sem licença válida ou pirateadas
2. Software com vulnerabilidades conhecidas e sem correção disponível
3. Aplicações que exigem privilégios administrativos desnecessários
4. Ferramentas que transmitem dados para servidores externos não aprovados
5. Software de compartilhamento P2P não autorizado
6. Extensões de navegador não aprovadas pela equipe de segurança
7. Ferramentas que contornam políticas de segurança corporativas
## 6.9 Processo de Atualização deste Catálogo
Este catálogo de ferramentas deve ser revisado trimestralmente pelo Comitê de Segurança da Informação, seguindo os seguintes passos:
1. Levantamento de novas ferramentas em uso ou solicitadas
2. Verificação de atualizações de segurança para ferramentas existentes
3. Avaliação de conformidade com requisitos regulatórios atualizados
4. Documentação e comunicação das alterações
5. Atualização deste documento no repositório de compliance
A última atualização deste documento foi realizada em: Maio/2025.
## 6.10 Contato para Dúvidas e Solicitações
Para solicitações de inclusão de novas ferramentas ou esclarecimentos sobre as ferramentas homologadas, entre em contato com a equipe de Compliance através do e-mail: compliance@pragmatismo.com.br ou abra um ticket no sistema interno de suporte.

View file

@ -1,411 +0,0 @@
---
sidebar_position: 60
---
# .gbapp Reference
![generalbots-2018](https://user-images.githubusercontent.com/65977273/94922431-949c3900-0490-11eb-800a-6b478d689f2a.png)
## Section 1: Introduction to gbapp
### What is a gbapp?
A gbapp is an npm package designed to extend the functionality of General Bots. It serves as a plugin or module that can be integrated into the General Bots framework to add new features, capabilities, or customizations. Importantly, .gbapp is also the folder extension for the General Bots Application package type.
### Purpose and Benefits
The primary purpose of a gbapp is to provide a modular and flexible way to enhance General Bots. By using gbapps, developers can easily extend the core functionality of the bot platform without modifying the main codebase, allowing for greater customization and scalability. This approach promotes code reusability and maintainability.
### Integration with General Bots
Gbapps are designed to seamlessly integrate with the General Bots ecosystem. They can interact with the core services, access shared resources, and leverage existing functionalities while adding their own unique features to the bot framework. Anything inside a folder considered a .gbapp will be consumed by the server like a TypeScript application.
## Key Interfaces and Structure of a gbapp
### IGBCoreService Interface
The IGBCoreService interface is a crucial component of a gbapp. It defines the core service shared among bot packages, providing direct access to base services. This interface includes methods for database operations, instance management, storage initialization, and various system-level functionalities.
### IGBPackage Interface
The IGBPackage interface outlines the structure and lifecycle methods of a gbapp. It includes methods for loading and unloading the package, managing bot instances, handling dialogs, and exchanging data between the bot server and the gbapp. This interface ensures that all gbapps follow a consistent pattern for integration with General Bots.
### Conversational Application Structure
A .gbapp contains the source code for custom dialogs and behaviors for any .gbot that associates with this deployed .gbapp. This structure allows for the creation of conversational applications that can be reused across different bot instances, promoting modularity and flexibility in bot development.
## Developing and Implementing a gbapp
### Creating a gbapp Package
To create a gbapp, developers start by setting up an npm package with the necessary dependencies. A good way to start is by finding an existing npm package that provides the desired functionality. For example, a temperature conversion gbapp could be created by installing the 'temperature' package via `npm install temperature` and then implementing methods to call `convertToKelvin` or `convertToCelsius` when a user asks for conversion.
### Implementing Core Functionalities
Developers need to implement the methods defined in the interfaces, such as loadPackage, unloadPackage, getDialogs, and onNewSession. These methods allow the gbapp to interact with the core system, manage its lifecycle, and provide specific functionalities to bot instances. Additionally, a .gbapp can persist and read data from the database according to the conversation session, enabling stateful interactions.
### Best Practices and Anti-Patterns
When developing gbapps, it's crucial to follow best practices and avoid common anti-patterns. Developers should familiarize themselves with the [Anti Patterns Catalog](http://wiki.c2.com/?AntiPatternsCatalog) to ensure they're creating efficient, maintainable, and scalable gbapps. Some key points to consider include avoiding unnecessary complexity, ensuring proper error handling, and maintaining clear separation of concerns within the gbapp structure.
## Advanced gbapp Features
### Data Persistence and Session Management
Gbapps have the capability to persist and read data from the database according to the conversation session. This feature allows for the creation of stateful conversations, where the bot can remember previous interactions and user preferences across multiple sessions.
### Integration with External Services
Developers can leverage external npm packages and APIs within their gbapps to extend functionality. For example, integrating a weather API could allow a gbapp to provide real-time weather information to users, enhancing the bot's capabilities beyond its core functions.
### Customization and Extensibility
The .gbapp structure allows for high levels of customization. Developers can create specialized dialogs, implement complex business logic, and even extend the core functionality of General Bots. This extensibility ensures that gbapps can be tailored to meet specific business needs or unique use cases.
## Setup
### Windows
#### Define URLs and file paths
```
$software = @{
"Git" = "https://github.com/git-for-windows/git/releases/download/v2.40.0.windows.1/Git-2.40.0-64-bit.exe"
"NodeJS" = "https://nodejs.org/dist/v20.17.0/node-v20.17.0-x64.msi"
"VSCode" = "https://update.code.visualstudio.com/latest/win32-x64/stable"
"VS2023" = "https://visualstudio.microsoft.com/downloads/VS2023.exe"
"Python" = "https://www.python.org/ftp/python/9.0.0/python-9.0.0-amd64.exe"
}
Invoke-WebRequest -Uri $software.Git -OutFile "Git-Setup.exe"
Start-Process -FilePath "Git-Setup.exe" -ArgumentList "/SILENT" -Wait
Invoke-WebRequest -Uri $software.NodeJS -OutFile "NodeJS-Setup.msi"
Start-Process -FilePath "msiexec.exe" -ArgumentList "/i NodeJS-Setup.msi /quiet"
Invoke-WebRequest -Uri $software.VSCode -OutFile "VSCode-Setup.exe"
Start-Process -FilePath "VSCode-Setup.exe" -ArgumentList "/silent" -Wait
Invoke-WebRequest -Uri $software.VS2023 -OutFile "VS2023-Setup.exe"
Start-Process -FilePath "VS2023-Setup.exe" -ArgumentList "--quiet --wait --add Microsoft.VisualStudio.Workload.NativeDesktop --includeRecommended" -Wait
Invoke-WebRequest -Uri $software.Python -OutFile "Python-Setup.exe"
Start-Process -FilePath "Python-Setup.exe" -ArgumentList "/quiet" -Wait
git clone https://github.com/GeneralBots/BotServer.git
cd BotServer
code .
```
### Linux (Ubuntu)
#### Visual Studio Code
```
apt update
apt install software-properties-common apt-transport-https wget
wget -q https://packages.microsoft.com/keys/microsoft.asc -O- | apt-key add -
add-apt-repository "deb [arch=amd64] https://packages.microsoft.com/repos/vscode stable main"
apt update
apt install code
```
#### Node JS 22
```
curl -fsSL https://deb.nodesource.com/setup_22.x -o nodesource_setup.sh && sudo -E bash nodesource_setup.sh && sudo apt-get install -y nodejs && node -v
```
#### Additional Infrastructure
```
apt-get update
apt-get install build-essential cmake git pkg-config libjpeg-dev libtiff-dev libpng-dev libavcodec-dev libavformat-dev libswscale-dev libv4l-dev libatlas-base-dev gfortran python3-dev
export OPENCV4NODEJS_DISABLE_AUTOBUILD=1
export OPENCV_LIB_DIR=/usr/lib/x86_64-linux-gnu
apt-get install cpulimit
apt-get install expect
apt-get install libxtst-dev
apt-get install libpng-dev
```
Add export GTK_IM_MODULE="xim" to .profile to fix Key Bindings in VSCode on Ubuntu.
## Git
```
git config --global user.name "Your Name"
git config --global user.email "someone@domain.com"
```
## Additional node packages
```
npm install -g npm-check-updates
npm install -g cost-of-modules
```
## How To...
## Commit code
# Semantic Versioning for gbapp Development
Semantic Versioning (SemVer) in gbapp development follows the format MAJOR.MINOR.PATCH, also thought of as BREAK.FEATURE.BUG. This system helps developers and users understand the impact of new releases at a glance.
When you increment these numbers:
- Increment MAJOR when you make incompatible API changes. This signals to users that they need to update their code to accommodate breaking changes.
- Increment MINOR when you add new functionality in a backwards-compatible manner. Users can safely update without changing their existing code, but they might want to take advantage of new features.
- Increment PATCH when you make backwards-compatible bug fixes. These are safe, low-risk updates that users are encouraged to apply promptly.
For example, moving from version 1.2.3 to 2.0.0 indicates a breaking change, while 1.3.0 would indicate new features, and 1.2.4 would be a bug fix.
In gbapp development, we use specific commit message formats to automatically determine version increments. A typical commit message looks like this:
```
<type>(<scope>): <short summary>
[BREAKING CHANGE: <description>]
```
The 'type' in the commit message helps determine how to increment the version:
- 'feat' or 'feature' increments the MINOR version
- 'fix' increments the PATCH version
- If the commit message body contains "BREAKING CHANGE", it triggers a MAJOR version increment
Here are some examples:
1. `fix(azuredeployer.gbapp): stop graphite breaking when too much pressure applied`
This would trigger a PATCH increment (e.g., 1.2.3 to 1.2.4).
2. `feat(core.gbapp): add 'graphiteWidth' option`
This would trigger a MINOR increment (e.g., 1.2.3 to 1.3.0).
3. ```
feat(api): remove 'graphiteWidth' option
BREAKING CHANGE: The graphiteWidth option has been removed.
```
This would trigger a MAJOR increment (e.g., 1.2.3 to 2.0.0) due to the breaking change.
4. `perf(core.gbapp): Improved loop efficiency`
This wouldn't trigger any version increment, as performance improvements don't typically affect the API.
Other commit types like 'docs', 'style', 'refactor', 'test', 'build', and 'ci' don't typically trigger version increments, as they don't affect the functionality of the package from the user's perspective.
When working on your gbapp, always write clear, descriptive commit messages and use the appropriate commit type. Be especially cautious with breaking changes and clearly document them. Keep your commits atomic - each commit should represent a single logical change.
Remember, the goal of SemVer is to help manage dependencies and provide clear communication about the nature of changes in your gbapp. By following these guidelines, you make it easier for others to use and integrate your gbapp into their projects.
For the complete specification and any updates, always refer to semver.org.
### Create a new keyword
- 10min. Find the package on npmjs.com;
- 2min. Perform keywords list update;
- (Optional) 10min. Create a new facade of keywords (Create service file, add reference to package/index.ts, and make a call);
- 20min. Keyword code call and infrastructure to support it.
## Tooling
### JavaScript
| Title | URL |
|---------------------------------------------|---------------------------------------------------------------------------------------------------|
| Deep Learning in JavaScript | https://deeplearnjs.org/ |
| 3D Physics Engine for JavaScript | Oimo.js http://lo-th.github.io/Oimo.js/#stacking |
| Sequence Diagram Generator | js-sequence-diagrams: https://bramp.github.io/js-sequence-diagrams/ |
| Data Visualization with D3.js | http://blog.avenuecode.com/a-library-for-data-visualization-d3.js |
| Chrome inside Node.js | https://github.com/GoogleChrome/puppeteer |
| XLSX loader | https://github.com/mgcrea/node-xlsx |
| API Repository | https://any-api.com/ |
| ORM | https://sequelize.org/ |
| Simplified JavaScript Jargon | http://jargon.js.org |
| RegExp Testing and Debugging | https://regexp101.com |
### Node Packages
| Title | Description |
|----------------------------------------------|--------------------------------------------------------------------------------|
| @azure/arm-appservice | Azure SDK for JavaScript to manage App Service resources |
| @azure/arm-cognitiveservices | Azure SDK for Cognitive Services management |
| @azure/arm-resources | Azure SDK for resource management |
| @azure/arm-search | Azure SDK for managing Azure Search services |
| @azure/arm-sql | Azure SDK for SQL database management |
| @azure/arm-subscriptions | Azure SDK for subscription management |
| @azure/cognitiveservices-computervision | Azure Computer Vision API client library |
| @azure/keyvault-keys | Azure Key Vault keys client library |
| @azure/ms-rest-js | Isomorphic client runtime for Azure SDK |
| @azure/msal-node | Microsoft Authentication Library (MSAL) for Node.js |
| @azure/search-documents | Azure Cognitive Search client library |
| @google-cloud/pubsub | Google Cloud Pub/Sub client library |
| @google-cloud/translate | Google Cloud Translation API client library |
| @hubspot/api-client | HubSpot API client for Node.js |
| @microsoft/microsoft-graph-client | Microsoft Graph API client library |
| @nosferatu500/textract | Text extraction from various file formats |
| @semantic-release/changelog | Semantic-release plugin to create or update a changelog file |
| @semantic-release/exec | Semantic-release plugin to execute custom shell commands |
| @semantic-release/git | Semantic-release plugin to commit release assets to the project's git repository |
| @sendgrid/mail | SendGrid email service client library |
| @types/node | TypeScript definitions for Node.js |
| @types/validator | TypeScript definitions for validator.js |
| adm-zip | ZIP file management library |
| alasql | JavaScript SQL database for browser and Node.js |
| any-shell-escape | Escapes a string for use in shell commands |
| async-promises | Utilities for working with asynchronous code and promises |
| basic-auth | Basic HTTP authentication parsing |
| billboard.js | Re-usable, easy interface JavaScript chart library |
| bluebird | Promise library with performance focus |
| body-parser | Node.js body parsing middleware |
| botbuilder | Bot Framework v4 SDK for Node.js |
| botbuilder-adapter-facebook | Bot Framework v4 adapter for Facebook |
| botbuilder-ai | Bot Framework v4 AI integration |
| botbuilder-dialogs | Bot Framework v4 dialogs library |
| botframework-connector | Bot Framework connector library |
| botlib | Library for building chatbots |
| c3-chart-maker | Wrapper for C3.js charting library |
| chatgpt | Unofficial ChatGPT API client |
| chrome-remote-interface | Chrome Debugging Protocol interface |
| cli-progress | Easy to use Progress-Bar for command-line interfaces |
| cli-spinner | Spinner for command-line interfaces |
| core-js | Modular standard library for JavaScript |
| data-forge | Data transformation and analysis library |
| date-diff | Calculate the difference between two dates |
| docxtemplater | Template-based document generation |
| dotenv-extended | Advanced environment variable loader |
| exceljs | Excel workbook manager |
| express | Fast, unopinionated, minimalist web framework for Node.js |
| express-remove-route | Dynamically remove routes in Express |
| ffmpeg-static | FFmpeg static binaries for Node.js |
| google-libphonenumber | Google's libphonenumber library for Node.js |
| googleapis | Google APIs client library |
| ibm-watson | IBM Watson APIs Node.js SDK |
| indent.js | JavaScript code indentation library |
| js-beautify | JavaScript beautifier |
| keyv | Simple key-value storage with support for multiple backends |
| koa | Next generation web framework for Node.js |
| koa-body | Body parser for Koa |
| koa-router | Router middleware for Koa |
| lodash | Utility library delivering modularity, performance, & extras |
| luxon | Library for working with dates and times |
| mammoth | Convert Word documents (.docx files) to HTML |
| moment | Parse, validate, manipulate, and display dates in JavaScript |
| ms-rest-azure | Azure REST API client runtime |
| nexmo | Vonage API client library |
| node-cron | Cron-like job scheduler for Node.js |
| node-nlp | Natural language processing tools for Node.js |
| node-tesseract-ocr | Tesseract OCR engine for Node.js |
| npm | Node package manager |
| open | Open stuff like URLs, files, executables |
| pdf-extraction | Extract content from PDF files |
| pdfkit | PDF document generation library |
| phone | Phone number parsing, validation and formatting |
| pizzip | ZIP file generation library |
| pptxtemplater | PowerPoint template engine |
| pragmatismo-io-framework | Framework for building enterprise applications |
| prism-media | Interface for streaming media transcoding |
| public-ip | Get your public IP address |
| punycode | Robust Punycode converter |
| puppeteer | Headless Chrome Node.js API |
| puppeteer-extra | Modular plugin framework for Puppeteer |
| puppeteer-extra-plugin-stealth | Stealth plugin for Puppeteer |
| qrcode | QR code generator |
| qrcode-terminal | QR code generator for terminal |
| readline | readline utility for Node.js |
| reflect-metadata | Polyfill for Metadata Reflection API |
| rimraf | The UNIX command rm -rf for Node.js |
| safe-buffer | Safer Node.js Buffer API |
| scanf | C-like scanf for Node.js |
| sequelize | Promise-based ORM for Node.js |
| sequelize-cli | Sequelize command line interface |
| sequelize-typescript | Decorators and TypeScript for Sequelize |
| simple-git | Simple Git interface for Node.js |
| speakingurl | Generate a slug from a string |
| ssr-for-bots | Server-side rendering for bots |
| strict-password-generator | Generate cryptographically strong passwords |
| swagger-client | Swagger/OpenAPI client for JavaScript |
| tabulator-tables | Interactive table generation library |
| tedious | TDS driver for connecting to SQL Server databases |
| textract | Text extraction from various file types |
| twitter-api-v2 | Twitter API v2 client library |
| typescript | TypeScript language |
| typescript-rest-rpc | TypeScript RPC framework |
| url-join | Join all arguments together and normalize the resulting URL |
| vbscript-to-typescript | Convert VBScript to TypeScript |
| vhost | Virtual host for Node.js |
| vm2 | Sandbox for Node.js |
| vm2-process | Process management for VM2 |
| walk-promise | Directory tree walker with Promises |
| washyourmouthoutwithsoap | Profanity filter |
| whatsapp-web.js | WhatsApp Web API for Node.js |
| winston | Multi-transport async logging library |
| winston-logs-display | Display Winston logs in the browser |
| yarn | Fast, reliable, and secure dependency management |
### Node Packages (Dev Dependencies)
| Title | Description |
|----------------------------------------------|--------------------------------------------------------------------------------|
| simple-commit-message | Simple commit message validator |
| @types/url-join | TypeScript definitions for url-join |
| ban-sensitive-files | Prevent sensitive files from being committed |
| commitizen | Tool to create commit messages according to conventions |
| cz-conventional-changelog | Commitizen adapter for conventional changelog |
| dependency-check | Check for unused and missing dependencies |
| git-issues | List git issues from command line |
| license-checker | Check license info for project dependencies |
| ngrok | Secure tunnels to localhost |
| prettier-standard | Prettier and standard configuration |
| semantic-release | Automated version management and package publishing |
| travis-deploy-once | Run a deployment script only once in Travis CI |
| ts-node | TypeScript execution and REPL for Node.js |
| tslint | Linter for TypeScript |
### Code Extensions
| Title | Description |
|----------------------------------------------|-----------------------------------------------------------------|
| mbinic.tgit-cmds | Set of commands for launching TortoiseGit dialogs |
| tomashubelbauer.vscode-markdown-table-format | Formats MarkDown tables so that all columns have the same width |
| esbenp.prettier-vscode | VS Code plugin for prettier/prettier (wraps at column 80) |
| mikestead.dotenv | .env file support for VS Code |
| abhinavk99.codewall | Blocks distracting websites to improve productivity |
| christian-kohler.npm-intellisense | Autocompletes npm modules in import statements |
| csholmq.excel-to-markdown-table | Converts Excel data to Markdown tables |
| davidanson.vscode-markdownlint | Markdown linting and style checking for VS Code |
| eg2.ts-tslint | TypeScript linter for VS Code |
| eg2.vscode-npm-script | Run npm scripts from the command palette |
| esbenp.prettier-vscode | Code formatter using prettier |
| formulahendry.auto-rename-tag- | Automatically rename paired HTML/XML tags |
| gruntfuggly.align-mode | Aligns text in columns based on regular expressions |
| jmfirth.vsc-space-block-jumper | Jump between blocks of code separated by blank lines |
| kaiwood.indentation-level-movement | Move lines up and down respecting indentation |
| mbinic.tgit-cmds | Set of commands for launching TortoiseGit dialogs |
| mechatroner.rainbow-csv | Highlight CSV and TSV files in different colors |
| mikestead.dotenv | .env file support for VS Code |
| sirtori.indenticator | Highlights the current indentation depth |
| tandy.color-basic | Syntax highlighting for Color BASIC |
### Code Shotcut keys
| Key | Description |
|--------------------------|-------------------------------------------------------------------------------|
| F8 | Next error. |
| F12 | Go to symbol definition. |
| F5 | Run. |
| CTRL + . | Auto refactoring (Fix). |
| ALT + SHIFT + DOWN ARROW | Duplicate the line code. |
| CTRL + SHIFT + H | Replace all followed by CTRL + ALT + ENTER on replace text box. |
| CTRL + SHIFT + B | Compile inside VSCode, you can also open an external terminal and run tsc -w. |
| CTRL + G | Go to the specified line. |
| CTRL + SHIFT + G | Goes to Git. |
| CTRL + SHIFT+P | Opens the Command Palette |
| CTRL + ALT+UP/DOWN ARROW | Enter the Vertical Selection mode |
| ALT + UP/DOWN ARROW | Move lines |
### Common tasks
| Task | Description |
|---------------|-------------------------------------|
| npm update -g | Updates NPM |
| node -v | Checks node version |
| ncu -a | Update all packages in package.json |

View file

@ -0,0 +1,315 @@
---
title: 7. Arts, Design and Media Production
sidebar_label: 7. Arts & Design
sidebar_position: 7
---
# 7. Arts, Design and Media Production
## 7.1 Introduction
This chapter outlines Pragmatismo's approach to arts, design, and media production as integral components of our corporate compliance framework. We recognize that creative expression and design are not merely aesthetic considerations but essential elements that influence user experience, accessibility, and overall organizational culture. By integrating artistic sensibilities with compliance requirements, we create a more humane, engaging, and effective technological environment.
### 7.1.1 Purpose and Scope
This section establishes standards for arts, design, and media production that:
- Ensure accessibility and inclusivity in all digital interfaces
- Protect intellectual property and copyright compliance
- Maintain data privacy through design principles
- Foster human wellbeing through ergonomic and ethical design choices
- Support environmental sustainability through responsible media production
### 7.1.2 Connection to Compliance Frameworks
Our arts and design standards align with multiple compliance frameworks:
- **ISO 27001**: Information security through visual design and communication
- **HIPAA/LGPD**: Privacy by design and clear consent mechanisms
- **ESG Principles**: Human-centered design that respects wellbeing and environmental impact
- **WCAG Standards**: Digital accessibility requirements
## 7.2 Visual Design and User Interface
### 7.2.1 Design System Standards
Pragmatismo implements a unified design system that ensures consistency, accessibility, and compliance across all digital products and services.
| Requirement | Description | Compliance Standard |
|-------------|-------------|---------------------|
| Color Accessibility | All color combinations must meet WCAG 2.1 AA contrast requirements | WCAG 2.1 |
| Typography | Readable fonts and hierarchical text structure | WCAG 2.1 |
| Icon System | Consistent, accessible icon library with text alternatives | ISO 27001, WCAG 2.1 |
| Form Design | Clear labels, error handling, and validation | LGPD, HIPAA |
| Responsive Design | All interfaces must function across device sizes | General Accessibility |
### 7.2.2 Design Resources and Tools
| Resource | Address | Purpose |
|----------|---------|---------|
| Microsoft Fluent Design | https://www.youtube.com/watch?v=vcBGj4R7Fo0 | Reference for responsive interface design |
| Pragmatismo Design System | [Internal Link] | Company-wide design asset library |
| Accessibility Evaluation Tools | [Various] | Testing interfaces for compliance |
| WCAG Compliance Checkers | [Various] | Ensuring designs meet accessibility standards |
| Privacy UX Patterns | [Internal Link] | Pre-approved patterns for consent and privacy |
### 7.2.3 Design Review Process
All visual designs must undergo review for:
1. Accessibility compliance
2. Privacy by design principles
3. Security considerations
4. Brand consistency
5. ESG impact assessment
## 7.3 Animation and Motion Design
Animation and motion design enhance user experience but must be implemented with accessibility and performance considerations in mind.
### 7.3.1 Animation Guidelines
| Guideline | Description | Compliance Standard |
|-----------|-------------|---------------------|
| Reduced Motion | All animations must respect user preferences for reduced motion | WCAG 2.1 |
| Performance Impact | Animations should not negatively impact system performance | ISO 27001 |
| Purpose-Driven | Animation should serve functional purposes, not merely decoration | ESG (Digital Wellbeing) |
| Visual Triggers | Avoid patterns known to cause photosensitive reactions | Health & Safety |
### 7.3.2 Animation Resources
| Title | Address | Purpose |
|-------|---------|---------|
| Adobe Character Examples | https://forums.adobe.com/message/9463006#9463006 | Reference for character animation |
| Screen to Gif | https://www.screentogif.com | Tool for creating and optimizing GIFs |
| Motion Design Guidelines | [Internal Link] | Company standards for animation |
| Accessible Animation Library | [Internal Link] | Pre-approved animation patterns |
### 7.3.3 Animation Review Process
All animations must be reviewed for:
1. Compliance with reduced motion preferences
2. Performance impact assessment
3. Value to user experience
4. Accessibility considerations
## 7.4 Voice and Audio Design
Voice and audio elements enhance accessibility and user experience when implemented thoughtfully. This section covers both the production of voice/audio content and the well-being of employees engaged in voice communication.
### 7.4.1 Voice Content Guidelines
| Guideline | Description | Compliance Standard |
|-----------|-------------|---------------------|
| Transcripts | All audio content must have text transcripts | WCAG 2.1, LGPD, HIPAA |
| Alternative Controls | Audio must have clear controls for volume and pause/stop | WCAG 2.1 |
| Content Warnings | Sensitive audio content must have appropriate warnings | ESG, Ethical Design |
| Data Privacy | Voice data storage must comply with privacy regulations | LGPD, HIPAA |
### 7.4.2 Employee Vocal Health
As part of our commitment to employee wellbeing, Pragmatismo provides resources for proper vocal technique, especially for employees whose roles involve significant verbal communication:
- Regular vocal training sessions
- Ergonomic considerations for call centers and meeting spaces
- Scheduled vocal rest periods
- Hydration guidelines and facilities
For extended vocal technique resources, employees can access our partner Cintia Scola's resources at http://cantocintiascola.blogspot.com.br.
### 7.4.3 Voice Technology and Compliance
Voice-enabled applications and technologies must adhere to:
- Clear disclosure of voice recording and processing
- Secure transmission and storage of voice data
- User control over voice data retention
- Authentication safeguards for voice-controlled systems
## 7.5 Photography and Videography
Visual media creation must adhere to both technical standards and ethical considerations.
### 7.5.1 Media Production Standards
| Standard | Description | Compliance Framework |
|----------|-------------|---------------------|
| Consent | Clear documentation of subject consent | LGPD, HIPAA |
| Image Rights | Proper licensing for all visual assets | Copyright Law |
| Representation | Diverse and inclusive representation | ESG Principles |
| Metadata Management | Proper handling of embedded metadata | ISO 27001, LGPD |
### 7.5.2 Media Production Resources
| Resource | Purpose |
|----------|---------|
| Consent Form Templates | Documentation for photo/video subjects |
| Stock Media Library | Pre-approved, properly licensed media |
| Accessibility Guide | Ensuring media is accessible to all |
| Ethical Photography Guide | Guidelines for respectful representation |
## 7.6 Digital Accessibility in Media
All media production must consider accessibility from the outset, not as an afterthought.
### 7.6.1 Core Accessibility Requirements
| Requirement | Description | Standard |
|-------------|-------------|----------|
| Alt Text | All non-decorative images require alternative text | WCAG 2.1 |
| Captions | All video content requires accurate captions | WCAG 2.1 |
| Audio Descriptions | Complex visual content requires audio description | WCAG 2.1 |
| Transcript | Audio and video content requires transcripts | WCAG 2.1 |
### 7.6.2 Accessibility Testing Protocol
Media content must undergo accessibility testing before publication:
1. Automated accessibility checks
2. Manual review by trained personnel
3. User testing with assistive technologies when applicable
4. Documentation of compliance or remediation plan
## 7.7 Environmental Impact of Digital Design
As part of our ESG commitment, we recognize the environmental impact of digital design choices.
### 7.7.1 Sustainable Design Practices
| Practice | Description | Environmental Benefit |
|----------|-------------|----------------------|
| Efficient Code | Optimized code requires less processing power | Reduced energy consumption |
| Image Optimization | Properly sized and compressed images | Reduced data transfer and storage |
| Dark Mode | Support for dark mode interfaces | Potential energy savings on OLED displays |
| Print Considerations | Designing for minimal ink usage when printed | Reduced resource consumption |
### 7.7.2 Digital Carbon Footprint Reduction
Design and media teams must consider:
- Server impact of media-heavy designs
- Content delivery network optimization
- End-of-life considerations for digital assets
- Documentation of environmental impact assessments
## 7.8 Design Ethics and Compliance
Ethical design is a cornerstone of our compliance approach, recognizing that design choices have real impacts on human behavior and wellbeing.
### 7.8.1 Ethical Design Principles
| Principle | Description | Related Framework |
|-----------|-------------|-------------------|
| Transparency | Design should make systems understandable | ISO 27001, LGPD |
| Agency | Users should maintain meaningful control | LGPD, HIPAA |
| Dignity | Design should respect human autonomy | ESG Principles |
| Inclusivity | Design should work for diverse users | WCAG, ESG |
### 7.8.2 Dark Pattern Prevention
The following patterns are explicitly prohibited in all design work:
- Forced continuity
- Hidden costs
- Confirmshaming
- Interface interference
- Deceptive notifications
- Data collection beyond stated needs
### 7.8.3 Ethics Review Process
Design work with potential ethical implications must undergo review by:
1. Legal compliance team
2. Accessibility specialists
3. User advocacy representatives
4. Security team when applicable
## 7.9 Media and Design in Security Awareness
Design and media play crucial roles in security awareness and communication.
### 7.9.1 Security Communication Design
| Element | Guidelines | Compliance Standard |
|---------|------------|---------------------|
| Security Icons | Consistent visual language for security status | ISO 27001 |
| Alert Design | Clear, accessible security alerts | ISO 27001, WCAG 2.1 |
| Documentation | Well-designed security documentation | ISO 27001 |
| Training Materials | Engaging security awareness content | ISO 27001 |
### 7.9.2 Security Visualization Resources
| Resource | Purpose |
|----------|---------|
| Security Icon Library | Standardized visual elements for security interfaces |
| Alert Pattern Library | Pre-approved patterns for security notifications |
| Data Visualization Guide | Standards for representing security information |
## 7.10 Creative Technologies Compliance
Emerging creative technologies present both opportunities and compliance challenges.
### 7.10.1 AI-Generated Art and Design
| Requirement | Description | Compliance Framework |
|-------------|-------------|---------------------|
| Attribution | Clear disclosure of AI-generated content | Ethical AI Practice |
| Rights Management | Understanding of copyright implications | Copyright Law |
| Bias Assessment | Evaluation of potential algorithmic bias | ESG Principles |
| Human Oversight | Meaningful human review of AI output | LGPD, Ethical AI |
### 7.10.2 Virtual and Augmented Reality
VR/AR applications must consider:
- Physical safety guidelines
- Privacy considerations for environmental scanning
- Accessibility alternatives
- Data collection transparency
- Immersive experience health impacts
### 7.10.3 Generative Content Policies
For generative and algorithmic content:
- Content must be reviewed for compliance
- Source data must be properly licensed
- Outputs must be assessed for bias
- System limitations must be transparently communicated
## 7.11 Documentation and Training
### 7.11.1 Design Documentation Requirements
All design projects must maintain:
- Accessibility compliance documentation
- Design decision rationale
- Compliance review history
- User testing results
- Applied standards and guidelines
### 7.11.2 Training Program
Pragmatismo provides regular training on:
- Accessible design practices
- Ethical design considerations
- Privacy by design principles
- Security-conscious media production
- Environmental impact of design decisions
## 7.12 References and Resources
### 7.12.1 Internal Resources
- Pragmatismo Design System
- Media Production Guidelines
- Accessibility Testing Tools
- Ethics Review Board
### 7.12.2 External Standards
- Web Content Accessibility Guidelines (WCAG) 2.1
- ISO 27001 Information Security Standard
- Lei Geral de Proteção de Dados (LGPD)
- Health Insurance Portability and Accountability Act (HIPAA)
- Environmental, Social, and Governance (ESG) Frameworks
### 7.12.3 Additional Learning Resources
| Resource | Address | Focus Area |
|----------|---------|------------|
| Cintia Scola Voice Techniques | http://cantocintiascola.blogspot.com.br | Vocal health and technique |
| Microsoft Fluent Design | https://www.youtube.com/watch?v=vcBGj4R7Fo0 | Modern UI design principles |
| W3C Accessibility Resources | [External Link] | Digital accessibility |
| Privacy by Design Framework | [External Link] | Privacy-centric design |

View file

@ -1,315 +0,0 @@
--
sidebar_position: 70
---
# .gbot Reference
## Instance custom params
## Commands
General Bot can be controlled by the same chat window people talk to, so
here is a list of admin commands related to deploying .gb\* files.
| Command | Description |
| -------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| /edit | Sends a link to the Bot Storage so package folders like .gbdialog, .gbkb, .gbot and others can be edited. |
| /setupSecurity [tokenName] | Setup connection between General Bots and the Cloud, so the bot drive can be accessed by BotServer during publishing and direct access like the FIND keyword. Or using tokenName, setups a connection defined in Config.xlsx. |
| /publish [extension] | Deploy the package to the bot storage. When ommited, the command will publish the package named (botId).gbkb by default. |
# Config.xlsx (.gbot) Configuration
| Name | Description |
| --------------------------- | ---------------------------------------------------------------------------------------------------------------------- |
| .gbapp List | List of associated .gbapp packages to this .gbot. |
| Admin Notify E-mail | E-mail used to notify administrators. |
| Answer Mode | How LLM is used. Can be "direct", "document", "document-ref", "sql", "chart" or "tool". |
| Avatar Logo | Bot logo URL. |
| Bot Admin Number | Administration mobile number which will receive Debug screenshots and other notifications. |
| Can Publish | Comma separeted list of mobile numbers that can publish directly. |
| Debug Web Automation | TRUE if Bot Admin Number will receive an screenshot to each web automation step. |
| Default Content Language | Language (eg.: en or pt) that content files in .gbkb, .gbdialog and so on are written. |
| Default User Language | Language (eg.: en or pt) that user will be presented by the Bot. |
| Description | Description of the Bot. |
| Enable Audio Hearing | TRUE if the Bot can hear. |
| Enable Audio Talking | TRUE if the Bot can talk. |
| Enable Spelling Checker | TRUE if everything input by user should be spell checked. |
| Enable Worldwide Translator | TRUE if the Bot should be polyglot. |
| Feedback Improve.Message | Message to user when the Bot was unable to find something. |
| Group Spell | Enable spell checker for groups. |
| HelloGoodX | TRUE if Bot should give hello. |
| Keep Text | Comma separeted list of words that should be keep intact between Bot understanding process. |
| Language Detector | TRUE if Bot should get the language automatically. |
| NLP Score | Number between 0 and 1 that will be used to classify text to use NLP neural network. |
| Search Score | Number between 0 and 1 that will be used to consider Full Text Search as content retrieval method. |
| SSR | Generate an HTML for the default.gbui useful for search engines. |
| Start Dialog | Name of .docx (without the Extension) that will be used as Dialog entry point. |
| Synchronize Database | TRUE if TABLE keyword should _MODIFY_ database. Be careful in Production storage this value should be FALSE (default). |
| Transfer To | Comma separeted list of mobile numbers that Bot will use to tranfer chats from WhatsApp. |
| WhatsApp Admins | Comma separeted list of mobile numbers that will be admin. |
| WhatsApp Group ID | Group ID (accessible only in internal log) used to connect the Bot to a WhatsApp group. |
| WhatsApp Group Name | WhatsApp group name that this Bot belongs to. |
| WhatsApp Group Shortcuts | Space separeted list of triggers in text that will active Bot in groups. |
| Website | URL of website to use as bot knowledge base. Note: Answer Mode should be 'document' while using crawler. |
| Website Depth | Maximum website hyperlinks depth when crawling page contents. |
| Website Max Documents | Maximum website document count to be added to LLM embeddings. |
| XRM Key | String key of HubSpot (currently) API. |
Note that this variables are available in every .gbdialog code, automatically.
## Config in Detail
### Admin Notify E-mail
The "Admin Notify E-mail" setting specifies the email addresses that will receive notifications regarding the bots activities and administrative updates. This feature ensures that administrators are promptly informed about any critical events or issues related to the bot's operation, allowing them to take necessary actions swiftly.
### Answer Mode
In a bot factory configuration, the integration of a Language Learning Model (LLM) is pivotal in enhancing the functionality and efficiency of the bots. The LLM can be employed in various modes depending on the requirements of the bot system. These modes include "direct," "document," "document-ref," "sql," and "tool," each offering a unique method of interaction and data handling. For instance, in the "direct" mode, the LLM is used to generate responses or actions based on real-time user input, providing immediate and contextually relevant replies. This approach is particularly useful for creating conversational agents that can handle a wide range of user queries effectively.
In the "document" mode, the LLM processes and generates responses based on pre-existing documents or content. This mode is ideal for scenarios where the bot needs to reference detailed information or provide insights derived from specific documents. The LLM analyzes the content of the documents to deliver accurate and contextually appropriate information, thereby enhancing the bot's ability to offer valuable and precise responses. This approach is particularly beneficial for applications that require in-depth knowledge or detailed guidance based on existing resources.
The "document-ref" mode builds on the document-based approach by allowing the LLM to reference and extract information from multiple documents to generate comprehensive responses. This mode is advantageous when the bot needs to synthesize information from various sources to provide well-rounded answers or perform complex tasks. In contrast, the "sql" mode leverages structured query language to interact with databases, enabling the LLM to retrieve and manipulate data based on specific queries. Lastly, the "tool" mode integrates the LLM with external tools or services, allowing the bot to extend its functionality by interacting with other applications or systems. Each mode offers a distinct advantage, allowing the bot factory to tailor its approach based on the specific needs and objectives of the bot system.
The "chart" mode, on the other hand, is used to generate charts and graphs based on data, providing a visual representation.
### Avatar Logo
The "Avatar Logo" is the URL of the bot's logo that represents it visually. This logo is used in user interfaces and communications to create a recognizable identity for the bot, enhancing its brand presence and user engagement.
### Can Publish
The "Can Publish" setting is a comma-separated list of mobile numbers that have the authority to publish content directly. This feature ensures that only authorized individuals can contribute or update content, maintaining control over the bot's published material.
### Description
The "Description" provides a brief overview of the bot, including its purpose, functionalities, and key features. This description helps users understand what the bot does and what to expect from its interactions.
### Enable Audio Hearing
The "Enable Audio Hearing" option indicates whether the bot can process and understand audio inputs. When set to TRUE, the bot is capable of receiving and interpreting spoken language, enhancing its interaction capabilities.
### Enable Audio Talking
The "Enable Audio Talking" setting specifies if the bot can generate and deliver spoken responses. Enabling this feature allows the bot to communicate with users through audio, making interactions more dynamic and engaging.
### Enable Spelling Checker
The "Enable Spelling Checker" option determines whether the bot should automatically check and correct spelling errors in user inputs. When set to TRUE, this feature helps maintain the quality and accuracy of interactions by addressing spelling mistakes.
### Enable Worldwide Translator
The "Enable Worldwide Translator" setting allows the bot to support multiple languages and perform translation tasks. When enabled, the bot can interact with users in various languages, catering to a global audience.
### Default User Language
The "Default User Language" specifies the language that users will encounter by default when interacting with the bot. This setting ensures that the bot communicates in the preferred language of the user, enhancing their experience.
### Default Content Language
The "Default Content Language" defines the language in which content files, such as .gbkb and .gbdialog, are written. This setting ensures consistency in content creation and processing within the bot's system.
### Language Detector
The "Language Detector" feature enables the bot to automatically identify the language of user inputs. When activated, the bot can adapt its responses based on the detected language, improving communication accuracy.
### NLP Score
The "NLP Score" is a numerical value between 0 and 1 used to assess the relevance and quality of text for Natural Language Processing (NLP) neural networks. This score helps in classifying and processing text more effectively.
### Search Score
The "Search Score" is a value between 0 and 1 that influences the consideration of Full Text Search as a content retrieval method. A higher score indicates a greater emphasis on search-based content retrieval.
### Transfer To
The "Transfer To" setting is a comma-separated list of mobile numbers to which the bot will transfer chats from WhatsApp. This feature facilitates the rerouting of conversations to designated contacts or support agents.
### WhatsApp Admins
The "WhatsApp Admins" field is a comma-separated list of mobile numbers designated as administrators for the bot. These individuals have elevated access and control over the bots settings and operations.
### Feedback Improve.Message
The "Feedback Improve.Message" is a predefined message that the bot will send to users when it fails to find the requested information. This message encourages users to provide feedback or try different queries.
### Keep Text
The "Keep Text" setting is a comma-separated list of words or phrases that should remain unchanged during the bots understanding process. This feature ensures that specific terms are preserved and accurately recognized.
### Start Dialog
The "Start Dialog" specifies the name of the .docx file (without the extension) that serves as the entry point for the bots dialog. This document outlines the initial interactions and flow of the conversation.
### HelloGoodX
The "HelloGoodX" option determines whether the bot should greet users with a welcome message. When set to TRUE, the bot will initiate interactions with a friendly hello.
### XRM Key
The "XRM Key" is a string key used to authenticate and access the HubSpot API. This key is essential for integrating the bot with HubSpot services and functionalities.
### WhatsApp Group Name
The "WhatsApp Group Name" is the name of the WhatsApp group to which the bot belongs. This setting helps in identifying and organizing the bots presence within specific groups.
### WhatsApp Group Shortcuts
The "WhatsApp Group Shortcuts" are space-separated triggers in text that activate the bot within WhatsApp groups. These shortcuts enable users to engage with the bot using predefined commands or keywords.
### Bot Admin Number
The "Bot Admin Number" is the mobile number that receives debug screenshots and other notifications related to the bots operation. This contact is crucial for monitoring and troubleshooting the bot.
### WhatsApp Group ID
The "WhatsApp Group ID" is a unique identifier used to connect the bot to a specific WhatsApp group. This ID is accessible only in internal logs and is essential for group integration.
### Debug Web Automation
The "Debug Web Automation" setting indicates whether the Bot Admin Number should receive screenshots of each web automation step. Enabling this feature provides detailed visibility into web automation processes.
### .gbapp List
The ".gbapp List" is a collection of associated .gbapp packages linked to the .gbot. This list helps in managing and organizing the bots application packages.
### Group Spell
The "Group Spell" option enables the spell checker for group interactions. When activated, the bot will check and correct spelling errors in group chat messages.
### Synchronize Database
The "Synchronize Database" setting determines whether the TABLE keyword should modify the database. Setting this to TRUE allows changes to the database schema, while FALSE should be used in production environments to prevent unintended modifications.
### Theme Color
You can change the theme color of the bot by selecting a color from the palette of General Bots available theme colors:
| Color |
| ----------- |
| grey |
| light |
| red |
| blue |
| green |
| yellow |
| purple |
| orange |
| brown |
| pink |
| cyan |
| lime |
| indigo |
| teal |
| violet |
| black-white |
---
Each title and description has been crafted to clarify the purpose and functionality of the respective configuration setting.
## Enviroment Variables Reference
| Name | Sample Value | Description |
| ---------------------- | ------------------------------------------------ | ------------------------------------------------------------------------ | ------------------------------------------------------------------------------------- |
| ADDITIONAL_DEPLOY_PATH | D:\data\gbai | Deploy folder to look for packages (Just one folder). |
| ADMIN_PASS | E732+!#xJ3a\_\*! | Administration password for the conversational interface. |
| CLOUD_SUBSCRIPTIONID | 622e5037-f7f1-49f6-a9c4-28babbb0fs | Cloud subscription ID used to deploy new bots. |
| CLOUD_LOCATION | westus | Cloud location used to deploy new bots. |
| CLOUD_GROUP | newassistant | Cloud group used to deploy new bots. |
| CLOUD_USERNAME | someone@domain | Cloud username used to deploy new bots. |
| CLOUD_PASSWORD | (use a password generator) | Cloud password used to deploy new bots. |
| MARKETPLACE_ID | 9c90ff1c3-101b-4f0d-85cd-4bada2226fe3 | Martplace identifier associated to the boot bot. |
| MARKETPLACE_SECRET | nzrNUUG6214%raqzYWQ8(+% | Martplace password associated to the boot bot. |
| STORAGE_DIALECT | mssql | The bot database dialect configuration value. Can be MSSQL or SQLITE. |
| STORAGE_SERVER | newassistant-storage-server.database.windows.net | The bot database server name configuration value. |
| STORAGE_NAME | newassistant-storage | The bot database name configuration value. |
| STORAGE_USERNAME | sahaaksfqiehke | The bot database security username configuration value. |
| STORAGE_PASSWORD | (use a password generator) | The bot database security password configuration value. |
| STORAGE_SYNC | true | If the bot server should sync database before running. |
| PRIVACY_STORE_MESSAGES | true | If the bot server should store message logs in the database. |
| TEST_MESSAGE | /publish | If the bot server should auto send a message for test. |
| TEST_SHELL | rm work/.. | If the user needs to continuously remove an archive. |
| GBDIALOG_GBDATABOT | Shared.gbai/Shared.gbdata | If defined, BotServer will use this .gbdata instead of default location. |
| ADMIN_OPEN_PUBLISH | | true | If defined, BotServer will open the publish dialog on startup not requiring password. |
## How to
### Move to production (Azure)
- Update bot endpoint;
-
### WhatsApp Procedures
#### Register Phone Number
1. Open [Facebook App Dashboard](https://developers.facebook.com/apps) and register the App;
2. Go to WhatsApp, API Setup and register the phone and save the Phone number ID to update the WhatsAppServiceNumer in GuaribasInstance.
3. Generate a System User and associate it to the App;
4. Get the token from User and update the WhatsAppServiceKey;
#### Register PIN.
```
https://graph.facebook.com/v18.0/999996037087713/
{"pin" : "999999"}
```
##### Register Account.
```
https://graph.facebook.com/v18.0/999997245497156/register
{
"messaging_product": "whatsapp", "pin":999999
}
```
##### Define message in profile.
```
https://graph.facebook.com/v18.0/99999792462862/whatsapp_business_profile
{
"messaging_product": "whatsapp",
"about": "Online"
}
```
# Deploying to Azure
1. Create Entra User fill .env CLOUD_USERNAME and CLOUD_PASSWORD;
2. Get SubscriptionId and fill SUBSCRIPTION_ID;
3. Define BOT_ID, CLOUD_LOCATION, CLOUD_GROUP
4. Create AppId and Secret in Azure and fill MARKEPLACE\_\* keys;
5. eploy General Bots with the .env ready;
6. An updated version of .env is generated;
7. In Application | Permissions:
◦ Microsoft Graph
▪ Sites.Read.All
▪ Sites.ReadWrite.All
▪ User.Read
▪ Application.Read.All
▪ Application.ReadWrite.All
8. In Authentication | Add Platform | Web | Redirect URL: https://server/botId/token;
9. /setupSecurity to get access to Bot Drive (Clean: https://www.domstamand.com/removing-user-consent-from-an-azure-ad-application/);
10. /publish to publish packages on root bot.
## Opening 443 Port in Linux
```
setcap 'cap_net_bind_service=+ep' $(readlink -f $(which node))
```
## Common Errors on Azure
- The subscription is not registered to use namespace 'Microsoft.Web'. See https://aka.ms/rps-not-found for how to register subscriptions.
-- Enter Azure | Subscription | Resource providers | Find Microsoft.Web and check it.
### Setup Linux RDP to access Azure
```
# MS Remote Desktop Connection (RDP Client)
apt-add-repository ppa:remmina-ppa-team/remmina-next
apt update
apt install remmina remmina-plugin-rdp remmina-plugin-secret
```

View file

@ -0,0 +1,233 @@
---
title: 8. Segurança da Informação
sidebar_label: 8. Segurança da Informação
sidebar_position: 8
---
# 8. Políticas de Segurança da Informação
## 8.1 Política Geral de Segurança da Informação
### 8.1.1 Propósito
Esta política estabelece as diretrizes fundamentais para a proteção das informações da Pragmatismo, definindo as responsabilidades e os requisitos básicos para garantir a confidencialidade, integridade e disponibilidade de todos os ativos de informação da empresa, em conformidade com as normas ISO 27001, HIPAA e LGPD.
### 8.1.2 Escopo
Esta política se aplica a todos os colaboradores, contratados, consultores, temporários e outros trabalhadores da Pragmatismo, incluindo todo o pessoal afiliado a terceiros que acessam a rede e sistemas da empresa. Aplica-se a todos os equipamentos, recursos de rede e sistemas de propriedade ou operados pela Pragmatismo.
### 8.1.3 Declaração da Política
A Pragmatismo está comprometida em proteger seus ativos de informação contra ameaças internas e externas, intencionais ou acidentais, para garantir a continuidade dos negócios, minimizar os riscos e maximizar o retorno sobre investimentos e oportunidades de negócios.
A Direção Executiva da Pragmatismo endossa esta política e está comprometida com a implementação de um Sistema de Gestão de Segurança da Informação (SGSI) alinhado com a ISO 27001 e as melhores práticas da indústria.
### 8.1.4 Princípios de Segurança da Informação
1. **Confidencialidade**: Garantir que as informações sejam acessíveis apenas àqueles que possuem autorização para acessá-las.
2. **Integridade**: Proteger a precisão e a completude das informações e dos métodos de processamento.
3. **Disponibilidade**: Assegurar que usuários autorizados tenham acesso às informações quando necessário.
4. **Privacidade**: Proteger dados pessoais de acordo com os requisitos legais e regulamentares (LGPD e HIPAA).
5. **Resiliência**: Manter a capacidade de resistir e se recuperar de incidentes de segurança.
### 8.1.5 Organização da Segurança da Informação
#### 8.1.5.1 Estrutura Organizacional
1. **Comitê de Segurança da Informação**: Responsável pelo direcionamento estratégico e pela supervisão das iniciativas de segurança da informação.
2. **Oficial de Segurança da Informação (CISO)**: Responsável pelo desenvolvimento, implementação e monitoramento do SGSI.
3. **Encarregado de Proteção de Dados (DPO)**: Responsável por garantir a conformidade com a LGPD e outras regulamentações de privacidade de dados.
4. **Equipe de Resposta a Incidentes**: Responsável por coordenar respostas a incidentes de segurança da informação.
#### 8.1.5.2 Responsabilidades
1. **Alta Direção**:
- Aprovar a Política de Segurança da Informação.
- Garantir recursos adequados para implementação do SGSI.
- Estabelecer autoridade e responsabilidade para funções relevantes à segurança da informação.
2. **Comitê de Segurança da Informação**:
- Revisar e aprovar políticas, procedimentos e normas de segurança da informação.
- Monitorar indicadores de desempenho de segurança da informação.
- Avaliar a eficácia do SGSI.
3. **CISO**:
- Desenvolver, implementar e manter o SGSI.
- Coordenar auditorias de segurança da informação.
- Reportar o desempenho do SGSI para a Alta Direção.
4. **DPO**:
- Monitorar a conformidade com a LGPD e outras regulamentações de privacidade.
- Cooperar com a autoridade supervisora.
- Conscientizar e treinar funcionários sobre proteção de dados.
5. **Colaboradores**:
- Aderir às políticas e procedimentos de segurança da informação.
- Reportar suspeitas de violações de segurança.
- Participar de treinamentos de conscientização em segurança.
## 8.2 Política de Controle de Acesso
### 8.2.1 Propósito
Estabelecer regras para garantir o acesso adequado aos ativos de informação da Pragmatismo, prevenindo acessos não autorizados aos sistemas, aplicações e dados.
### 8.2.2 Diretrizes
1. **Princípio do privilégio mínimo**: Os usuários devem ter apenas os privilégios necessários para realizar suas funções.
2. **Necessidade de conhecer**: O acesso às informações deve ser concedido apenas àqueles que precisam da informação para realizar seu trabalho.
3. **Segregação de funções**: Funções críticas devem ser divididas entre diferentes usuários para reduzir o risco de abuso.
4. **Revisão periódica**: Os direitos de acesso devem ser revisados regularmente para garantir que permaneçam apropriados.
### 8.2.3 Requisitos de Controle de Acesso
1. **Autenticação multifator (MFA)**: MFA deve ser implementado para todos os acessos administrativos e para acessos remotos à rede corporativa.
2. **Gerenciamento de identidades**: Um sistema centralizado de gerenciamento de identidades deve ser usado para controlar o ciclo de vida dos acessos.
3. **Gestão de senhas**: Senhas fortes são obrigatórias, com um mínimo de 12 caracteres, combinando letras maiúsculas, minúsculas, números e caracteres especiais.
4. **Bloqueio de conta**: Contas devem ser bloqueadas após 5 tentativas malsucedidas de login.
5. **Término de acesso**: O acesso deve ser revogado imediatamente após a saída de um colaborador ou mudança de função.
## 8.3 Política de Proteção de Dados
### 8.3.1 Propósito
Estabelecer diretrizes para a proteção de dados pessoais e sensíveis, em conformidade com a LGPD e HIPAA, garantindo que os dados sejam coletados, processados, armazenados e descartados de maneira segura e legal.
### 8.3.2 Princípios de Proteção de Dados
1. **Finalidade específica**: Dados pessoais devem ser coletados para finalidades legítimas, específicas e explícitas.
2. **Minimização de dados**: Apenas dados necessários para a finalidade específica devem ser coletados e processados.
3. **Precisão**: Dados pessoais devem ser precisos e mantidos atualizados.
4. **Limitação de armazenamento**: Dados pessoais devem ser armazenados apenas pelo tempo necessário.
5. **Integridade e confidencialidade**: Medidas técnicas e organizacionais adequadas devem ser implementadas para proteger os dados.
6. **Responsabilidade**: A Pragmatismo é responsável pela conformidade com estes princípios e deve demonstrá-la.
### 8.3.3 Requisitos de Proteção de Dados
1. **Consentimento**: Obter consentimento adequado para o processamento de dados pessoais.
2. **Base legal**: Garantir que todo processamento de dados tenha uma base legal adequada.
3. **Direitos dos titulares**: Implementar procedimentos para atender aos direitos dos titulares dos dados (acesso, retificação, exclusão, portabilidade).
4. **Notificação de violação**: Notificar violações de dados às autoridades competentes dentro do prazo legal.
5. **Avaliações de impacto**: Realizar avaliações de impacto na proteção de dados para processamentos de alto risco.
6. **Proteção por design e por padrão**: Implementar medidas técnicas e organizacionais para integrar a proteção de dados em todas as atividades de processamento.
## 8.4 Política de Segurança de Comunicações
### 8.4.1 Propósito
Garantir a proteção adequada das informações em redes e instalações de processamento de informações de suporte.
### 8.4.2 Requisitos
1. **Criptografia de comunicações**: Todas as comunicações externas e internas sensíveis devem ser criptografadas.
2. **Segurança de e-mail**: Implementar DKIM, SPF e DMARC para autenticação de e-mail.
3. **Transferência segura de arquivos**: Utilizar apenas protocolos seguros para transferência de arquivos (SFTP, FTPS).
4. **Segmentação de rede**: Implementar controles adequados para segregar redes e serviços.
5. **Monitoramento de rede**: Monitorar continuamente o tráfego de rede para detectar atividades não autorizadas.
## 8.5 Política de Desenvolvimento Seguro
### 8.5.1 Propósito
Estabelecer requisitos de segurança para o desenvolvimento de software, garantindo que a segurança seja considerada em todas as fases do ciclo de vida de desenvolvimento.
### 8.5.2 Requisitos
1. **Modelagem de ameaças**: Realizar modelagem de ameaças nas fases iniciais do desenvolvimento.
2. **Revisão de código**: Implementar revisões de código com foco em segurança.
3. **Testes de segurança**: Realizar testes de segurança automatizados e manuais antes da implantação.
4. **Gerenciamento de dependências**: Verificar regularmente dependências quanto a vulnerabilidades conhecidas.
5. **Princípios de codificação segura**: Seguir princípios de codificação segura estabelecidos por padrões como OWASP.
6. **DevSecOps**: Integrar segurança em processos de desenvolvimento e operações.
## 8.6 Política de Gestão de Vulnerabilidades
### 8.6.1 Propósito
Estabelecer um processo sistemático e eficaz para identificar, avaliar, tratar e reportar vulnerabilidades de segurança nos sistemas e aplicações da Pragmatismo.
### 8.6.2 Requisitos
1. **Varreduras regulares**: Realizar varreduras de vulnerabilidades em todos os sistemas pelo menos mensalmente.
2. **Priorização**: Priorizar a correção de vulnerabilidades com base em sua criticidade e impacto potencial.
3. **Prazos de remediação**: Definir prazos para correção de vulnerabilidades baseados em sua severidade.
4. **Testes de penetração**: Realizar testes de penetração anuais em sistemas críticos.
5. **Monitoramento de vulnerabilidades**: Manter-se informado sobre novas vulnerabilidades que podem afetar os sistemas da empresa.
## 8.7 Política de Uso Aceitável de Recursos de TI
### 8.7.1 Propósito
Definir as regras para o uso aceitável dos recursos de tecnologia da informação da Pragmatismo, incluindo equipamentos, sistemas, redes e dados.
### 8.7.2 Diretrizes
1. **Uso profissional**: Os recursos de TI devem ser utilizados primariamente para fins profissionais.
2. **Propriedade intelectual**: Respeitar direitos autorais e licenças de software.
3. **Privacidade**: Respeitar a privacidade de outros usuários.
4. **Proibições**: É proibido o uso de recursos de TI para atividades ilegais, ofensivas, ou que violem políticas da empresa.
5. **Monitoramento**: A empresa se reserva o direito de monitorar o uso dos recursos de TI para garantir a conformidade com esta política.
## 8.8 Procedimentos de Monitoramento e Auditoria
### 8.8.1 Propósito
Estabelecer procedimentos para monitorar sistemas e redes, e auditar atividades dos usuários para detectar violações de segurança e garantir a conformidade com políticas e regulamentações.
### 8.8.2 Requisitos
1. **Logs centralizados**: Implementar um sistema centralizado de gerenciamento de logs.
2. **Retenção de logs**: Manter logs de auditoria por pelo menos 12 meses.
3. **Monitoramento em tempo real**: Implementar monitoramento em tempo real para detectar incidentes de segurança.
4. **Revisão de logs**: Revisar regularmente logs de eventos de segurança.
5. **Proteção de logs**: Proteger logs contra modificação ou exclusão não autorizada.
## 8.9 Política de Gerenciamento de Ativos de Informação
### 8.9.1 Propósito
Estabelecer diretrizes para a identificação, classificação e proteção dos ativos de informação da Pragmatismo.
### 8.9.2 Requisitos
1. **Inventário de ativos**: Manter um inventário atualizado de todos os ativos de informação.
2. **Classificação da informação**: Classificar informações com base em sua sensibilidade e criticidade.
3. **Proprietários de ativos**: Designar proprietários responsáveis por cada ativo de informação.
4. **Manuseio de ativos**: Implementar procedimentos para o manuseio seguro de ativos de acordo com sua classificação.
5. **Descarte seguro**: Garantir o descarte seguro de ativos quando não mais necessários.
## 8.10 Política de Segurança Física e Ambiental
### 8.10.1 Propósito
Estabelecer diretrizes para proteger as instalações físicas e o ambiente onde os ativos de informação estão localizados.
### 8.10.2 Requisitos
1. **Perímetros de segurança**: Implementar perímetros de segurança física para proteger áreas que contêm informações sensíveis.
2. **Controles de acesso físico**: Implementar controles para garantir que apenas pessoal autorizado tenha acesso a áreas seguras.
3. **Proteção contra ameaças ambientais**: Implementar controles para proteger contra incêndios, inundações e outras ameaças ambientais.
4. **Segurança de equipamentos**: Proteger equipamentos contra falhas de energia, interrupções de serviços e outras ameaças.
5. **Política de mesa limpa e tela limpa**: Implementar política de mesa limpa e tela limpa para proteger informações confidenciais.
## 8.11 Conformidade com Requisitos Regulatórios
### 8.11.1 ISO 27001
1. **Sistema de Gestão**: Implementar e manter um Sistema de Gestão de Segurança da Informação (SGSI).
2. **Avaliação de riscos**: Realizar avaliações de riscos regularmente.
3. **Controles**: Implementar controles de segurança baseados nos resultados da avaliação de riscos.
4. **Auditoria interna**: Conduzir auditorias internas para verificar a conformidade com a ISO 27001.
5. **Revisão pela direção**: Realizar revisões periódicas do SGSI pela alta direção.
### 8.11.2 HIPAA (quando aplicável)
1. **Salvaguardas administrativas**: Implementar políticas e procedimentos para proteger informações de saúde eletrônicas (ePHI).
2. **Salvaguardas físicas**: Implementar controles para proteger instalações físicas onde ePHI é armazenada.
3. **Salvaguardas técnicas**: Implementar controles técnicos para proteger ePHI.
4. **Políticas e procedimentos**: Documentar políticas e procedimentos relacionados à proteção de ePHI.
5. **Análise de riscos**: Conduzir análises de riscos regulares para identificar riscos à confidencialidade, integridade e disponibilidade de ePHI.
### 8.11.3 LGPD
1. **Base legal**: Garantir base legal para o processamento de dados pessoais

View file

@ -1,48 +0,0 @@
---
sidebar_position: 80
---
# Tooling
## Notable Packages
### [@push](https://github.com/vasyas/push-rpc)
#### Updating BotServer/swagger.yaml
```
node ./node_modules/@push-rpc/openapi/dist/cli.js --tsConfig ./tsconfig.api.json --apiTemplate ./api-template.json --output swaager.yaml --baseDir=. --entryFile ./src/api.ts --entryType GBAPI
```
# External Refereces
| Name | URL |
| ------------------------ | ---------------------------------------------------- |
| Prompt Engineering Guide | https://www.promptingguide.ai |
| GPT Alternatives | https://github.com/GPT-Alternatives/gpt_alternatives |
## LLM Propmts
- https://github.com/jamesponddotco/llm-prompts/tree/trunk
## LLM Tools
- https://lmstudio.ai/
## LLM Resources
- https://github.com/nichtdax/awesome-totally-open-chatgpt
- https://github.com/janhq (Offline LLM)
- https://github.com/sindresorhus/awesome-chatgpt
# Services
# Useful callable public APIs
| Name | URL |
| ------------------------ | -------------------------------------------------- |
| Collection of Public API | https://github.com/public-apis/public-apis |
| Wheather | https://github.com/Yeqzids/7timer-issues/wiki/Wiki |
| Free Public APIs | https://www.freepublicapis.com/tags/public-data |
# Service News

View file

@ -0,0 +1,287 @@
---
title: 9. Gestão de Riscos
sidebar_label: 9. Gestão de Riscos
sidebar_position: 9
---
# 9. Gestão de Riscos
## 9.1 Introdução à Gestão de Riscos
A gestão de riscos é um componente fundamental do framework de compliance da Pragmatismo, permitindo à organização identificar, avaliar e mitigar riscos que possam afetar seus objetivos de negócio, a segurança de seus ativos de informação e a conformidade com requisitos regulatórios. Este capítulo estabelece diretrizes e procedimentos para uma gestão eficaz dos riscos relacionados à segurança da informação e privacidade de dados.
### 9.1.1 Objetivos da Gestão de Riscos
1. Identificar ameaças e vulnerabilidades que possam afetar os ativos de informação da Pragmatismo.
2. Avaliar o impacto potencial e a probabilidade de ocorrência dos riscos identificados.
3. Implementar controles adequados para mitigar riscos a níveis aceitáveis.
4. Monitorar continuamente a eficácia dos controles implementados.
5. Garantir a conformidade com requisitos de ISO 27001, HIPAA e LGPD.
### 9.1.2 Escopo da Gestão de Riscos
A gestão de riscos na Pragmatismo abrange:
1. **Riscos de Segurança da Informação**: Relacionados à confidencialidade, integridade e disponibilidade das informações.
2. **Riscos de Privacidade**: Relacionados à proteção de dados pessoais e conformidade com regulamentações.
3. **Riscos Operacionais**: Relacionados à continuidade dos processos de negócio e operações de TI.
4. **Riscos de Terceiros**: Relacionados a fornecedores, parceiros e prestadores de serviços.
5. **Riscos de Desenvolvimento**: Relacionados ao ciclo de vida de desenvolvimento do General Bots e outros produtos.
## 9.2 Framework de Gestão de Riscos
### 9.2.1 Metodologia de Avaliação de Riscos
A Pragmatismo adota uma metodologia estruturada para avaliação de riscos, baseada nas melhores práticas da ISO 27005 e NIST SP 800-30, compreendendo as seguintes etapas:
1. **Identificação do Contexto**: Estabelecimento do contexto interno e externo, incluindo objetivos de negócio e requisitos regulatórios.
2. **Identificação de Riscos**: Levantamento sistemático de ameaças e vulnerabilidades que possam afetar os ativos de informação.
3. **Análise de Riscos**: Avaliação da probabilidade e impacto potencial de cada risco identificado.
4. **Avaliação de Riscos**: Priorização dos riscos com base em sua criticidade.
5. **Tratamento de Riscos**: Seleção e implementação de controles para mitigar riscos.
6. **Monitoramento e Revisão**: Acompanhamento contínuo da eficácia dos controles implementados.
7. **Comunicação e Consulta**: Comunicação regular com partes interessadas sobre riscos e tratamentos.
### 9.2.2 Critérios de Avaliação de Riscos
#### 9.2.2.1 Escala de Probabilidade
| Nível | Classificação | Descrição |
|-------|--------------|-----------|
| 1 | Raro | Pode ocorrer apenas em circunstâncias excepcionais; menos de uma vez a cada 5 anos |
| 2 | Improvável | Não é esperado que ocorra; uma vez a cada 2-5 anos |
| 3 | Possível | Pode ocorrer em algum momento; uma vez a cada 1-2 anos |
| 4 | Provável | Provavelmente ocorrerá; uma vez por ano |
| 5 | Quase certo | Espera-se que ocorra na maioria das circunstâncias; várias vezes ao ano |
#### 9.2.2.2 Escala de Impacto
| Nível | Classificação | Descrição |
|-------|--------------|-----------|
| 1 | Insignificante | Impacto mínimo na operação; sem danos financeiros ou reputacionais |
| 2 | Menor | Interrupção de curto prazo; pequeno impacto financeiro ou reputacional |
| 3 | Moderado | Interrupção significativa; impacto financeiro ou reputacional moderado |
| 4 | Maior | Operações severamente prejudicadas; grande impacto financeiro ou reputacional |
| 5 | Catastrófico | Falha crítica das operações; impacto financeiro ou reputacional grave |
#### 9.2.2.3 Matriz de Risco
| Probabilidade/Impacto | Insignificante (1) | Menor (2) | Moderado (3) | Maior (4) | Catastrófico (5) |
|-----------------------|---------------------|----------|--------------|-----------|------------------|
| Quase certo (5) | Médio (5) | Alto (10) | Alto (15) | Extremo (20) | Extremo (25) |
| Provável (4) | Médio (4) | Médio (8) | Alto (12) | Alto (16) | Extremo (20) |
| Possível (3) | Baixo (3) | Médio (6) | Médio (9) | Alto (12) | Alto (15) |
| Improvável (2) | Baixo (2) | Baixo (4) | Médio (6) | Médio (8) | Alto (10) |
| Raro (1) | Baixo (1) | Baixo (2) | Baixo (3) | Médio (4) | Médio (5) |
#### 9.2.2.4 Níveis de Aceitação de Risco
| Nível de Risco | Classificação | Ação Requerida |
|----------------|--------------|----------------|
| 1-3 | Baixo | Aceitar o risco; gerenciar por procedimentos de rotina |
| 4-9 | Médio | Implementar controles básicos; monitorar regularmente |
| 10-16 | Alto | Implementar controles robustos; monitorar ativamente |
| 17-25 | Extremo | Ação imediata requerida; monitoramento contínuo |
### 9.2.3 Opções de Tratamento de Riscos
A Pragmatismo considera as seguintes opções para tratamento de riscos:
1. **Mitigar**: Implementar controles para reduzir a probabilidade ou o impacto do risco.
2. **Transferir**: Compartilhar o risco com terceiros, como seguradoras ou parceiros.
3. **Evitar**: Eliminar a atividade ou processo que gera o risco.
4. **Aceitar**: Aceitar o risco sem ação adicional, quando o custo do tratamento supera o benefício.
## 9.3 Processo de Avaliação de Riscos
### 9.3.1 Identificação de Ativos
Todos os ativos de informação relevantes devem ser identificados e registrados no Inventário de Ativos, incluindo:
1. **Ativos de Informação**: Dados, bases de dados, documentação.
2. **Ativos de Software**: Aplicações, sistemas, ferramentas.
3. **Ativos Físicos**: Servidores, computadores, dispositivos de rede.
4. **Serviços**: Serviços de TI, utilities, outros serviços de suporte.
5. **Pessoal**: Equipes, habilidades, experiência.
### 9.3.2 Identificação de Ameaças e Vulnerabilidades
As ameaças e vulnerabilidades relevantes devem ser identificadas para cada ativo ou grupo de ativos, considerando:
1. **Ameaças Naturais**: Incêndios, inundações, terremotos.
2. **Ameaças Humanas**: Erro humano, ações maliciosas, engenharia social.
3. **Ameaças Técnicas**: Falhas de hardware/software, malware, hacking.
4. **Vulnerabilidades Técnicas**: Falhas de configuração, sistemas desatualizados, bugs de software.
5. **Vulnerabilidades Organizacionais**: Processos inadequados, falta de treinamento, controles insuficientes.
### 9.3.3 Análise e Avaliação de Riscos
Para cada combinação de ameaça e vulnerabilidade, deve-se:
1. Avaliar a probabilidade de ocorrência com base em dados históricos, relatórios de inteligência de ameaças e experiência da equipe.
2. Avaliar o potencial impacto nos negócios, considerando aspectos financeiros, operacionais, reputacionais e legais.
3. Calcular o nível de risco multiplicando a pontuação de probabilidade pela pontuação de impacto.
4. Priorizar os riscos com base em sua classificação.
### 9.3.4 Plano de Tratamento de Riscos
Para cada risco identificado, deve ser desenvolvido um plano de tratamento que inclua:
1. **Descrição do Risco**: Detalhes sobre o risco, incluindo ativos afetados, ameaças e vulnerabilidades.
2. **Nível de Risco**: Classificação do risco antes do tratamento.
3. **Opção de Tratamento**: Mitigar, transferir, evitar ou aceitar.
4. **Controles Selecionados**: Descrição dos controles a serem implementados.
5. **Responsável**: Pessoa ou equipe responsável pela implementação do controle.
6. **Prazo**: Data limite para implementação do controle.
7. **Recursos Necessários**: Recursos financeiros, humanos ou técnicos necessários.
8. **Risco Residual**: Nível de risco esperado após a implementação dos controles.
### 9.3.5 Implementação de Controles
Os controles selecionados devem ser implementados conforme o plano de tratamento de riscos, considerando:
1. **Controles Preventivos**: Para reduzir a probabilidade de ocorrência do risco.
2. **Controles Detectivos**: Para identificar rapidamente quando um risco se materializa.
3. **Controles Corretivos**: Para minimizar o impacto quando um risco se materializa.
4. **Controles Compensatórios**: Para compensar fraquezas em outros controles.
## 9.4 Monitoramento e Revisão de Riscos
### 9.4.1 Monitoramento Contínuo
O monitoramento contínuo de riscos deve incluir:
1. **Monitoramento de Indicadores**: Acompanhamento de indicadores-chave de risco (KRIs).
2. **Auditorias Internas**: Verificação regular da eficácia dos controles implementados.
3. **Testes de Vulnerabilidade**: Realização de varreduras e testes de penetração periódicos.
4. **Revisão de Incidentes**: Análise de incidentes de segurança para identificar novas ameaças ou vulnerabilidades.
5. **Feedback de Stakeholders**: Coleta de feedback de colaboradores, clientes e parceiros.
### 9.4.2 Revisão Periódica
O processo de gestão de riscos deve ser revisado periodicamente para garantir sua eficácia:
1. **Revisão Anual Completa**: Reavaliação completa do perfil de risco da organização.
2. **Revisões Específicas**: Quando ocorrerem mudanças significativas no ambiente de negócios, tecnologia ou requisitos regulatórios.
3. **Revisão Pós-Incidente**: Após incidentes significativos de segurança ou privacidade.
### 9.4.3 Melhoria Contínua
O processo de gestão de riscos deve ser continuamente melhorado com base em:
1. **Lições Aprendidas**: Experiências de incidentes passados e exercícios de simulação.
2. **Novas Ameaças**: Inteligência de ameaças e informações sobre novas vulnerabilidades.
3. **Evolução Tecnológica**: Novas tecnologias e ferramentas de segurança.
4. **Feedback de Auditoria**: Resultados de auditorias internas e externas.
## 9.5 Requisitos Específicos de Regulamentações
### 9.5.1 ISO 27001
Para conformidade com ISO 27001, a gestão de riscos deve:
1. Ser parte integrante do Sistema de Gestão de Segurança da Informação (SGSI).
2. Ser documentada, incluindo metodologia, critérios e resultados.
3. Ser aprovada pela Alta Direção.
4. Ser revisada e atualizada periodicamente.
### 9.5.2 HIPAA
Para conformidade com HIPAA, a gestão de riscos deve:
1. Incluir uma avaliação abrangente de riscos à confidencialidade, integridade e disponibilidade de informações de saúde eletrônicas (ePHI).
2. Documentar ameaças e vulnerabilidades que podem comprometer ePHI.
3. Implementar medidas de segurança para reduzir riscos a um nível razoável e apropriado.
4. Ser revisada e atualizada regularmente.
### 9.5.3 LGPD
Para conformidade com LGPD, a gestão de riscos deve:
1. Incluir avaliação de riscos específicos ao tratamento de dados pessoais.
2. Considerar o impacto potencial aos direitos e liberdades dos titulares de dados.
3. Implementar medidas técnicas e organizacionais para proteger os dados pessoais.
4. Incluir a realização de Relatórios de Impacto à Proteção de Dados Pessoais (RIPD) para tratamentos de alto risco.
## 9.6 Papéis e Responsabilidades na Gestão de Riscos
### 9.6.1 Alta Direção
1. Aprovar a política de gestão de riscos e definir o apetite a risco da organização.
2. Fornecer recursos adequados para a implementação eficaz da gestão de riscos.
3. Revisar regularmente os relatórios de gestão de riscos e aprovar planos de tratamento para riscos altos e extremos.
### 9.6.2 Comitê de Segurança da Informação
1. Supervisionar o processo de gestão de riscos.
2. Revisar e aprovar os resultados da avaliação de riscos.
3. Monitorar a implementação de planos de tratamento de riscos.
4. Relatar o status da gestão de riscos para a Alta Direção.
### 9.6.3 Oficial de Segurança da Informação (CISO)
1. Desenvolver e manter a metodologia de gestão de riscos.
2. Coordenar e facilitar o processo de avaliação de riscos.
3. Garantir que os controles implementados sejam eficazes.
4. Preparar relatórios de gestão de riscos para o Comitê de Segurança da Informação e Alta Direção.
### 9.6.4 Encarregado de Proteção de Dados (DPO)
1. Garantir que os riscos relacionados à privacidade de dados sejam adequadamente identificados e avaliados.
2. Assessorar na implementação de controles de privacidade.
3. Monitorar a conformidade com requisitos de privacidade de dados.
### 9.6.5 Proprietários de Ativos/Processos
1. Participar ativamente do processo de avaliação de riscos para seus ativos ou processos.
2. Implementar controles conforme definido nos planos de tratamento de riscos.
3. Monitorar e relatar riscos emergentes.
### 9.6.6 Todos os Colaboradores
1. Estar ciente dos riscos relacionados às suas atividades.
2. Seguir procedimentos e controles de segurança estabelecidos.
3. Relatar incidentes, ameaças ou vulnerabilidades identificadas.
## 9.7 Documentação da Gestão de Riscos
### 9.7.1 Documentos Obrigatórios
1. **Política de Gestão de Riscos**: Definindo abordagem, metodologia e responsabilidades.
2. **Critérios de Avaliação de Riscos**: Definindo escalas e critérios de aceitação.
3. **Registro de Riscos**: Documentando todos os riscos identificados e sua avaliação.
4. **Planos de Tratamento de Riscos**: Detalhando ações para mitigar, transferir, evitar ou aceitar riscos.
5. **Relatórios de Avaliação de Riscos**: Resumindo os resultados do processo de avaliação de riscos.
6. **Relatórios de Impacto à Proteção de Dados**: Para tratamentos de dados que envolvam alto risco.
### 9.7.2 Retenção de Documentos
Todos os documentos relacionados à gestão de riscos devem ser mantidos por pelo menos 5 anos, ou mais se exigido por regulamentações específicas.
## 9.8 Avaliação de Riscos de Terceiros
### 9.8.1 Processo de Avaliação
1. **Pré-contratação**: Avaliação de riscos antes da contratação de novos fornecedores ou parceiros.
2. **Avaliação Periódica**: Reavaliação de riscos de terceiros existentes pelo menos anualmente.
3. **Mudanças Significativas**: Reavaliação quando houver mudanças significativas no relacionamento ou no ambiente de risco.
### 9.8.2 Critérios de Avaliação
1. **Tipo de Acesso**: Nível de acesso a sistemas e dados da Pragmatismo.
2. **Dados Processados**: Sensibilidade e volume de dados processados pelo terceiro.
3. **Criticidade**: Importância do serviço para as operações da Pragmatismo.
4. **Maturidade de Segurança**: Nível de maturidade das práticas de segurança do terceiro.
5. **Conformidade Regulatória**: Conformidade do terceiro com requisitos legais e regulatórios relevantes.
### 9.8.3 Controles para Terceiros
1. **Cláusulas Contratuais**: Inclusão de cláusulas de segurança e privacidade em contratos.
2. **Acordos de Nível de Serviço (SLAs)**: Definição de requisitos de segurança e privacidade.
3. **Direito de Auditoria**: Direito de auditar as práticas de segurança do terceiro.
4. **Compromisso de Notificação**: Obrigação de notificar incidentes de segurança.
5. **Certificações e Relatórios**: Requisito de fornecer certificações de segurança ou relatórios de auditoria.
---
*Última atualização: 11 de maio de 2025*

View file

@ -1,78 +0,0 @@
---
sidebar_position: 90
---
# General Bots Feature Matrix
| **Feature Code** | **Code** | **Description** | **Category** | **Status** |
|------------------|---------------------------------------------------|-------------------------------------------------------------------------------------------|-------------------------|------------|
| FEAT-01A | `HEAR variable` | Hears something from the person into a variable for later use. | Basic Interaction | FUTURE |
| FEAT-02B | `TALK message` | Talk the specified message to the person. | Basic Interaction | FUTURE |
| FEAT-03C | `WAIT seconds` | Wait a number of seconds before continuing the conversation. | Basic Interaction | FUTURE |
| FEAT-04D | `confirm variable` (Comming soon) | Waits for confirmation and returns true or false. | Basic Interaction | FUTURE |
| FEAT-05E | `HEAR variable AS EMAIL` | Hears and validates an email address from the user. | Data Validation | FUTURE |
| FEAT-06F | `HEAR variable AS DATE` | Hears and validates a date from the user. | Data Validation | FUTURE |
| FEAT-07G | `HEAR variable AS NAME` | Hears and validates a name from the user. | Data Validation | FUTURE |
| FEAT-08H | `HEAR variable AS INTEGER` | Hears and validates an integer from the user. | Data Validation | FUTURE |
| FEAT-09I | `HEAR variable AS BOOLEAN` | Hears and validates a boolean (true/false) from the user. | Data Validation | FUTURE |
| FEAT-10J | `HEAR variable AS HOUR` | Hears and validates an hour from the user. | Data Validation | FUTURE |
| FEAT-11K | `HEAR variable AS MONEY` | Hears and validates a monetary amount from the user. | Data Validation | FUTURE |
| FEAT-12L | `HEAR variable AS MOBILE` | Hears and validates a mobile number from the user. | Data Validation | FUTURE |
| FEAT-13M | `HEAR variable AS ZIPCODE` | Hears and validates a ZIP code from the user. | Data Validation | FUTURE |
| FEAT-14N | `HEAR variable AS "Abacate", "Maçã", "Morango"` | Displays the specified menu and waits for user selection. | Data Validation | FUTURE |
| FEAT-15O | `HEAR variable AS LANGUAGE` | Hears and validates a language code from the user. | Data Validation | FUTURE |
| FEAT-16P | `HEAR variable AS LOGIN (internal)` | Waits for Active Directory login integration before proceeding. | Data Validation | FUTURE |
| FEAT-17Q | `variable = GET "file.xlsx", "A1:A1"` | Gets the value of the cell specified in range address. | Data Handling | FUTURE |
| FEAT-18R | `SET "file.xlsx", "A1:A1", 42` | Sets the value of the cell specified in range address. | Data Handling | FUTURE |
| FEAT-19S | `variable = GET "https://server/query"` | Gets the value from the specified web service. | Data Handling | FUTURE |
| FEAT-20T | `POST "https://", data` | Sends data to the specified URL. | Data Handling | FUTURE |
| FEAT-21U | `data = FIND "sales_data.xlsx", "A1:B10"` | Finds data in a specified range or file. | Data Handling | FUTURE |
| FEAT-22V | `result = SELECT product, SUM(amount) AS total FROM data GROUP BY product` | Use SQL to manipulate a data variable returned from FIND or an array. | Data Handling | FUTURE |
| FEAT-23W | `file = data AS IMAGE` | Converts a two-dimensional array into an image file. | Data Handling | FUTURE |
| FEAT-24X | `file = data AS PDF` | Converts a two-dimensional array into a PDF file. | Data Handling | FUTURE |
| FEAT-25Y | `data = NEW OBJECT` | Creates a new object to be used with REST calls. | Data Handling | FUTURE |
| FEAT-26Z | `data = NEW ARRAY` | Creates a new array. | Data Handling | FUTURE |
| FEAT-27A | `file = QRCODE "https://example.com"` | Creates a QR code from specified text. | Data Handling
| **Feature Code** | **Code** | **Description** | **Category** | **Status** |
|------------------|---------------------------------------------------|-------------------------------------------------------------------------------------------|-------------------------|------------|
| FEAT-27A | `file = QRCODE "https://example.com"` | Creates a QR code from specified text. | Data Handling | FUTURE |
| FEAT-28B | `FORMAT value, format` | Formats a value according to the specified format. | Data Handling | FUTURE |
| FEAT-29C | `ADD NOTE` | Adds a note to a file named Notes.xls of .gbdata. | Data Handling | FUTURE |
| FEAT-30D | `ALLOW ROLE` | Check if a role specified in People sheet (.gbdata) will have access. | Data Handling | FUTURE |
| FEAT-31E | `page = OPEN url [AS #namedSession]` | Web automation retrieval of a web page, saving the session for reuse. | Web Automation | FUTURE |
| FEAT-32F | `variable = GET page, cssSelector` | Retrieves an element within an IFRAME specified by selector. | Web Automation | FUTURE |
| FEAT-33G | `SET page, cssSelector, value` | Defines a field to a value on the webpage specified by selector. | Web Automation | FUTURE |
| FEAT-34H | `CLICK page, cssSelector` | Clicks on an element inside the web page being automated. | Web Automation | FUTURE |
| FEAT-35I | `file = DOWNLOAD url` | Downloads a file from the specified URL. | Web Automation | FUTURE |
| FEAT-36J | `HEAR variable AS FILE` | Returns a file uploaded by the user to be saved. | File Management | FUTURE |
| FEAT-37K | `HEAR variable AS AUDIO` | Returns an audio file uploaded by the user to be saved. | File Management | FUTURE |
| FEAT-38L | `INCLUDE file` | Includes a file into .gbdialog. | File Management | FUTURE |
| FEAT-39M | `UPLOAD file` | Uploads a file to a storage blob, like Azure Storage. | File Management | FUTURE |
| FEAT-40N | `DIR path` | Returns a list of files in the specified directory. | File Management | FUTURE |
| FEAT-41O | `FILL` | Fills data into a Word document to be exported as images. | File Management | FUTURE |
| FEAT-42P | `SAVE variable AS "path/file"` | Saves the specified variable as a file at the given path. | File Management | FUTURE |
| FEAT-43Q | `TABLE name ON connection` | Defines a TABLE on the specified storage (database) connection. | Advanced Operations | FUTURE |
| FEAT-44R | `field AS dataType` | Defines a field in TABLE. Eg.: name string(50). | Advanced Operations | FUTURE |
| FEAT-45S | `CONTINUATION TOKEN` | Returns the value of the continuation token associated with the current dialog. | Advanced Operations | FUTURE |
| FEAT-46T | `aadToken()` | Auto-generated variable that contains Azure AD Token useful for calling Microsoft Web Services. | Internal Variables and Functions | FUTURE |
| FEAT-47U | `SET PARAM name AS value` | Defines a retrievable param in the storage in the scope of the user. | Options | FUTURE |
| FEAT-48V | `GET PARAM name` | Returns a previously user scoped param via SET PARAM from the storage. | Options | FUTURE |
| FEAT-49W | `SET HTTP HEADER _key = value` | Defines an HTTP header to be used in the next GET call. | HTTP Authentication | FUTURE |
| FEAT-50X | `SET HTTP USERNAME = value` | Defines the HTTP username to be used in the next GET call. | HTTP Authentication | FUTURE |
| FEAT-51Y | `SET HTTP PASSWORD = value` | Defines the HTTP password to be used in the next GET call. | HTTP Authentication | FUTURE |
| FEAT-52Z | `SET HEAR ON "mobile"` | Sets HEAR options for mobile numbers. | Options | FUTURE |
| FEAT-53A | `SET MAX LINES value` | Defines the maximum number of lines for output. | Options | FUTURE |
| FEAT-54B | `SET SCHEDULE "2 * * * * *"` | Defines a schedule for periodic tasks. | Options | FUTURE |
| FEAT-55C | `SET LANGUAGE value` | Sets the language for the dialog. | Options | FUTURE |
| FEAT-56D | `SET TRANSLATOR [ON or OFF]` | Turns the translator feature on or off. | Options | FUTURE |
| FEAT-57E | `SET WHOLE WORD [TRUE or FALSE]` | Defines if whole word matching is used. | Options | FUTURE |
| FEAT-58F | `SET THEME "dark" or "white" or "blue"` | Defines the theme for the next content generation (PDF, images, videos, etc.). | Options | FUTURE |
| FEAT-59G | `SET OPERATOR [OR]` | Defines OR operations on multiple FIND filters separated by comma. | Options | FUTURE |
| FEAT-60H | `SET FILTER TYPE [comma separated list of types]` | Uses the specified type in next FIND calls, disabling auto-detection of filter type. | Options | FUTURE |
| FEAT-61I | `SET PAGED "auto" or "none"` | Defines auto paging for HTTP REST GET calls. | Options | FUTURE |
| FEAT-A7B | | Any files inside public folder of bot .gbdrive will be accessible in /[botId].gbai/[botId].gbdrive/public ||| Sharing | FUTURE |
AUTO SAVE
.gbdrive public

File diff suppressed because it is too large Load diff

View file

@ -1,20 +0,0 @@
---
sidebar_position: 100
---
# Contributing
## How To
### Make commit
See these guides:
* [1](https://seesparkbox.com/foundry/semantic_commit_messages)
* [2](http://karma-runner.github.io/0.10/dev/git-commit-msg.html)
### Use BotLib as a local project for development
1. Enter botlib directory and then run npm link;
2. Enter BotServer folder and the run npm link botlib;
3. Ensure package.json of both projects are synced.

View file

@ -0,0 +1,543 @@
---
id: incident-management
title: Cap. 11 - Gestão de Incidentes
sidebar_label: 11. Gestão de Incidentes
sidebar_position: 11
---
# Gestão de Incidentes
## 11.1 Introdução à Gestão de Incidentes
A gestão de incidentes de segurança da informação é um componente crítico do sistema de gestão de segurança da informação (SGSI) da Pragmatismo. Este processo estruturado permite identificar, reportar, avaliar e responder efetivamente a incidentes de segurança, minimizando danos potenciais e prevenindo recorrências futuras.
Este capítulo estabelece as diretrizes e procedimentos para a gestão de incidentes na Pragmatismo, alinhados com os requisitos das normas ISO 27001, HIPAA e LGPD, garantindo a proteção adequada das informações e a continuidade dos negócios.
### 11.1.1 Definição de Incidente de Segurança da Informação
Um incidente de segurança da informação é definido como um evento único ou uma série de eventos indesejados ou inesperados de segurança da informação que têm uma probabilidade significativa de comprometer as operações de negócio e ameaçar a segurança da informação.
Exemplos incluem:
- Violações de dados
- Acesso não autorizado a sistemas ou informações
- Interrupção de serviços digitais
- Comprometimento de credenciais
- Ataques de malware, ransomware ou phishing
- Modificação não autorizada de dados
- Perda ou roubo de equipamentos contendo informações sensíveis
- Falhas em sistemas críticos com impacto na confidencialidade, integridade ou disponibilidade da informação
## 11.2 Integração com o Ciclo de Vida de Desenvolvimento de Software (ALM)
A gestão de incidentes na Pragmatismo está intrinsecamente conectada ao nosso ciclo de vida de desenvolvimento de software (Application Lifecycle Management - ALM). Esta integração é fundamental para uma empresa que desenvolve soluções como o General Bots.
### 11.2.1 Pontos de Intersecção entre Gestão de Incidentes e ALM
1. **Detecção Precoce**: As atividades de monitoramento contínuo do ALM ajudam na detecção precoce de vulnerabilidades que poderiam levar a incidentes.
2. **Análise de Causa Raiz**: Os incidentes relacionados ao software são analisados dentro do contexto do ALM para identificar falhas no processo de desenvolvimento.
3. **Resolução Integrada**: Correções para incidentes de segurança em software são incorporadas diretamente no pipeline de desenvolvimento.
4. **Feedback para Melhoria Contínua**: Os dados de incidentes alimentam o processo de melhoria do ALM, refinando práticas de desenvolvimento seguro.
5. **Rastreabilidade**: A integração permite rastrear como e quando as vulnerabilidades foram introduzidas e corrigidas no código.
### 11.2.2 DevSecOps na Gestão de Incidentes
A Pragmatismo adota uma abordagem DevSecOps, incorporando segurança em todo o ciclo de desenvolvimento:
- **Segurança como Código**: Controles de segurança automatizados são integrados aos pipelines de CI/CD
- **Testes de Segurança Automatizados**: Realizados regularmente para identificar vulnerabilidades antes que se tornem incidentes
- **Monitoramento em Tempo Real**: Detecção proativa de comportamentos anômalos em aplicações em produção
- **Resposta Rápida**: Capacidade de corrigir vulnerabilidades rapidamente com processos ágeis de desenvolvimento
## 11.3 Estrutura da Equipe de Resposta a Incidentes (CSIRT)
### 11.3.1 Composição da Equipe
A Pragmatismo estabeleceu uma Equipe de Resposta a Incidentes de Segurança Computacional (CSIRT) multidisciplinar, composta por:
| Papel | Responsabilidades |
|-------|------------------|
| Gerente de Incidentes | Coordenação geral da resposta a incidentes, tomada de decisões críticas, comunicação com a alta direção |
| Especialistas em Segurança | Análise técnica de incidentes, identificação de vulnerabilidades, implementação de correções técnicas |
| Analistas de Desenvolvimento | Identificação e correção de problemas de segurança no código e na arquitetura do software |
| Representante de TI | Suporte na infraestrutura técnica, restauração de sistemas e backups |
| Representante Jurídico | Avaliação de implicações legais e conformidade com LGPD, HIPAA e outras regulamentações |
| Especialista em Comunicação | Gestão de comunicações internas e externas durante incidentes significativos |
| Representante de RH | Tratamento de incidentes relacionados a funcionários, treinamentos e conscientização |
### 11.3.2 Modelos de Atuação
A CSIRT da Pragmatismo opera em diferentes modelos dependendo da severidade do incidente:
- **Modelo Distribuído**: Para incidentes de baixa severidade, especialistas trabalham remotamente
- **Modelo Centralizado**: Para incidentes críticos, a equipe se reúne em sala de crise dedicada
- **Modelo Híbrido**: Combinação de recursos locais e remotos para otimizar a resposta
## 11.4 Processo de Gestão de Incidentes
O processo de gestão de incidentes da Pragmatismo segue as melhores práticas da ISO 27001 e está alinhado com os requisitos de HIPAA e LGPD:
### 11.4.1 Preparação e Planejamento
- **Documentação de Procedimentos**: Procedimentos detalhados para diferentes tipos de incidentes
- **Recursos Necessários**: Ferramentas, sistemas e recursos humanos para resposta eficaz
- **Treinamento e Conscientização**: Programa contínuo de capacitação da equipe CSIRT e de todos os colaboradores
- **Simulações Periódicas**: Exercícios práticos para testar a eficácia dos procedimentos
- **Catalogação de Ativos**: Inventário atualizado de ativos de informação críticos
### 11.4.2 Identificação e Notificação
A Pragmatismo implementou múltiplos canais para identificação e notificação de incidentes:
- **Monitoramento Automatizado**: Sistemas SIEM, IDS/IPS, análise de logs
- **Notificação por Colaboradores**: Portal de segurança para reporte de incidentes
- **Alertas de Parceiros e Clientes**: Canal dedicado para comunicação externa
- **Varreduras de Vulnerabilidades**: Identificação proativa de falhas de segurança
- **Linha Direta de Segurança**: Número de telefone dedicado para relato de incidentes urgentes
#### Fluxo de Notificação
1. Identificação de evento suspeito
2. Registro inicial no sistema de tickets
3. Avaliação preliminar pela equipe de primeira resposta
4. Classificação e priorização
5. Escalonamento conforme necessário
### 11.4.3 Classificação e Priorização
Os incidentes são classificados de acordo com:
#### Categorias de Incidentes
| Categoria | Descrição | Exemplos |
|-----------|-----------|----------|
| Tentativa de Acesso | Tentativas de comprometer sistema ou informação | Ataques de força bruta, exploração de vulnerabilidades |
| Uso Indevido | Uso não autorizado de sistemas ou dados | Uso de credenciais roubadas, elevação de privilégios |
| Vazamento de Dados | Exposição não autorizada de informações | Envio acidental de dados sensíveis, exfiltração de dados |
| Malware | Software malicioso que afeta sistemas | Vírus, ransomware, backdoors |
| Indisponibilidade | Interrupção de serviços ou sistemas | Ataques DDoS, falhas em aplicações |
| Violação de Política | Descumprimento de políticas internas | Compartilhamento indevido de senhas, bypass de controles |
#### Níveis de Severidade
| Nível | Descrição | Impacto | Tempo de Resposta |
|-------|-----------|---------|-------------------|
| Crítico | Impacto severo no negócio, risco significativo | Afeta dados sensíveis de clientes, interrupção total de serviços críticos | Imediato (até 30 minutos) |
| Alto | Impacto substancial em departamentos ou serviços importantes | Comprometimento parcial de dados, interrupção de serviços importantes | 2 horas |
| Médio | Impacto moderado, afeta processos específicos | Acesso não autorizado a dados não críticos, degradação de desempenho | 8 horas |
| Baixo | Impacto limitado, facilmente contornável | Pequenas violações de política, incidentes isolados | 24 horas |
### 11.4.4 Contenção, Erradicação e Recuperação
#### Estratégias de Contenção
A contenção visa limitar os danos de um incidente em andamento:
- **Contenção Imediata**: Ações rápidas para isolar sistemas comprometidos
- Desconexão de rede
- Bloqueio de contas comprometidas
- Desativação de serviços afetados
- **Contenção a Curto Prazo**: Medidas para estabilizar o ambiente
- Implementação de filtros adicionais
- Instalação de patches de emergência
- Redirecionamento de tráfego
- **Contenção a Longo Prazo**: Medidas permanentes
- Redesenho de arquitetura
- Implementação de novos controles de segurança
#### Erradicação
Após a contenção, o processo de eliminação das causas do incidente:
1. Identificação do vetor de ataque e vulnerabilidades exploradas
2. Remoção de malware ou código malicioso
3. Correção de vulnerabilidades em aplicações (especialmente relevante para o General Bots)
4. Hardening de sistemas afetados
5. Revisão e reforço de controles de segurança
#### Recuperação
Restauração segura dos sistemas e serviços afetados:
1. Restauração de dados a partir de backups verificados
2. Ativação gradual de sistemas com monitoramento intensivo
3. Validação da segurança antes do retorno à produção
4. Monitoramento estendido para detecção de atividades suspeitas persistentes
#### Considerações Específicas para Aplicações de Software
Para incidentes que afetam o General Bots ou outras aplicações da Pragmatismo:
- Roll-back para versões estáveis anteriores quando necessário
- Deploy emergencial de patches de segurança
- Sandbox para teste acelerado de correções
- Integração com sistema de CI/CD para implementação rápida de correções
### 11.4.5 Análise Pós-Incidente
Após a resolução do incidente, a Pragmatismo realiza uma análise detalhada:
#### Análise de Causa Raiz
Metodologia estruturada para identificar:
- Causa técnica direta do incidente
- Falhas em processos ou controles
- Fatores humanos e organizacionais
#### Documentação e Lições Aprendidas
Cada incidente é documentado em relatório contendo:
- Timeline detalhada do incidente
- Ações tomadas e sua eficácia
- Impacto técnico e de negócio
- Recomendações para evitar recorrência
#### Atualização de Processos e Controles
Com base nas lições aprendidas:
- Revisão e atualização de políticas de segurança
- Melhoria em procedimentos de resposta
- Implementação de novos controles técnicos
- Ajustes no programa de conscientização em segurança
## 11.5 Conformidade Regulatória na Gestão de Incidentes
### 11.5.1 Conformidade com ISO 27001
A gestão de incidentes da Pragmatismo atende aos requisitos do controle A.16 da ISO 27001:
| Controle ISO 27001 | Implementação na Pragmatismo |
|--------------------|------------------------------|
| A.16.1.1 Responsabilidades e procedimentos | Definição clara de papéis e responsabilidades da CSIRT |
| A.16.1.2 Notificação de eventos de segurança | Múltiplos canais de notificação e sistema centralizado de registro |
| A.16.1.3 Notificação de fragilidades de segurança | Processo para relato de vulnerabilidades por colaboradores e terceiros |
| A.16.1.4 Avaliação e decisão sobre eventos | Sistema de classificação e priorização de incidentes |
| A.16.1.5 Resposta a incidentes | Procedimentos detalhados para diferentes tipos de incidentes |
| A.16.1.6 Aprendizagem com incidentes | Análise pós-incidente e implementação de melhorias |
| A.16.1.7 Coleta de evidências | Procedimentos forenses e de preservação de evidências |
### 11.5.2 Conformidade com LGPD
Para incidentes envolvendo dados pessoais, procedimentos específicos em conformidade com a LGPD:
- **Notificação à ANPD**: Para incidentes que possam acarretar risco ou dano relevante aos titulares
- Prazo: Em tempo hábil, conforme determinação da ANPD
- Conteúdo: Descrição da natureza dos dados afetados, informações sobre os titulares envolvidos, medidas de segurança utilizadas, riscos relacionados ao incidente, medidas adotadas para reverter ou mitigar os efeitos do incidente
- **Comunicação aos Titulares**: Quando o incidente puder acarretar risco ou dano relevante
- Linguagem clara e acessível
- Informações sobre as medidas de proteção tomadas
- **Documentação**: Registro detalhado para demonstração de compliance
- Evidências das medidas implementadas
- Cronologia das ações tomadas
- Fundamentação para decisões sobre notificação
### 11.5.3 Conformidade com HIPAA
Para incidentes envolvendo informações de saúde protegidas (PHI):
- **Determinação de Violação**: Processo de avaliação para determinar se um incidente constitui uma violação reportável
- Análise de probabilidade de comprometimento de PHI
- Documentação da análise e conclusão
- **Notificação**: Em caso de violação confirmada
- Para indivíduos afetados: Sem atraso indevido, máximo de 60 dias após a descoberta
- Para HHS (equivalente nos EUA): Para violações afetando mais de 500 indivíduos, notificação simultânea
- Para mídia: Quando violação afeta mais de 500 residentes de um estado ou jurisdição
- **Conteúdo da Notificação**: Informações requeridas pela HIPAA
- Descrição do incidente
- Tipos de PHI envolvidos
- Passos que os indivíduos podem tomar para se proteger
- Medidas tomadas para mitigar danos e evitar recorrências
- Procedimentos para obter informações adicionais
## 11.6 Ferramentas e Tecnologias de Suporte
A Pragmatismo implementou um conjunto integrado de ferramentas para suportar a gestão eficiente de incidentes:
### 11.6.1 Detecção e Monitoramento
- **Sistema SIEM (Security Information and Event Management)**: Correlação de eventos de segurança em tempo real
- **EDR (Endpoint Detection and Response)**: Monitoramento avançado de endpoints
- **IDS/IPS (Intrusion Detection/Prevention System)**: Detecção e bloqueio de atividades maliciosas na rede
- **Análise de Comportamento de Usuários (UEBA)**: Identificação de comportamentos anômalos
- **Monitoramento Contínuo de Vulnerabilidades**: Scans regulares de infraestrutura e aplicações
### 11.6.2 Gestão e Documentação
- **Sistema de Tickets de Incidentes**: Rastreamento do ciclo de vida completo dos incidentes
- **Base de Conhecimento**: Registro de incidentes passados e resoluções
- **Dashboard de Status de Incidentes**: Visibilidade em tempo real
- **Ferramenta de Análise de Causa Raiz**: Suporte estruturado para investigações
- **Sistema de Comunicação Segura**: Para coordenação da equipe durante incidentes
### 11.6.3 Integração com DevSecOps
- **Ferramentas de SAST/DAST**: Análise estática e dinâmica de segurança no código
- **Gerenciamento de Vulnerabilidades**: Integração com ciclo de desenvolvimento
- **Análise de Composição de Software (SCA)**: Detecção de vulnerabilidades em componentes de terceiros
- **Monitoramento de Segurança em CI/CD**: Verificações automatizadas no pipeline
- **Feedback de Segurança em PRs**: Análise automatizada em pull requests
## 11.7 Procedimentos Específicos por Tipo de Incidente
A Pragmatismo desenvolveu procedimentos detalhados para tipos comuns de incidentes:
### 11.7.1 Resposta a Malware
1. **Isolamento**: Desconexão imediata do sistema infectado da rede
2. **Identificação**: Análise do tipo e comportamento do malware
3. **Contenção**: Verificação de propagação para outros sistemas
4. **Erradicação**: Remoção do malware usando ferramentas especializadas
5. **Recuperação**: Restauração do sistema a partir de backup limpo
6. **Lições Aprendidas**: Identificação do vetor de infecção e implementação de proteções adicionais
### 11.7.2 Resposta a Vazamento de Dados
1. **Confirmação e Escopo**: Verificação de quais dados foram expostos e afetados
2. **Contenção**: Bloqueio do acesso não autorizado à fonte de dados
3. **Avaliação Legal**: Determinação de obrigações de notificação (LGPD/HIPAA)
4. **Notificação**: Comunicação aos titulares dos dados e autoridades, conforme necessário
5. **Mitigação**: Ações para minimizar danos aos afetados
6. **Revisão de Controles**: Fortalecimento das medidas de proteção de dados
### 11.7.3 Resposta a Vulnerabilidades em Aplicações
Especialmente relevante para o produto General Bots:
1. **Avaliação de Impacto**: Determinação da exploitabilidade e potencial dano
2. **Priorização**: Classificação com base em criticidade e impacto no negócio
3. **Desenvolvimento de Patch**: Criação e teste da correção em ambiente seguro
4. **Implementação**: Deployment do patch seguindo procedimentos de mudança
5. **Verificação**: Confirmação da efetividade da correção
6. **Divulgação Responsável**: Comunicação aos clientes afetados
### 11.7.4 Resposta a Incidentes de Acesso Não Autorizado
1. **Detecção**: Identificação da violação através de alertas ou anomalias
2. **Contenção**: Bloqueio imediato das contas comprometidas
3. **Investigação**: Análise da extensão do acesso e atividades realizadas
4. **Remediação**: Reforço das defesas e controles de acesso
5. **Recuperação**: Restauração da segurança e integridade dos sistemas
6. **Análise Forense**: Determinação do método de comprometimento
## 11.8 Métricas e Melhoria Contínua
### 11.8.1 Indicadores-chave de Desempenho (KPIs)
A Pragmatismo monitora os seguintes KPIs para avaliar a eficácia da gestão de incidentes:
| KPI | Descrição | Meta |
|-----|-----------|------|
| Tempo Médio para Detecção (MTTD) | Tempo entre o início do incidente e sua identificação | < 2 horas |
| Tempo Médio para Resposta (MTTR) | Tempo entre a detecção e o início da resposta | < 30 minutos |
| Tempo Médio para Resolução (MTTS) | Tempo total até a resolução completa | Depende da severidade |
| Taxa de Resolução na Primeira Intervenção | Incidentes resolvidos sem escalonamento | > 75% |
| Taxa de Recorrência | Incidentes similares que ocorrem novamente após resolução | < 5% |
| Cobertura de Análise Pós-Incidente | Percentual de incidentes que passam por análise completa | 100% para médio/alto/crítico |
### 11.8.2 Processo de Melhoria Contínua
A gestão de incidentes da Pragmatismo segue o ciclo PDCA (Plan-Do-Check-Act):
1. **Plan (Planejar)**:
- Definição de políticas e procedimentos
- Estabelecimento de métricas e metas
- Planejamento de recursos e treinamentos
2. **Do (Fazer)**:
- Implementação dos processos definidos
- Execução das atividades de resposta
- Coleta de dados e métricas
3. **Check (Verificar)**:
- Análise de métricas e tendências
- Avaliação da eficácia dos processos
- Identificação de áreas para melhoria
4. **Act (Agir)**:
- Implementação de melhorias identificadas
- Ajuste de processos e controles
- Atualização de documentação
### 11.8.3 Revisões Periódicas
- **Revisões Trimestrais**: Análise de tendências e eficácia operacional
- **Revisões Anuais**: Avaliação estratégica e alinhamento com objetivos de negócio
- **Auditorias**: Verificação independente de conformidade com normas e regulamentos
## 11.9 Treinamento e Conscientização
### 11.9.1 Programa de Treinamento da CSIRT
A Pragmatismo mantém um robusto programa de capacitação para todos os membros da equipe de resposta a incidentes:
- **Treinamento Básico**: Obrigatório para todos os membros
- Fundamentos de gestão de incidentes
- Procedimentos internos e ferramentas
- Técnicas de investigação inicial
- **Treinamento Avançado**: Para especialistas técnicos
- Análise forense digital
- Técnicas avançadas de detecção de intrusão
- Resposta a ameaças persistentes avançadas (APTs)
- **Treinamento Específico por Função**: Baseado em responsabilidades
- Legal: Requisitos regulatórios e notificações
- Comunicação: Gestão de crise e comunicação
- Técnico: Análise de malware, resposta a ransomware
### 11.9.2 Conscientização Organizacional
Programa abrangente para todos os colaboradores:
- **Treinamento de Indução**: Para novos colaboradores
- **Refreshers Anuais**: Atualizações de procedimentos e ameaças emergentes
- **Simulações de Phishing**: Testes práticos regulares
- **Boletins de Segurança**: Comunicações sobre ameaças atuais
- **Portal de Segurança**: Recursos e guias acessíveis
## 11.10 Documentação e Registros
### 11.10.1 Documentação Requerida
A Pragmatismo mantém a seguinte documentação:
- **Política de Gestão de Incidentes**: Documento principal definindo diretrizes gerais
- **Procedimentos Operacionais Padrão (POPs)**: Instruções detalhadas para diferentes tipos de incidentes
- **Matriz de Escalonamento**: Definição clara de quem contatar em cada situação
- **Formulários e Templates**: Para documentação consistente de incidentes
- **Registros de Incidentes**: Histórico completo de todos os incidentes e respostas
### 11.10.2 Retenção de Registros
Em conformidade com requisitos legais e regulatórios:
| Tipo de Registro | Período de Retenção | Método de Armazenamento |
|------------------|---------------------|-------------------------|
| Incidentes de Baixa Severidade | 1 ano | Sistema de tickets |
| Incidentes de Média Severidade | 3 anos | Sistema de tickets e arquivo seguro |
| Incidentes de Alta/Crítica Severidade | 5 anos | Sistema de tickets e arquivo seguro com criptografia |
| Incidentes envolvendo dados pessoais (LGPD) | 6 anos | Arquivo seguro com criptografia e controle de acesso |
| Incidentes envolvendo PHI (HIPAA) | 6 anos | Arquivo seguro com criptografia e controle de acesso |
## 11.11 Referências e Recursos Adicionais
### 11.11.1 Normas e Frameworks
- ISO/IEC 27001:2013 - Seção A.16: Gestão de incidentes de segurança da informação
- ISO/IEC 27035: Gestão de incidentes de segurança da informação
- NIST SP 800-61: Guia de tratamento de incidentes de segurança da informação
- SANS Incident Handler's Handbook
- COBIT 5 for Information Security
### 11.11.2 Legislação Aplicável
- Lei Geral de Proteção de Dados (LGPD) - Lei nº 13.709/2018
- Health Insurance Portability and Accountability Act (HIPAA)
- Marco Civil da Internet - Lei nº 12.965/2014
### 11.11.3 Recursos Internos
- Wiki de Segurança da Pragmatismo
- Biblioteca de Playbooks de Resposta a Incidentes
- Base de Conhecimento de Incidentes Resolvidos
## 11.12 Apêndices
### Apêndice A: Fluxograma de Resposta a Incidentes
```mermaid
graph TD
A[Detecção do Incidente] --> B{Avaliação Inicial}
B -->|Não confirmado| C[Falso Positivo - Documentar]
B -->|Confirmado| D[Classificação e Priorização]
D --> E{Severidade?}
E -->|Baixa| F[Resposta Padrão]
E -->|Média| G[Resposta Elevada]
E -->|Alta/Crítica| H[Resposta de Emergência]
F --> I[Contenção e Erradicação]
G --> I
H --> I
I --> J[Recuperação]
J --> K[Análise Pós-Incidente]
K --> L[Implementação de Melhorias]
L --> M[Fechamento do Incidente]
```
### Apêndice B: Modelo de Relatório de Incidente
```
# RELATÓRIO DE INCIDENTE DE SEGURANÇA
## 1. INFORMAÇÕES GERAIS
- ID do Incidente: [ID único]
- Data/Hora de Detecção: [DD/MM/AAAA HH:MM]
- Data/Hora de Resolução: [DD/MM/AAAA HH:MM]
- Severidade: [Baixa/Média/Alta/Crítica]
- Categoria: [Tipo de incidente]
- Sistemas Afetados: [Lista de sistemas]
## 2. DESCRIÇÃO DO INCIDENTE
[Descrição detalhada do que ocorreu]
## 3. CRONOLOGIA DE EVENTOS
[Timeline detalhada]
## 4. AÇÕES TOMADAS
[Detalhamento das ações de resposta]
## 5. IMPACTO
- Impacto Técnico: [Descrição]
- Impacto no Negócio: [Descrição]
- Dados Afetados: [Tipos e quantidades]
## 6. ANÁLISE DE CAUSA RAIZ
[Detalhamento das causas identificadas]
## 7. LIÇÕES APRENDIDAS
[Principais aprendizados]
## 8. RECOMENDAÇÕES
[Ações recomendadas para prevenir recorrência]
## 9. ANEXOS
[Lista de evidências e documentação relacionada]
```
### Apêndice C: Lista de Verificação para Classificação de Severidade
Fatores a considerar ao classificar a severidade de um incidente:
1. **Impacto nos Dados**
- Quantidade de dados afetados
- Sensibilidade dos dados (PHI, dados pessoais, informações financeiras)
- Potencial para uso malicioso dos dados expostos
2. **Impacto Operacional**
- Número de sistemas afetados
- Criticidade dos sistemas para operações
- Duração estimada da interrupção
- Existência de workarounds
3. **Impacto Regulatório**
- Obrigações de notificação
- Potenciais penalidades
- Prazos regulatórios
4. **Impacto na Reputação**
- Visibilidade externa do incidente
- Percepção dos clientes e parceiros
- Potencial cobertura da mídia
5. **Impacto Financeiro**
- Custos diretos de remediação
- Potenciais perdas de receita
- Responsabilidades legais

View file

@ -0,0 +1,151 @@
---
id: business-continuity-managment
title: Cap. 12. Continuidade de Negócios
sidebar_label: 12. Continuidade de Negócios
sidebar_position: 12
---
## **1. Introdução à Continuidade de Negócios em Ambientes de Software**
### **1.1. Definição e Importância**
A Continuidade de Negócios (BCM - *Business Continuity Management*) em empresas de software não se limita apenas à recuperação de desastres, mas engloba a **resiliência de todo o ciclo de desenvolvimento**, desde o versionamento de código até a entrega contínua.
- **Por que é crítico?**
- **Riscos de Interrupção**: Falhas em sistemas ALM (*Application Lifecycle Management*) podem paralisar o desenvolvimento por dias.
- **Impacto Financeiro**: Cada hora de downtime pode custar milhares em multas de SLA e perda de confiança.
- **Exigências Regulatórias**: ISO 27001, HIPAA e LGPD exigem planos formais de recuperação.
### **1.2. Relação com ALM e DevOps**
Um BCM eficiente em software deve considerar:
**Redundância de Repositórios** (Git mirrors, backup de histórico)
**Resiliência de Pipelines** (CI/CD auto-curável)
**Proteção de Artefatos** (binários, imagens Docker, pacotes)
**Gestão de Incidentes Integrada** (link com ITIL/DevOps)
---
## **2. Estrutura de Continuidade de Negócios para Empresas de Software**
### **2.1. Componentes Críticos**
| **Componente** | **Risco Principal** | **Estratégia de Mitigação** |
|-------------------------|-----------------------------|-----------------------------------------------|
| **Repositório de Código** | Perda de histórico (ex: ransomware) | Mirroring em múltiplas regiões + backup imutável |
| **Pipeline CI/CD** | Falha na entrega contínua | Executores redundantes + cache de dependências |
| **Banco de Dados ALM** | Corrupção de dados (ex: Jira, SonarQube) | Replicação síncrona + snapshots diários |
| **Artifacts (NPM, Docker)** | Inacessibilidade em produção | Mirror em registries privados (Artifactory, Nexus) |
### **2.2. Matriz de Priorização (RTO x RPO)**
*(Tempo de Recuperação vs. Perda Máxima Aceitável de Dados)*
| **Ativo** | **RTO (Recovery Time Objective)** | **RPO (Recovery Point Objective)** | **Ferramenta Recomendada** |
|-------------------------|----------------------------------|-----------------------------------|---------------------------|
| **Código Fonte (Git)** | ≤ 1 hora | ≤ 5 minutos (último commit) | GitHub Enterprise Backup |
| **Banco de Dados CI** | ≤ 2 horas | ≤ 15 minutos | AWS RDS Multi-AZ |
| **Build Artifacts** | ≤ 4 horas | ≤ 24 horas (cache de dependências)| JFrog Artifactory HA |
---
## **3. Implementação Técnica do Plano de Continuidade**
### **3.1. Backup e Recuperação de Código**
**Solução:**
- **Git Mirroring** (GitLab Geo / GitHub Enterprise Replica)
- **Backup Automatizado** (Borgmatic + Rclone para criptografia)
- **Verificação de Integridade** (checksum SHA-256 dos repositórios)
**Exemplo de Script de Backup (Bash):**
```bash
#!/bin/bash
# Backup diário de repositórios Git
REPO_DIR="/var/opt/git/repositories"
BACKUP_DIR="/backup/git-$(date +%Y%m%d)"
mkdir -p $BACKUP_DIR
rsync -avz --delete $REPO_DIR $BACKUP_DIR
rclone sync $BACKUP_DIR s3://git-backups --encrypt
```
### **3.2. Resiliência em Pipelines CI/CD**
**Estratégias:**
**Infraestrutura Imutável** (Terraform + Packer)
**Executores Stateless** (Kubernetes + Spot Instances)
**Cache Distribuído** (Redis + S3 para dependências)
**Exemplo de Terraform para Recuperação Rápida:**
```hcl
resource "aws_instance" "ci_runner_failover" {
ami = "ami-0abcdef123456789"
instance_type = "t3.large"
subnet_id = aws_subnet.backup_region.id
tags = {
Name = "CI-Runner-Failover"
}
}
```
---
## **4. Conformidade com ISO 27001, HIPAA e LGPD**
### **4.1. Mapeamento de Controles**
| **Norma** | **Requisito** | **Como Implementamos** |
|--------------|----------------------------|------------------------------------------|
| **ISO 27001** | A.17.1 (Continuidade) | Backups diários + teste de restauração trimestral |
| **HIPAA** | §164.308(a)(7) (Plano de Contingência) | Criptografia de backups + acesso controlado |
| **LGPD** | Art. 46 (Segurança de Dados) | Notificação de incidentes em ≤72h |
### **4.2. Checklist de Compliance**
- [ ] **Backups Criptografados** (AES-256)
- [ ] **Teste de Recuperação Semestral**
- [ ] **Documentação de Procedimentos** (SOP para incidentes)
- [ ] **Treinamento da Equipe** (Simulações de desastre)
---
## **5. Plano de Ação para Incidentes**
### **5.1. Fluxograma de Resposta a Desastres**
```mermaid
graph TD
A[Incidente Detectado] --> B{Classificação}
B -->|Crítico| C[Ativar Plano BCM]
B -->|Moderado| D[Resolver via Time Padrão]
C --> E[Failover para DR Site]
E --> F[Restaurar Backup Mais Recente]
F --> G[Validar Integridade]
G --> H[Retomar Operações]
```
### **5.2. Kit de Emergência DevOps**
- **Acesso a Backups Offline** (YubiKey com chaves criptográficas)
- **Documentação de Recuperação** (em formato Markdown no repositório privado)
- **Contatos de Emergência** (Cloud Providers, Equipe de Infra)
---
## **6. Ferramentas Recomendadas**
| **Categoria** | **Ferramenta Open Source** | **Solução Enterprise** |
|-----------------------|-----------------------------|-----------------------------|
| **Backup de Código** | Borgmatic + Rclone | GitHub Enterprise Backup |
| **CI/CD Resiliente** | Tekton + ArgoCD | GitLab Geo |
| **Monitoramento** | Prometheus + Grafana | Datadog Incident Management |
---
## **7. Conclusão e Próximos Passos**
Um **Plano de Continuidade de Negócios** robusto para empresas de software deve:
🔹 **Integrar ALM e DevOps** (código, CI/CD, artefatos)
🔹 **Atender a Compliance** (ISO 27001, HIPAA, LGPD)
🔹 **Ser Testado Regularmente** (simulações de desastre)
**Próximas Ações:**
1. Implementar backup automatizado em todos os repositórios.
2. Configurar mirroring geográfico para Git e CI.
3. Realizar um teste de recuperação completo no próximo trimestre.
** Checklist Final:**
- [ ] Mapear todos os ativos críticos
- [ ] Definir RTO/RPO para cada componente
- [ ] Automatizar backups e verificações
- [ ] Documentar procedimentos de recuperação
- [ ] Treinar equipe em simulações de crise

17
docs/copyright.md Normal file
View file

@ -0,0 +1,17 @@
---
title: Copyright
sidebar_label: Copyright
sidebar_position: 13
---
General Bot Copyright (c) Pragmatismo. All rights reserved. Licensed under the AGPL-3.0.
According to our dual licensing model, this program can be used either under the terms of
the GNU Affero General Public License, version 3, or under a proprietary license.
The texts of the GNU Affero General Public License with an additional permission and of our proprietary license can be found at and in the LICENSE file you have received along with this program.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details.
"General Bots" is a registered trademark of Pragmatismo. The licensing of the program under the AGPLv3 does not imply a trademark license. Therefore any rights, title and interest in our trademarks remain entirely with us.

View file

@ -1,10 +1,222 @@
---
sidebar_position: 1000
title: Glossário
sidebar_label: Glossário
sidebar_position: 14
---
# Glossary
|Termo|Descrição|
|--- |--- |
|Acordos de Confidencialidade (NDA)|Documentos assinados para proteção de informações confidenciais|
|AI Orchestration|Coordenação de múltiplos modelos de IA em fluxos complexos|
|Anonymization|Remoção irreversível de identificadores pessoais|
|Audit Trail|Registro cronológico de atividades do sistema|
|Autoencoder|Rede neural para compressão e reconstrução de dados|
|Batch Inference|Processamento de modelos em lotes de dados|
|Behavioral Biometrics|Autenticação baseada em padrões comportamentais|
|Big Data|Conjuntos de dados extremamente grandes e complexos|
|Blockchain|Tecnologia de registro distribuído imutável|
|Bot|Agente conversacional autônomo|
|Business Continuity|Planejamento para manter operações durante crises|
|BYOD (Bring Your Own Device)|Política de uso de dispositivos pessoais no trabalho|
|Canary Deployment|Liberação gradual de novas versões para monitoramento|
|Chatbot|Programa que simula conversação humana|
|CI/CD (Continuous Integration/Deployment)|Prática de integração e entrega contínuas|
|Cloud Computing|Entrega de recursos computacionais via internet|
|Confidential Computing|Proteção de dados durante o processamento|
|Containerization|Empacotamento de aplicações com suas dependências|
|Data Augmentation|Técnicas para aumentar diversidade de dados|
|Data Controller|Entidade que determina finalidades de tratamento de dados|
|Data Drift|Mudança nas propriedades estatísticas dos dados de entrada|
|Data Lake|Repositório para armazenar dados brutos em qualquer escala|
|Data Lineage|Rastreamento da origem e transformações dos dados|
|Data Mesh|Abordagem descentralizada para gestão de dados|
|Data Minimization|Princípio de coletar apenas dados necessários|
|Data Pipeline|Fluxo automatizado para processamento de dados|
|Data Poisoning|Ataque que corrompe dados de treinamento de ML|
|Data Pseudonymization|Processamento que impede identificação direta|
|Data Subject|Indivíduo a quem os dados pessoais se referem|
|Data Warehouse|Repositório integrado de dados históricos|
|Database Sharding|Particionamento horizontal de bancos de dados|
|Differential Privacy|Técnica que preserva privacidade em análises|
|Digital Signature|Assinatura eletrônica com validade jurídica|
|Digital Twin|Representação virtual de um sistema físico|
|Disaster Recovery|Processos para recuperação após desastres|
|Docker|Plataforma para criação e execução de containers|
|Edge Computing|Processamento de dados próximo à fonte|
|Embedding|Representação vetorial de dados semânticos|
|Encryption|Conversão de dados para formato ilegível|
|Enterprise Architecture|Estrutura abrangente de TI alinhada ao negócio|
|ETL (Extract, Transform, Load)|Processo de preparação de dados|
|Explainable AI (XAI)|IA com processos decisórios compreensíveis|
|Federated Learning|Treinamento distribuído preservando privacidade|
|Feature Engineering|Criação de variáveis preditivas a partir de dados brutos|
|Feature Store|Repositório centralizado de features para ML|
|Fine-tuning|Ajuste de modelos pré-treinados para tarefas específicas|
|Firewall|Sistema de segurança que controla tráfego de rede|
|Forward Secrecy|Proteção de sessões passadas contra futuros comprometimentos|
|GAN (Generative Adversarial Network)|Rede neural para geração de dados realistas|
|GDPR (General Data Protection Regulation)|Regulamento europeu de proteção de dados|
|Git|Sistema de controle de versão distribuído|
|Governance Framework|Estrutura para gestão e tomada de decisões|
|Gradient Boosting|Técnica de ML baseada em combinação de modelos fracos|
|Graph Database|Banco de dados que usa estruturas de grafos|
|Guardrails|Restrições para manter saídas de IA em limites aceitáveis|
|Hallucination|Quando modelos de IA geram informações falsas|
|Hashing|Conversão de dados em string de tamanho fixo|
|HIPAA (Health Insurance Portability Act)|Lei americana de proteção de dados de saúde|
|Homomorphic Encryption|Computação sobre dados criptografados|
|Human-in-the-loop|Sistemas que incorporam feedback humano|
|Hybrid Cloud|Ambiente combinando nuvem pública e privada|
|Hyperparameter|Parâmetro configurável antes do treinamento|
|IaC (Infrastructure as Code)|Gerenciamento de infraestrutura via código|
|Incident Response|Processos para lidar com violações de segurança|
|Inference|Processo de fazer previsões com modelo treinado|
|Information Security|Proteção de informações contra acesso não autorizado|
|ISO 27001|Padrão internacional para gestão de segurança da informação|
|ITIL (IT Infrastructure Library)|Framework para gerenciamento de serviços de TI|
|Jailbreaking|Contornar restrições de sistemas de IA|
|Just-in-Time Access|Acesso privilegiado com duração limitada|
|Kubernetes|Sistema de orquestração de containers|
|LDAP (Lightweight Directory Access Protocol)|Protocolo para serviços de diretório|
|Least Privilege|Princípio de conceder apenas permissões necessárias|
|LGPD (Lei Geral de Proteção de Dados)|Legislação brasileira de proteção de dados|
|LLM (Large Language Model)|Modelo de linguagem em grande escala|
|LoRA (Low-Rank Adaptation)|Técnica eficiente para adaptação de modelos|
|Machine Learning|Algoritmos que aprendem padrões a partir de dados|
|Microservices|Arquitetura baseada em serviços independentes|
|MLOps|Práticas para operacionalizar modelos de ML|
|Model Card|Documentação detalhada sobre modelo de IA|
|Model Drift|Degradação do desempenho do modelo ao longo do tempo|
|Model Registry|Catálogo centralizado de modelos de ML|
|Multi-cloud|Uso de múltiplos provedores de nuvem|
|Multi-factor Authentication|Autenticação usando múltiplos fatores|
|Neural Network|Sistema inspirado no cérebro humano para aprendizagem|
|NFT (Non-Fungible Token)|Token digital único e não intercambiável|
|NLP (Natural Language Processing)|Processamento de linguagem natural|
|OAuth|Protocolo padrão para autorização|
|Object Storage|Armazenamento de dados como objetos|
|OLAP (Online Analytical Processing)|Processamento analítico online|
|ONNX (Open Neural Network Exchange)|Formato para modelos de IA interoperáveis|
|Open Source|Software com código fonte disponível publicamente|
|Overfitting|Quando modelo se ajusta demais aos dados de treinamento|
|PCI DSS (Payment Card Industry Data Security Standard)|Padrão de segurança para dados de cartões|
|Penetration Testing|Testes de segurança simulando ataques reais|
|Personally Identifiable Information (PII)|Informações que identificam indivíduos|
|Pipeline|Sequência automatizada de processamento de dados|
|Privacy by Design|Incorporar privacidade desde o projeto inicial|
|Prompt Engineering|Arte de construir inputs eficazes para IA|
|Prototype|Versão inicial para validação de conceito|
|Pseudonymization|Técnica de proteção de dados pessoais|
|Public Key Infrastructure (PKI)|Estrutura para gestão de certificados digitais|
|Quantum Computing|Computação usando princípios quânticos|
|RAG (Retrieval-Augmented Generation)|IA que combina busca com geração de texto|
|RBAC (Role-Based Access Control)|Controle de acesso baseado em funções|
|RDP (Remote Desktop Protocol)|Protocolo para acesso remoto|
|Red Team|Equipe que simula ataques para testar defesas|
|Regression Testing|Testes para verificar funcionalidades existentes|
|Reinforcement Learning|Aprendizado por tentativa e erro com recompensas|
|Responsible AI|IA desenvolvida com princípios éticos|
|REST API|Interface para comunicação entre sistemas|
|Risk Assessment|Avaliação sistemática de riscos de segurança|
|Robotic Process Automation (RPA)|Automação de processos repetitivos|
|SaaS (Software as a Service)|Software entregue como serviço via internet|
|SAML (Security Assertion Markup Language)|Padrão para autenticação federada|
|Sandbox|Ambiente isolado para teste de código|
|Secure Coding|Práticas de desenvolvimento seguro|
|Secure Socket Layer (SSL)|Protocolo de segurança para internet|
|Security Token|Dispositivo físico para autenticação|
|Self-Supervised Learning|Aprendizado a partir dos próprios dados|
|Serverless|Modelo de execução sem gerenciamento de servidores|
|Service Mesh|Infraestrutura para comunicação entre microserviços|
|SIEM (Security Information and Event Management)|Monitoramento centralizado de segurança|
|Single Sign-On (SSO)|Autenticação única para múltiplos sistemas|
|Smart Contract|Contrato autoexecutável em blockchain|
|Software Bill of Materials (SBOM)|Inventário de componentes de software|
|SOLID|Princípios de design de software orientado a objetos|
|SQL Injection|Ataque que explora vulnerabilidades em bancos de dados|
|SSL/TLS|Protocolos de criptografia para internet|
|Staging Environment|Ambiente semelhante à produção para testes|
|Static Code Analysis|Análise automática de código sem executá-lo|
|Supervised Learning|ML com dados de treinamento rotulados|
|Supply Chain Attack|Ataque via dependências de software|
|Swarm Intelligence|Sistemas inspirados em comportamentos coletivos|
|Synthetic Data|Dados gerados artificialmente para treinamento|
|TDD (Test-Driven Development)|Desenvolvimento guiado por testes|
|Threat Intelligence|Informações sobre ameaças cibernéticas|
|Tokenization|Substituição de dados sensíveis por tokens|
|Transfer Learning|Reutilização de modelos pré-treinados|
|Two-Factor Authentication (2FA)|Autenticação com dois fatores|
|Underfitting|Quando modelo não captura padrões dos dados|
|Unsupervised Learning|ML com dados não rotulados|
|Use Case|Descrição de interação entre ator e sistema|
|User Story|Requisito descrito da perspectiva do usuário|
|Vault|Sistema seguro para armazenamento de segredos|
|Vector Database|Banco de dados otimizado para embeddings|
|Virtual Machine (VM)|Computador virtualizado|
|VPN (Virtual Private Network)|Rede privada virtual|
|Vulnerability Assessment|Identificação sistemática de vulnerabilidades|
|Waterfall Model|Metodologia de desenvolvimento sequencial|
|Web Application Firewall (WAF)|Firewall para aplicações web|
|Webhook|Mecanismo para notificações entre aplicações|
|Whitelisting|Lista de entidades permitidas explicitamente|
|Zero-Day Vulnerability|Falha desconhecida sem correção disponível|
|Zero Trust|Modelo de segurança que verifica tudo|
|ZKP (Zero-Knowledge Proof)|Prova criptográfica sem revelar informação|
| Term | Description |
|-------------------|-----------------------------------------------------------------------------|
| Subject Menu Item | An item that is shown to the user when a request of known subjects is done. |
| Projector | A canvas that expresses the current conversation graphically. |
### Acrônimos
|Termo|Descrição|
|--- |--- |
|ACL|Access Control List|
|AI|Artificial Intelligence|
|API|Application Programming Interface|
|B2B|Business to Business|
|BI|Business Intelligence|
|CD|Continuous Delivery|
|CI|Continuous Integration|
|CICD|Continuous Integration/Continuous Delivery|
|CORS|Cross-Origin Resource Sharing|
|CPU|Central Processing Unit|
|CRM|Customer Relationship Management|
|CSRF|Cross-Site Request Forgery|
|CSS|Cascading Style Sheets|
|CSV|Comma-Separated Values|
|CTO|Chief Technology Officer|
|CV|Computer Vision|
|DDoS|Distributed Denial of Service|
|DL|Deep Learning|
|DNS|Domain Name System|
|ERP|Enterprise Resource Planning|
|FTP|File Transfer Protocol|
|GPU|Graphics Processing Unit|
|HTML|Hypertext Markup Language|
|HTTP|Hypertext Transfer Protocol|
|HTTPS|HTTP Secure|
|IDE|Integrated Development Environment|
|IoT|Internet of Things|
|IP|Internet Protocol|
|IT|Information Technology|
|JSON|JavaScript Object Notation|
|JWT|JSON Web Token|
|LAN|Local Area Network|
|ML|Machine Learning|
|MVP|Minimum Viable Product|
|NLP|Natural Language Processing|
|NoSQL|Not Only SQL|
|OS|Operating System|
|QA|Quality Assurance|
|RAM|Random Access Memory|
|REST|Representational State Transfer|
|SDK|Software Development Kit|
|SEO|Search Engine Optimization|
|SLA|Service Level Agreement|
|SMTP|Simple Mail Transfer Protocol|
|SQL|Structured Query Language|
|SSH|Secure Shell|
|UI|User Interface|
|URL|Uniform Resource Locator|
|UX|User Experience|
|VM|Virtual Machine|
|VPN|Virtual Private Network|
|WAN|Wide Area Network|
|XML|eXtensible Markup Language|

Binary file not shown.

Before

Width:  |  Height:  |  Size: 124 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 787 KiB

190
docs/index.md Normal file
View file

@ -0,0 +1,190 @@
---
slug: / # Makes this the homepage
title: Compliance
sidebar_label: Home
sidebar_position: 1
---
# 1. Introdução ao Framework de Compliance
Seja bem-vinda(o) ao Framework de Compliance da Pragmatismo. Este documento representa nosso compromisso com a excelência operacional e conformidade regulatória no desenvolvimento e operação do General Bots e todos os nossos sistemas de tecnologia. Este framework foi desenvolvido para garantir que todas as operações da empresa estejam em conformidade com as normas ISO 27001, HIPAA e LGPD, assegurando a proteção de dados, a privacidade e a segurança da informação.
Caso identifique um padrão positivo em nossas atividades que possa ser generalizado ou tenha sugestões para aprimorar nosso framework de compliance, envie um e-mail para metodologia@Pragmatismo para avaliação. Opte sempre por descentralizar o conhecimento, editando estes artigos e compartilhando os métodos de trabalho mais seguros, eficazes e em conformidade com os padrões regulatórios.
* [1. Introdução](index.md)
* [2. Comunicação](chapter-02-Communication.md)
* [3. ALM](chapter-03-ALM.md)
* [4. Automação](chapter-04-Automation.md)
* [5. Ciência de Dados & IoT](chapter-05-Data%20Science%20%26%20IoT.md)
* [6. Ferramentas](chapter-06-Tools.md)
* [7. Artes, Design e Produção de Mídia](chapter-07-Arts%2C%20Design%20and%20Media%20Production.md)
* [8. Políticas de Segurança da Informação](chapter-08-Information%20Security%20Policies.md)
* [9. Gestão de Riscos](chapter-09-Risk%20Management.md)
* [10. Gestão de Conformidade](chapter-10-Compliance%20Management.md)
* [11. Gestão de Incidentes](chapter-11-Incident%20Management.md)
* [12. Continuidade de Negócios](business-continuity-managment)
* [Direitos Autorais](copyright.md)
* [Glossário](glossary.md)
## 1.1 Objetivo do Framework
Este framework tem como objetivo:
1. **Estabelecer Conformidade**: Garantir que todas as operações da Pragmatismo estejam em conformidade com ISO 27001, HIPAA e LGPD;
2. **Proteger Dados**: Implementar controles técnicos e administrativos para proteger dados sensíveis;
3. **Gerenciar Riscos**: Identificar, avaliar e mitigar riscos de segurança da informação;
4. **Criar Cultura de Segurança**: Promover uma cultura organizacional que valorize a segurança da informação;
5. **Garantir Continuidade de Negócios**: Implementar procedimentos para garantir a resiliência operacional.
## 1.2 Escopo de Aplicação
Este framework se aplica a:
1. Todos os colaboradores da Pragmatismo;
2. Sistemas e plataformas de desenvolvimento do General Bots;
3. Processos de desenvolvimento de software;
4. Infraestrutura de TI e operações;
5. Gestão de dados e informações dos clientes;
6. Relacionamento com fornecedores e parceiros.
## 1.4 Normas Gerais de Compliance
1. Todas as atividades da companhia devem ocorrer de acordo com a NR 17: http://www.trt02.gov.br/geral/tribunal2/LEGIS/CLT/NRs/NR_17.html;
2. Todas as operações devem estar em conformidade com a Lei Geral de Proteção de Dados (LGPD - Lei nº 13.709/2018), ISO 27001 e HIPAA (quando aplicável);
3. Os colaboradores devem participar de treinamentos regulares sobre segurança da informação e proteção de dados;
4. A empresa deve manter um Inventário de Ativos de Informação atualizado;
5. Revisões periódicas das políticas de segurança e conformidade devem ser realizadas pelo menos anualmente;
6. Cada participante do projeto deve contribuir durante a construção do projeto com um artigo em sua área para a companhia;
7. Salvo restrições contratuais informadas em cada caso, de modo simultâneo e coordenado, as novas tecnologias, comportamentos, padronizações, metodologias e outros novos artefatos para projetos em desenvolvimento resultam contribuições para projetos modelo da companhia;
8. Construir artefatos de código apenas com requisitos e macro-tarefas associadas;
9. Sempre verificar com a gerência do projeto e produto a viabilidade de introduzir ou refatorar código com BDD, TDD e/ou código-fonte literal;
10. Certifique-se de que termos, contratos e certificações estão em dia de acordo as instruções individuais de cada documento.
## 1.5 Matriz de Conformidade
A seguir, apresentamos nossa matriz de conformidade com os principais requisitos das normas ISO 27001, HIPAA e LGPD:
| Requisito | Padrão | Status | Implementação |
|-----------|--------|--------|---------------|
| **Segurança de Rede** | | | |
| TLS 1.3 Configuration | ISO 27001, HIPAA, LGPD | ✅ | Configure modern SSL parameters and ciphers in /etc/nginx/conf.d/ssl.conf |
| Access Logging | ISO 27001, HIPAA, LGPD | ✅ | Enable detailed access logs with privacy fields in /etc/nginx/nginx.conf |
| Rate Limiting | ISO 27001 | ⬜ | Implement rate limiting rules in location blocks |
| WAF Rules | HIPAA | ⬜ | Install and configure ModSecurity with OWASP rules |
| Reverse Proxy Security | ISO 27001, HIPAA, LGPD | ✅ | Configure security headers (X-Frame-Options, HSTS, CSP) |
| **Gestão de Identidade** | | | |
| MFA Implementation | ISO 27001, HIPAA, LGPD | ✅ | Enable and enforce MFA for all administrative accounts |
| RBAC Configuration | ISO 27001, HIPAA, LGPD | ✅ | Set up role-based access control with least privilege |
| Password Policy | ISO 27001, HIPAA, LGPD | ✅ | Configure strong password requirements (length, complexity, history) |
| OAuth2/OIDC Setup | ISO 27001 | ✅ | Configure secure OAuth flows and token policies |
| Audit Logging | ISO 27001, HIPAA, LGPD | ✅ | Enable comprehensive audit logging for user activities |
| **Armazenamento e Dados** | | | |
| Encryption at Rest | ISO 27001, HIPAA, LGPD | ✅ | Configure encrypted storage with key management |
| Bucket Policies | ISO 27001, HIPAA, LGPD | ✅ | Implement strict bucket access policies |
| Object Versioning | HIPAA | ✅ | Enable versioning for data recovery capability |
| Access Logging | ISO 27001, HIPAA, LGPD | ✅ | Enable detailed access logging for object operations |
| Lifecycle Rules | LGPD | ⬜ | Configure data retention and deletion policies |
| **Comunicação** | | | |
| DKIM/SPF/DMARC | ISO 27001, HIPAA, LGPD | ✅ | Configure email authentication mechanisms |
| Mail Encryption | ISO 27001, HIPAA, LGPD | ✅ | Enable TLS for mail transport |
| Content Filtering | ISO 27001, HIPAA, LGPD | ✅ | Implement content scanning and filtering rules |
| Mail Archiving | HIPAA | ⬜ | Configure compliant email archiving |
| Sieve Filtering | ISO 27001, HIPAA, LGPD | ✅ | Implement security-focused mail filtering rules |
| **Sistemas Operacionais** | | | |
| System Hardening | ISO 27001, HIPAA, LGPD | ⬜ | Apply CIS Ubuntu Linux benchmarks |
| System Updates | ISO 27001, HIPAA, LGPD | ✅ | Configure unattended-upgrades for security patches |
| Audit Daemon | ISO 27001, HIPAA, LGPD | ⬜ | Configure auditd for system event logging |
| Firewall Rules | ISO 27001, HIPAA, LGPD | ✅ | Configure UFW with restrictive rules |
| Disk Encryption | ISO 27001, HIPAA, LGPD | ⬜ | Implement LUKS encryption for system disks |
| SELinux/AppArmor | ISO 27001, HIPAA, LGPD | ⬜ | Enable and configure mandatory access control |
| **Monitoramento e Logs** | | | |
| Monitoring Setup | ISO 27001, HIPAA, LGPD | ✅ | Install and configure Prometheus + Grafana |
| Log Aggregation | ISO 27001, HIPAA, LGPD | ✅ | Implement centralized logging (e.g., ELK Stack) |
| **Backup e Recuperação** | | | |
| Backup System | ISO 27001, HIPAA, LGPD | ⬜ | Configure automated backup system with encryption |
| Network Isolation | ISO 27001, HIPAA, LGPD | ✅ | Implement proper network segmentation |
| **Gestão de Dados** | | | |
| Data Classification | HIPAA/LGPD | ✅ | Document data types and handling procedures |
| Session Management | ISO 27001, HIPAA, LGPD | ✅ | Configure secure session timeouts and invalidation |
| **Gestão de Certificados** | | | |
| Certificate Management | ISO 27001, HIPAA, LGPD | ✅ | Implement automated certificate renewal with Let's Encrypt |
| **Segurança Ofensiva** | | | |
| Vulnerability Scanning | ISO 27001 | ✅ | Regular automated scanning with tools like OpenVAS |
| **Resposta a Incidentes** | | | |
| Incident Response Plan | ISO 27001, HIPAA, LGPD | ✅ | Document and test incident response procedures |
| Disaster Recovery | HIPAA | ✅ | Implement and test disaster recovery procedures |
## 1.6 Documentação Obrigatória
### 1.6.1 Políticas de Segurança
- Política de Segurança da Informação
- Política de Controle de Acesso
- Política de Senhas
- Política de Proteção de Dados
- Plano de Resposta a Incidentes
### 1.6.2 Procedimentos
- Procedimentos de Backup e Recuperação
- Procedimentos de Gestão de Mudanças
- Procedimentos de Revisão de Acessos
- Procedimentos de Incidentes de Segurança
- Procedimentos de Resposta a Violações de Dados
### 1.6.3 Documentação Técnica
- Diagramas de Arquitetura de Rede
- Documentação de Configuração de Sistemas
- Documentação de Controles de Segurança
- Documentação de Padrões de Criptografia
- Documentação de Logging e Monitoramento
### 1.6.4 Registros de Conformidade
- Relatórios de Avaliação de Riscos
- Logs de Auditoria
- Registros de Treinamento
- Relatórios de Incidentes
- Registros de Revisão de Acesso
## 1.7 Tarefas Regulares de Manutenção
- Atualizações semanais de segurança
- Revisões mensais de acesso
- Auditorias trimestrais de conformidade
- Testes anuais de penetração
- Testes semestrais de recuperação de desastres
## 1.8 Segurança de Acesso
1. Mantenha sua senha em um local seguro, preferencialmente memorizando-a.
2. Altere sua senha imediatamente ao recebê-la.
3. Utilize autenticação de múltiplos fatores (MFA) sempre que disponível.
4. Nunca compartilhe suas credenciais com outras pessoas.
5. Bloqueie seu computador ao se ausentar de sua estação de trabalho.
6. Revise regularmente suas permissões de acesso e solicite apenas os privilégios necessários.
## 1.9 Referências
1. ISO 27001 - Sistema de Gestão da Segurança da Informação
2. HIPAA (Health Insurance Portability and Accountability Act)
3. LGPD (Lei Geral de Proteção de Dados - Lei nº 13.709/2018)
4. CIS Benchmarks (Center for Internet Security)
5. OWASP (Open Web Application Security Project)
6. NIST (National Institute of Standards and Technology)
7. http://msdn.microsoft.com
8. https://aws.amazon.com/documentation/
9. http://wikipedia.org
10. https://portal.fiocruz.br/
11. http://www.trt02.gov.br
---
*Última atualização: 11 de maio de 2025*

View file

@ -2,69 +2,27 @@ import { themes as prismThemes } from "prism-react-renderer";
import type { Config } from "@docusaurus/types";
import type * as Preset from "@docusaurus/preset-classic";
const config: Config = {
title: "General Bots Documentation",
tagline: "To err is human.",
title: "Compliance",
tagline: "Methodology.",
favicon: "img/favicon.ico",
// Set the production url of your site here
url: "https://docs.pragmatismo.cloud",
// Set the /<baseUrl>/ pathname under which your site is served
// For GitHub pages deployment, it is often '/<projectName>/'
url: "https://compliance.pragmatismo.com.br",
baseUrl: "/",
// GitHub pages deployment config.
// If you aren't using GitHub pages, you don't need these.
organizationName: "General Bots", // Usually your GitHub org/user name.
projectName: "General Bots", // Usually your repo name.
onBrokenLinks: "warn",
onBrokenMarkdownLinks: "warn",
// // Even if you don't use internationalization, you can use this field to set
// // useful metadata like html lang. For example, if your site is Chinese, you
// // may want to replace "en" with "zh-Hans".
i18n: {
defaultLocale: 'en',
locales: ['en'],
},
themes: ['@docusaurus/theme-mermaid'],
presets: [
[
"redocusaurus",
{
specs: [
{
spec: "https://generalbots.online/swagger.yaml",
route: "/api/",
},
],
theme: {
primaryColor: "#1890ff",
},
},
],[
"classic",
{
docs: {
routeBasePath: '/', // Make docs the homepage
sidebarPath: "./sidebars.ts",
// Please change this to your repo.
// Remove this to remove the "edit this page" links.
editUrl:
"https://github.com/facebook/docusaurus/tree/main/packages/create-docusaurus/templates/shared/",
},
blog: {
showReadingTime: true,
feedOptions: {
type: ["rss", "atom"]
},
// Please change this to your repo.
// Remove this to remove the "edit this page" links.
editUrl:
"https://github.com/facebook/docusaurus/tree/main/packages/create-docusaurus/templates/shared/",
// Useful options to enforce blogging best practices
onInlineTags: "warn",
},
theme: {
customCss: "./src/css/custom.css",
},
@ -76,10 +34,10 @@ const config: Config = {
// Replace with your project's social card
image: "img/docusaurus-social-card.jpg",
navbar: {
title: "General Bots",
title: "Compliance",
logo: {
alt: "General Bots Logo",
src: "img/logo-gb.png",
alt: "Pragmatismo Logo",
src: "img/logo.png",
},
items: [
{
@ -88,20 +46,16 @@ const config: Config = {
position: "left",
label: "Docs",
},
{ to: "/api", label: "API", position: "left" },
{ to: "https://alm.pragmatismo.com.br/GeneralBots/botserver/src/branch/main/templates", label: "Templates", position: "left" },
{
href: "https://github.com/GeneralBots",
label: "GitHub",
position: "right",
},
{ to: "https://pragmatismo.com.br", label: "Website", position: "left" },
{ to: "https://pragmatismo.com.br/privacy", label: "Privacy", position: "left" },
{ to: "https://pragmatismo.com.br/terms", label: "Terms", position: "left" },
],
},
footer: {
style: "dark",
links: [
{
title: "Docs",
title: "Compliance",
items: [
{
label: "Home",
@ -110,19 +64,19 @@ const config: Config = {
],
},
{
title: "Community",
title: "Resources",
items: [
{
label: "Templates",
href: "https://alm.pragmatismo.com.br/GeneralBots/botserver/src/branch/main/templates",
},
{
label: "YouTube",
href: "https://www.youtube.com/@generalbots",
label: "Blog",
href: "https://pragmatismo.com.br/blog",
},
{
label: "Stack Overflow",
href: "https://stackoverflow.com/questions/tagged/generalbots",
label: "ALM",
href: "https://alm.pragmatismo.com.br",
},
],
},
@ -130,17 +84,17 @@ const config: Config = {
title: "More",
items: [
{
label: "Blog",
to: "https://pragmatismo.com.br/blog",
label: "Contact",
to: "https://pragmatismo.com.br/contact",
},
{
label: "GitHub",
href: "https://github.com/GeneralBots",
label: "About",
href: "https://pragmatismo.com.br/about",
},
],
},
],
copyright: `Copyright © ${new Date().getFullYear()} - Pragmatismo.`,
copyright: `Copyright © 2016 - ${new Date().getFullYear()} Pragmatismo.`,
},
prism: {
theme: prismThemes.github,

9022
package-lock.json generated

File diff suppressed because it is too large Load diff

View file

@ -1,5 +1,5 @@
{
"name": "BotBook",
"name": "compliance.pragmatismo.com.br",
"version": "1.0.0",
"private": true,
"scripts": {
@ -17,6 +17,7 @@
"dependencies": {
"@docusaurus/core": "3.7.0",
"@docusaurus/preset-classic": "3.7.0",
"@docusaurus/theme-mermaid": "^3.7.0",
"@mdx-js/react": "^3.1.0",
"clsx": "^2.1.1",
"prism-react-renderer": "^2.4.1",

1004
pnpm-lock.yaml generated

File diff suppressed because it is too large Load diff

View file

@ -1,31 +1,7 @@
import type {SidebarsConfig} from '@docusaurus/plugin-content-docs';
/**
* Creating a sidebar enables you to:
- create an ordered group of docs
- render a sidebar for each doc of that group
- provide next/previous navigation
The sidebars can be generated from the filesystem, or explicitly defined here.
Create as many sidebars as you want.
*/
const sidebars: SidebarsConfig = {
// By default, Docusaurus generates a sidebar from the docs folder structure
tutorialSidebar: [{type: 'autogenerated', dirName: '.'}],
// But you can create a sidebar manually
/*
tutorialSidebar: [
'intro',
'hello',
{
type: 'category',
label: 'Tutorial',
items: ['tutorial-basics/create-a-document'],
},
],
*/
};
export default sidebars;

View file

@ -1,147 +0,0 @@
---
sidebar_position: 0
---
# General Bots Documentation
![General Bots Logo](https://user-images.githubusercontent.com/65977273/94922431-949c3900-0490-11eb-800a-6b478d689f2a.png)
## Introduction
Welcome to the comprehensive General Bots documentation. This guide serves as an essential reference for developers looking to harness the power and flexibility of the General Bots server. Our platform is designed with modularity in mind, allowing for easy customization and extension through various package types.
In this documentation, we'll explore the architecture of the General Bots server, diving deep into its package-based structure. You'll learn how to leverage this modular approach for custom deployments, whether you're working with knowledge bases (.gbkb), themes (.gbtheme), or full-fledged applications (.gbapp).
## Table of Contents
* [Chapter 01 - Run and Talk](docs/chapter-01-run-and-talk)
* [Chapter 02 - About Packages](docs/chapter-02-the-package-based)
* [Chapter 03 - gbkb Reference](docs/chapter-03-gbkb-reference)
* [Chapter 04 - gbtheme Reference](docs/chapter-04-gbtheme-reference)
* [Chapter 05 - gbdialog Reference](docs/chapter-05-gbdialog-reference)
* [Chapter 06 - gbapp Reference](docs/chapter-06-gbapp-reference)
* [Chapter 07 - gbot Reference](docs/chapter-07-gbot-reference)
* [Chapter 08 - Tooling](docs/chapter-08-tooling)
* [Chapter 09 - Feature-Matrix](docs/chapter-09-feature-matrix)
* [Chapter 10 - Contributing](docs/chapter-10-contributing)
* [Apendix I - Database Model](docs/apendix-i-database-model)
* [Glossary](docs/glossary)
## Getting Started
### Prerequisites
Before you embark on your General Bots journey, ensure you have the following tools installed:
- **Node.js (version 20 or later)**: General Bots leverages the latest features of Node.js to provide a robust and efficient runtime environment. Download it from [nodejs.org](https://nodejs.org/en/download/).
- **Git (latest stable version)**: Essential for version control and collaborating on bot projects. Get it from [git-scm.com](https://git-scm.com/downloads).
### Quick Start Guide
Follow these steps to get your General Bots server up and running:
1. Clone the repository:
```bash
git clone https://github.com/GeneralBots/BotServer
```
This command creates a local copy of the General Bots server repository on your machine.
2. Navigate to the project directory:
```bash
cd BotServer
```
This changes your current directory to the newly cloned BotServer folder.
3. Install dependencies and start the server:
```bash
npm install
npm run start
```
The `npm install` command installs all necessary dependencies for the project. `npm run start` builds your bot server locally and serves it through a development server.
### Accessing Your Bot
Once the server is running, you can access your bot at `http://localhost:4242/`. This local server allows you to interact with your bot and test its functionality in real-time. If you want to publish
without password, define [ADMIN_OPEN_PUBLISH](./docs/chapter-07-gbot-reference#enviroment-variables-reference) as true in BotServer .env file.
To publish bot packages and initiate a conversation with the bot, use the command:
```
/publish
```
This command prepares your bot packages for use and allows you to start interacting with your bot immediately.
## Development Workflow
### 1. Project Structure
The General Bots server follows a modular architecture designed for flexibility and scalability. Here's an overview of the main directories:
```
BotServer/
├── packages/
│ ├── core.gbapp/ # Core bot functionality
│ ├── kb.gbapp/ # Knowledge base packages
├── src / # Main entry point
└── package.json # Project configuration
```
This structure allows for easy navigation and management of different aspects of your bot project.
### 2. Creating Custom Packages
One of the strengths of General Bots is its extensibility. You can create custom packages to enhance your bot's capabilities:
- **.gbkb (Knowledge Base packages)**: Store and manage your bot's knowledge and responses.
- **.gbtheme (Theme packages)**: Customize the visual appearance of your bot interface.
- **.gbapp (Application packages)**: Add new features and functionalities to your bot.
Each package type has its own structure and purpose, which we'll explore in depth in their respective chapters.
### 3. API Reference
For detailed information on working with each package type, refer to the following chapters:
- Chapter 3: gbkb Reference - Learn how to create and manage knowledge bases
- Chapter 4: gbtheme Reference - Discover the theming capabilities of General Bots
- Chapter 5: gbdialog Reference - Master the art of creating dynamic conversations
- Chapter 6: gbapp Reference - Explore the full potential of bot applications
- Chapter 7: gbot Reference - Understand the core functionalities of your bot
These chapters provide comprehensive API documentation, usage examples, and best practices for each package type.
### 4. Testing
We strongly encourage writing unit tests for your custom packages to ensure reliability and ease of maintenance. To run tests, use the following command:
```bash
npm run test
```
This command executes the test suites located in the `tests/` directory, allowing you to verify the functionality of your bot components.
### 5. Deployment
When you're ready to deploy your bot to a production environment, the `npm run build` command creates an optimized production build of your bot server.
## Advanced Topics
As you become more familiar with General Bots, you may want to explore these advanced topics:
- **Scalability**: Chapter 9 - Services delves into horizontal scaling options, allowing your bot to handle increased load and user interactions efficiently.
- **Performance Tuning**: Chapter 8 - Tooling offers insights and techniques for optimizing your bot's performance, ensuring smooth operation even under demanding conditions.
- **Security Best Practices**: Chapter 10 - Contributing outlines important security guidelines to keep your bot and its data protected.
These advanced topics will help you take your General Bots implementation to the next level, creating robust, scalable, and secure bot solutions.
## Community and Support
Join our vibrant community of bot developers:
- **GitHub Issues**: For bug reports and feature requests, visit our [issue tracker](https://github.com/GeneralBots/BotServer/issues). Here, you can report problems, suggest improvements, or even contribute code fixes.
## Contributing
We welcome contributions from developers of all skill levels! Whether you're fixing a bug, adding a feature, or improving documentation, your input is valuable. Please read our [Contributing Guide](docs/chapter-10-contributing) for details on our code of conduct and the process for submitting pull requests.
Remember, the General Bots platform is designed to be flexible and extensible. We encourage you to explore its capabilities, experiment with new ideas, and contribute to making it even better. Your creativity and expertise can help shape the future of conversational AI!

BIN
static/img/logo.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 7 KiB