{"activeVersionTag":"latest","latestAvailableVersionTag":"latest","collection":{"info":{"_postman_id":"8c6292f0-f2d7-4f54-afb6-5918767216f9","name":"Walacor API Documentation","description":"<img src=\"https://epi-docs.s3.us-east-2.amazonaws.com/public/postman/Walacor.jpg\" width=\"50%\">\n\n# Welcome to the API for The Walacor Platform\n\nThe Platform API is based on a standard REST API format and should be familiar to most developers.\n\nAs with any documentation, this is a work in progress and we are always willing to accept feedback about the documentation or the API itself.\n\n# The Platform\n\nAn Enterprise level secure data platform.  \nThe Database looks and feels while integrating industry best practices, including blockchain, to provide a quantum resistant tamper-proof data repository.\n\nA primary design goal of the API was to allow an interaction that would be familiar to developers to enable ease of use and facilitate adoption.\n\nHowever, there is a lot going on under the hood, and it is important to gain some knowledge to make best use of The Platform and the API.\n\n# Postman - Configuration to use this collection\n\nOn the top level \"Walacor API Documentation\" goto the variables tab.\n\nEnter the following information\n\n- Server - This is the URI to your server, NO Trailing Slash\n    \n- Username\n    \n- Password\n    \n\nThe other variables mentioned here are used for internal processing and testing.\n\nYou can now run requests in the collection.\n\n# Immutability\n\nBecause the platform integrates blockchain, an important difference that you must be aware of is immutability. EVERYTHING (Data, Schema, Users, etc.) submitted to the platform is part of a never-changing audit log that can never be deleted.\n\nThe Platform handles the heavy lifting of this for you and, in general, allows you to interact with it as you would with most databases. However, it is best to keep this in mind when doing things like Schema design.\n\nExample 1: You have a data structure, I.E. schema, that you add to The Platform. Internally this get a DV (Data Version), or SV (Schema Version), of 1. Then you make changes to it and it gets a DV, SV, of 2. DV = 1 still exists, and potentially can be used, so it is best to not do prototyping in The Platform, especially on a production system.\n\nExample 2: You have a data structure, I.E. schema, that you add to The Platform. At a later time you wish to delete it. Due to immutability being part of the core engine, this is not possible.\n\nIt is always recommended to use a development environment until thing stabilize and then move it to the production environment.\n\n# The Envelope\n\nAn \"Envelope\" is the standard way that all components of The Platform talk with each other, including the API. This enables code and processes to be shared/reused across components.\n\nFrom a technical standpoint the envelope is a JSON object with a specific format that is used for the basis of all inter process communication and API calls.\n\nThe basic format of an envelope is a header that informs The Platform of a general context of the call and then 1 or more data objects in an array the are specific to the call being made. The combination of the API end point, the header context and the content in data actions can be performed.\n\n``` yaml\n{\n    \"ETId\" : 10,\n    \"DV\" : 1,\n    \"Data\" : [\n        { \"JSON\":\"Object\" },\n        { \"JSON\":\"Object\" }\n    ]\n}\n\n ```\n\n| Field | Purpose |\n| --- | --- |\n| ETId | Envelope Type ID - The type of envelope this is. This is used so the platform knows what type of object to expect in the Data Field. |\n| DV | The version of the data part of the envelope - Optional! By default the API will assume the latest DV is to be used. This is provided to allow use of a pervious DV. In practice it is best to always use the latest which means this does not need to be specified. |\n| Data | A JSON/BSON object that contains the data that is represented by the ETId. This is not present on the internal blockchain as the contents of the Data field are encrypted and moved off chain. The DH field creates a permanent proof that the data which was submitted is the same that is stored. |\n\n# Request Returns\n\n``` yaml\n{\n    \"success\": true or false,\n    \"errors\": \n        {\"code\":number,       \n         \"errors\": [\n             { \"reason\" : error category,\n              \"message\" : description of the error },\n             { \"reason\" : error category,\n              \"message\" : description of the error }\n         ]\n    }\n}\n\n ```\n\n# ERROR CODES\n\n| Error Number | Meaning |\n| --- | --- |\n| 400 | Something in the request was not proper. Please check the reason field in the return for more information. |\n| 404 | If a return is provided The Platform API this means it could not find something that is specified in the request. (I.E. Invalid ETId was specified). Please check the reason field in the return for more information. |\n| 500 | An internal error has occurred. This can happen when a The Platform processing error occurs but it can also happen if a request is not proper. I.E. a query is run that specifies a field or index that does not exist. While it is less helpful..Please check the reason field in the return for more information. |\n\n# System Envelope Types\n\nThese are special envelope type that are controlled by the platform and cannot be modified except by code change.\n\n| ETId | Meaning | Description |\n| --- | --- | --- |\n| 5 | OrgId | For Adding an organization |\n| 10 | User | For user information |\n| 11 | User Address | User and BC address mapping |\n| 15 | Role | Roles |\n| 16 | User Role | User and role mapping |\n| 40 | Storage Location | For Different Storage location |\n| 41 | Schedule Jobs | For Keeping available schedules |\n| 42 | Hashing Signature | For Storing supported Hashing techniques |\n| 50 | Schema | Blueprint for Organizational Data store |\n| 51 | BPM Action | Business Process Manager Triggers and codes |\n| 100 | BPM Code | Code Envelopes run in VM |\n| 105 | BPM Approval |  |\n| 11 | BPM Code Share |  |\n\n# OLD!! - Postman - Configuration to run APIs - OLD!!\n\nTo run APIs in the Walacor project, the \"currentAccessToken\" value must be modified, which expires in 24 hours. As explained below, the value can be acquired from the \"Login\" API option \"api_token.\"\n\na) Copying \"api_token\" value from Login API:\n\n- Navigate to the Authentication Folder and then to Login API. The API details will be displayed on the right pane after you click Authentication->Login.\n- Click on the Send button\n- Copy the key value from the \"api_token\" parameter.\n    \n\n<img src=\"https://epi-docs.s3.us-east-2.amazonaws.com/public/postman/pm1.jpeg\">\n\nb) Selecting the Environment:\n\n- As indicated by the highlighted area, Navigate to \"No Environment\" and pick \"PlatformAPI\" from the dropdown menu.\n    \n\n<img src=\"https://epi-docs.s3.us-east-2.amazonaws.com/public/postman/pm2.jpeg\">\n\nc) Edit window to change “currentAccessToken”\n\n- Go to “Environment Quick Look”. Click on it.\n- Navigate to Edit link and click on it\n    \n\n<img src=\"https://epi-docs.s3.us-east-2.amazonaws.com/public/postman/pm3.jpeg\">\n\nd) Replacing the “currentAccessToken” value.\n\n- Replace the value of \"currentAccessToken\" in two places on this page, as indicated in the image below, and then click the save button.\n    \n\n<img src=\"https://epi-docs.s3.us-east-2.amazonaws.com/public/postman/pm4.jpeg\">\n\nNow, the user can test any functional API, and the desired output will be displayed.","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","isPublicCollection":false,"owner":"8913941","team":613296,"collectionId":"8c6292f0-f2d7-4f54-afb6-5918767216f9","publishedId":"U16dQoKo","public":true,"publicUrl":"https://apidoc.walacor.com","privateUrl":"https://go.postman.co/documentation/8913941-8c6292f0-f2d7-4f54-afb6-5918767216f9","customColor":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"EF5B25"},"documentationLayout":"classic-double-column","customisation":null,"version":"8.10.1","publishDate":"2021-10-21T19:17:23.000Z","activeVersionTag":"latest","documentationTheme":"light","metaTags":{},"logos":{}},"statusCode":200},"environments":[],"user":{"authenticated":false,"permissions":{"publish":false}},"run":{"button":{"js":"https://run.pstmn.io/button.js","css":"https://run.pstmn.io/button.css"}},"web":"https://www.getpostman.com/","team":{"logo":"https://res.cloudinary.com/postman/image/upload/t_team_logo_pubdoc/v1/team/3f8b802091d9489124b8fec583832f7cd2f375c9c93cbe5659b3e08eade6fd43","favicon":"https://res.cloudinary.com/postman/image/upload/v1634014422/team/yzwkvfzarerrka9tjuop.ico"},"isEnvFetchError":false,"languages":"[{\"key\":\"csharp\",\"label\":\"C#\",\"variant\":\"HttpClient\"},{\"key\":\"csharp\",\"label\":\"C#\",\"variant\":\"RestSharp\"},{\"key\":\"curl\",\"label\":\"cURL\",\"variant\":\"cURL\"},{\"key\":\"dart\",\"label\":\"Dart\",\"variant\":\"http\"},{\"key\":\"go\",\"label\":\"Go\",\"variant\":\"Native\"},{\"key\":\"http\",\"label\":\"HTTP\",\"variant\":\"HTTP\"},{\"key\":\"java\",\"label\":\"Java\",\"variant\":\"OkHttp\"},{\"key\":\"java\",\"label\":\"Java\",\"variant\":\"Unirest\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"Fetch\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"jQuery\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"XHR\"},{\"key\":\"c\",\"label\":\"C\",\"variant\":\"libcurl\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Axios\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Native\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Request\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Unirest\"},{\"key\":\"objective-c\",\"label\":\"Objective-C\",\"variant\":\"NSURLSession\"},{\"key\":\"ocaml\",\"label\":\"OCaml\",\"variant\":\"Cohttp\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"cURL\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"Guzzle\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"HTTP_Request2\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"pecl_http\"},{\"key\":\"powershell\",\"label\":\"PowerShell\",\"variant\":\"RestMethod\"},{\"key\":\"python\",\"label\":\"Python\",\"variant\":\"http.client\"},{\"key\":\"python\",\"label\":\"Python\",\"variant\":\"Requests\"},{\"key\":\"r\",\"label\":\"R\",\"variant\":\"httr\"},{\"key\":\"r\",\"label\":\"R\",\"variant\":\"RCurl\"},{\"key\":\"ruby\",\"label\":\"Ruby\",\"variant\":\"Net::HTTP\"},{\"key\":\"shell\",\"label\":\"Shell\",\"variant\":\"Httpie\"},{\"key\":\"shell\",\"label\":\"Shell\",\"variant\":\"wget\"},{\"key\":\"swift\",\"label\":\"Swift\",\"variant\":\"URLSession\"}]","languageSettings":[{"key":"csharp","label":"C#","variant":"HttpClient"},{"key":"csharp","label":"C#","variant":"RestSharp"},{"key":"curl","label":"cURL","variant":"cURL"},{"key":"dart","label":"Dart","variant":"http"},{"key":"go","label":"Go","variant":"Native"},{"key":"http","label":"HTTP","variant":"HTTP"},{"key":"java","label":"Java","variant":"OkHttp"},{"key":"java","label":"Java","variant":"Unirest"},{"key":"javascript","label":"JavaScript","variant":"Fetch"},{"key":"javascript","label":"JavaScript","variant":"jQuery"},{"key":"javascript","label":"JavaScript","variant":"XHR"},{"key":"c","label":"C","variant":"libcurl"},{"key":"nodejs","label":"NodeJs","variant":"Axios"},{"key":"nodejs","label":"NodeJs","variant":"Native"},{"key":"nodejs","label":"NodeJs","variant":"Request"},{"key":"nodejs","label":"NodeJs","variant":"Unirest"},{"key":"objective-c","label":"Objective-C","variant":"NSURLSession"},{"key":"ocaml","label":"OCaml","variant":"Cohttp"},{"key":"php","label":"PHP","variant":"cURL"},{"key":"php","label":"PHP","variant":"Guzzle"},{"key":"php","label":"PHP","variant":"HTTP_Request2"},{"key":"php","label":"PHP","variant":"pecl_http"},{"key":"powershell","label":"PowerShell","variant":"RestMethod"},{"key":"python","label":"Python","variant":"http.client"},{"key":"python","label":"Python","variant":"Requests"},{"key":"r","label":"R","variant":"httr"},{"key":"r","label":"R","variant":"RCurl"},{"key":"ruby","label":"Ruby","variant":"Net::HTTP"},{"key":"shell","label":"Shell","variant":"Httpie"},{"key":"shell","label":"Shell","variant":"wget"},{"key":"swift","label":"Swift","variant":"URLSession"}],"languageOptions":[{"label":"C# - HttpClient","value":"csharp - HttpClient - C#"},{"label":"C# - RestSharp","value":"csharp - RestSharp - C#"},{"label":"cURL - cURL","value":"curl - cURL - cURL"},{"label":"Dart - http","value":"dart - http - Dart"},{"label":"Go - Native","value":"go - Native - Go"},{"label":"HTTP - HTTP","value":"http - HTTP - HTTP"},{"label":"Java - OkHttp","value":"java - OkHttp - Java"},{"label":"Java - Unirest","value":"java - Unirest - Java"},{"label":"JavaScript - Fetch","value":"javascript - Fetch - JavaScript"},{"label":"JavaScript - jQuery","value":"javascript - jQuery - JavaScript"},{"label":"JavaScript - XHR","value":"javascript - XHR - JavaScript"},{"label":"C - libcurl","value":"c - libcurl - C"},{"label":"NodeJs - Axios","value":"nodejs - Axios - NodeJs"},{"label":"NodeJs - Native","value":"nodejs - Native - NodeJs"},{"label":"NodeJs - Request","value":"nodejs - Request - NodeJs"},{"label":"NodeJs - Unirest","value":"nodejs - Unirest - NodeJs"},{"label":"Objective-C - NSURLSession","value":"objective-c - NSURLSession - Objective-C"},{"label":"OCaml - Cohttp","value":"ocaml - Cohttp - OCaml"},{"label":"PHP - cURL","value":"php - cURL - PHP"},{"label":"PHP - Guzzle","value":"php - Guzzle - PHP"},{"label":"PHP - HTTP_Request2","value":"php - HTTP_Request2 - PHP"},{"label":"PHP - pecl_http","value":"php - pecl_http - PHP"},{"label":"PowerShell - RestMethod","value":"powershell - RestMethod - PowerShell"},{"label":"Python - http.client","value":"python - http.client - Python"},{"label":"Python - Requests","value":"python - Requests - Python"},{"label":"R - httr","value":"r - httr - R"},{"label":"R - RCurl","value":"r - RCurl - R"},{"label":"Ruby - Net::HTTP","value":"ruby - Net::HTTP - Ruby"},{"label":"Shell - Httpie","value":"shell - Httpie - Shell"},{"label":"Shell - wget","value":"shell - wget - Shell"},{"label":"Swift - URLSession","value":"swift - URLSession - Swift"}],"layoutOptions":[{"value":"classic-single-column","label":"Single Column"},{"value":"classic-double-column","label":"Double Column"}],"versionOptions":[],"environmentOptions":[{"value":"0","label":"No Environment"}],"canonicalUrl":"https://apidoc.walacor.com/view/metadata/U16dQoKo"}