forked from igniterealtime/Openfire
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathopenfire_sqlserver.sql
More file actions
385 lines (330 loc) · 14.1 KB
/
Copy pathopenfire_sqlserver.sql
File metadata and controls
385 lines (330 loc) · 14.1 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
/* $Revision: 1650 $ */
/* $Date: 2005-07-20 00:18:17 -0300 (Wed, 20 Jul 2005) $ */
CREATE TABLE ofUser (
username NVARCHAR(64) NOT NULL,
plainPassword NVARCHAR(32),
encryptedPassword NVARCHAR(255),
name NVARCHAR(100),
email VARCHAR(100),
creationDate CHAR(15) NOT NULL,
modificationDate CHAR(15) NOT NULL,
CONSTRAINT ofUser_pk PRIMARY KEY (username)
);
CREATE INDEX ofUser_cDate_idx ON ofUser (creationDate ASC);
CREATE TABLE ofUserProp (
username NVARCHAR(64) NOT NULL,
name NVARCHAR(100) NOT NULL,
propValue NVARCHAR(2000) NOT NULL,
CONSTRAINT ofUserProp_pk PRIMARY KEY (username, name)
);
CREATE TABLE ofUserFlag (
username NVARCHAR(64) NOT NULL,
name NVARCHAR(100) NOT NULL,
startTime CHAR(15),
endTime CHAR(15),
CONSTRAINT ofUserFlag_pk PRIMARY KEY (username, name)
);
CREATE INDEX ofUserFlag_sTime_idx ON ofUserFlag (startTime ASC);
CREATE INDEX ofUserFlag_eTime_idx ON ofUserFlag (endTime ASC);
CREATE TABLE ofPrivate (
username NVARCHAR(64) NOT NULL,
name NVARCHAR(100) NOT NULL,
namespace NVARCHAR(200) NOT NULL,
privateData NTEXT NOT NULL,
CONSTRAINT ofPrivate_pk PRIMARY KEY (username, name, namespace)
);
CREATE TABLE ofOffline (
username NVARCHAR(64) NOT NULL,
messageID INTEGER NOT NULL,
creationDate CHAR(15) NOT NULL,
messageSize INTEGER NOT NULL,
stanza NTEXT NOT NULL,
CONSTRAINT ofOffline_pk PRIMARY KEY (username, messageID)
);
CREATE TABLE ofPresence (
username NVARCHAR(64) NOT NULL,
offlinePresence NTEXT,
offlineDate CHAR(15) NOT NULL,
CONSTRAINT ofPresence_pk PRIMARY KEY (username)
);
CREATE TABLE ofRoster (
rosterID INTEGER NOT NULL,
username NVARCHAR(64) NOT NULL,
jid NVARCHAR(1024) NOT NULL,
sub INTEGER NOT NULL,
ask INTEGER NOT NULL,
recv INTEGER NOT NULL,
nick NVARCHAR(255),
CONSTRAINT ofRoster_pk PRIMARY KEY (rosterID)
);
CREATE INDEX ofRoster_username_idx ON ofRoster (username ASC);
CREATE INDEX ofRoster_jid_idx ON ofRoster (jid ASC);
CREATE TABLE ofRosterGroups (
rosterID INTEGER NOT NULL,
rank INTEGER NOT NULL,
groupName NVARCHAR(255) NOT NULL,
CONSTRAINT ofRosterGroups_pk PRIMARY KEY (rosterID, rank)
);
CREATE INDEX ofRosterGroups_rosterid_idx ON ofRosterGroups (rosterID ASC);
ALTER TABLE ofRosterGroups ADD CONSTRAINT ofRosterGroups_rosterID_fk FOREIGN KEY (rosterID) REFERENCES ofRoster;
CREATE TABLE ofVCard (
username NVARCHAR(64) NOT NULL,
vcard NTEXT NOT NULL,
CONSTRAINT ofVCard_pk PRIMARY KEY (username)
);
CREATE TABLE ofGroup (
groupName NVARCHAR(50) NOT NULL,
description NVARCHAR(255),
CONSTRAINT ofGroup_pk PRIMARY KEY (groupName)
);
CREATE TABLE ofGroupProp (
groupName NVARCHAR(50) NOT NULL,
name NVARCHAR(100) NOT NULL,
propValue NVARCHAR(2000) NOT NULL,
CONSTRAINT ofGroupProp_pk PRIMARY KEY (groupName, name)
);
CREATE TABLE ofGroupUser (
groupName NVARCHAR(50) NOT NULL,
username NVARCHAR(100) NOT NULL,
administrator INTEGER NOT NULL,
CONSTRAINT ofGroupUser_pk PRIMARY KEY (groupName, username, administrator)
);
CREATE TABLE ofID (
idType INTEGER NOT NULL,
id INTEGER NOT NULL,
CONSTRAINT ofID_pk PRIMARY KEY (idType)
);
CREATE TABLE ofProperty (
name NVARCHAR(100) NOT NULL,
propValue NTEXT NOT NULL,
CONSTRAINT ofProperty_pk PRIMARY KEY (name)
);
CREATE TABLE ofVersion (
name NVARCHAR(50) NOT NULL,
version INTEGER NOT NULL,
CONSTRAINT ofVersion_pk PRIMARY KEY (name)
);
CREATE TABLE ofExtComponentConf (
subdomain NVARCHAR(255) NOT NULL,
wildcard INT NOT NULL,
secret NVARCHAR(255),
permission NVARCHAR(10) NOT NULL,
CONSTRAINT ofExtComponentConf_pk PRIMARY KEY (subdomain)
);
CREATE TABLE ofRemoteServerConf (
xmppDomain NVARCHAR(255) NOT NULL,
remotePort INTEGER,
permission NVARCHAR(10) NOT NULL,
CONSTRAINT ofRemoteServerConf_pk PRIMARY KEY (xmppDomain)
);
CREATE TABLE ofPrivacyList (
username NVARCHAR(64) NOT NULL,
name NVARCHAR(100) NOT NULL,
isDefault INT NOT NULL,
list NTEXT NOT NULL,
CONSTRAINT ofPrivacyList_pk PRIMARY KEY (username, name)
);
CREATE INDEX ofPrivacyList_default_idx ON ofPrivacyList (username, isDefault);
CREATE TABLE ofSASLAuthorized (
username NVARCHAR(64) NOT NULL,
principal NVARCHAR(2000) NOT NULL,
CONSTRAINT ofSASLAuthorized_pk PRIMARY KEY (username, principal)
);
CREATE TABLE ofSecurityAuditLog (
msgID INTEGER NOT NULL,
username NVARCHAR(64) NOT NULL,
entryStamp BIGINT NOT NULL,
summary NVARCHAR(255) NOT NULL,
node NVARCHAR(255) NOT NULL,
details NTEXT,
CONSTRAINT ofSecurityAuditLog_pk PRIMARY KEY (msgID)
);
CREATE INDEX ofSecurityAuditLog_tstamp_idx ON ofSecurityAuditLog (entryStamp);
CREATE INDEX ofSecurityAuditLog_uname_idx ON ofSecurityAuditLog (username);
/* MUC Tables */
CREATE TABLE ofMucService (
serviceID INT NOT NULL,
subdomain NVARCHAR(255) NOT NULL,
description NVARCHAR(255),
isHidden INT NOT NULL,
CONSTRAINT ofMucService_pk PRIMARY KEY (subdomain)
);
CREATE INDEX ofMucService_serviceid_idx ON ofMucService(serviceID);
CREATE TABLE ofMucServiceProp (
serviceID INT NOT NULL,
name NVARCHAR(100) NOT NULL,
propValue NVARCHAR(2000) NOT NULL,
CONSTRAINT ofMucServiceProp_pk PRIMARY KEY (serviceID, name)
);
CREATE TABLE ofMucRoom (
serviceID INT NOT NULL,
roomID INT NOT NULL,
creationDate CHAR(15) NOT NULL,
modificationDate CHAR(15) NOT NULL,
name NVARCHAR(50) NOT NULL,
naturalName NVARCHAR(255) NOT NULL,
description NVARCHAR(255),
lockedDate CHAR(15) NOT NULL,
emptyDate CHAR(15) NULL,
canChangeSubject INT NOT NULL,
maxUsers INT NOT NULL,
publicRoom INT NOT NULL,
moderated INT NOT NULL,
membersOnly INT NOT NULL,
canInvite INT NOT NULL,
roomPassword NVARCHAR(50) NULL,
canDiscoverJID INT NOT NULL,
logEnabled INT NOT NULL,
subject NVARCHAR(100) NULL,
rolesToBroadcast INT NOT NULL,
useReservedNick INT NOT NULL,
canChangeNick INT NOT NULL,
canRegister INT NOT NULL,
CONSTRAINT ofMucRoom_pk PRIMARY KEY (serviceID, name)
);
CREATE INDEX ofMucRoom_roomid_idx on ofMucRoom(roomID);
CREATE INDEX ofMucRoom_serviceid_idx on ofMucRoom(serviceID);
CREATE TABLE ofMucRoomProp (
roomID INT NOT NULL,
name NVARCHAR(100) NOT NULL,
propValue NVARCHAR(2000) NOT NULL,
CONSTRAINT ofMucRoomProp_pk PRIMARY KEY (roomID, name)
);
CREATE TABLE ofMucAffiliation (
roomID INT NOT NULL,
jid NVARCHAR(424) NOT NULL,
affiliation INT NOT NULL,
CONSTRAINT ofMucAffiliation_pk PRIMARY KEY (roomID,jid)
);
CREATE TABLE ofMucMember (
roomID INT NOT NULL,
jid NVARCHAR(424) NOT NULL,
nickname NVARCHAR(255) NULL,
firstName NVARCHAR(100) NULL,
lastName NVARCHAR(100) NULL,
url NVARCHAR(100) NULL,
email NVARCHAR(100) NULL,
faqentry NVARCHAR(100) NULL,
CONSTRAINT ofMucMember_pk PRIMARY KEY (roomID,jid)
);
CREATE TABLE ofMucConversationLog (
roomID INT NOT NULL,
sender NVARCHAR(1024) NOT NULL,
nickname NVARCHAR(255) NULL,
logTime CHAR(15) NOT NULL,
subject NVARCHAR(255) NULL,
body NTEXT NULL
);
CREATE INDEX ofMucConversationLog_time_idx ON ofMucConversationLog (logTime);
/* PubSub Tables */
CREATE TABLE ofPubsubNode (
serviceID NVARCHAR(100) NOT NULL,
nodeID NVARCHAR(100) NOT NULL,
leaf INT NOT NULL,
creationDate CHAR(15) NOT NULL,
modificationDate CHAR(15) NOT NULL,
parent NVARCHAR(100) NULL,
deliverPayloads INT NOT NULL,
maxPayloadSize INT NULL,
persistItems INT NULL,
maxItems INT NULL,
notifyConfigChanges INT NOT NULL,
notifyDelete INT NOT NULL,
notifyRetract INT NOT NULL,
presenceBased INT NOT NULL,
sendItemSubscribe INT NOT NULL,
publisherModel NVARCHAR(15) NOT NULL,
subscriptionEnabled INT NOT NULL,
configSubscription INT NOT NULL,
accessModel NVARCHAR(10) NOT NULL,
payloadType NVARCHAR(100) NULL,
bodyXSLT NVARCHAR(100) NULL,
dataformXSLT NVARCHAR(100) NULL,
creator NVARCHAR(255) NOT NULL,
description NVARCHAR(255) NULL,
language NVARCHAR(255) NULL,
name NVARCHAR(50) NULL,
replyPolicy NVARCHAR(15) NULL,
associationPolicy NVARCHAR(15) NULL,
maxLeafNodes INT NULL,
CONSTRAINT ofPubsubNode_pk PRIMARY KEY (serviceID, nodeID)
);
CREATE TABLE ofPubsubNodeJIDs (
serviceID NVARCHAR(100) NOT NULL,
nodeID NVARCHAR(100) NOT NULL,
jid NVARCHAR(250) NOT NULL,
associationType NVARCHAR(20) NOT NULL,
CONSTRAINT ofPubsubNodeJIDs_pk PRIMARY KEY (serviceID, nodeID, jid)
);
CREATE TABLE ofPubsubNodeGroups (
serviceID NVARCHAR(100) NOT NULL,
nodeID NVARCHAR(100) NOT NULL,
rosterGroup NVARCHAR(100) NOT NULL
);
CREATE INDEX ofPubsubNodeGroups_idx ON ofPubsubNodeGroups (serviceID, nodeID);
CREATE TABLE ofPubsubAffiliation (
serviceID NVARCHAR(100) NOT NULL,
nodeID NVARCHAR(100) NOT NULL,
jid NVARCHAR(250) NOT NULL,
affiliation NVARCHAR(10) NOT NULL,
CONSTRAINT ofPubsubAffiliation_pk PRIMARY KEY (serviceID, nodeID, jid)
);
CREATE TABLE ofPubsubItem (
serviceID NVARCHAR(100) NOT NULL,
nodeID NVARCHAR(100) NOT NULL,
id NVARCHAR(100) NOT NULL,
jid NVARCHAR(1024) NOT NULL,
creationDate CHAR(15) NOT NULL,
payload NTEXT NULL,
CONSTRAINT ofPubsubItem_pk PRIMARY KEY (serviceID, nodeID, id)
);
CREATE TABLE ofPubsubSubscription (
serviceID NVARCHAR(100) NOT NULL,
nodeID NVARCHAR(100) NOT NULL,
id NVARCHAR(100) NOT NULL,
jid NVARCHAR(1024) NOT NULL,
owner NVARCHAR(1024) NOT NULL,
state NVARCHAR(15) NOT NULL,
deliver INT NOT NULL,
digest INT NOT NULL,
digest_frequency INT NOT NULL,
expire CHAR(15) NULL,
includeBody INT NOT NULL,
showValues NVARCHAR(30) NOT NULL,
subscriptionType NVARCHAR(10) NOT NULL,
subscriptionDepth INT NOT NULL,
keyword NVARCHAR(200) NULL,
CONSTRAINT ofPubsubSubscription_pk PRIMARY KEY (serviceID, nodeID, id)
);
CREATE TABLE ofPubsubDefaultConf (
serviceID NVARCHAR(100) NOT NULL,
leaf INT NOT NULL,
deliverPayloads INT NOT NULL,
maxPayloadSize INT NOT NULL,
persistItems INT NOT NULL,
maxItems INT NOT NULL,
notifyConfigChanges INT NOT NULL,
notifyDelete INT NOT NULL,
notifyRetract INT NOT NULL,
presenceBased INT NOT NULL,
sendItemSubscribe INT NOT NULL,
publisherModel NVARCHAR(15) NOT NULL,
subscriptionEnabled INT NOT NULL,
accessModel NVARCHAR(10) NOT NULL,
language NVARCHAR(255) NULL,
replyPolicy NVARCHAR(15) NULL,
associationPolicy NVARCHAR(15) NOT NULL,
maxLeafNodes INT NOT NULL,
CONSTRAINT ofPubsubDefaultConf_pk PRIMARY KEY (serviceID, leaf)
);
/* Finally, insert default table values. */
INSERT INTO ofID (idType, id) VALUES (18, 1);
INSERT INTO ofID (idType, id) VALUES (19, 1);
INSERT INTO ofID (idType, id) VALUES (23, 1);
INSERT INTO ofID (idType, id) VALUES (26, 2);
INSERT INTO ofVersion (name, version) VALUES ('openfire', 21);
/* Entry for admin user */
INSERT INTO ofUser (username, plainPassword, name, email, creationDate, modificationDate)
VALUES ('admin', 'admin', 'Administrator', 'admin@example.com', '0', '0');
/* Entry for default conference service */
INSERT INTO ofMucService (serviceID, subdomain, isHidden) VALUES (1, 'conference', 0);