BrewPage · Capability
BrewPage API — Files
BrewPage API — Files. 4 operations. Lead operation: BrewPage List Files. Self-contained Naftiko capability covering one Brewpage business surface.
What You Can Do
GET
List1
— BrewPage List Files
/v1/api/files
POST
Upload1
— BrewPage Upload File
/v1/api/files
GET
Download
— BrewPage Download File
/v1/api/files/{ns}/{id}
DELETE
Delete3
— BrewPage Delete File
/v1/api/files/{ns}/{id}
MCP Tools
brewpage-list-files
BrewPage List Files
read-only
idempotent
brewpage-upload-file
BrewPage Upload File
brewpage-download-file
BrewPage Download File
read-only
idempotent
brewpage-delete-file
BrewPage Delete File
idempotent
Capability Spec
naftiko: 1.0.0-alpha2
info:
label: BrewPage API — Files
description: 'BrewPage API — Files. 4 operations. Lead operation: BrewPage List Files. Self-contained Naftiko capability
covering one Brewpage business surface.'
tags:
- Brewpage
- Files
created: '2026-05-19'
modified: '2026-05-19'
binds:
- namespace: env
keys:
BREWPAGE_API_KEY: BREWPAGE_API_KEY
capability:
consumes:
- type: http
namespace: brewpage-files
baseUri: https://brewpage.app
description: BrewPage API — Files business capability. Self-contained, no shared references.
resources:
- name: api-files
path: /api/files
operations:
- name: list1
method: GET
description: BrewPage List Files
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: ns
in: query
type: string
description: Namespace
- name: X-Owner-Token
in: header
type: string
description: Owner token to filter by ownership. Without token returns empty list
- name: upload1
method: POST
description: BrewPage Upload File
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: ns
in: query
type: string
description: 'Namespace. Default: public. Pages in ''public'' without password appear in gallery. Custom namespace
is created automatically'
- name: tags
in: query
type: string
description: Comma-separated tags
- name: ttl
in: query
type: string
description: Time to live in days (1-30, default 15). File auto-deletes after expiry. Accepts '15', '15d' or '15
days'
- name: X-Password
in: header
type: string
description: Access password. Empty = public file visible in gallery. With password = hidden from gallery, viewers
must enter password or pass ?p= in URL
- name: X-Owner-Token
in: header
type: string
description: Reuse existing owner token to group entities under one owner. If omitted, a new token is generated
- name: body
in: body
type: object
description: Request body (JSON).
required: false
- name: api-files-ns-id
path: /api/files/{ns}/{id}
operations:
- name: download
method: GET
description: BrewPage Download File
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: ns
in: path
type: string
required: true
- name: id
in: path
type: string
required: true
- name: X-Password
in: header
type: string
description: Access password via header
- name: p
in: query
type: string
description: Access password via query param (alternative to X-Password header)
- name: dl
in: query
type: boolean
description: Force download as attachment
- name: Range
in: header
type: string
- name: User-Agent
in: header
type: string
- name: X-Owner-Token
in: header
type: string
description: Owner token to bypass password protection when no password supplied
- name: delete3
method: DELETE
description: BrewPage Delete File
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: ns
in: path
type: string
required: true
- name: id
in: path
type: string
required: true
- name: X-Owner-Token
in: header
type: string
description: Owner token returned at creation. Required for update and delete
required: true
exposes:
- type: rest
namespace: brewpage-files-rest
port: 8080
description: REST adapter for BrewPage API — Files. One Spectral-compliant resource per consumed operation, prefixed with
/v1.
resources:
- path: /v1/api/files
name: api-files
description: REST surface for api-files.
operations:
- method: GET
name: list1
description: BrewPage List Files
call: brewpage-files.list1
with:
ns: rest.ns
X-Owner-Token: rest.X-Owner-Token
outputParameters:
- type: object
mapping: $.
- method: POST
name: upload1
description: BrewPage Upload File
call: brewpage-files.upload1
with:
ns: rest.ns
tags: rest.tags
ttl: rest.ttl
X-Password: rest.X-Password
X-Owner-Token: rest.X-Owner-Token
body: rest.body
outputParameters:
- type: object
mapping: $.
- path: /v1/api/files/{ns}/{id}
name: api-files-ns-id
description: REST surface for api-files-ns-id.
operations:
- method: GET
name: download
description: BrewPage Download File
call: brewpage-files.download
with:
ns: rest.ns
id: rest.id
X-Password: rest.X-Password
p: rest.p
dl: rest.dl
Range: rest.Range
User-Agent: rest.User-Agent
X-Owner-Token: rest.X-Owner-Token
outputParameters:
- type: object
mapping: $.
- method: DELETE
name: delete3
description: BrewPage Delete File
call: brewpage-files.delete3
with:
ns: rest.ns
id: rest.id
X-Owner-Token: rest.X-Owner-Token
outputParameters:
- type: object
mapping: $.
- type: mcp
namespace: brewpage-files-mcp
port: 9090
transport: http
description: MCP adapter for BrewPage API — Files. One tool per consumed operation, routed inline through this capability's
consumes block.
tools:
- name: brewpage-list-files
description: BrewPage List Files
hints:
readOnly: true
destructive: false
idempotent: true
call: brewpage-files.list1
with:
ns: tools.ns
X-Owner-Token: tools.X-Owner-Token
outputParameters:
- type: object
mapping: $.
- name: brewpage-upload-file
description: BrewPage Upload File
hints:
readOnly: false
destructive: false
idempotent: false
call: brewpage-files.upload1
with:
ns: tools.ns
tags: tools.tags
ttl: tools.ttl
X-Password: tools.X-Password
X-Owner-Token: tools.X-Owner-Token
body: tools.body
outputParameters:
- type: object
mapping: $.
- name: brewpage-download-file
description: BrewPage Download File
hints:
readOnly: true
destructive: false
idempotent: true
call: brewpage-files.download
with:
ns: tools.ns
id: tools.id
X-Password: tools.X-Password
p: tools.p
dl: tools.dl
Range: tools.Range
User-Agent: tools.User-Agent
X-Owner-Token: tools.X-Owner-Token
outputParameters:
- type: object
mapping: $.
- name: brewpage-delete-file
description: BrewPage Delete File
hints:
readOnly: false
destructive: true
idempotent: true
call: brewpage-files.delete3
with:
ns: tools.ns
id: tools.id
X-Owner-Token: tools.X-Owner-Token
outputParameters:
- type: object
mapping: $.