Explorar o código

libsrdb1/kamctl: added uid_domain and uid_domain_attrs tables

Daniel-Constantin Mierla %!s(int64=12) %!d(string=hai) anos
pai
achega
5eaaaf9827

+ 13 - 0
lib/srdb1/schema/kamailio-uid_domain.xml

@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE database PUBLIC "-//kamailio.org//DTD DBSchema V1.1//EN"
+  "http://kamailio.org/pub/kamailio/dbschema/dtd/1.1/dbschema.dtd" [
+
+  <!ENTITY % entities SYSTEM "entities.xml">
+  %entities;
+]>
+
+<database xmlns:xi="http://www.w3.org/2001/XInclude">
+    <name>uid_domain</name>
+    <xi:include href="uid_domain.xml"/>
+    <xi:include href="uid_domain_attrs.xml"/>
+</database>

+ 253 - 0
lib/srdb1/schema/uid_domain.xml

@@ -0,0 +1,253 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE database PUBLIC "-//kamailio.org//DTD DBSchema V1.1//EN"
+  "http://kamailio.org/pub/kamailio/dbschema/dtd/1.1/dbschema.dtd" [
+
+  <!ENTITY % entities SYSTEM "entities.xml">
+  %entities;
+]>
+
+<table xmlns:db="http://docbook.org/ns/docbook">
+  <name>uid_domain</name>
+  <version>2</version>
+  <type db="mysql">&MYSQL_TABLE_TYPE;</type>
+
+  <description>
+	<db:para>
+	  Domain table is used in multi-domain setups where single SER instance is
+	  responsible for multiple domains at the same time. Each virtual domain
+	  has a unique identifier called DID. This is a string that uniquely
+	  identifies the domain. In smaller setups DID will be same as the domain
+	  part used in SIP URIs, that is for virtual domain iptel.org will have
+	  DID "iptel.org".
+	</db:para>
+	<db:para>
+	  DIDs are not limited to domain names that can appear in SIP URIs. Domain
+	  names are subject to change over time and, especially in setups with
+	  large number of domains hosted on a single SIP proxy server, a different
+	  format for DIDs (not based on the domain name) might be more convenient.
+	</db:para>
+	<db:para>
+	  Each virtual domain has one or more domain names assigned. Typically all
+	  domain names and IP addresses that resolve to the SIP proxy responsible
+	  for the domain should be listed in this table. Virtual domain iptel.org,
+	  for example, would contain domain names: "iptel.org", "sip.iptel.org",
+	  "proxy.iptel.org", "195.37.77.101".
+	</db:para>
+  </description>
+
+  <column id="id">
+    <name>id</name>
+    <type>unsigned int</type>
+    <size>&table_id_len;</size>
+    <autoincrement/>
+    <primary/>
+    <type db="dbtext">int,auto</type>
+    <description>Unique ID</description>
+  </column>
+
+  <column id="domain.did">
+	<name>did</name>
+	<type>string</type>
+	<size>&id_len;</size>
+	<description>
+	  Unique identifier of the domain.
+	</description>
+  </column>
+
+  <column id="domain.domain">
+	<name>domain</name>
+	<type>string</type>
+	<size>&domain_len;</size>
+	<description>
+	  Domain name.
+	</description>
+  </column>
+
+  <column>
+	<name>flags</name>
+	<type>unsigned int</type>
+	<default>0</default>
+	<description>
+	  Various flags. The meaning of bits in the flags field is described
+	  in the table below. 
+	  <db:note>
+		<db:simpara>
+		  Note that several flags below have no meaning in this table and are
+		  only presented for completeness, because the flags column has
+		  identical meaning of flags across most tables in the database.
+		</db:simpara>
+	  </db:note>
+	  <db:table><db:title>possible domain flags</db:title>
+		<db:tgroup cols="4">
+		  <db:thead>
+			<db:row>
+			  <db:entry>Bit</db:entry>
+			  <db:entry>Hex value</db:entry>
+			  <db:entry>Flag</db:entry>
+			  <db:entry>Description</db:entry>
+			</db:row>
+		  </db:thead>
+		  <db:tbody>
+			<db:row>
+			  <db:entry>0</db:entry>
+			  <db:entry>0x00000001</db:entry>
+			  <db:entry>FOR_SER</db:entry>
+			  <db:entry>
+				If set then SER will load the row (not applicable in this
+				table).
+			  </db:entry>
+			</db:row>
+			<db:row>
+			  <db:entry>1</db:entry>
+			  <db:entry>0x00000002</db:entry>
+			  <db:entry>DISABLED</db:entry>
+			  <db:entry>
+				The data represented by the row is temporarily disabled, which
+				means it stays in the database but no applications use it.
+			  </db:entry>
+			</db:row>
+			<db:row>
+			  <db:entry>2</db:entry>
+			  <db:entry>0x00000004</db:entry>
+			  <db:entry>CANONICAL</db:entry>
+			  <db:entry>
+				The URI or domain name is canonical. When displaying the URI
+				of the user or name of a domain then this entry should be
+				used.  Not applicable in this table.
+			  </db:entry>
+			</db:row>
+			<db:row>
+			  <db:entry>3</db:entry>
+			  <db:entry>0x00000008</db:entry>
+			  <db:entry>ALLOWED_TO</db:entry>
+			  <db:entry>
+				The URI represented by this row can be used in The Request-URI
+				or To header field. In other words the user will be reachable
+				under this URI and can use it as an alias. Not applicable in
+				this table.
+			  </db:entry>
+			</db:row>
+			<db:row>
+			  <db:entry>4</db:entry>
+			  <db:entry>0x00000010</db:entry>
+			  <db:entry>ALLOWED_FROM</db:entry>
+			  <db:entry>
+				The user identified by uid can use this URI in From header
+				field. Not applicable in this table.
+			  </db:entry>
+			</db:row>
+			<db:row>
+			  <db:entry>5</db:entry>
+			  <db:entry>0x00000020</db:entry>
+			  <db:entry>FOR_SERWEB</db:entry>
+			  <db:entry>
+				The data represented by the row is for SERWeb. This is
+				currently used in credentials table only where the flags
+				allows to keep different credentials for digest authentication
+				in SIP and for SERWeb authentication. Not applicable in this
+				table.
+			  </db:entry>
+			</db:row>
+			<db:row>
+			  <db:entry>6</db:entry>
+			  <db:entry>0x00000040</db:entry>
+			  <db:entry>PENDING</db:entry>
+			  <db:entry>
+				The account owning the piece of data has not been activated
+				yet. Not applicable in this table, this is mainly used in
+				credentials table.
+			  </db:entry>
+			</db:row>
+			<db:row>
+			  <db:entry>7</db:entry>
+			  <db:entry>0x00000100</db:entry>
+			  <db:entry>DELETED</db:entry>
+			  <db:entry>
+				The row has been scheduled for deletion.
+			  </db:entry>
+			</db:row>
+			<db:row>
+			  <db:entry>8</db:entry>
+			  <db:entry>0x00000200</db:entry>
+			  <db:entry>CALLER_DELETED</db:entry>
+			  <db:entry>
+				The accounting record has been scheduled for deletion by the
+				caller. The row can be deleted once both the caller and callee
+				schedule the record for deletion. A single record can be
+				shared by two users and thus both of them must schedule it for
+				deletion before it can be physically deleted.
+			  </db:entry>
+			</db:row>
+			<db:row>
+			  <db:entry>9</db:entry>
+			  <db:entry>0x00000400</db:entry>
+			  <db:entry>CALLEE_DELETED</db:entry>
+			  <db:entry>
+				The accounting record has been scheduled for deletion by the
+				callee. The row can be deleted once both the caller and callee
+				schedule the record for deletion. A single record can be
+				shared by two users and thus both of them must schedule it for
+				deletion before it can be physically deleted.
+			  </db:entry>
+			</db:row>
+		  </db:tbody>
+		</db:tgroup>
+	  </db:table>
+	</description>
+  </column>
+
+  <index>
+	<name>domain_idx</name>
+	<unique/>
+	<colref linkend="domain.domain"/>
+  </index>
+
+  <index>
+	<name>did_idx</name>
+	<colref linkend="domain.did"/>
+  </index>
+
+  <verbatim db="mysql" id="func.todomain">
+	<create>
+	  <![CDATA[
+drop function if exists todomain;
+delimiter //
+create function todomain (pdid varchar(64)) returns varchar(128) 
+READS SQL DATA
+begin
+    declare tdomain varchar(128) default NULL;
+	select domain into tdomain from domain where did=pdid and 
+        canonical(flags) limit 1;
+	return tdomain;
+end
+//
+delimiter ;
+]]>
+	</create>
+	<destroy>
+	  drop function if exists todomain;
+	</destroy>
+  </verbatim>
+
+  <verbatim db="mysql" id="func.todid">
+	<create>
+	  <![CDATA[
+drop function if exists todid;
+delimiter //
+create function todid (pdomain varchar(128)) returns varchar(64) 
+READS SQL DATA
+begin
+    declare tdid varchar(64) default NULL;
+    select did into tdid from domain where domain=pdomain and 
+        active(flags) limit 1;
+	return tdid;
+end
+//
+delimiter ;
+]]>
+	</create>
+	<destroy>
+	  drop function if exists todid;
+	</destroy>
+  </verbatim>
+</table>

+ 222 - 0
lib/srdb1/schema/uid_domain_attrs.xml

@@ -0,0 +1,222 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE table PUBLIC "-//kamailio.org//DTD DBSchema V1.1//EN" 
+  "http://kamailio.org/pub/kamailio/dbschema/dtd/1.1/dbschema.dtd" [
+
+<!ENTITY % entities SYSTEM "entities.xml">
+%entities;
+
+]>
+
+<table xmlns:db="http://docbook.org/ns/docbook">
+  <name>uid_domain_attrs</name>
+  <version>1</version>
+  <type db="mysql">&MYSQL_TABLE_TYPE;</type>
+  <description>
+	Each domain can have several attribute-value pairs assigned. They are used
+	to store additional information about the domain, such as digest realm to
+	be used when challenging users, language settings for the domain, time
+	zone, and so on. The AVPs (attribute-value pairs) are stored in this
+	table. Domain attributes have lower priority then user attributes, thus
+	the values from this table will only be used if no user-specific attribute
+	with the same name does not exist. Lists of domain attributes are managed
+	by domain module of SER.
+  </description>
+
+ <column id="id">
+    <name>id</name>
+    <type>unsigned int</type>
+    <size>&table_id_len;</size>
+    <autoincrement/>
+    <primary/>
+    <type db="dbtext">int,auto</type>
+    <description>Unique ID</description>
+  </column>
+
+  <column id="domain_attrs.did">
+	<name>did</name>
+	<type>string</type>
+	<size>&id_len;</size>
+	<null/>
+	<description>
+	  DID (Domain ID) of the virtual domain that owns the attribute.
+	</description>
+  </column>
+
+  <column id="domain_attrs.name">
+	<name>name</name>
+	<type>string</type>
+	<size>&avp_name_len;</size>
+	<description>
+	  Attribute name. This should be one of the names listed in attr_types
+	  table.
+	</description>
+  </column>
+
+  <column>
+	<name>type</name>
+	<type>int</type>
+	<default>0</default>
+	<description>
+	  Attribute type. This should be the value of type column from attr_types
+	  table with same name.
+	</description>
+  </column>
+
+  <column id="domain_attrs.value">
+	<name>value</name>
+	<type>string</type>
+	<null/>
+	<size>&avp_val_len;</size>
+	<description>
+	  Value of the attribute.
+	</description>
+  </column>
+
+  <column id="domain_attrs.flags">
+	<name>flags</name>
+	<type>unsigned int</type>
+	<default>0</default>
+	<description>
+	  Various flags. The meaning of bits in the flags field is described in
+	  the table below.
+	  <db:note>
+		<db:simpara>
+		  Note that several flags below have no meaning in this table and are
+		  only presented for completeness, because the flags column has
+		  identical meaning of flags across most tables in the database.
+		</db:simpara>
+	  </db:note>
+	  <db:table><db:title>possible domain_attrs flags</db:title>
+		<db:tgroup cols="4">
+		  <db:thead>
+			<db:row>
+			  <db:entry>Bit</db:entry>
+			  <db:entry>Hex value</db:entry>
+			  <db:entry>Flag</db:entry>
+			  <db:entry>Description</db:entry>
+			</db:row>
+		  </db:thead>
+		  <db:tbody>
+			<db:row>
+			  <db:entry>0</db:entry>
+			  <db:entry>0x00000001</db:entry>
+			  <db:entry>FOR_SER</db:entry>
+			  <db:entry>
+				If set then SER will load the row (not applicable in this
+				table).
+			  </db:entry>
+			</db:row>
+			<db:row>
+			  <db:entry>1</db:entry>
+			  <db:entry>0x00000002</db:entry>
+			  <db:entry>DISABLED</db:entry>
+			  <db:entry>
+				The data represented by the row is temporarily disabled, which
+				means it stays in the database but no applications use it.
+			  </db:entry>
+			</db:row>
+			<db:row>
+			  <db:entry>2</db:entry>
+			  <db:entry>0x00000004</db:entry>
+			  <db:entry>CANONICAL</db:entry>
+			  <db:entry>
+				The URI or domain name is canonical. When displaying the URI
+				of the user or name of a domain then this entry should be
+				used.  Not applicable in this table.
+			  </db:entry>
+			</db:row>
+			<db:row>
+			  <db:entry>3</db:entry>
+			  <db:entry>0x00000008</db:entry>
+			  <db:entry>ALLOWED_TO</db:entry>
+			  <db:entry>
+				The URI represented by this row can be used in The Request-URI
+				or To header field. In other words the user will be reachable
+				under this URI and can use it as an alias. Not applicable in
+				this table.
+			  </db:entry>
+			</db:row>
+			<db:row>
+			  <db:entry>4</db:entry>
+			  <db:entry>0x00000010</db:entry>
+			  <db:entry>ALLOWED_FROM</db:entry>
+			  <db:entry>
+				The user identified by uid can use this URI in From header
+				field. Not applicable in this table.
+			  </db:entry>
+			</db:row>
+			<db:row>
+			  <db:entry>5</db:entry>
+			  <db:entry>0x00000020</db:entry>
+			  <db:entry>FOR_SERWEB</db:entry>
+			  <db:entry>
+				The data represented by the row is for SERWeb. This is
+				currently used in credentials table only where the flags
+				allows to keep different credentials for digest authentication
+				in SIP and for SERWeb authentication. Not applicable in this
+				table.
+			  </db:entry>
+			</db:row>
+			<db:row>
+			  <db:entry>6</db:entry>
+			  <db:entry>0x00000040</db:entry>
+			  <db:entry>PENDING</db:entry>
+			  <db:entry>
+				The account owning the piece of data has not been activated
+				yet. Not applicable in this table, this is mainly used in
+				credentials table.
+			  </db:entry>
+			</db:row>
+			<db:row>
+			  <db:entry>7</db:entry>
+			  <db:entry>0x00000100</db:entry>
+			  <db:entry>DELETED</db:entry>
+			  <db:entry>
+				The row has been scheduled for deletion.
+			  </db:entry>
+			</db:row>
+			<db:row>
+			  <db:entry>8</db:entry>
+			  <db:entry>0x00000200</db:entry>
+			  <db:entry>CALLER_DELETED</db:entry>
+			  <db:entry>
+				The accounting record has been scheduled for deletion by the
+				caller. The row can be deleted once both the caller and callee
+				schedule the record for deletion. A single record can be
+				shared by two users and thus both of them must schedule it for
+				deletion before it can be physically deleted.
+			  </db:entry>
+			</db:row>
+			<db:row>
+			  <db:entry>9</db:entry>
+			  <db:entry>0x00000400</db:entry>
+			  <db:entry>CALLEE_DELETED</db:entry>
+			  <db:entry>
+				The accounting record has been scheduled for deletion by the
+				callee. The row can be deleted once both the caller and callee
+				schedule the record for deletion. A single record can be
+				shared by two users and thus both of them must schedule it for
+				deletion before it can be physically deleted.
+			  </db:entry>
+			</db:row>
+		  </db:tbody>
+		</db:tgroup>
+	  </db:table>	    
+	</description>
+  </column>
+
+  <index>
+	<name>domain_attr_idx</name>
+	<unique/>
+	<colref linkend="domain_attrs.did"/>
+	<colref linkend="domain_attrs.name"/>
+	<colref linkend="domain_attrs.value"/>
+  </index>
+
+  <index>
+	<name>domain_did</name>
+	<colref linkend="domain_attrs.did"/>
+	<colref linkend="domain_attrs.flags"/>
+  </index>
+
+</table>

+ 12 - 0
utils/kamctl/db_berkeley/kamailio/uid_domain

@@ -0,0 +1,12 @@
+METADATA_COLUMNS
+id(int) did(str) domain(str) flags(int)
+METADATA_KEY
+
+METADATA_READONLY
+0
+METADATA_LOGFLAGS
+0
+METADATA_DEFAULTS
+NIL|NIL|NIL|0
+uid_domain|
+uid_domain|2

+ 12 - 0
utils/kamctl/db_berkeley/kamailio/uid_domain_attrs

@@ -0,0 +1,12 @@
+METADATA_COLUMNS
+id(int) did(str) name(str) type(int) value(str) flags(int)
+METADATA_KEY
+
+METADATA_READONLY
+0
+METADATA_LOGFLAGS
+0
+METADATA_DEFAULTS
+NIL|NIL|NIL|0|NIL|0
+uid_domain_attrs|
+uid_domain_attrs|1

+ 24 - 0
utils/kamctl/db_sqlite/uid_domain-create.sql

@@ -0,0 +1,24 @@
+INSERT INTO version (table_name, table_version) values ('uid_domain','2');
+CREATE TABLE uid_domain (
+    id INTEGER PRIMARY KEY NOT NULL,
+    did VARCHAR(64) NOT NULL,
+    domain VARCHAR(64) NOT NULL,
+    flags INTEGER DEFAULT 0 NOT NULL,
+    CONSTRAINT uid_domain_domain_idx UNIQUE (domain)
+);
+
+CREATE INDEX uid_domain_did_idx ON uid_domain (did);
+
+INSERT INTO version (table_name, table_version) values ('uid_domain_attrs','1');
+CREATE TABLE uid_domain_attrs (
+    id INTEGER PRIMARY KEY NOT NULL,
+    did VARCHAR(64),
+    name VARCHAR(32) NOT NULL,
+    type INTEGER DEFAULT 0 NOT NULL,
+    value VARCHAR(128),
+    flags INTEGER DEFAULT 0 NOT NULL,
+    CONSTRAINT uid_domain_attrs_domain_attr_idx UNIQUE (did, name, value)
+);
+
+CREATE INDEX uid_domain_attrs_domain_did ON uid_domain_attrs (did, flags);
+

+ 2 - 0
utils/kamctl/dbtext/kamailio/uid_domain

@@ -0,0 +1,2 @@
+id(int,auto) did(string) domain(string) flags(int) 
+uid_domain:2

+ 2 - 0
utils/kamctl/dbtext/kamailio/uid_domain_attrs

@@ -0,0 +1,2 @@
+id(int,auto) did(string,null) name(string) type(int) value(string,null) flags(int) 
+uid_domain_attrs:1

+ 24 - 0
utils/kamctl/mysql/uid_domain-create.sql

@@ -0,0 +1,24 @@
+INSERT INTO version (table_name, table_version) values ('uid_domain','2');
+CREATE TABLE uid_domain (
+    id INT(10) UNSIGNED AUTO_INCREMENT PRIMARY KEY NOT NULL,
+    did VARCHAR(64) NOT NULL,
+    domain VARCHAR(64) NOT NULL,
+    flags INT UNSIGNED DEFAULT 0 NOT NULL,
+    CONSTRAINT domain_idx UNIQUE (domain)
+) ENGINE=MyISAM;
+
+CREATE INDEX did_idx ON uid_domain (did);
+
+INSERT INTO version (table_name, table_version) values ('uid_domain_attrs','1');
+CREATE TABLE uid_domain_attrs (
+    id INT(10) UNSIGNED AUTO_INCREMENT PRIMARY KEY NOT NULL,
+    did VARCHAR(64),
+    name VARCHAR(32) NOT NULL,
+    type INT DEFAULT 0 NOT NULL,
+    value VARCHAR(128),
+    flags INT UNSIGNED DEFAULT 0 NOT NULL,
+    CONSTRAINT domain_attr_idx UNIQUE (did, name, value)
+) ENGINE=MyISAM;
+
+CREATE INDEX domain_did ON uid_domain_attrs (did, flags);
+

+ 40 - 0
utils/kamctl/oracle/uid_domain-create.sql

@@ -0,0 +1,40 @@
+INSERT INTO version (table_name, table_version) values ('uid_domain','2');
+CREATE TABLE uid_domain (
+    id NUMBER(10) PRIMARY KEY,
+    did VARCHAR2(64),
+    domain VARCHAR2(64),
+    flags NUMBER(10) DEFAULT 0 NOT NULL,
+    CONSTRAINT uid_domain_domain_idx  UNIQUE (domain)
+);
+
+CREATE OR REPLACE TRIGGER uid_domain_tr
+before insert on uid_domain FOR EACH ROW
+BEGIN
+  auto_id(:NEW.id);
+END uid_domain_tr;
+/
+BEGIN map2users('uid_domain'); END;
+/
+CREATE INDEX uid_domain_did_idx  ON uid_domain (did);
+
+INSERT INTO version (table_name, table_version) values ('uid_domain_attrs','1');
+CREATE TABLE uid_domain_attrs (
+    id NUMBER(10) PRIMARY KEY,
+    did VARCHAR2(64),
+    name VARCHAR2(32),
+    type NUMBER(10) DEFAULT 0 NOT NULL,
+    value VARCHAR2(128),
+    flags NUMBER(10) DEFAULT 0 NOT NULL,
+    CONSTRAINT ORA_domain_attr_idx  UNIQUE (did, name, value)
+);
+
+CREATE OR REPLACE TRIGGER uid_domain_attrs_tr
+before insert on uid_domain_attrs FOR EACH ROW
+BEGIN
+  auto_id(:NEW.id);
+END uid_domain_attrs_tr;
+/
+BEGIN map2users('uid_domain_attrs'); END;
+/
+CREATE INDEX uid_domain_attrs_domain_did  ON uid_domain_attrs (did, flags);
+

+ 24 - 0
utils/kamctl/postgres/uid_domain-create.sql

@@ -0,0 +1,24 @@
+INSERT INTO version (table_name, table_version) values ('uid_domain','2');
+CREATE TABLE uid_domain (
+    id SERIAL PRIMARY KEY NOT NULL,
+    did VARCHAR(64) NOT NULL,
+    domain VARCHAR(64) NOT NULL,
+    flags INTEGER DEFAULT 0 NOT NULL,
+    CONSTRAINT uid_domain_domain_idx UNIQUE (domain)
+);
+
+CREATE INDEX uid_domain_did_idx ON uid_domain (did);
+
+INSERT INTO version (table_name, table_version) values ('uid_domain_attrs','1');
+CREATE TABLE uid_domain_attrs (
+    id SERIAL PRIMARY KEY NOT NULL,
+    did VARCHAR(64),
+    name VARCHAR(32) NOT NULL,
+    type INTEGER DEFAULT 0 NOT NULL,
+    value VARCHAR(128),
+    flags INTEGER DEFAULT 0 NOT NULL,
+    CONSTRAINT uid_domain_attrs_domain_attr_idx UNIQUE (did, name, value)
+);
+
+CREATE INDEX uid_domain_attrs_domain_did ON uid_domain_attrs (did, flags);
+

+ 48 - 0
utils/kamctl/xhttp_pi/pi_framework.xml

@@ -727,6 +727,26 @@
 		<column><field>type</field><type>DB1_INT</type></column>
 		<column><field>flags</field><type>DB1_INT</type></column>
 	</db_table>
+	<!-- Declaration of uid_domain table-->
+	<db_table id="uid_domain">
+		<table_name>uid_domain</table_name>
+		<db_url_id>mysql</db_url_id>
+		<column><field>id</field><type>DB1_INT</type></column>
+		<column><field>did</field><type>DB1_STR</type></column>
+		<column><field>domain</field><type>DB1_STR</type></column>
+		<column><field>flags</field><type>DB1_INT</type></column>
+	</db_table>
+	<!-- Declaration of uid_domain_attrs table-->
+	<db_table id="uid_domain_attrs">
+		<table_name>uid_domain_attrs</table_name>
+		<db_url_id>mysql</db_url_id>
+		<column><field>id</field><type>DB1_INT</type></column>
+		<column><field>did</field><type>DB1_STR</type></column>
+		<column><field>name</field><type>DB1_STR</type></column>
+		<column><field>type</field><type>DB1_INT</type></column>
+		<column><field>value</field><type>DB1_STR</type></column>
+		<column><field>flags</field><type>DB1_INT</type></column>
+	</db_table>
 	<!-- Declaration of uid_uri table-->
 	<db_table id="uid_uri">
 		<table_name>uid_uri</table_name>
@@ -1765,6 +1785,34 @@
 			</query_cols>
 		</cmd>
 	</mod>
+	<!-- uid_domain provisionning -->
+	<mod><mod_name>uid_domain</mod_name>
+		<cmd><cmd_name>show</cmd_name>
+			<db_table_id>uid_domain</db_table_id>
+			<cmd_type>DB1_QUERY</cmd_type>
+			<query_cols>
+				<col><field>id</field></col>
+				<col><field>did</field></col>
+				<col><field>domain</field></col>
+				<col><field>flags</field></col>
+			</query_cols>
+		</cmd>
+	</mod>
+	<!-- uid_domain_attrs provisionning -->
+	<mod><mod_name>uid_domain_attrs</mod_name>
+		<cmd><cmd_name>show</cmd_name>
+			<db_table_id>uid_domain_attrs</db_table_id>
+			<cmd_type>DB1_QUERY</cmd_type>
+			<query_cols>
+				<col><field>id</field></col>
+				<col><field>did</field></col>
+				<col><field>name</field></col>
+				<col><field>type</field></col>
+				<col><field>value</field></col>
+				<col><field>flags</field></col>
+			</query_cols>
+		</cmd>
+	</mod>
 	<!-- uid_uri provisionning -->
 	<mod><mod_name>uid_uri</mod_name>
 		<cmd><cmd_name>show</cmd_name>

+ 28 - 0
utils/kamctl/xhttp_pi/uid_domain-mod

@@ -0,0 +1,28 @@
+	<!-- uid_domain provisionning -->
+	<mod><mod_name>uid_domain</mod_name>
+		<cmd><cmd_name>show</cmd_name>
+			<db_table_id>uid_domain</db_table_id>
+			<cmd_type>DB1_QUERY</cmd_type>
+			<query_cols>
+				<col><field>id</field></col>
+				<col><field>did</field></col>
+				<col><field>domain</field></col>
+				<col><field>flags</field></col>
+			</query_cols>
+		</cmd>
+	</mod>
+	<!-- uid_domain_attrs provisionning -->
+	<mod><mod_name>uid_domain_attrs</mod_name>
+		<cmd><cmd_name>show</cmd_name>
+			<db_table_id>uid_domain_attrs</db_table_id>
+			<cmd_type>DB1_QUERY</cmd_type>
+			<query_cols>
+				<col><field>id</field></col>
+				<col><field>did</field></col>
+				<col><field>name</field></col>
+				<col><field>type</field></col>
+				<col><field>value</field></col>
+				<col><field>flags</field></col>
+			</query_cols>
+		</cmd>
+	</mod>

+ 20 - 0
utils/kamctl/xhttp_pi/uid_domain-table

@@ -0,0 +1,20 @@
+	<!-- Declaration of uid_domain table-->
+	<db_table id="uid_domain">
+		<table_name>uid_domain</table_name>
+		<db_url_id>mysql</db_url_id>
+		<column><field>id</field><type>DB1_INT</type></column>
+		<column><field>did</field><type>DB1_STR</type></column>
+		<column><field>domain</field><type>DB1_STR</type></column>
+		<column><field>flags</field><type>DB1_INT</type></column>
+	</db_table>
+	<!-- Declaration of uid_domain_attrs table-->
+	<db_table id="uid_domain_attrs">
+		<table_name>uid_domain_attrs</table_name>
+		<db_url_id>mysql</db_url_id>
+		<column><field>id</field><type>DB1_INT</type></column>
+		<column><field>did</field><type>DB1_STR</type></column>
+		<column><field>name</field><type>DB1_STR</type></column>
+		<column><field>type</field><type>DB1_INT</type></column>
+		<column><field>value</field><type>DB1_STR</type></column>
+		<column><field>flags</field><type>DB1_INT</type></column>
+	</db_table>