[**@s4ai/core Documentation v0.3.23**](../../../README.md)

***

[@s4ai/core Documentation](../../../modules.md) / [infrastructure/cloudflare-dns-manager](../README.md) / CloudflareDNSManager

# Class: CloudflareDNSManager

Defined in: infrastructure/cloudflare-dns-manager.js:11

## Constructors

### Constructor

> **new CloudflareDNSManager**(`config?`): `CloudflareDNSManager`

Defined in: infrastructure/cloudflare-dns-manager.js:12

#### Parameters

##### config?

#### Returns

`CloudflareDNSManager`

## Properties

### accountId

> **accountId**: `any`

Defined in: infrastructure/cloudflare-dns-manager.js:15

***

### apiToken

> **apiToken**: `any`

Defined in: infrastructure/cloudflare-dns-manager.js:13

***

### baseUrl

> **baseUrl**: `string`

Defined in: infrastructure/cloudflare-dns-manager.js:16

***

### zoneId

> **zoneId**: `any`

Defined in: infrastructure/cloudflare-dns-manager.js:14

## Methods

### createSubdomain()

> **createSubdomain**(`subdomain`, `target`, `type?`, `proxied?`): `Promise`\<\{ `error?`: `undefined`; `record`: `any`; `subdomain`: `string`; `success`: `boolean`; \} \| \{ `error`: `any`; `record?`: `undefined`; `subdomain?`: `undefined`; `success`: `boolean`; \}\>

Defined in: infrastructure/cloudflare-dns-manager.js:75

Create a new subdomain (CNAME or A record)

#### Parameters

##### subdomain

`string`

Subdomain name (e.g., 'app1', 'dashboard2')

##### target

`string`

Target (CNAME) or IP (A record)

##### type?

`string` = `"CNAME"`

Record type: 'CNAME' or 'A'

##### proxied?

`boolean` = `false`

Cloudflare proxy (orange cloud)

#### Returns

`Promise`\<\{ `error?`: `undefined`; `record`: `any`; `subdomain`: `string`; `success`: `boolean`; \} \| \{ `error`: `any`; `record?`: `undefined`; `subdomain?`: `undefined`; `success`: `boolean`; \}\>

***

### deleteRecord()

> **deleteRecord**(`recordId`): `Promise`\<\{ `error?`: `undefined`; `success`: `boolean`; \} \| \{ `error`: `any`; `success`: `boolean`; \}\>

Defined in: infrastructure/cloudflare-dns-manager.js:124

Delete a DNS record by ID

#### Parameters

##### recordId

`any`

#### Returns

`Promise`\<\{ `error?`: `undefined`; `success`: `boolean`; \} \| \{ `error`: `any`; `success`: `boolean`; \}\>

***

### getStatus()

> **getStatus**(): `object`

Defined in: infrastructure/cloudflare-dns-manager.js:213

Get status of DNS manager

#### Returns

`object`

##### accountId

> **accountId**: `any`

##### authority

> **authority**: `string` = `"FULL (S4Ai can create/update/delete DNS records at will)"`

##### configured

> **configured**: `boolean`

##### domain

> **domain**: `string` = `"getbrains4ai.com"`

##### zoneId

> **zoneId**: `any`

***

### listRecords()

> **listRecords**(): `Promise`\<\{ `error?`: `undefined`; `records`: `any`; `success`: `boolean`; \} \| \{ `error`: `any`; `records?`: `undefined`; `success`: `boolean`; \}\>

Defined in: infrastructure/cloudflare-dns-manager.js:109

List all DNS records for the zone

#### Returns

`Promise`\<\{ `error?`: `undefined`; `records`: `any`; `success`: `boolean`; \} \| \{ `error`: `any`; `records?`: `undefined`; `success`: `boolean`; \}\>

***

### provisionAppSubdomain()

> **provisionAppSubdomain**(`appName`, `appType?`): `Promise`\<\{ `error?`: `undefined`; `record`: `any`; `subdomain`: `string`; `success`: `boolean`; \} \| \{ `error`: `any`; `record?`: `undefined`; `subdomain?`: `undefined`; `success`: `boolean`; \}\>

Defined in: infrastructure/cloudflare-dns-manager.js:160

Create subdomain for new S4Ai application
Auto-determines target based on app type

#### Parameters

##### appName

`any`

##### appType?

`string` = `"frontend"`

#### Returns

`Promise`\<\{ `error?`: `undefined`; `record`: `any`; `subdomain`: `string`; `success`: `boolean`; \} \| \{ `error`: `any`; `record?`: `undefined`; `subdomain?`: `undefined`; `success`: `boolean`; \}\>

***

### request()

> **request**(`method`, `path`, `data?`): `Promise`\<`any`\>

Defined in: infrastructure/cloudflare-dns-manager.js:28

Make authenticated request to Cloudflare API

#### Parameters

##### method

`any`

##### path

`any`

##### data?

`null` = `null`

#### Returns

`Promise`\<`any`\>

***

### updateRecord()

> **updateRecord**(`recordId`, `updates`): `Promise`\<\{ `error?`: `undefined`; `record`: `any`; `success`: `boolean`; \} \| \{ `error`: `any`; `record?`: `undefined`; `success`: `boolean`; \}\>

Defined in: infrastructure/cloudflare-dns-manager.js:141

Update an existing DNS record

#### Parameters

##### recordId

`any`

##### updates

`any`

#### Returns

`Promise`\<\{ `error?`: `undefined`; `record`: `any`; `success`: `boolean`; \} \| \{ `error`: `any`; `record?`: `undefined`; `success`: `boolean`; \}\>

***

### verifySubdomain()

> **verifySubdomain**(`subdomain`): `Promise`\<\{ `error?`: `undefined`; `record`: `any`; `success`: `boolean`; \} \| \{ `error`: `any`; `record?`: `undefined`; `success`: `boolean`; \}\>

Defined in: infrastructure/cloudflare-dns-manager.js:198

Verify DNS record exists

#### Parameters

##### subdomain

`any`

#### Returns

`Promise`\<\{ `error?`: `undefined`; `record`: `any`; `success`: `boolean`; \} \| \{ `error`: `any`; `record?`: `undefined`; `success`: `boolean`; \}\>
