sabato 27 giugno 2026

Free PlyxSQL© SQL Beta - authentication systems and CSS frameworks

Free PlyxSQL© SQL Beta - authentication systems and CSS frameworks

POSTED BY GIULIANO PAGNINI, 27GIU 2026

Free DOWNLOAD Clicca qui Info https://pgsoft.it/plyxhtml

PlyxSQL + Vuelityx:  Create cross-platform applications from SQL schemas.







━━━ AUTH RILEVATO ━━━
  ✔  Utenti: SYSTEM_USERS  [2FA]  [lockout]
  ✔  Sessioni/token: AUTH_SESSIONS
  ✔  Ruoli: ROLES
  ✔  Permessi: ROLE_PERMISSIONS
  ✔  User↔Ruoli: USER_ROLES
  ✔  Storico password: PASSWORD_HISTORY
━━━ RBAC COMPLETO ━━━
  Ruoli granulari con permessi per risorsa+azione.
━━━ HTTP Basic Auth ━━━
  FLUSSO:
  Ogni richiesta →  Authorization: Basic base64(user:pwd)
  ⚠  Solo HTTPS in produzione
  FILE GENERATI (FRONTEND):
  useAuthStore.ts  AuthService.ts  api.ts
  guards.ts  roles.ts  LoginView.vue
  TABELLE DB:
  USERS  –  username, password_hash, role, 2FA
  AUTH_ACCESS_LOG  –  sessioni, IP, user_agent






venerdì 26 giugno 2026

Free PlyxSQL© SQL Beta 1.0.0.54

POSTED BY GIULIANO PAGNINI, 26 GIU 2026

Free DOWNLOAD Clicca qui Info https://pgsoft.it/plyxhtml

PlyxSQL+Vuelityx:  Create cross-platform applications from SQL schemas



giovedì 25 giugno 2026

Free PlyxSQL© SQL Beta 1.0.0.54 - Schema Designer

 Free PlyxSQL© SQL Beta 1.0.0.54

POSTED BY GIULIANO PAGNINI, 25 GIU 2026

Free DOWNLOAD Clicca qui Info https://pgsoft.it/plyxhtml

PlyxSQL: Schema designer completo con viste, stored procedure e funzioni.

1) Creare un DB dove inserire lo schema SQL generato dall'AI


 Selezionare il tab designer



Comando Importa DDL



Selezionare lo schema SQL 



Eseguire il comando SCRIPT



IL DB contiene l'intero schema importato, tabelle, trigger, viste, funzioni, indici e SP



Passaggio inverso: creare uno schema da un DB attivo



Comando importa DB attivo


Risultato.






Scopri PlyxSQL: pgsoft.it/plyxhtml



martedì 23 giugno 2026

Free Beta PlyxSQL: New Schema Designer

Free PlyxSQL© SQL Beta 1.0.0.52

POSTED BY GIULIANO PAGNINI, 23 GIU 2026

Free DOWNLOAD Clicca qui Info https://pgsoft.it/plyxhtml

PlyxSQL: New Schema designer completo con viste, stored procedure e funzioni.


Inserire lo schema 


NEW! Nuovo schema designer con viste, stored procedure e funzioni SQL



Click su vista, funzione o stored procedure apre la finestra editor:




Esempio di schema rappresentato:

/* ============================================================
   Schema di test: CLIENTI + ORDINI
   Dialetto: Firebird 3.0+
   Contiene: 2 tabelle, 1 FK, 3 trigger, 2 SP, 2 funzioni, 2 viste
   ============================================================ */

/* ─── TABELLA: CLIENTI (MASTER TABLE) ──────────────────────── */
CREATE TABLE CLIENTI (  -- MASTER TABLE
  ID            BIGINT GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY,
  CODICE        VARCHAR(20)   NOT NULL,
  NOME          VARCHAR(100)  NOT NULL,
  EMAIL         VARCHAR(200),
  ATTIVO        BOOLEAN       NOT NULL DEFAULT TRUE,
  CREATO_IL     TIMESTAMP     NOT NULL DEFAULT CURRENT_TIMESTAMP,
  AGGIORNATO    TIMESTAMP,
  CONSTRAINT UQ_CLIENTI_CODICE UNIQUE (CODICE),
  CONSTRAINT UQ_CLIENTI_EMAIL  UNIQUE (EMAIL)
);

/* ─── TABELLA: ORDINI (TRANSACTION TABLE) ───────────────────── */
CREATE TABLE ORDINI (  -- TRANSACTION TABLE
  ID             BIGINT GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY,
  CLIENTE_ID     BIGINT        NOT NULL,
  NUMERO_ORDINE  VARCHAR(30)   NOT NULL,
  STATO          VARCHAR(20)   NOT NULL DEFAULT 'BOZZA'
                   CHECK (STATO IN ('BOZZA','CONFERMATO','SPEDITO','CONSEGNATO','ANNULLATO')),
  IMPORTO_TOTALE DECIMAL(12,2) NOT NULL DEFAULT 0 CHECK (IMPORTO_TOTALE >= 0),
  DATA_ORDINE    DATE          NOT NULL DEFAULT CURRENT_DATE,
  DATA_CONSEGNA  DATE,
  NOTE           BLOB SUB_TYPE TEXT,
  CREATO_IL      TIMESTAMP     NOT NULL DEFAULT CURRENT_TIMESTAMP,
  CONSTRAINT FK_ORDINI_CLIENTE  FOREIGN KEY (CLIENTE_ID) REFERENCES CLIENTI (ID),
  CONSTRAINT UQ_ORDINI_NUMERO   UNIQUE (NUMERO_ORDINE)
);

/* ─── TRIGGER: CLIENTI ──────────────────────────────────────── */
SET TERM ^ ;

CREATE OR ALTER TRIGGER TRG_CLIENTI_BI FOR CLIENTI
BEFORE INSERT ACTIVE
AS
BEGIN
  IF (NEW.CODICE IS NULL OR NEW.CODICE = '') THEN
    NEW.CODICE = 'CLI-' || LPAD(CAST(NEW.ID AS VARCHAR(6)), 6, '0');
  NEW.CREATO_IL = CURRENT_TIMESTAMP;
END^

CREATE OR ALTER TRIGGER TRG_CLIENTI_BU FOR CLIENTI
BEFORE UPDATE ACTIVE
AS
BEGIN
  NEW.AGGIORNATO = CURRENT_TIMESTAMP;
END^

/* ─── TRIGGER: ORDINI ───────────────────────────────────────── */
CREATE OR ALTER TRIGGER TRG_ORDINI_BI FOR ORDINI
BEFORE INSERT ACTIVE
AS
BEGIN
  NEW.NUMERO_ORDINE = 'ORD-' || EXTRACT(YEAR FROM CURRENT_DATE)
    || '-' || LPAD(CAST(NEW.ID AS VARCHAR(5)), 5, '0');
  NEW.CREATO_IL = CURRENT_TIMESTAMP;
END^

/* ─── STORED PROCEDURE: SP_CONFERMA_ORDINE ──────────────────── */
CREATE OR ALTER PROCEDURE SP_CONFERMA_ORDINE (
  P_ORDINE_ID  BIGINT
) RETURNS (
  P_RISULTATO  VARCHAR(20)
) AS
BEGIN
  UPDATE ORDINI
  SET STATO = 'CONFERMATO'
  WHERE ID = :P_ORDINE_ID
    AND STATO = 'BOZZA';
  IF (ROW_COUNT = 0) THEN
    EXCEPTION EX_ORDINE_NON_VALIDO;
  :P_RISULTATO = 'OK';
END^

/* ─── STORED PROCEDURE: SP_ANNULLA_ORDINE ───────────────────── */
CREATE OR ALTER PROCEDURE SP_ANNULLA_ORDINE (
  P_ORDINE_ID  BIGINT
) AS
BEGIN
  UPDATE ORDINI
  SET STATO = 'ANNULLATO'
  WHERE ID = :P_ORDINE_ID
    AND STATO IN ('BOZZA', 'CONFERMATO');
  IF (ROW_COUNT = 0) THEN
    EXCEPTION EX_STATO_NON_VALIDO;
END^

/* ─── FUNCTION: FN_TOTALE_CLIENTE ───────────────────────────── */
CREATE OR ALTER FUNCTION FN_TOTALE_CLIENTE (
  P_CLIENTE_ID  BIGINT
) RETURNS DECIMAL(14,2) AS
DECLARE VARIABLE V_TOT DECIMAL(14,2);
BEGIN
  SELECT COALESCE(SUM(O.IMPORTO_TOTALE), 0)
  INTO :V_TOT
  FROM ORDINI O
  WHERE O.CLIENTE_ID = :P_CLIENTE_ID
    AND O.STATO NOT IN ('BOZZA','ANNULLATO');
  RETURN :V_TOT;
END^

/* ─── FUNCTION: FN_STATO_LABEL ──────────────────────────────── */
CREATE OR ALTER FUNCTION FN_STATO_LABEL (
  P_STATO  VARCHAR(20)
) RETURNS VARCHAR(50) AS
BEGIN
  IF (:P_STATO = 'BOZZA')      THEN RETURN 'In bozza';
  IF (:P_STATO = 'CONFERMATO') THEN RETURN 'Confermato';
  IF (:P_STATO = 'SPEDITO')    THEN RETURN 'In spedizione';
  IF (:P_STATO = 'CONSEGNATO') THEN RETURN 'Consegnato';
  IF (:P_STATO = 'ANNULLATO')  THEN RETURN 'Annullato';
  RETURN 'Sconosciuto';
END^

SET TERM ; ^

/* ─── VISTE ─────────────────────────────────────────────────── */
CREATE OR ALTER VIEW V_ORDINI_CLIENTI AS
SELECT
  O.ID            AS ORDINE_ID,
  O.NUMERO_ORDINE,
  C.CODICE        AS CLIENTE_CODICE,
  C.NOME          AS CLIENTE_NOME,
  O.STATO,
  O.IMPORTO_TOTALE,
  O.DATA_ORDINE,
  O.DATA_CONSEGNA
FROM ORDINI O
  JOIN CLIENTI C ON C.ID = O.CLIENTE_ID;

CREATE OR ALTER VIEW V_CLIENTI_ATTIVI AS
SELECT
  ID,
  CODICE,
  NOME,
  EMAIL,
  CREATO_IL
FROM CLIENTI
WHERE ATTIVO = TRUE;

Scopri PlyxSQL: pgsoft.it/plyxhtml