<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Home title on Fluwiz Documentation</title>
    <link>https://docs.fluwiz.com/</link>
    <description>Recent content in Home title on Fluwiz Documentation</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en-us</language>
    
	<atom:link href="https://docs.fluwiz.com/index.xml" rel="self" type="application/rss+xml" />
    
    
    <item>
      <title>Query</title>
      <link>https://docs.fluwiz.com/api-reference/query/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://docs.fluwiz.com/api-reference/query/</guid>
      <description>Query Options endpoint - https://{server-url}/palmyra/api/v1/{database}/query/{type} method - POST type - table or pre-defined object to be queried
Request Body
{ &amp;#34;fields&amp;#34; : [ &amp;#34;name&amp;#34;, &amp;#34;dob&amp;#34;, &amp;#34;join_date&amp;#34; ],	&amp;#34;orderBy&amp;#34; : [ &amp;#34;+name&amp;#34;, &amp;#34;-dob&amp;#34; ],	&amp;#34;criteria&amp;#34; : { &amp;#34;attribute&amp;#34; : &amp;#34;condition&amp;#34; }, &amp;#34;offset&amp;#34; : 0, &amp;#34;limit&amp;#34; : 25, &amp;#34;total&amp;#34; : false } Parameter details
   Parameter required notes     fields no list of fields to be retrieved. if the list is not provided, all the fields in the type will be returned.</description>
    </item>
    
    <item>
      <title>Save</title>
      <link>https://docs.fluwiz.com/api-reference/save/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://docs.fluwiz.com/api-reference/save/</guid>
      <description>Fluwiz API does not differentiate the API end points for create and update. The creation or updation activity is based on multiple criterias such as primary key and unique key combination as sent in the request.
Save record Individual record
endpoint - https://{server-url}/palmyra/api/v1/{database}/data/{type} method - POST Request Body
{ &amp;#34;name&amp;#34; : &amp;#34;selvi&amp;#34;, &amp;#34;dob&amp;#34; : &amp;#34;18-02-2000&amp;#34;, &amp;#34;join_date&amp;#34; : &amp;#34;18-02-2018&amp;#34;, &amp;#34;father&amp;#34; : &amp;#34;madhan&amp;#34;, &amp;#34;city&amp;#34; : &amp;#34;chennai&amp;#34; } On successful save, http status code - 200 will be returned</description>
    </item>
    
    <item>
      <title>Delete</title>
      <link>https://docs.fluwiz.com/api-reference/delete/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://docs.fluwiz.com/api-reference/delete/</guid>
      <description>Delete record Delete single record by id
endpoint - https://{server-url}/palmyra/api/v1/{database}/data/{type}/{idValue} method - DELETE This method does not need a request body.
On successful deletion, http status code - 200 will be returned
if the record is not found or already deleted, http status code - 404 will be returned
if the record has child records, the record will not be deleted and will return http status code - 304</description>
    </item>
    
    <item>
      <title>Search API</title>
      <link>https://docs.fluwiz.com/developer-guide/how-to-guide/query-api/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://docs.fluwiz.com/developer-guide/how-to-guide/query-api/</guid>
      <description>package com.biocliq.palmyra.sample; import com.zitlab.palmyra.api2db.script.PalmyraAppScript import com.zitlab.palmyra.api2db.script.ScriptHelper import com.zitlab.palmyra.api2db.pojo.Tuple import com.zitlab.palmyra.api2db.pojo.TupleFilter import groovy.transform.CompileStatic @CompileStatic public class QueryStudent extends PalmyraAppScript{ public int aclCheck(String subType, String action,Tuple item) {	return 15; } public TupleFilter applyPreFilter(TupleFilter filter){ return filter; } } </description>
    </item>
    
    <item>
      <title>Tuple</title>
      <link>https://docs.fluwiz.com/developer-guide/class-reference/tuple/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://docs.fluwiz.com/developer-guide/class-reference/tuple/</guid>
      <description>package com.zitlab.palmyra.api2db.pojo
class - Tuple
List of methods available in the Tuple object.
   Method Description     Object getId() Get the primary key of the record (for single key, it will return the value, for multiple keys - return java.util.HashMap   void setId(Object obj) set the primary key   Object getAttribute(String key) Get the value of the given attribute name   void setAttribute(String key, Object value) add the name and attribute value to the tuple   Object getRefAttribute (String key) Get the value of the attribute from the parent tuple   void setRefAttribute(String key, Object value) Set the name and attribute value to the parent tuple   Tuple getReference(String key) Get the parent tuple as defined by the key   void setReference(String key, Tuple value) set the key and parent tuple   List&amp;lt;Tuple&amp;gt; getChildren(String key) get the children referrenced by the key   void setChildren(String key, List&amp;lt;Tuple&amp;gt; value) set the key and List of Childrens   String getPreferredKey() get the index to be used for query operations   void setPreferredKey(String key) set the index to be used for query operations (shall be specificed by json structure also)    </description>
    </item>
    
    <item>
      <title>Save API</title>
      <link>https://docs.fluwiz.com/developer-guide/how-to-guide/save-api/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://docs.fluwiz.com/developer-guide/how-to-guide/save-api/</guid>
      <description>package com.biocliq.palmyra.sample; import com.zitlab.palmyra.api2db.script.PalmyraAppScript import com.zitlab.palmyra.api2db.script.ScriptHelper import com.zitlab.palmyra.api2db.pojo.Tuple import com.zitlab.palmyra.api2db.pojo.TupleFilter import groovy.transform.CompileStatic @CompileStatic public class SaveStudent extends PalmyraAppScript{ public int aclCheck(String subType, String action,Tuple item) {	return 15; } public TupleFilter applyPreFilter(TupleFilter filter){ return filter; } public Tuple preAction(Tuple tuple,Tuple dbTuple, String action) { return tuple; } public Tuple onAction(Tuple tuple, Tuple dbTuple, String action) { return tuple; } public Tuple postAction(Tuple tuple, Tuple dbTuple, String action) { return tuple; } public Tuple rollback(Tuple tuple, Tuple dbTuple, String action) { return tuple; } } </description>
    </item>
    
    <item>
      <title>Tuple Filter</title>
      <link>https://docs.fluwiz.com/developer-guide/class-reference/tuplefilter/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://docs.fluwiz.com/developer-guide/class-reference/tuplefilter/</guid>
      <description>package com.zitlab.palmyra.api2db.pojo
class - TupleFilter
List of methods available in the TupleFilter object.
   Method Description     Tuple getCriteria() Get the criteria used by the filter   void setCriteria(Tuple obj) set the criteria   void setLimit(int limit) set the number of records to be queried   void setOffset(int offset) set the query offset   void addOrderAsc(String attribute) add attribute reference for order by (ascending) clause   void addOrderDesc(String attribute) add attribute reference for order by (descending) clause    </description>
    </item>
    
    <item>
      <title>Delete API</title>
      <link>https://docs.fluwiz.com/developer-guide/how-to-guide/delete-api/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://docs.fluwiz.com/developer-guide/how-to-guide/delete-api/</guid>
      <description>package com.biocliq.palmyra.sample; import com.zitlab.palmyra.api2db.script.PalmyraAppScript import com.zitlab.palmyra.api2db.script.ScriptHelper import com.zitlab.palmyra.api2db.pojo.Tuple import com.zitlab.palmyra.api2db.pojo.TupleFilter import groovy.transform.CompileStatic @CompileStatic public class DeleteStudent extends PalmyraAppScript{ public int aclCheck(String subType, String action,Tuple item) {	return 15; } public TupleFilter applyPreFilter(TupleFilter filter){ return filter; } // Use this method to delete the child records explicitly  public Tuple preAction(Tuple tuple,Tuple dbTuple, String action) { return tuple; } // Use this method to delete parent records if needed 	public Tuple onAction(Tuple tuple, Tuple dbTuple, String action) { return tuple; } // Non-transactional; use this method to notify an external system 	public Tuple postAction(Tuple tuple, Tuple dbTuple, String action) { return tuple; } public Tuple rollback(Tuple tuple, Tuple dbTuple, String action) { return tuple; } } </description>
    </item>
    
    <item>
      <title>Script Helper</title>
      <link>https://docs.fluwiz.com/developer-guide/class-reference/scripthelper/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://docs.fluwiz.com/developer-guide/class-reference/scripthelper/</guid>
      <description>List of methods available in the ScriptHelper object.
   Method Description     String getUser() Get the UserId as authenticated   String getContext() Get the database context (useful in multi-database environment)   Tuple save(Tuple data) saves the given tuple and return the same   public List&amp;lt;Tuple&amp;gt; list(String type, TupleFilter filter)    public TupleResultSet query(String type, TupleFilter filter)    public Tuple getUnique(String type, Tuple criteria)    public Tuple getUnique(String type, TupleFilter filter)    public List&amp;lt;Tuple&amp;gt; searchByUniqueKey(String type, TupleFilter filter)    public String getAppConfig(String key)    public List&amp;lt;Tuple&amp;gt; searchByField(String ciType, String key, String value)    public Tuple getUniqueByField(String ciType, String key, String value)    public Tuple getUniqueByKey(String ciType, String key, Integer value)    public List&amp;lt;GenericItem&amp;gt; executeQuery (NativeQuery query)    public &amp;lt;T&amp;gt; List&amp;lt;T&amp;gt; executeQuery(NativeQuery query, Class&amp;lt;T&amp;gt; returnType)    public int update(NativeQuery query)    public void insert(NativeQuery query)    public int delete(NativeQuery query)    public Object getBean(Class clazz) Get an instance of the class based on Spring application context    </description>
    </item>
    
    <item>
      <title>Custom Action API</title>
      <link>https://docs.fluwiz.com/developer-guide/how-to-guide/custom-action/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://docs.fluwiz.com/developer-guide/how-to-guide/custom-action/</guid>
      <description>package com.biocliq.palmyra.sample; import com.zitlab.palmyra.api2db.script.PalmyraAppScript import com.zitlab.palmyra.api2db.script.ScriptHelper import com.zitlab.palmyra.api2db.pojo.Tuple import com.zitlab.palmyra.api2db.pojo.TupleFilter import groovy.transform.CompileStatic @CompileStatic public class CustomAction extends PalmyraAppScript{ public int aclCheck(String subType, String action,Tuple item) {	return 15; } public Object executeAction(String subType, String action,Tuple item){ return item; } } </description>
    </item>
    
    <item>
      <title>SQL Query as API</title>
      <link>https://docs.fluwiz.com/developer-guide/how-to-guide/native-query/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://docs.fluwiz.com/developer-guide/how-to-guide/native-query/</guid>
      <description>package com.biocliq.palmyra.sample; import com.zitlab.palmyra.api2db.script.PalmyraAppScript import com.zitlab.palmyra.api2db.script.ScriptHelper import com.zitlab.palmyra.api2db.pojo.Tuple import com.zitlab.palmyra.api2db.pojo.TupleFilter import com.zitlab.palmyra.api2db.pojo.NativeQuery; import groovy.transform.CompileStatic @CompileStatic public class QueryStudent extends PalmyraAppScript{ private static final String sqlQuery = &amp;#34;Select * from User where user_id = ?&amp;#34;; public int aclCheck(String subType, String action,Tuple item) {	return 15; } public NativeQuery getQuery(String subType, String action, Tuple item) { NativeQuery query = new NativeQuery(); query.setQuery(sqlQuery); query.addParams(getUser()); return query; } } </description>
    </item>
    
    <item>
      <title>Generic Item</title>
      <link>https://docs.fluwiz.com/developer-guide/class-reference/generic-item/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://docs.fluwiz.com/developer-guide/class-reference/generic-item/</guid>
      <description>package com.zitlab.palmyra.api2db.pojo
class - GenericItem
List of methods available in the Tuple object.
   Method Description     Object getAttribute(String key) Get the value of the given attribute name   void setAttribute(String key, Object value) add the name and attribute value    </description>
    </item>
    
    <item>
      <title>ScriptException</title>
      <link>https://docs.fluwiz.com/developer-guide/class-reference/scriptexception/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://docs.fluwiz.com/developer-guide/class-reference/scriptexception/</guid>
      <description>package com.zitlab.palmyra.api2db.exception
class - ScriptException
Using ScriptException, the developer can validate and return specific error codes in the respose.
public ScriptException(int httpStatus, int errorCode,String message) { super(message); this.httpCode = httpStatus; this.errorCode = errorCode; } </description>
    </item>
    
    <item>
      <title>Data Descriptor</title>
      <link>https://docs.fluwiz.com/developer-guide/how-to-guide/data-discriptor/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://docs.fluwiz.com/developer-guide/how-to-guide/data-discriptor/</guid>
      <description></description>
    </item>
    
    <item>
      <title>PalmyraAppScript</title>
      <link>https://docs.fluwiz.com/developer-guide/how-to-guide/palmyraappscript/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://docs.fluwiz.com/developer-guide/how-to-guide/palmyraappscript/</guid>
      <description>The default implementaiton of PalmyraAppScript is provided for reference.
package com.zitlab.palmyra.api2db.script; import com.zitlab.palmyra.api2db.exception.ScriptException; import com.zitlab.palmyra.api2db.pojo.NativeQuery; import com.zitlab.palmyra.api2db.pojo.Tuple; import com.zitlab.palmyra.api2db.pojo.TupleFilter; public class PalmyraAppScript{ public Tuple preAction(Tuple tuple,Tuple dbTuple, String action) { return tuple; } public Tuple onAction(Tuple tuple, Tuple dbTuple, String action) { return tuple; } public Tuple postAction(Tuple tuple, Tuple dbTuple, String action) { return tuple; } public Tuple rollback(Tuple tuple, Tuple dbTuple, String action) { return tuple; } public int aclCheck(String subType, String action,Tuple item) { return -1; } public Object executeAction(String subType, String action,Tuple item){ throw new ScriptException(&amp;#34;executeAction : This method must be overridden&amp;#34;); } public NativeQuery getQuery(String subType, String action, Tuple item) { throw new ScriptException(&amp;#34;getQuery : This method must be overridden&amp;#34;); } public TupleFilter applyPreFilter(TupleFilter filter){ return filter; } } </description>
    </item>
    
    <item>
      <title>MariaDB</title>
      <link>https://docs.fluwiz.com/getting-started/configuration/mariadb/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://docs.fluwiz.com/getting-started/configuration/mariadb/</guid>
      <description>Database Setup create databases named palmyra, demo
Create database palmyra
Create database palmyra
Run the scripts available under setup/database/mariadb folder. Run the scripts in the below order
1. palmyra_schema.sql 2. palmyra_data.sql 3. demo_data.sql  For MySQL also, the above steps should be performed.
Connect to database After the database schema is successfully created, Configure the connection parameters in the property file
resources/database/myapp.properties
db.server=127.0.0.1 db.port=3306 db.user=mariadb db.password=secretkey db.schema=palmyra db.addl.schema=demo # Do not modify the below settings db.</description>
    </item>
    
    <item>
      <title>Postgres</title>
      <link>https://docs.fluwiz.com/getting-started/configuration/postgres/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://docs.fluwiz.com/getting-started/configuration/postgres/</guid>
      <description>This section briefs on how to configure Fluwiz and connect to database.
Database Setup Postgres Connect to the database and create database schema - palmyra, demo
create schema palmyra create schema demo
Run the scripts available under setup/database/postgres folder. Run the scripts in the below order
1. palmyra_schema.sql 2. palmyra_data.sql 3. demo_data.sql  Connect to database After the database schema is successfully created, Configure the connection parameters in the property file</description>
    </item>
    
    <item>
      <title>Sync Schema</title>
      <link>https://docs.fluwiz.com/getting-started/configuration/sync/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://docs.fluwiz.com/getting-started/configuration/sync/</guid>
      <description>After the database configuration, restart the server.
Open your favourite REST Client and type the information as below.
GET - http://localhost:6060/palmyra/dev/v2/myapp/db/sync Basic Authentication credentials - admin/ad  After successful execution, the above invocation shall return 200 status code.
Verify Query the server using below URL. This should list out the tables loaded in fluwiz platform and ready for access.
 GET http://127.0.0.1:6060/palmyra/dev/v2/myapp/type
 The response will be as below
[ { &amp;#34;type&amp;#34;: &amp;#34;Student&amp;#34;, &amp;#34;table&amp;#34;: &amp;#34;student&amp;#34;, &amp;#34;schema&amp;#34;: &amp;#34;fpalmyra&amp;#34;, &amp;#34;noFields&amp;#34;: 5 }, { &amp;#34;type&amp;#34;: &amp;#34;Marks&amp;#34;, &amp;#34;table&amp;#34;: &amp;#34;marks&amp;#34;, &amp;#34;schema&amp;#34;: &amp;#34;fpalmyra&amp;#34;, &amp;#34;noFields&amp;#34;: 6 }] To view the details of a particular table,</description>
    </item>
    
    <item>
      <title>CRUD API</title>
      <link>https://docs.fluwiz.com/quick-reference/crud-api/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://docs.fluwiz.com/quick-reference/crud-api/</guid>
      <description>REST API - CRUDS reference Resource vs HTTP Methods Base url - http://localhost:8080/palmyra/{database}/
Assuming the table name is - Users
   Resource GET POST PUT DELETE     /data/Users Return list of users with all fields Create a new user Create or Update user Method not allowed (405)   /data/Users/123 Return specific user with all fields Method not allowed (405) Update specific user Delete specific user   /query/Users Method not allowed (405) Return list of users with specified fields Method not allowed (405) Method not allowed (405)   /query/Users/123 Method not allowed (405) Return specific user with specified fields Method not allowed (405) Method not allowed (405)    Samples</description>
    </item>
    
    <item>
      <title>Developer APIs</title>
      <link>https://docs.fluwiz.com/quick-reference/developer-apis/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://docs.fluwiz.com/quick-reference/developer-apis/</guid>
      <description>REST API - System Configuration The developer can create tables using their prefered database client such as heidisql or mysql workbench.
The tables should be created with proper primary key, foreign key references. It is recommended to have auto-increment primary keys. For more information refer to the Data Model guide.
After creating the tables, invoke the db synchronization action by the URL
URL - http://{host}/palmyra/v1/{database}/dev/db/sync Method - post On successful synchronization 200 response code will be received.</description>
    </item>
    
    <item>
      <title>About Fluwiz</title>
      <link>https://docs.fluwiz.com/about/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://docs.fluwiz.com/about/</guid>
      <description>Fluwiz is a fast scalable REST-API provider for Relational Databases.
A 4 cpu 8GB virtual machine, can handle
 3000 read requests per second 1600 write requests per second A combined load of 2200+ requests per second  </description>
    </item>
    
  </channel>
</rss>