fix: copy saber
Vince Tozzi authored
4fe1f060
Name Last commit Last update
.datalad ci: Remodelagem dos testes
baobaxia fix: copy saber
conf refact: Distribui responsabilidades anteriormente ligadas ao entrypoint
docs Retornando codigos http 403 para sessao invalida/expired
old tests(artigos): Implementa flux de teste para fluxo: `post->find->get`
resources Revert "Alterando a estrutura de pastas para conter backend e frontend no mesmo projeto (#59)."
static refact: Distribui responsabilidades anteriormente ligadas ao entrypoint
tests tests(artigos): Implementa flux de teste para fluxo: `post->find->get`
.baobaxia ci: Remodelagem dos testes
.gitattributes ci: Remodelagem dos testes
.gitignore ci: Remodelagem dos testes
.gitlab-ci.yml build: Inclui o estágio de autofix com pre-commit
.pre-commit-config.yaml build: Inclui o estágio de autofix com pre-commit
Dockerfile Revert "Alterando a estrutura de pastas para conter backend e frontend no mesmo projeto (#59)."
LICENSE Revert "Alterando a estrutura de pastas para conter backend e frontend no mesmo projeto (#59)."
Makefile ci: Remodelagem dos testes
README.md Update ordem README.md FIX #82
poetry.lock feat(auth): Iniciando o Oauth2 com JWT
pyproject.toml Inserindo configuraçao para isort e black com reformataçao a 80 char/linea
setup.py Revert "Alterando a estrutura de pastas para conter backend e frontend no mesmo projeto (#59)."

BAOBÁXIA

NA ROTA DOS BAOBÁS

                               .
                              ,d              .   ,
                             aA...             YF^
                              *@@@b          d@P
                                *@@@b,,,,,-d@@P   ,     ,
                    ....a@@@@aa.. *@@V@`;;..,,  ,*,   ,*
                     `V*'  ``*@@B`b b@((bb`@@P*q*@@*"'
                               `*@`9@,(()))*'   `*.   
                                `A@,`@@Y@(;'
                                 (a`@,`@`&@
                                ."@,@`.@(@@
                               (@a.@",@^a.,
                               ,.o..o@ (@o.`
                               (*",.`*@@o`*@,         "Vamos fazer um mundo digital
                              ,',@***@a,,`^*.,                       mais do nosso jeito!"
                              ,&^,@@@@@a,`a.,
                              &`@`,;aaaa @; )@        NPDD/Rede Mocambos
                              c@(.@".;'".@",@@"
                              @@ @",@`.@*`,@@`,
                              @P,@,*@a, ,a@*`,@
                            , *(`*@@a.,*@*`,@*`
                ,;a&*"` .;a@@ *;,'o,`*@@a;@@P`, oo..,,
        ,.;a@@@*"`  ,;a@@*"` , *"`7`,"a,`"*",d) **oo..`""*oo.,
    ,;@@@@@@*`  ,;d@@@@P` ,.@@b *@b`"@a,`"*@@@` ~*o..,`""*oo,."*@a,
    @@@@@@@@b   `*@@@@@;, `'"*@, "*@@a`*@@&;,` ~*o.,, `"@a, `*@b,`*@a
    `"*@@@@@@b.    `"*o@@@@a;,  `"*o,,`` `""*@@@b;.`"*, `@@   `@@;  `*,
       `"*@@@@@@b.     ``*o@@@@@@;,   `"*ooo**'`  ,;o@*  `@    @@@; 
          `"*@@@@@@@b.,     ``"***oo@@oo;,,,,,;;o@@*'` ,;o@    `@@@@,
             `"*@@@@@@@@@b.,,                       ,;o@@@@     @@@@@ 
                `"*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@P*    ,@@@@@
                        ````````''''''''''''''''''''```  ,...;@@@@P*`
                                                      ```'"""```

Publicado sob GNU/GPLv3.

Introdução

“A ideia nasce da referência do Baobá, árvore que vive milhares de anos e representa simbolicamente a memória coletiva ligada ao território. Baobáxia é a união de baobá com galáxia. Uma galáxia de memórias coletivas locais ligadas ao território. A galáxia liga também com as estrelas, que por sua vez são ligadas a Casa de Cultura Tainã, que em tupi-guarani significa caminho das estrelas. Baobáxia vira bbx, tirando as vocais, que remete ao acrônimo bbs que eram os nos de uma antiga rede de computadores.”

Baobáxia é um sistema de gestão descentralizada de repositórios compartilhados dentro de uma rede denominada rota, a Rota dos Baobás. As instâncias que controlam os repositórios, denominadas Mucuas, que também é o nome do fruto do Baobá, gerenciam os repositórios a partir de uma API de metadados exposta como rest, atuando sobre repositórios sincronizados.

São pontos de atenção do projeto a eficácia no compartilhamento de dados em redes instáveis e de baixa disponibilidade e a eficiência no uso do hardware local visando facilitar o acesso a equipamentos com potencial de serem Mucuas.

Apoio

A partir de dezembro de 2019 o projeto conta com apoio da FAPESP atravez do projeto: Siwazi Rowaihuuze Auwe - rede de informação Xavante: conectividade, gestão de dados e apropriação da internet por povos indígenas.

Processo: 18/23094-4

Conceitos básicos

A Baobáxia funciona como uma plataforma federada (usuáries se conectam a instâncias diferentes e essas conectam-se entre si) e rizomática (as instâncias funcionam de forma independente e descentralizada). Para além disso, os conceitos próprios da Baobáxia são descritos, tanto em termos leigos quanto técnicos, neste documento.

Instalação

Instalação do ambiente de desenvolvimento

Requisitos

  • git
  • git-annex*
  • python 3
  • pip
  • virtualenv
  • A versão do git-annex dos repositórios APT pode estar desatualizada. Neste caso podemos utilizar a versão do Neurodebian.

Instruções para instalar o git-annex pelo Neurodebian:

http://neuro.debian.net/

Após configurar o repositório, rodar:

apt update
apt install git-annex-standalone

Preparação do ambiente

Inicialmente, na pasta desejada, clonar o ambiente com:

git clone <url_do_ambiente>.git

Antes de entrar na pasta baixada, preparar o ambiente virtual:

virtualenv venv-bbx
. ./venv-bbx/bin/activate

Instalação das dependências

Na pasta do projeto, ativar o ambiente virtual e rodar o pip:

cd baobaxia-mucua
pip install -r requirements/dev.txt

Configuração inicial da Mucua

A mucua deve estar em execução. Em um novo terminal, na pasta do projeto, ativar e entrar no console do Python:

cd baobaxia-mucua
. ./bin/activate
python3

Dentro do console do Python, importar e rodar o instalador interativo:

from baobaxia.install import install_interactive
install_interactive()

Preencher as informações necessárias para o instalador:

  • Caminho do diretório de dados: pasta onde ficarão os repositórios (ex.: /home/user/.bbx/data)
  • Nome do balaio: nome do repositório compartilhado entre as mucuas (ex.: Rede Mocambos)
  • Nome da mucua: nome da instância local da Baobáxia, usar algo significativo para a comunidade ou coletivo que vai alimentar a mucua (ex.: Abdias)
  • Nome de usuário: username da/o mocambola padrão (ex.: exu)
  • E-mail: e-mail da/o mocambola padrão (ex.: exu@mocambos.net)
  • Senha: senha da/o mocambola padrão

Configurações de chave primária (ver detalhes abaixo)

  • Tamanho da chave aleatória (smid): tamanho, em caracteres, do identificador gerado aleatoriamente para os saberes (ex.: 7)
  • Tamanho do nome na chave primária: número de caracteres do nome do Saber que será usado para compor o slug (ex.: 20)
  • Tamanho da chave aleatória na chave primária: número de caracteres do identificador aleatório que será utilizado para compor o slug (ex.: 7)
  • Separador da chave primária: caracter que será usado para separar o nome do identificador aleatório quando montar o slug (ex.: -)

Execução da mucua

Caso o ambiente virtual não esteja ativo:

cd baobaxia-mucua
. ./bin/activate

Executar o Uvicorn (em primeiro plano, terminal fica dedicado e logs são escritos no stdout):

uvicorn baobaxia.acervo:api --host 0.0.0.0 --port 8000 --reload

A porta pode ser alterada conforme sua preferência. A flag --reload instrui o Uvicorn a monitorar os arquivos e recarregar a mucua quando houver alterações.

Chave primária: idenficador aleatório (smid) e slug

O identificador aleatório (small id ou smid) é gerado automaticamente pela plataforma e serve como chave primária para os saberes. O número de caracteres dessa chave deve ser suficiente para evitar colisão.

O slug é o identificador composto, usado para que o caminho do Saber seja mais intuitivo para quem está acessando o sistema. Por exemplo, o balaio chamado Rede Mocambos que receber um identificador aleatório A1B2C3D teria um slug parecido com rede-mocambos-A1B2C3D.

Instalação com docker

A instalação via docker está desatualizada, para desenvolvimento, usar "Instalação do ambiente de desenvolvimento".

Criar a imagem com dados padrões da Casa de Cultura Tainã:

sudo docker build -t bbx-fastapi .

Criar a imagem com dados personalizados:

sudo docker build -t bbx-fastapi \
    --build-arg BALAIO='Nosso Balaio' \
    --build-arg EMAIL='a-gente@email.net' \
    --build-arg MOCAMBO='Comunidade' \
    --build-arg MOCAMBOLA='mocambola' \
    --build-arg MUCUA='Itinerante' \
    --build-arg SENHA='tem que trocar' .

e iniciar com

sudo docker run --name xango1 -p 80:80 bbx-fastapi

Pronto, agora você já tem a API de Baobáxia rodando e possui uma mucua criada.