.. Licensed under the Apache License, Version 2.0 (the "License"); you may not .. use this file except in compliance with the License. You may obtain a copy of .. the License at .. .. http://www.apache.org/licenses/LICENSE-2.0 .. .. Unless required by applicable law or agreed to in writing, software .. distributed under the License is distributed on an "AS IS" BASIS, WITHOUT .. WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the .. License for the specific language governing permissions and limitations under .. the License. .. _api/ddoc: ========================== ``/db/_design/design-doc`` ========================== .. http:head:: /{db}/_design/{ddoc} :synopsis: Returns bare information in the HTTP Headers for the design document Returns the HTTP Headers containing a minimal amount of information about the specified design document. .. seealso:: :head:`/{db}/{docid}` .. http:get:: /{db}/_design/{ddoc} :synopsis: Returns the design document Returns the contents of the design document specified with the name of the design document and from the specified database from the URL. Unless you request a specific revision, the latest revision of the document will always be returned. .. seealso:: :get:`/{db}/{docid}` .. http:put:: /{db}/_design/{ddoc} :synopsis: Creates a new design document or new version of an existing one The :method:`PUT` method creates a new named design document, or creates a new revision of the existing design document. The design documents have some agreement upon their fields and structure. Currently it is the following: * **language** (*string*): Defines :ref:`Query Server ` to process design document functions * **options** (*object*): View's default options * **filters** (*object*): :ref:`Filter functions ` definition * **lists** (*object*): :ref:`List functions ` definition. *Deprecated.* * **rewrites** (*array* or *string*): Rewrite rules definition. *Deprecated.* * **shows** (*object*): :ref:`Show functions ` definition. *Deprecated.* * **updates** (*object*): :ref:`Update functions ` definition * **validate_doc_update** (*string*): :ref:`Validate document update ` function source * **views** (*object*): :ref:`View functions ` definition. * **autoupdate** (*boolean*): Indicates whether to automatically build indexes defined in this design document. Default is ``true``. Note, that for ``filters``, ``lists``, ``shows`` and ``updates`` fields objects are mapping of function name to string function source code. For ``views`` mapping is the same except that values are objects with ``map`` and ``reduce`` (optional) keys which also contains functions source code. .. seealso:: :put:`/{db}/{docid}` .. http:delete:: /{db}/_design/{ddoc} :synopsis: Deletes the design document Deletes the specified document from the database. You must supply the current (latest) revision, either by using the ``rev`` parameter to specify the revision. .. seealso:: :delete:`/{db}/{docid}` .. http:copy:: /{db}/_design/{ddoc} :synopsis: Copies the design document The :method:`COPY` (which is non-standard HTTP) copies an existing design document to a new or existing one. Given that view indexes on disk are named after their MD5 hash of the view definition, and that a `COPY` operation won't actually change that definition, the copied views won't have to be reconstructed. Both views will be served from the same index on disk. .. seealso:: :copy:`/{db}/{docid}` .. _api/ddoc/attachment: ===================================== ``/db/_design/design-doc/attachment`` ===================================== .. http:head:: /{db}/_design/{ddoc}/{attname} :synopsis: Returns bare information in the HTTP Headers for the attachment Returns the HTTP headers containing a minimal amount of information about the specified attachment. .. seealso:: :head:`/{db}/{docid}/{attname}` .. http:get:: /{db}/_design/{ddoc}/{attname} :synopsis: Gets the attachment of a design document Returns the file attachment associated with the design document. The raw data of the associated attachment is returned (just as if you were accessing a static file. .. seealso:: :get:`/{db}/{docid}/{attname}` .. http:put:: /{db}/_design/{ddoc}/{attname} :synopsis: Adds an attachment of a design document Uploads the supplied content as an attachment to the specified design document. The attachment name provided must be a URL encoded string. .. seealso:: :put:`/{db}/{docid}/{attname}` .. http:delete:: /{db}/_design/{ddoc}/{attname} :synopsis: Deletes an attachment of a design document Deletes the attachment of the specified design document. .. seealso:: :delete:`/{db}/{docid}/{attname}` .. _api/ddoc/info: ================================ ``/db/_design/design-doc/_info`` ================================ .. http:get:: /{db}/_design/{ddoc}/_info :synopsis: Returns view index information for the specified design document Obtains information about the specified design document, including the index, index size and current status of the design document and associated index information. :param db: Database name :param ddoc: Design document name :
header Content-Type: - :mimetype:`application/json` - :mimetype:`text/plain; charset=utf-8` :>json string name: Design document name :>json object view_index: :ref:`api/ddoc/view_index_info` :code 200: Request completed successfully **Request**: .. code-block:: http GET /recipes/_design/recipe/_info HTTP/1.1 Accept: application/json Host: localhost:5984 **Response**: .. code-block:: http HTTP/1.1 200 OK Cache-Control: must-revalidate Content-Length: 263 Content-Type: application/json Date: Sat, 17 Aug 2013 12:54:17 GMT Server: CouchDB (Erlang/OTP) { "name": "recipe", "view_index": { "compact_running": false, "language": "python", "purge_seq": 0, "signature": "a59a1bb13fdf8a8a584bc477919c97ac", "sizes": { "active": 926691, "disk": 1982704, "external": 1535701 }, "update_seq": 12397, "updater_running": false, "waiting_clients": 0, "waiting_commit": false } } .. _api/ddoc/view_index_info: View Index Information ====================== The response from :get:`/{db}/_design/{ddoc}/_info` contains ``view_index`` (*object*) field with the next structure: * **compact_running** (*boolean*): Indicates whether a compaction routine is currently running on the view * **sizes.active** (*number*): The size of live data inside the view, in bytes * **sizes.external** (*number*): The uncompressed size of view contents in bytes * **sizes.file** (*number*): Size in bytes of the view as stored on disk * **language** (*string*): Language for the defined views * **purge_seq** (*number*): The purge sequence that has been processed * **signature** (*string*): MD5 signature of the views for the design document * **update_seq** (*number* / *string*): The update sequence of the corresponding database that has been indexed * **updater_running** (*boolean*): Indicates if the view is currently being updated * **waiting_clients** (*number*): Number of clients waiting on views from this design document * **waiting_commit** (*boolean*): Indicates if there are outstanding commits to the underlying database that need to processed