The cl-fluidinfo Reference Manual

This is the cl-fluidinfo Reference Manual, version 0.1, generated automatically by Declt version 4.0 beta 2 "William Riker" on Mon Feb 26 15:12:46 2024 GMT+0.

Table of Contents


1 Introduction


2 Systems

The main system appears first, followed by any subsystem dependency.


2.1 cl-fluidinfo

Library to access the Fluidinfo database / storage and search platform

Author

<>

License

BSD 2-clause license - http://www.opensource.org/licenses/BSD-2-Clause

Version

0.1

Dependency

cl-fluiddb (system).

Source

cl-fluidinfo.asd.

Child Component

fluidinfo-defpackage.lisp (file).


2.2 cl-fluiddb

Library to access the Fluidinfo database / storage and search platform

Author

<>

License

BSD 2-clause license - http://www.opensource.org/licenses/BSD-2-Clause

Version

0.1

Dependencies
  • cl-json (system).
  • drakma (system).
  • flexi-streams (system).
  • bordeaux-threads (system).
  • split-sequence (system).
Source

cl-fluiddb.asd.

Child Components

3 Files

Files are sorted by type and then listed depth-first from the systems components trees.


3.1 Lisp


3.1.1 cl-fluidinfo/cl-fluidinfo.asd

Source

cl-fluidinfo.asd.

Parent Component

cl-fluidinfo (system).

ASDF Systems

cl-fluidinfo.


3.1.2 cl-fluiddb/cl-fluiddb.asd

Source

cl-fluiddb.asd.

Parent Component

cl-fluiddb (system).

ASDF Systems

cl-fluiddb.

Packages

cl-fluiddb-asd.

Internals

*cl-fluiddb-version* (special variable).


3.1.3 cl-fluidinfo/fluidinfo-defpackage.lisp

Source

cl-fluidinfo.asd.

Parent Component

cl-fluidinfo (system).

Packages

cl-fluidinfo.


3.1.4 cl-fluiddb/defpackage.lisp

Source

cl-fluiddb.asd.

Parent Component

cl-fluiddb (system).

Packages

cl-fluiddb.


3.1.5 cl-fluiddb/fluiddb.lisp

Dependency

defpackage.lisp (file).

Source

cl-fluiddb.asd.

Parent Component

cl-fluiddb (system).

Public Interface
Internals

4 Packages

Packages are listed by definition order.


4.1 cl-fluidinfo

Source

fluidinfo-defpackage.lisp.

Use List

cl-fluiddb.


4.2 cl-fluiddb

Source

defpackage.lisp.

Use List

common-lisp.

Used By List

cl-fluidinfo.

Public Interface
Internals

4.3 cl-fluiddb-asd

Source

cl-fluiddb.asd.

Use List
  • asdf/interface.
  • common-lisp.
Internals

*cl-fluiddb-version* (special variable).


5 Definitions

Definitions are sorted by export status, category, package, and then by lexicographic order.


5.1 Public Interface


5.1.1 Special variables

Special Variable: *call-timeout*

Timeout (in seconds) to use for any call to the FluidDB server.
If a timeout happens, a bordeaux-threads:timeout condition will be raised. A value of nil means not to use any timeout.

Package

cl-fluiddb.

Source

fluiddb.lisp.

Special Variable: *credentials*

User credentidals to be used for a request.
Should be either nil (anonymous access) or a list of two strings (username password)

Package

cl-fluiddb.

Source

fluiddb.lisp.

Special Variable: *proxy-credentials*

Credentials to be used to authenticate against the proxy configured via *proxy-server*

Package

cl-fluiddb.

Source

fluiddb.lisp.

Special Variable: *proxy-server*

Information about the proxy server to use for requests.
Should be either nil (direct access), a string (the server to use), or a list of two values (server port)

Package

cl-fluiddb.

Source

fluiddb.lisp.

Special Variable: *use-https*

Flag whether to use HTTPS or just HTTP

Package

cl-fluiddb.

Source

fluiddb.lisp.

Special Variable: *user-agent*

The string to be used as your user agent when making request.
This might allow FluidInfo to better monitor what app is using their service

Package

cl-fluiddb.

Source

fluiddb.lisp.


5.1.2 Macros

Macro: with-credentials ((username password) &body body)

Perform body with the passed fluiddb credentials in place

Package

cl-fluiddb.

Source

fluiddb.lisp.


5.1.3 Ordinary functions

Function: change-namespace (namespace new-description)

Change the description of the given namespace

Package

cl-fluiddb.

Source

fluiddb.lisp.

Function: change-tag (tag description)

Change the description of the given tag

Package

cl-fluiddb.

Source

fluiddb.lisp.

Function: create-namespace (parent-namespace namespace-name description)

Create a new sub-namespace within the passed namespace

Package

cl-fluiddb.

Source

fluiddb.lisp.

Function: create-object (&optional about)

Create a new object (anonymous if no about is specified)

Package

cl-fluiddb.

Source

fluiddb.lisp.

Function: create-tag (namespace tag-name description indexed)

Create a new tag withing the given namespace

Package

cl-fluiddb.

Source

fluiddb.lisp.

Function: delete-namespace (namespace)

Delete the given namespace

Package

cl-fluiddb.

Source

fluiddb.lisp.

Function: delete-object-about-tag-value (about tag)

Delete the specified tag value on the object with the given about tag

Package

cl-fluiddb.

Source

fluiddb.lisp.

Function: delete-object-tag-value (id tag)

Delete the specified tag value on the object with the given id

Package

cl-fluiddb.

Source

fluiddb.lisp.

Function: delete-objects-tag-values (query tags-list)

Perform a query and delete the specified tag values on the matching objects

Package

cl-fluiddb.

Source

fluiddb.lisp.

Function: delete-tag (tag)

Delete the given tag

Package

cl-fluiddb.

Source

fluiddb.lisp.

Function: get-namespace (namespace &key return-description return-namespace return-tags)

Retrieve information about the given namespace

Package

cl-fluiddb.

Source

fluiddb.lisp.

Function: get-namespace-permissions (namespace action)

Retrieve the permission information for the given namespace and action. Action can be one of create, update, delete, list, control.

Package

cl-fluiddb.

Source

fluiddb.lisp.

Function: get-object (id &key show-about)

Retrieve an object by its id

Package

cl-fluiddb.

Source

fluiddb.lisp.

Function: get-object-about (about)

Retrieve an object by its about tag

Package

cl-fluiddb.

Source

fluiddb.lisp.

Function: get-object-about-tag-value (about tag &key want-json accept)

Retrieve the object’s tag value for the object with the given about tag

Package

cl-fluiddb.

Source

fluiddb.lisp.

Function: get-object-tag-value (id tag &key want-json accept)

Retrieve the object’s tag value for the object with the given id

Package

cl-fluiddb.

Source

fluiddb.lisp.

Function: get-policy (user-name category action)

Retrieve the user’s default policy for the given category and action. Possible values for categorie/actions are:
- namespaces: create, update, delete, and list.
- tags: update and delete.
- tag-values: create, read, and delete.

Package

cl-fluiddb.

Source

fluiddb.lisp.

Function: get-tag (tag &key return-description)

Retrieve information about the given tag

Package

cl-fluiddb.

Source

fluiddb.lisp.

Function: get-tag-permissions (tag action)

Retrieve the permission information for the given tag and action. Action can be one of update, delete, control.

Package

cl-fluiddb.

Source

fluiddb.lisp.

Function: get-tag-value-permissions (tag action)

Retrieve the permission information for the given tag value and action. Action can be one of create, read, delete, control.

Package

cl-fluiddb.

Source

fluiddb.lisp.

Function: get-user (name)

Retrieve information about the user with the given name

Package

cl-fluiddb.

Source

fluiddb.lisp.

Function: object-about-tag-has-value-p (about tag)

Check if the object with the given about tag has the specified tag value set. Returns nil or the mime type of the value.

Package

cl-fluiddb.

Source

fluiddb.lisp.

Function: object-tag-has-value-p (id tag)

Check if the object with the given id has the specified tag value set. Returns nil or the mime type of the value.

Package

cl-fluiddb.

Source

fluiddb.lisp.

Function: query-objects (query)

Perform a query for all object matching

Package

cl-fluiddb.

Source

fluiddb.lisp.

Function: query-objects-tag-values (query tags-list)

Perform a query and retrieve all objects matching plus the specified tag values on them

Package

cl-fluiddb.

Source

fluiddb.lisp.

Function: set-namespace-permissions (namespace action policy exceptions)

Set the permission information for the given namespace and action. Action can be one of create, update, delete, list, control. Policy can be either open or closed.

Package

cl-fluiddb.

Source

fluiddb.lisp.

Function: set-object-about-tag-value (about tag content &optional content-type)

Set the specified tag value on the object with the given about tag. Content is either presumed to be pre-formatted (if content-type is given) or will be JSON encoded and passed a fluiddb primitive type.

Package

cl-fluiddb.

Source

fluiddb.lisp.

Function: set-object-tag-value (id tag content &optional content-type)

Set the specified tag value on the object with the given id.
Content is either presumed to be pre-formatted (if content-type is given) or will be JSON encoded and passed as a fluiddb primitive type.

Package

cl-fluiddb.

Source

fluiddb.lisp.

Function: set-objects-tag-values (query tags-values-list)

Perform a query and set the specified tag values on the matching objects

Package

cl-fluiddb.

Source

fluiddb.lisp.

Function: set-policy (user-name category action policy exceptions)

Set the user’s default policy for the given category and action. Possible values for categorie/actions are:
- namespaces: create, update, delete, and list.
- tags: update and delete.
- tag-values: create, read, and delete.
Policy can be either open or closed.

Package

cl-fluiddb.

Source

fluiddb.lisp.

Function: set-tag-permissions (tag action policy exceptions)

Set the permission information for the given tag and action. Action can be one of update, delete, control.
Policy can be either open or closed.

Package

cl-fluiddb.

Source

fluiddb.lisp.

Function: set-tag-value-permissions (tag action policy exceptions)

Set the permission information for the given tag value and action. Action can be one of create, read, delete, control.
Policy can be either open or closed.

Package

cl-fluiddb.

Source

fluiddb.lisp.


5.1.4 Generic functions

Generic Reader: error-body (condition)
Generic Writer: (setf error-body) (condition)
Package

cl-fluiddb.

Methods
Reader Method: error-body ((condition call-error))
Writer Method: (setf error-body) ((condition call-error))
Source

fluiddb.lisp.

Target Slot

error-body.

Generic Reader: error-class (condition)
Generic Writer: (setf error-class) (condition)
Package

cl-fluiddb.

Methods
Reader Method: error-class ((condition call-error))
Writer Method: (setf error-class) ((condition call-error))
Source

fluiddb.lisp.

Target Slot

error-class.

Generic Reader: request-id (condition)
Generic Writer: (setf request-id) (condition)
Package

cl-fluiddb.

Methods
Reader Method: request-id ((condition call-error))
Writer Method: (setf request-id) ((condition call-error))
Source

fluiddb.lisp.

Target Slot

request-id.

Generic Reader: status-code (condition)
Generic Writer: (setf status-code) (condition)
Package

cl-fluiddb.

Methods
Reader Method: status-code ((condition call-error))
Writer Method: (setf status-code) ((condition call-error))
Source

fluiddb.lisp.

Target Slot

status-code.

Generic Reader: status-message (condition)
Generic Writer: (setf status-message) (condition)
Package

cl-fluiddb.

Methods
Reader Method: status-message ((condition call-error))
Writer Method: (setf status-message) ((condition call-error))
Source

fluiddb.lisp.

Target Slot

status-message.

Generic Function: url-format-namespace-or-tag (tag)

Helper function to convert some object into a (url-escaped) string ready to be used as part of the path in the request URL

Package

cl-fluiddb.

Source

fluiddb.lisp.

Methods
Method: url-format-namespace-or-tag ((tag list))
Method: url-format-namespace-or-tag ((tag string))

5.1.5 Standalone methods

Method: encode-json ((obj json-alist) &optional stream)
Package

json.

Source

fluiddb.lisp.


5.2 Internals


5.2.1 Special variables

Special Variable: *cl-fluiddb-version*

A string denoting the current version of this package. Used for diagnostic output.

Package

cl-fluiddb-asd.

Source

cl-fluiddb.asd.

Special Variable: *connection*

A store for any existing connection to the server that can be re-used

Package

cl-fluiddb.

Source

fluiddb.lisp.

Special Variable: *server-url*

Base URL (without the http:// or https:// protocol bit) for the server to call

Package

cl-fluiddb.

Source

fluiddb.lisp.

Special Variable: *using-sandbox*
Package

cl-fluiddb.

Source

fluiddb.lisp.


5.2.2 Ordinary functions

Function: copy-json-alist (instance)
Package

cl-fluiddb.

Source

fluiddb.lisp.

Function: do-send-request (path &key body-data query-data accept method content-type)

Lower-level routine to send a request to FluidDB.
Set accept to the content-type you want ("*/*" if you don’t know).

This does not interpret the results and just returns the HTTP response. It may still throw errors on network problems, timeouts etc.

Package

cl-fluiddb.

Source

fluiddb.lisp.

Function: json-alist-p (object)
Package

cl-fluiddb.

Source

fluiddb.lisp.

Reader: json-alist-values (instance)
Writer: (setf json-alist-values) (instance)
Package

cl-fluiddb.

Source

fluiddb.lisp.

Target Slot

values.

Function: make-json-alist (&key values)
Package

cl-fluiddb.

Source

fluiddb.lisp.

Function: make-permission-object (policy exceptions)

Return a JSON encoded string representing the passed permission. Policy should be either open or closed.

Package

cl-fluiddb.

Source

fluiddb.lisp.

Function: send-request (path &key body-data query-data accept method content-type)

Send a request to FluidDB.
Set accept to the content-type you want ("*/*" if you don’t know).

We inspect the return data and convert it to a lisp data structure if it is json

Package

cl-fluiddb.

Source

fluiddb.lisp.

Function: throw-call-error (status-code status-text headers response-body)
Package

cl-fluiddb.

Source

fluiddb.lisp.

Function: to-boolean (value)

Convert a lisp value to something the JSON encode will convert to true or false

Package

cl-fluiddb.

Source

fluiddb.lisp.

Function: to-string (something)

Do sensible conversion to a string

Package

cl-fluiddb.

Source

fluiddb.lisp.

Function: url-encode (string)

URL encode a string so it’s safe to include in an URL

Package

cl-fluiddb.

Source

fluiddb.lisp.


5.2.3 Conditions

Condition: call-error
Package

cl-fluiddb.

Source

fluiddb.lisp.

Direct superclasses

error.

Direct methods
Direct slots
Slot: status-code
Initargs

:status-code

Readers

status-code.

Writers

(setf status-code).

Slot: status-message
Initargs

:status-message

Readers

status-message.

Writers

(setf status-message).

Slot: error-class
Initargs

:error-class

Readers

error-class.

Writers

(setf error-class).

Slot: request-id
Initargs

:request-id

Readers

request-id.

Writers

(setf request-id).

Slot: error-body
Initargs

:error-body

Readers

error-body.

Writers

(setf error-body).


5.2.4 Structures

Structure: json-alist
Package

cl-fluiddb.

Source

fluiddb.lisp.

Direct superclasses

structure-object.

Direct methods

encode-json.

Direct slots
Slot: values
Package

common-lisp.

Readers

json-alist-values.

Writers

(setf json-alist-values).


Appendix A Indexes


A.1 Concepts


A.2 Functions

Jump to:   (  
C   D   E   F   G   J   M   O   Q   R   S   T   U   W  
Index Entry  Section

(
(setf error-body): Public generic functions
(setf error-body): Public generic functions
(setf error-class): Public generic functions
(setf error-class): Public generic functions
(setf json-alist-values): Private ordinary functions
(setf request-id): Public generic functions
(setf request-id): Public generic functions
(setf status-code): Public generic functions
(setf status-code): Public generic functions
(setf status-message): Public generic functions
(setf status-message): Public generic functions

C
change-namespace: Public ordinary functions
change-tag: Public ordinary functions
copy-json-alist: Private ordinary functions
create-namespace: Public ordinary functions
create-object: Public ordinary functions
create-tag: Public ordinary functions

D
delete-namespace: Public ordinary functions
delete-object-about-tag-value: Public ordinary functions
delete-object-tag-value: Public ordinary functions
delete-objects-tag-values: Public ordinary functions
delete-tag: Public ordinary functions
do-send-request: Private ordinary functions

E
encode-json: Public standalone methods
error-body: Public generic functions
error-body: Public generic functions
error-class: Public generic functions
error-class: Public generic functions

F
Function, (setf json-alist-values): Private ordinary functions
Function, change-namespace: Public ordinary functions
Function, change-tag: Public ordinary functions
Function, copy-json-alist: Private ordinary functions
Function, create-namespace: Public ordinary functions
Function, create-object: Public ordinary functions
Function, create-tag: Public ordinary functions
Function, delete-namespace: Public ordinary functions
Function, delete-object-about-tag-value: Public ordinary functions
Function, delete-object-tag-value: Public ordinary functions
Function, delete-objects-tag-values: Public ordinary functions
Function, delete-tag: Public ordinary functions
Function, do-send-request: Private ordinary functions
Function, get-namespace: Public ordinary functions
Function, get-namespace-permissions: Public ordinary functions
Function, get-object: Public ordinary functions
Function, get-object-about: Public ordinary functions
Function, get-object-about-tag-value: Public ordinary functions
Function, get-object-tag-value: Public ordinary functions
Function, get-policy: Public ordinary functions
Function, get-tag: Public ordinary functions
Function, get-tag-permissions: Public ordinary functions
Function, get-tag-value-permissions: Public ordinary functions
Function, get-user: Public ordinary functions
Function, json-alist-p: Private ordinary functions
Function, json-alist-values: Private ordinary functions
Function, make-json-alist: Private ordinary functions
Function, make-permission-object: Private ordinary functions
Function, object-about-tag-has-value-p: Public ordinary functions
Function, object-tag-has-value-p: Public ordinary functions
Function, query-objects: Public ordinary functions
Function, query-objects-tag-values: Public ordinary functions
Function, send-request: Private ordinary functions
Function, set-namespace-permissions: Public ordinary functions
Function, set-object-about-tag-value: Public ordinary functions
Function, set-object-tag-value: Public ordinary functions
Function, set-objects-tag-values: Public ordinary functions
Function, set-policy: Public ordinary functions
Function, set-tag-permissions: Public ordinary functions
Function, set-tag-value-permissions: Public ordinary functions
Function, throw-call-error: Private ordinary functions
Function, to-boolean: Private ordinary functions
Function, to-string: Private ordinary functions
Function, url-encode: Private ordinary functions

G
Generic Function, (setf error-body): Public generic functions
Generic Function, (setf error-class): Public generic functions
Generic Function, (setf request-id): Public generic functions
Generic Function, (setf status-code): Public generic functions
Generic Function, (setf status-message): Public generic functions
Generic Function, error-body: Public generic functions
Generic Function, error-class: Public generic functions
Generic Function, request-id: Public generic functions
Generic Function, status-code: Public generic functions
Generic Function, status-message: Public generic functions
Generic Function, url-format-namespace-or-tag: Public generic functions
get-namespace: Public ordinary functions
get-namespace-permissions: Public ordinary functions
get-object: Public ordinary functions
get-object-about: Public ordinary functions
get-object-about-tag-value: Public ordinary functions
get-object-tag-value: Public ordinary functions
get-policy: Public ordinary functions
get-tag: Public ordinary functions
get-tag-permissions: Public ordinary functions
get-tag-value-permissions: Public ordinary functions
get-user: Public ordinary functions

J
json-alist-p: Private ordinary functions
json-alist-values: Private ordinary functions

M
Macro, with-credentials: Public macros
make-json-alist: Private ordinary functions
make-permission-object: Private ordinary functions
Method, (setf error-body): Public generic functions
Method, (setf error-class): Public generic functions
Method, (setf request-id): Public generic functions
Method, (setf status-code): Public generic functions
Method, (setf status-message): Public generic functions
Method, encode-json: Public standalone methods
Method, error-body: Public generic functions
Method, error-class: Public generic functions
Method, request-id: Public generic functions
Method, status-code: Public generic functions
Method, status-message: Public generic functions
Method, url-format-namespace-or-tag: Public generic functions
Method, url-format-namespace-or-tag: Public generic functions

O
object-about-tag-has-value-p: Public ordinary functions
object-tag-has-value-p: Public ordinary functions

Q
query-objects: Public ordinary functions
query-objects-tag-values: Public ordinary functions

R
request-id: Public generic functions
request-id: Public generic functions

S
send-request: Private ordinary functions
set-namespace-permissions: Public ordinary functions
set-object-about-tag-value: Public ordinary functions
set-object-tag-value: Public ordinary functions
set-objects-tag-values: Public ordinary functions
set-policy: Public ordinary functions
set-tag-permissions: Public ordinary functions
set-tag-value-permissions: Public ordinary functions
status-code: Public generic functions
status-code: Public generic functions
status-message: Public generic functions
status-message: Public generic functions

T
throw-call-error: Private ordinary functions
to-boolean: Private ordinary functions
to-string: Private ordinary functions

U
url-encode: Private ordinary functions
url-format-namespace-or-tag: Public generic functions
url-format-namespace-or-tag: Public generic functions
url-format-namespace-or-tag: Public generic functions

W
with-credentials: Public macros


A.3 Variables

Jump to:   *  
E   R   S   V  
Index Entry  Section

*
*call-timeout*: Public special variables
*cl-fluiddb-version*: Private special variables
*connection*: Private special variables
*credentials*: Public special variables
*proxy-credentials*: Public special variables
*proxy-server*: Public special variables
*server-url*: Private special variables
*use-https*: Public special variables
*user-agent*: Public special variables
*using-sandbox*: Private special variables

E
error-body: Private conditions
error-class: Private conditions

R
request-id: Private conditions

S
Slot, error-body: Private conditions
Slot, error-class: Private conditions
Slot, request-id: Private conditions
Slot, status-code: Private conditions
Slot, status-message: Private conditions
Slot, values: Private structures
Special Variable, *call-timeout*: Public special variables
Special Variable, *cl-fluiddb-version*: Private special variables
Special Variable, *connection*: Private special variables
Special Variable, *credentials*: Public special variables
Special Variable, *proxy-credentials*: Public special variables
Special Variable, *proxy-server*: Public special variables
Special Variable, *server-url*: Private special variables
Special Variable, *use-https*: Public special variables
Special Variable, *user-agent*: Public special variables
Special Variable, *using-sandbox*: Private special variables
status-code: Private conditions
status-message: Private conditions

V
values: Private structures