# API Maker v1.21.0 Release Notes

> What’s new in v1.21.0:- Encrypt Strings & PDF export in UI Maker & More improvements

Source: https://docs.apimaker.dev/v1/docs/blog/release-notes/v1.21.0.html

## Feb 2026

### Changes

- **[FEATURE] :** Encrypt Strings icon added in dashboard.

```text
👉 Use this utility to securely encrypt sensitive connection strings and credentials.
👉 Supported options:
    ✓ MongoDB connection strings (for API Maker and for logging)
    ✓ Redis connection strings (internal and external)
    ✓ Optionally encrypt only the Redis password instead of the whole connection string
👉 You can use them in .env file.

```

- **[FEATURE] :** UI Maker : PDF export support added, and added support for hook `processDataBeforePDFExport`.
  - This code will be executed just before making PDF file from data. (gridData will have PDF data).
  - You can modify gridData as you like, it will not impact data in display grid.
  - jsPdfDoc = It contains already created object of jsPDF, but you can create again for more customization.

```typescript
const { jsPDF } = (<any>window).jspdf;
const doc = new jsPDF({
    orientation: 'landscape',
    format: 'a4'
});
$scope.jsPdfDoc = doc;
$scope.jsPdfDoc.text("Title text of pdf", 14, 15);
```

- **[IMPROVEMENT] :** UI MAKER : Added support for method in user utils `sanitizeHtml(value: string | undefined, type?: 'html' | 'url'): any;`.
- **[IMPROVEMENT] :** UI MAKER : Writing code directly in function is supported all the places wherever we can write code.

```typescript
import * as T from 'types';
import { EType } from 'types';

let dbMasterConfig: T.IDBMasterConfig = {
    jsCode: [{
        appendTo: T.EDBMasterConfigAppendTo.oncePageLoadWithContext,
        code: 'userUtils.Main.oncePageLoadWithContext', // 👈 Old method
    }, {
        appendTo: T.EDBMasterConfigAppendTo.deleteConfirmationDialogGenerator,
        code: ($scope: T.IDBMasterUIPageUtilsScope): T.IConfirmDialogSettings => { // 👈 New method
            const name = $scope.selectedGridItems.name;
            const message = `Do you want to remove record of <b class="text-danger" style="color: red !important;">${name}</b>?`
            const messageCleaned = $scope.utils.sanitizeHtml(message, 'html');
            return {
                message: messageCleaned,
            }
        }
    }],
};
module.exports = dbMasterConfig;

```
- **[IMPROVEMENT] :** UI MAKER : Added support for `deleteConfirmationDialogGenerator`, `deleteAllConfirmationDialogGenerator`, `editConfirmationDialogGenerator`, `saveConfirmationDialogGenerator` in `EDBMasterConfigAppendTo`;
- **[BUG] :** UI Issue : Hooks count are not showing properly in "DB API" section issue fixed.
- **[IMPROVEMENT] :** UI MAKER : Tree view implemented in UI Pages and toggle expand feature added.
- **[IMPROVEMENT] :** Improvements in types.ts
