Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
22 commits
Select commit Hold shift + click to select a range
f3a996b
feat(nativedrive): novo motor NativeDrive - RESTDWMemoryTable
Ronierys2 Sep 9, 2026
be2b11a
feat(drivers): novos drivers nativos ADO, DBExpress e SQLDB
Ronierys2 Sep 9, 2026
421b887
fix(core): correcoes de ClientSQL, dataset e save no RESTDW Basic
Ronierys2 Sep 9, 2026
4de071a
fix(json): correcoes em JSON, params e utilitarios SSL/OpenSSL
Ronierys2 Sep 9, 2026
613e61a
feat(fcm): adiciona Firebase Cloud Messaging (fbHTTP/fpHTTP)
Ronierys2 Sep 9, 2026
c28fcf1
feat(fcm): transporte FCM por client (Ics/Indy/HttpDef/Fphttp) e SSL/…
Ronierys2 Sep 9, 2026
6b27c24
feat(html-designer): adiciona HTML Designer (Webpascal) e FMC
Ronierys2 Sep 9, 2026
be9eead
fix(sqleditor): correcoes no SQL Editor
Ronierys2 Sep 9, 2026
715d94d
chore(inc): configura NativeDrive como padrao e atualiza ferramentas
Ronierys2 Sep 9, 2026
225c59e
feat(html-designer): assets do editor HTML (bootstrap, chartjs, datat…
Ronierys2 Sep 9, 2026
6e7326e
chore: remove plugin Htmlviewer legado (substituido pelo HTML Designer)
Ronierys2 Sep 9, 2026
c1746f9
chore(packages): pacotes Delphi/Lazarus para novos drivers e HTML Des…
Ronierys2 Sep 9, 2026
e73d35c
chore(icons): novo pacote de icones dos componentes v2.1.1
Ronierys2 Sep 9, 2026
14809d5
feat(installer): novo instalador REST Dataware Alpha v2.1.1
Ronierys2 Sep 9, 2026
55c0f64
fix(packages): corrige caminho de uRESTDWZlib.pas no pacote principal…
Ronierys2 Sep 9, 2026
e90d036
fix(packages): adiciona pastas do HTML Designer ao search path do pac…
Ronierys2 Sep 9, 2026
5b01c46
fix: corrige erro de compilacao FPC e search paths dos pacotes Indy/Zeos
Ronierys2 Sep 9, 2026
4efb397
fix(packages): adiciona IncludeFiles ao pacote RESTDWShellServices
Ronierys2 Sep 9, 2026
bbaad35
ci: fixa ZeosDBO na versao 8.0.0 nos workflows de build
Ronierys2 Sep 9, 2026
32f32d1
Revert "ci: fixa ZeosDBO na versao 8.0.0 nos workflows de build"
Ronierys2 Sep 9, 2026
a5ccee3
ci: habilita LoadFromStream/SaveToStream do TZMemTable no build do Zeos
Ronierys2 Sep 10, 2026
fda1a49
ci: forca rebuild do zcomponent.lpk apos habilitar define do Zeos
Ronierys2 Sep 10, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
14 changes: 14 additions & 0 deletions .github/workflows/lazarustestLinux.yml
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,20 @@ jobs:
include-packages: "Indy10, ZeosDBO"
with-cache: false

- name: Enable ZMemTable stream import/export in Zeos
run: |
incFile=$(find "$RUNNER_TEMP" -type f -path "*zeosdbo/src/Zeos.inc" | head -n1)
if [ -z "$incFile" ]; then
echo "Zeos.inc not found under $RUNNER_TEMP" >&2
exit 1
fi
sed -i 's/{\.\$DEFINE ZMEMTABLE_ENABLE_STREAM_EXPORT_IMPORT}/{\$DEFINE ZMEMTABLE_ENABLE_STREAM_EXPORT_IMPORT}/' "$incFile"
grep -n "ZMEMTABLE_ENABLE_STREAM_EXPORT_IMPORT" "$incFile"
# zcomponent.lpk was already compiled by the OPM install step before this edit;
# force a rebuild so ZMemTable.pas picks up the newly enabled define.
zeosRoot=$(dirname "$(dirname "$incFile")")
lazbuild -B "$zeosRoot/packages/lazarus/zcomponent.lpk"

- name: Build the Main package on Linux
run: lazbuild -B "CORE/Packages/Lazarus/RESTDataWareComponents.lpk"

Expand Down
14 changes: 14 additions & 0 deletions .github/workflows/lazarustestWindows.yml
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,20 @@ jobs:
include-packages: "Indy10, ZeosDBO"
with-cache: false

- name: Enable ZMemTable stream import/export in Zeos
shell: pwsh
run: |
$incFile = Get-ChildItem -Path $env:RUNNER_TEMP -Recurse -Filter "Zeos.inc" -ErrorAction SilentlyContinue |
Where-Object { $_.FullName -match "zeosdbo" } | Select-Object -First 1
if (-not $incFile) { throw "Zeos.inc not found under $env:RUNNER_TEMP" }
(Get-Content $incFile.FullName) -replace '\{\.\$DEFINE ZMEMTABLE_ENABLE_STREAM_EXPORT_IMPORT\}', '{$DEFINE ZMEMTABLE_ENABLE_STREAM_EXPORT_IMPORT}' |
Set-Content $incFile.FullName
Select-String -Path $incFile.FullName -Pattern "ZMEMTABLE_ENABLE_STREAM_EXPORT_IMPORT"
# zcomponent.lpk was already compiled by the OPM install step before this edit;
# force a rebuild so ZMemTable.pas picks up the newly enabled define.
$zcomponentLpk = Join-Path $incFile.Directory.Parent.FullName "packages\lazarus\zcomponent.lpk"
lazbuild -B $zcomponentLpk

- name: Build the Main package on Windows
run: lazbuild -B "CORE/Packages/Lazarus/RESTDataWareComponents.lpk"

Expand Down
3,892 changes: 3,892 additions & 0 deletions CORE/Extras/FCM/Certificates/RESTDWRootCA.pem

Large diffs are not rendered by default.

145 changes: 145 additions & 0 deletions CORE/Extras/FCM/MOTORES_SYSOPS_E_DEPENDENCIAS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,145 @@
# REST Dataware 2.1 - FCM - Motores, SysOps e dependências

## Critério de suporte

O FCM REST Dataware é independente do SysOp.

Uma plataforma é apresentada como `SUPORTADA` quando existe um motor REST
Dataware compatível e estão disponíveis as dependências necessárias àquele
motor/ambiente.

A documentação pública não expõe processo interno de testes.

## Indy

O componente é:

`TRESTDWIdFirebaseCloudMessaging`

O Indy negocia envio e recebimento FCM usando a infraestrutura Indy do REST
Dataware.

### Windows

Suportado nas arquiteturas atendidas pelo Indy/REST Dataware.

Para Win64, as bibliotecas disponíveis ficam em:

`Extras/FCM/OpenSSL/Windows/Win64`

### Linux

Suportado pelo motor Indy REST Dataware.

Implantar as bibliotecas OpenSSL compatíveis com a versão Indy usada pelo
projeto e o `RESTDWRootCA.pem`.

### FreeBSD

Suportado pelo motor Indy REST Dataware.

Implantar OpenSSL compatível com o motor e `RESTDWRootCA.pem`.

### Android

Suportado.

Para Android ARM64 com Indy, estão disponíveis:

`Extras/FCM/OpenSSL/Android/ARM64/libssl.so`
`Extras/FCM/OpenSSL/Android/ARM64/libcrypto.so`

Essas bibliotecas OpenSSL 1.0.2 pertencem ao transporte Indy e não ao Firebase.

Não é necessário instalar Firebase Android SDK.

### macOS

Suportado pelo motor Indy nas configurações REST Dataware correspondentes.

Os arquivos disponíveis ficam em:

`Extras/FCM/OpenSSL/macOS`

A versão/forma de deploy do OpenSSL deve corresponder ao motor e arquitetura
usados pelo projeto.

### iOS

Suportado pelo motor Indy nas configurações REST Dataware correspondentes.

O projeto deve incorporar as bibliotecas OpenSSL exigidas pelo motor/target e o
CA bundle REST Dataware.

Não é necessário Firebase iOS SDK.

## ICS

O componente é:

`TRESTDWIcsFirebaseCloudMessaging`

Somente os SysOps realmente suportados pelo motor ICS utilizado pelo REST
Dataware recebem o componente ICS.

Não existe fallback para APIs Android/iOS ou outro motor.

## FpHTTP

O componente é:

`TRESTDWFpHttpFirebaseCloudMessaging`

Disponível nos SysOps/targets suportados pelo FpHTTP/Lazarus/FPC utilizado pelo
REST Dataware.

As dependências TLS são as exigidas pelo próprio motor.

## HttpDef

O componente é:

`TRESTDWHttpDefFirebaseCloudMessaging`

Disponível nos SysOps suportados pelo motor HttpDef REST Dataware.

## JClient/LAMW

O componente/base é:

`TRESTDWjClientLAMWFirebaseCloudMessaging`

A estrutura permanece preparada para o transporte REST Dataware próprio.

## TLS e certificados

O FCM não depende do trust store do SysOp.

O REST Dataware fornece:

`Extras/FCM/Certificates/RESTDWRootCA.pem`

Também podem ser usados:

`Connection.TLSCAFile`
`Connection.TLSCAPath`

A versão OpenSSL necessária é determinada pelo motor concreto.

## Regra de arquitetura

Nenhum motor deve usar como fallback:

- Firebase SDK;
- PushService;
- WebView;
- Firebase JS;
- Firebase Admin SDK;
- APNS SDK;
- arquitetura nativa de push do SysOp.

O motor REST Dataware negocia o envio e o recebimento.

A aplicação pode consumir os eventos do componente para mostrar Toast, Push ou
outra interface. Se precisar de execução em background, o programador cria o
Service apropriado e instancia o componente REST Dataware nele.
9 changes: 9 additions & 0 deletions CORE/Extras/FCM/OpenSSL/Android/ARM64/LEIA-ME_ORIGINAL.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
OpenSSL 1.0.2s - Android 64-bit ARM64 (arm64-v8a)

Arquivos para Deployment do Delphi Android 64:
libssl.so
libcrypto.so

ABI confirmada: AArch64 / ARM64.

Adicione ambos no Deployment para a plataforma Android 64-bit como bibliotecas nativas.
33 changes: 33 additions & 0 deletions CORE/Extras/FCM/OpenSSL/Android/ARM64/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
# Android ARM64 - Indy - OpenSSL 1.0.2

Para o motor Indy do REST Dataware, estas bibliotecas são válidas:

- `libssl.so`
- `libcrypto.so`

Elas correspondem à família OpenSSL 1.0.2 usada pelo `TIdSSLIOHandlerSocketOpenSSL`
do motor Indy.

O componente FCM Indy não usa SDK Firebase Android.

Estas bibliotecas pertencem somente ao transporte TLS Indy.

## Deploy

Adicionar as duas bibliotecas nativas ao deploy Android ARM64 no diretório de
bibliotecas da ABI correspondente.

O `RESTDWRootCA.pem` deve acompanhar a aplicação no local definido pelo projeto
para que o Indy possa validar o peer quando `TLSAllowInsecure=False`.

## Importante

Outros motores podem usar a API OpenSSL direta do REST Dataware e, nesse caso,
podem exigir OpenSSL 1.1+/3.x. A versão do OpenSSL é definida pelo motor, não
pelo SysOp nem pelo CORE FCM.

Status da plataforma Android:
`SUPORTADO`.

A homologação continua sendo registrada por combinação de compilador, ABI,
motor e versão OpenSSL.
11 changes: 11 additions & 0 deletions CORE/Extras/FCM/OpenSSL/Windows/Win32_Legacy/REQUIRED.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
REST Dataware FCM - Win32 / Delphi antigo

A unit OpenSSL.Api_11 espera:
libcrypto-1_1.dll
libssl-1_1.dll

Esses binarios OpenSSL 1.1 Win32 nao estavam presentes no material fornecido.
Nao foram substituidos por libeay32/ssleay32 1.0.2 porque a ABI nao e a mesma.

Para homologacao Win32, disponibilizar exatamente a familia OpenSSL 1.1
compatível com OpenSSL.Api_11 na pasta do executavel.
11 changes: 11 additions & 0 deletions CORE/Extras/FCM/OpenSSL/iOS/REQUIRED.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
REST Dataware FCM - iOS

OpenSSL.Api_11 referencia:
libcrypto-ios.a
libssl-ios.a

Essas bibliotecas estaticas nao estavam presentes no material fornecido.
O FCM nao usa Firebase iOS SDK, APNS SDK, Keychain ou SecTrust.

A dependencia externa de baixo nivel e somente o OpenSSL requerido pelo motor
REST Dataware.
84 changes: 84 additions & 0 deletions CORE/Extras/FCM/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,84 @@
# REST Dataware 2.1 - Extras do FCM

O FCM REST Dataware não exige SDK Firebase/Google.

Esta pasta contém somente dependências de baixo nível usadas pelos próprios
motores REST Dataware.

## A versão OpenSSL depende do motor

Não existe uma única versão OpenSSL obrigatória para todos os motores.

### Indy

O Indy usa `TIdSSLIOHandlerSocketOpenSSL`.

No Android ARM64, o motor utiliza OpenSSL 1.0.2 e as bibliotecas estão em:

`OpenSSL/Android/ARM64`

- `libssl.so`
- `libcrypto.so`

### Transports OpenSSL diretos

ICS/FpHTTP/HttpDef, quando usam a camada OpenSSL direta do FCM, seguem a API
OpenSSL prevista pelo respectivo transport REST Dataware e podem exigir
OpenSSL 1.1+/3.x.

### Windows Win64

Disponíveis:

`OpenSSL/Windows/Win64`

- `libssl-3-x64.dll`
- `libcrypto-3-x64.dll`

### Windows Win32 / Delphi antigo

A combinação correta de Indy/OpenSSL será validada com Delphi antigo durante a
homologação específica.

### macOS

Disponíveis no pacote:

`OpenSSL/macOS`

- `libssl-merged-osx32.dylib`
- `libssl-merged-osx64.dylib`

A plataforma é suportada. Cada combinação CPU/motor será validada em teste.

### iOS

A plataforma é suportada pelos motores que realmente operam no target.

Os binários OpenSSL e o deploy exato serão adicionados após a homologação
prática de cada arquitetura.

### Linux e FreeBSD

São suportados pelos motores REST Dataware compatíveis. OpenSSL e deploy serão
documentados por combinação homologada.

## Certificados

`Certificates/RESTDWRootCA.pem`

é o CA bundle controlado pelo REST Dataware.

O CORE FCM não depende do trust store do SysOp.

## Regra geral

- sem Firebase SDK;
- sem SDK Android/iOS de push;
- sem WebView;
- sem PushService automático;
- dependências apenas do motor REST Dataware;
- envio e recebimento feitos pelo motor;
- interface Push/Toast apenas por eventos/propriedades opcionais da aplicação.

Consulte `MOTORES_SYSOPS_E_DEPENDENCIAS.md`.
2 changes: 2 additions & 0 deletions CORE/Images/dcr/DriverADOPhys.rc
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
TRESTDWADOPhysLink BITMAP "..\icons\components\drivers\phys\TRESTDWADOPhysLink.bmp"
TRESTDWADOPhysLink16 BITMAP "..\icons\components\drivers\phys\TRESTDWADOPhysLink16.bmp"
2 changes: 2 additions & 0 deletions CORE/Images/dcr/DriverDBExpressPhys.rc
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
TRESTDWDBExpressPhysLink BITMAP "..\icons\components\drivers\phys\TRESTDWDBExpressPhysLink.bmp"
TRESTDWDBExpressPhysLink16 BITMAP "..\icons\components\drivers\phys\TRESTDWDBExpressPhysLink16.bmp"
2 changes: 2 additions & 0 deletions CORE/Images/dcr/DriverSQLDBPhys.rc
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
TRESTDWSQLDBPhysLink BITMAP "..\icons\components\drivers\phys\TRESTDWSQLDBPhysLink.bmp"
TRESTDWSQLDBPhysLink16 BITMAP "..\icons\components\drivers\phys\TRESTDWSQLDBPhysLink16.bmp"
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Loading