. . "OdsComponents" . . "2017-06-13T06:01:25Z" . . . . . "%VOSWARNING%\n\n\n---++ODS Specification Components\n\n---+++ODS database back end\n\n---++++Tables\n\n * WA_SETTINGS\n 1 Contains list of ODS-specific settings. \n 1 Typically, this table contains one row only.\n\nCREATE TABLE WA_SETTINGS\n (\n WS_ID INTEGER IDENTITY PRIMARY KEY,\n WS_REGISTER INT,\n WS_MAIL_VERIFY INT,\n WS_VERIFY_TIP INT,\n WS_REGISTRATION_EMAIL_EXPIRY INT DEFAULT 24,\n WS_JOIN_EXPIRY INT DEFAULT 72,\n WS_DOMAINS VARCHAR,\n WS_SMTP VARCHAR,\n WS_USE_DEFAULT_SMTP INTEGER,\n WS_BRAND_NAME VARCHAR,\n WS_WEB_BANNER VARCHAR,\n WS_WEB_TITLE VARCHAR,\n WS_WEB_DESCRIPTION VARCHAR,\n WS_WELCOME_MESSAGE VARCHAR,\n WS_COPYRIGHT VARCHAR,\n WS_DISCLAIMER VARCHAR,\n WS_DEFAULT_MAIL_DOMAIN VARCHAR,\n WS_SHOW_SYSTEM_ERRORS INTEGER,\n WS_MEMBER_MODEL INTEGER,\n WS_REGISTRATION_XML LONG XML,\n WS_GENERAL_AGREEMENT VARCHAR,\n WS_MEMBER_AGREEMENT VARCHAR,\n );\n\n\n * WA_USERS\n 1 Contains list of registered ODS users together with some additional information \nlike secret question and answer for password recovery. \n 1 Each user in this table have to be exists in SYS_USERS table too.\n 1 This table automatically filled during user registration through ODS interface\n\nCREATE TABLE WA_USERS\n (\n WAU_U_ID INT,\n WAU_QUESTION VARCHAR,\n WAU_ANSWER VARCHAR,\n WAU_LAST_IP VARCHAR,\n WAU_TEMPLATE VARCHAR,\n WAU_LOGON_DISABLE_UNTIL DATETIME,\n WAU_PWD_RECOVER_DISABLE_UNTIL DATETIME,\n PRIMARY KEY (WAU_U_ID)\n );\n\n\n * WA_USER_SETTINGS\n\nCREATE TABLE WA_USER_SETTINGS\n (\n WAUS_U_ID INT,\n WAUS_KEY VARCHAR(50),\n WAUS_DATA LONG VARBINARY,\n PRIMARY KEY (WAUS_U_ID,WAUS_KEY)\n );\n\nALTER TABLE WA_USER_SETTINGS ADD FOREIGN KEY (WAUS_U_ID) REFERENCES SYS_USERS (U_ID) ON DELETE CASCADE;\n\n\n * WA_USER_INFO\n\nCREATE TABLE WA_USER_INFO\n (\n WAUI_U_ID INT,\n WAUI_VISIBLE VARCHAR(50), -- concatenation of all fields flags. \n -- by default each is 1: 11111111...\n -- 1: public, \n -- 2: friend, \n -- 3: private\n WAUI_TITLE VARCHAR(3), -- 0\n WAUI_FIRST_NAME VARCHAR(50), -- 1\n WAUI_LAST_NAME VARCHAR(50), -- 2\n WAUI_FULL_NAME VARCHAR(100), -- 3\n WAUI_GENDER VARCHAR(10), -- 5\n WAUI_BIRTHDAY DATETIME, -- 6\n WAUI_WEBPAGE VARCHAR(50), -- 7\n WAUI_FOAF LONG VARCHAR, -- 8 column type changed below\n WAUI_MSIGNATURE VARCHAR(255), -- 9\n WAUI_ICQ VARCHAR(50), -- 10\n WAUI_SKYPE VARCHAR(50), -- 11\n WAUI_AIM VARCHAR(50), -- 12\n WAUI_YAHOO VARCHAR(50), -- 13\n WAUI_MSN VARCHAR(50), -- 14\n WAUI_HADDRESS1 VARCHAR(50), -- 15\n WAUI_HADDRESS2 VARCHAR(50), -- 15\n WAUI_HCODE VARCHAR(50), -- 15\n WAUI_HCITY VARCHAR(50), -- 16\n WAUI_HSTATE VARCHAR(50), -- 16\n WAUI_HCOUNTRY VARCHAR(50), -- 16\n WAUI_HTZONE VARCHAR(50), -- 17\n WAUI_HPHONE VARCHAR(50), -- 18\n WAUI_HMOBILE VARCHAR(50), -- 18\n WAUI_BINDUSTRY VARCHAR(50), -- 19\n WAUI_BORG VARCHAR(50), -- 20\n WAUI_BJOB VARCHAR(50), -- 21\n WAUI_BADDRESS1 VARCHAR(50), -- 22\n WAUI_BADDRESS2 VARCHAR(50), -- 22\n WAUI_BCODE VARCHAR(50), -- 22\n WAUI_BCITY VARCHAR(50), -- 23\n WAUI_BSTATE VARCHAR(50), -- 23\n WAUI_BCOUNTRY VARCHAR(50), -- 23\n WAUI_BTZONE VARCHAR(50), -- 24\n WAUI_BLAT REAL, -- 47\n WAUI_BLNG REAL, -- 47\n WAUI_BPHONE VARCHAR(50), -- 25\n WAUI_BMOBILE VARCHAR(50), -- 25\n WAUI_BREGNO VARCHAR(50), -- 26\n WAUI_BCAREER VARCHAR(50), -- 27\n WAUI_BEMPTOTAL VARCHAR(50), -- 28\n WAUI_BVENDOR VARCHAR(50), -- 29\n WAUI_BSERVICE VARCHAR(50), -- 30\n WAUI_BOTHER VARCHAR(50), -- 31\n WAUI_BNETWORK VARCHAR(50), -- 32\n WAUI_SUMMARY LONG VARCHAR, -- 33\n WAUI_RESUME LONG VARCHAR, -- 34\n WAUI_SEC_QUESTION VARCHAR(20), -- 35\n WAUI_SEC_ANSWER VARCHAR(20), -- 36\n WAUI_PHOTO_URL LONG VARCHAR, -- 37\n WAUI_TEMPLATE VARCHAR(20), -- 38\n WAUI_LAT REAL, -- 39\n WAUI_LNG REAL, -- 40\n WAUI_LATLNG_VISIBLE SMALLINT, -- 41\n WAUI_USER_SEARCHABLE SMALLINT, -- 42 - new fields\n WAUI_AUDIO_CLIP LONG VARCHAR, -- 43\n WAUI_FAVORITE_BOOKS LONG VARCHAR, -- 44\n WAUI_FAVORITE_MUSIC LONG VARCHAR, -- 45\n WAUI_FAVORITE_MOVIES LONG VARCHAR, -- 46\n WAUI_SEARCHABLE INT DEFAULT 1,\n WAUI_LATLNG_HBDEF SMALLINT DEFAULT 0,\n WAUI_SITE_NAME LONG VARCHAR,\n WAUI_INTERESTS LONG VARCHAR, -- 48\n WAUI_BORG_HOMEPAGE LONG VARCHAR, -- 20 same as BORG,\n PRIMARY KEY (WAUI_U_ID)\n );\n\nALTER TABLE DB.DBA.WA_USER_INFO ADD COLUMN WAUI_JOIN_DATE DATETIME;\nUPDATE DB.DBA.WA_USER_INFO SET WAUI_JOIN_DATE = NOW()');\n\nCREATE TRIGGER WA_USER_INFO_I AFTER INSERT ON WA_USER_INFO REFERENCING NEW AS N {\n\n IF (N.WAUI_JOIN_DATE IS NULL)\n {\n SET TRIGGERS OFF;\n UPDATE WA_USER_INFO SET WAUI_JOIN_DATE = NOW() WHERE WAUI_U_ID = N.WAUI_U_ID;\n SET TRIGGERS ON;\n }\n\n RETURN;\n}\n;\n\nCREATE INDEX WA_GEO ON WA_USER_INFO (WAUI_LNG, WAUI_LAT, WAUI_LATLNG_VISIBLE);\n\n\n * WA_USER_TEXT\n\nCREATE TABLE WA_USER_TEXT\n (\n WAUT_U_ID INT,\n WAUT_TEXT LONG VARCHAR,\n PRIMARY KEY (WAUT_U_ID)\n );\n\nCREATE TEXT INDEX ON WA_USER_TEXT (WAUT_TEXT) WITH KEY WAUT_U_ID;\n\n\n * WA_USER_TAG\n\nCREATE TABLE WA_USER_TAG\n (\n WAUTG_U_ID INTEGER NOT NULL, -- the id of the user of whose tag it is\n WAUTG_TAG_ID INTEGER NOT NULL, -- the id of the user who gives the tags\n WAUTG_FT_ID INTEGER NOT NULL,\n WAUTG_TAGS VARCHAR NOT NULL,\n PRIMARY KEY (WAUTG_U_ID, WAUTG_TAG_ID)\n );\n\nCREATE UNIQUE INDEX SYS_WA_USER_TAG_FT_ID ON WA_USER_TAG (WAUTG_FT_ID);\nCREATE INDEX WA_USER_TAG_TAG_ID ON WA_USER_TAG (WAUTG_TAG_ID);\n\n\n * WA_TYPES\n 1 Contains list of registered ODS's application types. \n 1 Based on this table information ODS can create instances of each application. \n 1 Typically, each application should store necessary information in this table \nduring installation. For example: \n\nINSERT REPLACING WA_TYPES(WAT_NAME, WAT_DESCRIPTION, WAT_TYPE, WAT_REALM) \nVALUES ('WEBLOG2', 'Blog', 'db.dba.wa_blog2', 'blog2')\n\n\n\nCREATE TABLE WA_TYPES \n (\n WAT_NAME VARCHAR,\n WAT_TYPE VARCHAR,\n WAT_REALM VARCHAR,\n WAT_DESCRIPTION VARCHAR,\n WAT_MAXINST INTEGER,\n PRIMARY KEY (WAT_NAME)\n );\n\n\n * WA_MEMBER_MODEL\n 1 Contains list of available ODS application member models. \n 1 Now, it's:\n * *Open* - each ODS user may became application member without any \nrestrictions. Application owner will not be informed.\n * *Closed* - no-one may become new member\n * *Invite only* - only application owner can invite ODS users to become \napplication member\n * *Approval based* - ODS user can became application member only after \napplication owner approval\n * *Notify owner via E-mail* - each ODS user may became application member \nwithout any restrictions. Application owner will be informed automatically by email.\n\nCREATE TABLE WA_MEMBER_MODEL\n (\n WMM_ID INT PRIMARY KEY,\n WMM_NAME VARCHAR NOT NULL\n );\n\n\n * WA_MEMBER_TYPE\n 1 Contains list of available application-specific (for each registered application) \nmembership types. \n 1 For example: author, reader. \nOwner is not a member type, and is provided by another ODS mechanism.\n\nCREATE TABLE WA_MEMBER_TYPE \n (\n WMT_APP VARCHAR,\n WMT_NAME VARCHAR,\n WMT_ID INT,\n WMT_IS_DEFAULT INT,\n PRIMARY KEY (WMT_APP, WMT_ID))\n);\n\n\n * WA_INSTANCE\n 1 Contains detailed information about each of created application instances. \n 1 WAI_NAME field values *MUST BE EQUAL* to corresponding \napplication_object.wa_name value. If any application wants to \nchange values provided by ODS - it should check equality.\n 1 WAI_NAME should be unique through the whole table.\n\nCREATE TABLE WA_INSTANCE\n (\n WAI_ID INT IDENTITY,\n WAI_TYPE_NAME VARCHAR REFERENCES WA_TYPES ON DELETE CASCADE,\n WAI_NAME VARCHAR,\n WAI_INST WEB_APP,\n WAI_MEMBER_MODEL INT REFERENCES WA_MEMBER_MODEL,\n WAI_IS_PUBLIC INT DEFAULT 1,\n WAI_MEMBERS_VISIBLE INT DEFAULT 1,\n WAI_DESCRIPTION VARCHAR,\n WAI_MODIFIED TIMESTAMP,\n WAI_IS_FROZEN INT,\n WAI_FREEZE_REDIRECT VARCHAR,\n WAI_LICENSE LONG VARCHAR,\n PRIMARY KEY (WAI_NAME)\n );\n\nCREATE TEXT INDEX ON WA_INSTANCE (WAI_DESCRIPTION) WITH KEY WAI_ID USING FUNCTION;\nCREATE INDEX WAI_TYPE_NAME_IDX1 ON WA_INSTANCE (WAI_TYPE_NAME)\n\n\n * WA_MEMBER\n 1 Contains detailed information about each of member of each application instance. \n 1 WAM_MEMBER_TYPE - corresponds (as foreign key) to WA_MEMBER_TYPE table.\n 1 WAM_STATUS contains ODS-specific (not application-specific) application member status\n * 1 - owner\n * 2 - approved\n * 3 - awaiting approval from owner\n * 4 - awaiting approval from user\n 1 ODS application *SHOULD NOT* work with this table directly (except for READ operation to determine member type and status)\n 1 All necessary action with this table will be done by ODS itself automatically.\n\nCREATE TABLE WA_MEMBER\n (\n WAM_USER INT,\n WAM_INST VARCHAR REFERENCES WA_INSTANCE ON DELETE CASCADE ON UPDATE CASCADE,\n WAM_MEMBER_TYPE INT, -- 1=owner, 2=admin, 3=regular, -1=waiting approval, etc.\n WAM_MEMBER_SINCE DATETIME,\n WAM_EXPIRES DATETIME,\n WAM_IS_PUBLIC INT DEFAULT 1, -- Duplicate WAI_IS_PUBLIC\n WAM_MEMBERS_VISIBLE INT DEFAULT 1, -- Duplicate WAI_MEMBERS_VISIBLE\n WAM_HOME_PAGE VARCHAR,\n WAM_APP_TYPE VARCHAR,\n WAM_DATA ANY, -- app dependent, e.g., last payment info, other.\n WAM_STATUS INT,\n PRIMARY KEY (WAM_USER, WAM_INST, WAM_MEMBER_TYPE)\n );\n\nCREATE INDEX WA_MEMBER_WAM_INST ON WA_MEMBER (WAM_INST);\n\n\n * WA_MEMBER_INSTCOUNT\n\nCREATE TABLE WA_MEMBER_INSTCOUNT\n (\n WMIC_TYPE_NAME VARCHAR REFERENCES WA_TYPES ON DELETE CASCADE,\n WMIC_UID INT REFERENCES SYS_USERS (U_ID) ON DELETE CASCADE,\n WMIC_INSTCOUNT INTEGER DEFAULT NULL,\n PRIMARY KEY (WMIC_TYPE_NAME, WMIC_UID)\n );\n\n\n * WA_INVITATIONS\n\nCREATE TABLE WA_INVITATIONS \n (\n WI_U_ID INT, -- U_ID\n WI_TO_MAIL VARCHAR, -- email\n WI_INSTANCE VARCHAR, -- WAI_NAME\n WI_SID VARCHAR, -- VS_SID\n WI_STATUS VARCHAR, -- pending, or rejected\n PRIMARY KEY (WI_U_ID, WI_TO_MAIL, WI_INSTANCE)\n );\n\nCREATE UNIQUE INDEX WA_INVITATIONS_SID ON WA_INVITATIONS (WI_SID);\n\n\n * WA_DOMAINS\n\nCREATE TABLE WA_DOMAINS\n (\n WD_DOMAIN VARCHAR, -- domain name\n WD_HOST VARCHAR, -- this and rest are the endpoint to access wa via that domain\n WD_LISTEN_HOST VARCHAR,\n WD_LPATH VARCHAR,\n WD_MODEL INT,\n PRIMARY KEY (WD_DOMAIN)\n );\n\n\n * WA_MAP_HOSTS\n\nCREATE TABLE WA_MAP_HOSTS\n (\n WMH_HOST VARCHAR,\n WMH_SVC VARCHAR,\n WMH_KEY VARCHAR,\n WMH_ID INTEGER IDENTITY,\n PRIMARY KEY (WMH_HOST, WMH_SVC)\n );\n\n\n * WA_VIRTUAL_HOSTS\n\nCREATE TABLE WA_VIRTUAL_HOSTS\n (\n VH_INST INTEGER REFERENCES WA_INSTANCE (WAI_ID) ON DELETE CASCADE,\n VH_HOST VARCHAR, -- this and rest are the endpoint to access wa via that domain\n VH_LISTEN_HOST VARCHAR,\n VH_LPATH VARCHAR,\n VH_PAGE VARCHAR,\n PRIMARY KEY (VH_INST,VH_HOST,VH_LISTEN_HOST,VH_LPATH)\n );\n\n\n * WA_BLOCKED_IP\n 1 Used internally by ODS to prevent unlimited login (failed) attempts from the same IP address. \n\nCREATE TABLE WA_BLOCKED_IP\n (\n WAB_IP VARCHAR,\n WAB_DISABLE_UNTIL DATETIME,\n PRIMARY KEY (WAB_IP)\n );\n\n\n * WA_INDUSTRY\n\nCREATE TABLE WA_INDUSTRY\n (\n WI_NAME VARCHAR NOT NULL PRIMARY KEY\n );\n\n\n * WA_COUNTRY\n\nCREATE TABLE WA_COUNTRY\n (\n WC_NAME VARCHAR NOT NULL PRIMARY KEY,\n WC_CODE VARCHAR,\n WC_LAT REAL,\n WC_LNG REAL,\n WC_CODE VARCHAR\n );\n\n\n * WA_PROVINCE\n\nCREATE TABLE WA_PROVINCE \n (\n WP_COUNTRY VARCHAR,\n WP_PROVINCE VARCHAR,\n PRIMARY KEY (WP_COUNTRY, WP_PROVINCE)\n );\n\n\n---++++ ODS base class web_app\n\n\n CREATE TYPE WEB_APP AS\n (\n WA_NAME VARCHAR, -- i.e., blog\n WA_MEMBER_MODEL INT -- how registration can be made\n )\n METHOD wa_id_string () RETURNS any, -- string in memberships list\n METHOD wa_new_inst (login varchar) RETURNS any, -- registering\n METHOD wa_join_request (login varchar) RETURNS any, -- registering\n METHOD wa_leave_notify (login varchar) RETURNS any, -- cancel join\n METHOD wa_state_edit_form (stream any) RETURNS any, -- emit a state edit form into the stream present this to owner for setting the state\n METHOD wa_membership_edit_form (stream any) RETURNS any, -- emit a membership edit form into the stream present this to owner for setting the state\n METHOD wa_front_page (stream any) RETURNS any, -- emit a front page into the stream present this to owner for setting the state\n METHOD wa_state_posted (post any, \n stream any) RETURNS any, -- process a post, updating state and writing a reply into the stream for web interface\n METHOD wa_periodic_activity () RETURNS any, -- send reminders, invoices, refresh content whatever is regularly done.\n METHOD wa_drop_instance () RETURNS any,\n METHOD wa_private_url () RETURNS any,\n METHOD wa_notify_member_changed (account int, \n otype int, \n ntype int, \n odata any, \n ndata any, \n ostatus any, \n nstatus any) RETURNS any,\n METHOD wa_member_data (u_id int, \n stream any) RETURNS any, -- application specific membership attributes\n METHOD wa_member_data_edit_form (u_id int, \n stream any) RETURNS any, -- application specific membership attributes edit form\n METHOD wa_class_details () RETURNS varchar, -- returns details about the nature of the instance class\n METHOD wa_https_supported () RETURNS int,\n METHOD wa_dashboard () RETURNS any,\n METHOD wa_home_url () RETURNS varchar,\n METHOD wa_dashboard () RETURNS any,\n METHOD wa_addition_urls () RETURNS any,\n METHOD wa_addition_instance_urls () RETURNS any,\n METHOD wa_addition_instance_urls (in lpath any) RETURNS any,\n METHOD wa_domain_set (in domain varchar) RETURNS any, \n METHOD wa_size () RETURNS int, \n METHOD wa_front_page_as_user (in stream any, \n in user_name varchar) RETURNS any,\n METHOD wa_rdf_url (in vhost varchar, \n in lhost varchar) RETURNS varchar, \n METHOD wa_post_url (in vhost varchar, \n in lhost varchar, \n in inst_name varchar, \n in post any) RETURNS varchar,\n METHOD wa_domain_set(in domain varchar) RETURNS any,\n wa_new_instance_url() RETURNS any,\n wa_edit_instance_url() RETURNS any\n)\n;\n\n\n---++++ ODS methods for base class web_app\n\nCREATE METHOD wa_id_string () for web_app\n{\n return '';\n};\n\n\n\nCREATE METHOD wa_dashboard () for web_app\n{\n return '';\n};\n\n\n\nCREATE METHOD wa_member_data (in u_id int, inout stream any) for web_app\n{\n return 'N/A';\n};\n\n\n\nCREATE METHOD wa_member_data_edit_form (in u_id int, inout stream any) for web_app\n{\n return;\n};\n\n\n\nCREATE METHOD wa_membership_edit_form (inout stream any) for web_app\n{\n return;\n};\n\n\n\nCREATE METHOD wa_front_page (inout stream any) for web_app\n{\n return;\n};\n\n\n\nCREATE METHOD wa_front_page_as_user (inout stream any, in user_name varchar) for web_app\n{\n return;\n};\n\n\n\nCREATE METHOD wa_size () for web_app\n{\n return 0;\n};\n\n\n\nCREATE METHOD wa_join_request (in login varchar) for web_app\n{\n return;\n};\n\n\n\nCREATE METHOD wa_class_details() for web_app\n{\n return null;\n};\n\n\n\nCREATE METHOD wa_state_edit_form (inout stream any) for web_app\n{\n return;\n};\n\n\n\nCREATE METHOD wa_state_posted (in post any, inout stream any) for web_app\n{\n return;\n};\n\n\n\nCREATE METHOD wa_home_url () for web_app\n{\n return null;\n};\n\n\n\nCREATE METHOD wa_rdf_url (in vhost varchar, in lhost varchar) for web_app\n{\n return null;\n};\n\n\n\nCREATE METHOD wa_post_url (in vhost varchar, in lhost varchar, in inst_name varchar, in post any) for web_app\n{\n return null;\n};\n\n\n\nCREATE METHOD wa_addition_urls () for web_app\n{\n return null;\n};\n\n\n\nCREATE METHOD wa_addition_instance_urls () for web_app\n{\n return null;\n};\n\n\n\nCREATE METHOD wa_addition_instance_urls (in lpath any) for web_app\n{\n return null;\n};\n\n\n\nCREATE METHOD wa_domain_set (in domain varchar) for web_app\n{\n return self;\n};\n\n\n\nCREATE METHOD wa_private_url () for web_app\n{\n return null;\n};\n\n\n\nCREATE METHOD wa_https_supported () for web_app\n{\n return;\n};\n\n\n\nCREATE METHOD wa_drop_instance () for web_app {\nfor select VH_HOST as _host, VH_LISTEN_HOST as _lhost, VH_LPATH as _path, WAI_INST as _inst\n from WA_INSTANCE, WA_VIRTUAL_HOSTS where WAI_NAME = self.wa_name and WAI_ID = VH_INST and VH_HOST not like '%ini%'\n do\n {\n declare inst web_app;\n inst := _inst;\n -- Application additional URL\n declare len, i, ssl_port integer;\n declare cur_add_url, addons any;\n\n addons := inst.wa_addition_urls();\n len := length(addons);\n i := 0;\n while (i < len)\n {\n cur_add_url := addons [i];\n VHOST_REMOVE(\n vhost=>_host,\n lhost=>_lhost,\n lpath=>cur_add_url[2]);\n i := i + 1;\n }\n -- Instance additional URL\n addons := inst.wa_addition_instance_urls(_path);\n len := length(addons);\n i := 0;\n while (i < len)\n {\n cur_add_url := addons[i];\n VHOST_REMOVE(\n vhost=>_host,\n lhost=>_lhost,\n lpath=>cur_add_url[2]);\n i := i + 1;\n }\n -- Home URL\n VHOST_REMOVE(vhost=>_host, lhost=>_lhost, lpath=>_path);\n }\n delete from WA_MEMBER where WAM_INST = self.wa_name;\n delete from WA_INSTANCE where WAI_NAME = self.wa_name;\n};\n\n\n\nCREATE METHOD wa_periodic_activity () for web_app\n{\n return;\n};\n\n\n\nCREATE METHOD wa_new_inst (in login varchar) for web_app\n{\n declare uid, id, tn, is_pub, is_memb_visb any;\n\n uid := (select U_ID from SYS_USERS where U_NAME = login);\n select WAI_ID, WAI_TYPE_NAME, WAI_IS_PUBLIC, WAI_MEMBERS_VISIBLE\n into id, tn, is_pub, is_memb_visb from WA_INSTANCE where WAI_NAME = self.wa_name;\n -- WAM_STATUS = 1 means OWNER\n -- XXX: check this why is off\n --set triggers off;\n insert into WA_MEMBER\n (WAM_USER, WAM_INST, WAM_MEMBER_TYPE, WAM_STATUS, WAM_HOME_PAGE, WAM_APP_TYPE, WAM_IS_PUBLIC, WAM_MEMBERS_VISIBLE)\n values (uid, self.wa_name, 1, 1, wa_set_url_t (self), tn, is_pub, is_memb_visb);\n --set triggers on;\n return id;\n};\n\n\nCREATE METHOD wa_new_instance_url () for web_app{\n return 'new_inst.vspx';\n};\n\n\nCREATE METHOD wa_edit_instance_url () for web_app{\n return 'edit_inst.vspx';\n};\n\n\n---++++App membership processing\n\n---+++PL APIs\n\n---++++OpenID APIs\n\nLocation: openid.sql\n\n | OPENID_INIT |Creates user \"OpenID\" |\n | | | |\n | yadis | Automatic creation of user yadis doc format.| |\n | |in uname varchar, |User name |\n | |RESULT is XML composed yadis doc for the user| |\n | | | |\n | server | Depending on the openid mode performs: associates, checkid_immediate, checkid_setup, check_authentication | |\n | |in \"openid.mode\" varchar := 'unknown', | OpenID of the Server |\n | |RESULT depends on the openid mode| |\n | | | |\n | associate | Creates xenc_key_3DES key and inserts it into SERVER_SESSIONS | |\n | |in \"openid.mode\" varchar := 'unknown', | |\n | |in assoc_type varchar := 'HMAC-SHA1', | |\n | |in session_type varchar := '', | |\n | |in dh_modulus varchar := null, | |\n | |in dh_gen varchar := null, | |\n | |in dh_consumer_public varchar := null | |\n | |RESULT is string| |\n | | | |\n | checkid_immediate | Check OpenID verification| |\n | |in _identity varchar, | |\n | |in assoc_handle varchar := null, | |\n | |in return_to varchar, | |\n | |in trust_root varchar := null, | |\n | |in sid varchar, | |\n | |in flag int := 0, -- called via checkid_setup | |\n | |in sreg_required varchar := null, | |\n | |in sreg_optional varchar := null, | |\n | |in policy_url varchar := null | |\n | |RESULT is empty string| |\n | | | |\n | checkid_setup | Setup OpenID verification and perform check| |\n | |in _identity varchar, | |\n | |in assoc_handle varchar := null, | |\n | |in return_to varchar, | |\n | |in trust_root varchar := null, | |\n | |in sid varchar, | |\n | |in sreg_required varchar := null, | |\n | |in sreg_optional varchar := null, | |\n | |in policy_url varchar := null | |\n | |RESULT is empty string| |\n | | | |\n | check_authentication | Check for OpenID authentication| |\n | |in assoc_handle varchar, | |\n | |in sig varchar, | |\n | |in signed varchar, | |\n | |in invalidate_handle varchar := null, | |\n | |in params any := null, | |\n | |in sid varchar | |\n | |RESULT is empty string| |\n | | | |\n | check_signature | Check OpenID authentication comparing the xenc_key-s| |\n | |in params varchar | |\n | |RESULT is integer, 1 if the signature matches, 0 if not| |\n\nCategoryODS CategoryOpenSource CategoryAPI" . "OdsComponents" . "2017-06-29T07:31:59.258231"^^ . . "33d1d1a2d8b147ea3d73bc157808f3f5" . . . . . . "OdsComponents" . . . "2017-06-29T07:31:59Z" . . "2017-06-13T06:01:25.480514"^^ . .