Nav apraksta

gdias 97608327c9 fix the tooeasy receive tokens 1 nedēļu atpakaļ
bin 1a52cff1b5 fix the woovi problem 2 nedēļas atpakaļ
controllers 97608327c9 fix the tooeasy receive tokens 1 nedēļu atpakaļ
libs 09d4e322a4 time out changes 2 mēneši atpakaļ
middlewares 524d93ec84 implent the bank system on the backend 3 nedēļas atpakaļ
migrations fa61a33f45 add the role_id migration 1 nedēļu atpakaļ
models e5e9adbc53 add more data on cpr 1 nedēļu atpakaļ
public 4dbfd57358 add the jump-process token 1 nedēļu atpakaļ
services 2017457ddb fix the most features 1 nedēļu atpakaļ
test 923be81ed4 changes to token_create_test.php 2 mēneši atpakaļ
.env.example d7eed6349c fix the setup details 1 nedēļu atpakaļ
.gitignore 898fa1b989 new: implementation of the auth token from B3 1 mēnesi atpakaļ
README.md f1d1b72df9 add the informations about how to exec the project 1 nedēļu atpakaļ
composer.json 906aaa2091 feat: add request validators to controllers 2 mēneši atpakaļ
composer.lock ee0a402a2b migration fixes (duplicate columns), setup reedo (now deletes database and creates a new one) 2 mēneši atpakaļ
package.json 1c792098f3 migration token changes 2 mēneši atpakaļ
php-api_1.0.0_all.deb a431b88a56 debian package support 5 mēneši atpakaļ
routes.md b53ac4d3d4 B3 CPR register fixes 4 nedēļas atpakaļ
test_bash_executor.php 61fba5e31a Inicial commit 2 mēneši atpakaļ

README.md

backend-php

Requisitos

  • PHP (recomendado 8.2+) e extensões comuns (ex: pdo_pgsql)
  • Composer
  • PostgreSQL
  • psql disponível no PATH

Instalação

composer install

Configuração do projeto

  • Copie o arquivo de exemplo:

    cp .env.example .env
    
  • Preencha no .env (mínimo para banco):

    DB_HOST=
    DB_PORT=
    DB_NAME=
    DB_USER=
    DB_PASSWORD=
    

Criar usuário e banco no PostgreSQL (psql)

Você pode criar manualmente o usuário e o banco antes de rodar o bin/setup.

  1. Entre no psql com um usuário admin do Postgres (ex: postgres):

    psql -U postgres
    
  2. Crie o usuário e o banco (ajuste nomes/senha conforme seu .env):

    CREATE USER app_user WITH PASSWORD 'app_password';
    CREATE DATABASE app_db OWNER app_user;
    GRANT ALL PRIVILEGES ON DATABASE app_db TO app_user;
    
  3. Saia:

    \q
    

(Opcional) Deletar um banco no PostgreSQL

Se você quiser remover completamente o banco (isso apaga todos os dados), use DROP DATABASE.

  1. Entre no psql com um usuário admin (ex: postgres):

    psql -U postgres
    
  2. Se não houver conexões ativas no banco:

    DROP DATABASE app_db;
    
  3. Se o Postgres recusar por haver conexões ativas:

  • Postgres 13+ (recomendado):

    DROP DATABASE app_db WITH (FORCE);
    
  • Alternativa (encerrar conexões e depois dropar):

    SELECT pg_terminate_backend(pid)
    FROM pg_stat_activity
    WHERE datname = 'app_db'
    AND pid <> pg_backend_pid();
    
    DROP DATABASE app_db;
    

Observação: se preferir, o bin/setup também consegue criar o banco quando ele não existe, desde que o usuário usado tenha permissão de CREATE DATABASE (por padrão ele usa DB_USER como “superuser”, a não ser que você defina DB_SUPERUSER, DB_SUPERUSER_PASSWORD e DB_SUPERUSER_DB).

Rodar migrations e seed (bin/setup)

O script bin/setup:

  • Verifica se o banco existe; se existir, não recria (não faz DROP DATABASE).
  • Cria (se necessário) a tabela migrations_run.
  • Aplica as migrations .sql em migrations/.
    • migrations_v1.sql é executada primeiro (se existir).
    • As demais são executadas em ordem alfabética do nome do arquivo.
  • Executa seeds (company/role/status/chain/commodities/wallet e usuário padrão).

Execute:

chmod +x bin/setup
./bin/setup

Subir a aplicação

Existem dois entrypoints:

  • public/index.php (API)
  • public/index_webhook.php (webhooks)

Você deve rodar cada um em uma porta diferente.

Exemplo (2 terminais):

Terminal 1 (API):

PORT=8000 php public/index.php

Terminal 2 (Webhooks):

PORT=8001 php public/index_webhook.php

Observação: o FrameworkX usa a variável de ambiente PORT para definir a porta do servidor.

B3 (mTLS)

Para rodar endpoints/funcionalidades relacionadas à B3, é necessário ter estes arquivos na raiz do projeto:

  • 319245319-320109623_PROD.cer
  • 319245319-320109623_PROD.key