Exemplo n.º 1
0
var ensureSchema = function(callback) {
    Cassandra.createColumnFamilies({
        'Tenant': 'CREATE TABLE "Tenant" ("alias" text PRIMARY KEY, "displayName" text, "host" text, "active" boolean)',
        'TenantNetwork': 'CREATE TABLE "TenantNetwork" ("id" text PRIMARY KEY, "displayName" text);',
        'TenantNetworkTenants': 'CREATE TABLE "TenantNetworkTenants" ("tenantNetworkId" text, "tenantAlias" text, "value" text, PRIMARY KEY ("tenantNetworkId", "tenantAlias")) WITH COMPACT STORAGE;'
    }, callback);
};
Exemplo n.º 2
0
var ensureSchema = function(callback) {
    Cassandra.createColumnFamilies({
        'AuthzRoles': 'CREATE COLUMNFAMILY AuthzRoles (principalId text PRIMARY KEY);',
        'AuthzMembers': 'CREATE COLUMNFAMILY AuthzMembers (resourceId text PRIMARY KEY);',
        'AuthzMembershipsCache': 'CREATE COLUMNFAMILY AuthzMembershipsCache (principalId text PRIMARY KEY);'
    }, callback);
};
Exemplo n.º 3
0
var _ensureSchema = function (callback) {

    Cassandra.createColumnFamilies({
        'MeetingsJitsi': 'CREATE TABLE "MeetingsJitsi" ("id" text PRIMARY KEY, "tenantAlias" text, "displayName" text, "visibility" text, "description" text, "createdBy" text, "created" text, "lastModified" text, "chat" boolean, "contactList" boolean)'
    }, callback);

};
Exemplo n.º 4
0
const ensureSchema = function(callback) {
  // Both user and group information will be stored inside of the Principals CF
  createColumnFamilies(
    {
      Principals:
        'CREATE TABLE "Principals" ("principalId" text PRIMARY KEY, "tenantAlias" text, "displayName" text, "description" text, "email" text, "emailPreference" text, "visibility" text, "joinable" text, "lastModified" text, "locale" text, "publicAlias" text, "largePictureUri" text, "mediumPictureUri" text, "smallPictureUri" text, "admin:global" text, "admin:tenant" text, "notificationsUnread" text, "notificationsLastRead" text, "acceptedTC" text, "createdBy" text, "created" timestamp, "deleted" timestamp)',

      // Map an email address to user ids. An e-mail address can be used by *multiple* users
      PrincipalsByEmail:
        'CREATE TABLE "PrincipalsByEmail" ("email" text, "principalId" text, PRIMARY KEY ("email", "principalId"))',

      // Map a user id to a desired email address and verification token
      PrincipalsEmailToken:
        'CREATE TABLE "PrincipalsEmailToken" ("principalId" text PRIMARY KEY, "email" text, "token" text)',

      // Track user visits to groups they are members of
      UsersGroupVisits:
        'CREATE TABLE "UsersGroupVisits" ("userId" text, "groupId" text, "latestVisit" text, PRIMARY KEY ("userId", "groupId"))',

      // Track requests to join groups
      GroupJoinRequestsByGroup:
        'CREATE TABLE "GroupJoinRequestsByGroup" ("groupId" text, "principalId" text, "created_at" text, "updated_at" text, "status" text, PRIMARY KEY ("groupId", "principalId"))'
    },
    () => {
      runQuery('CREATE INDEX IF NOT EXISTS ON "Principals" ("tenantAlias")', [], () => {
        return callback();
      });
    }
  );
};
Exemplo n.º 5
0
const ensureSchema = function(callback) {
  createColumnFamilies(
    {
      // Deleted schema
      AuthzDeleted: 'CREATE TABLE "AuthzDeleted" ("resourceId" text PRIMARY KEY, "deleted" boolean)',

      // Invitations schema
      AuthzInvitations:
        'CREATE TABLE "AuthzInvitations" ("resourceId" text, "email" text, "inviterUserId" text, "role" text, PRIMARY KEY ("resourceId", "email"))',
      AuthzInvitationsResourceIdByEmail:
        'CREATE TABLE "AuthzInvitationsResourceIdByEmail" ("email" text, "resourceId" text, PRIMARY KEY ("email", "resourceId"))',
      AuthzInvitationsTokenByEmail:
        'CREATE TABLE "AuthzInvitationsTokenByEmail" ("email" text PRIMARY KEY, "token" text)',
      AuthzInvitationsEmailByToken:
        'CREATE TABLE "AuthzInvitationsEmailByToken" ("token" text PRIMARY KEY, "email" text)',

      // Roles schema
      AuthzMembers:
        'CREATE TABLE "AuthzMembers" ("resourceId" text, "memberId" text, "role" text, PRIMARY KEY ("resourceId", "memberId")) WITH COMPACT STORAGE',
      AuthzMembershipsCache:
        'CREATE TABLE "AuthzMembershipsCache" ("principalId" text, "groupId" text, "value" text, PRIMARY KEY ("principalId", "groupId")) WITH COMPACT STORAGE',
      AuthzMembershipsIndirectCache:
        'CREATE TABLE "AuthzMembershipsIndirectCache" ("principalId" text, "groupId" text, "value" text, PRIMARY KEY ("principalId", "groupId")) WITH COMPACT STORAGE',
      AuthzRoles:
        'CREATE TABLE "AuthzRoles" ("principalId" text, "resourceId" text, "role" text, PRIMARY KEY ("principalId", "resourceId")) WITH COMPACT STORAGE'
    },
    callback
  );
};
Exemplo n.º 6
0
const ensureSchema = function(callback) {
  createColumnFamilies(
    {
      Content:
        'CREATE TABLE "Content" ("contentId" text PRIMARY KEY, "tenantAlias" text, "visibility" text, "displayName" text, "description" text, "resourceSubType" text, "createdBy" text, "created" text, "lastModified" text, "latestRevisionId" text, "uri" text, "previews" text, "status" text, "largeUri" text, "mediumUri" text, "smallUri" text, "thumbnailUri" text, "wideUri" text, "etherpadGroupId" text, "etherpadPadId" text, "filename" text, "link" text, "mime" text, "size" text)',
      PreviewItems:
        'CREATE TABLE "PreviewItems" ("revisionId" text, "name" text, "value" text, PRIMARY KEY ("revisionId", "name")) WITH COMPACT STORAGE',
      Revisions:
        'CREATE TABLE "Revisions" ("revisionId" text PRIMARY KEY, "contentId" text, "created" text, "createdBy" text, "filename" text, "mime" text, "size" text, "uri" text, "previewsId" text, "previews" text, "status" text, "largeUri" text, "mediumUri" text, "smallUri" text, "thumbnailUri" text, "wideUri" text, "etherpadHtml" text)',
      RevisionByContent:
        'CREATE TABLE "RevisionByContent" ("contentId" text, "created" text, "revisionId" text, PRIMARY KEY ("contentId", "created")) WITH COMPACT STORAGE'
    },
    () => {
      const queries = [
        { cql: 'ALTER TABLE "Content" ADD "ethercalcRoomId" text;', parameters: [] },
        { cql: 'ALTER TABLE "Revisions" ADD "ethercalcSnapshot" text;', parameters: [] },
        { cql: 'ALTER TABLE "Revisions" ADD "ethercalcHtml" text;', parameters: [] }
      ];
      async.eachSeries(
        queries,
        (eachQuery, done) => {
          runQuery(eachQuery.cql, eachQuery.parameters, done);
        },
        () => {
          callback();
        }
      );
    }
  );
};
Exemplo n.º 7
0
var _ensureSchema = function(callback) {
    Cassandra.createColumnFamilies({
        'Messages': 'CREATE COLUMNFAMILY Messages (id text PRIMARY KEY, threadKey text, createdBy text, body text, deleted text);',
        'MessageBoxMessages': 'CREATE COLUMNFAMILY MessageBoxMessages (messageBoxId text PRIMARY KEY)',
        'MessageBoxMessagesDeleted': 'CREATE COLUMNFAMILY MessageBoxMessagesDeleted (messageBoxId text PRIMARY KEY)',
        'MessageBoxRecentContributions': 'CREATE COLUMNFAMILY MessageBoxRecentContributions (messageBoxId text PRIMARY KEY)'
    }, callback);
};
Exemplo n.º 8
0
Arquivo: init.js Projeto: bp323/Hilary
var ensureSchema = function(callback) {
    Cassandra.createColumnFamilies({
        'AuthzRoles': 'CREATE TABLE "AuthzRoles" ("principalId" text, "resourceId" text, "role" text, PRIMARY KEY ("principalId", "resourceId")) WITH COMPACT STORAGE',
        'AuthzMembers': 'CREATE TABLE "AuthzMembers" ("resourceId" text, "memberId" text, "role" text, PRIMARY KEY ("resourceId", "memberId")) WITH COMPACT STORAGE',
        'AuthzMembershipsCache': 'CREATE TABLE "AuthzMembershipsCache" ("principalId" text, "groupId" text, "value" text, PRIMARY KEY ("principalId", "groupId")) WITH COMPACT STORAGE',
        'AuthzMembershipsIndirectCache': 'CREATE TABLE "AuthzMembershipsIndirectCache" ("principalId" text, "groupId" text, "value" text, PRIMARY KEY ("principalId", "groupId")) WITH COMPACT STORAGE'
    }, callback);
};
Exemplo n.º 9
0
var ensureSchema = function(callback) {
    Cassandra.createColumnFamilies({
        'ActivityStreams': 'CREATE COLUMNFAMILY ActivityStreams (activityStreamId text PRIMARY KEY);',
        'ActivityProcessingBuckets': 'CREATE COLUMNFAMILY ActivityProcessingBuckets (bucketId text PRIMARY KEY);',
        'ActivityAggregateStatus': 'CREATE COLUMNFAMILY ActivityAggregateStatus (aggregateKey text PRIMARY KEY, lastUpdated text, lastCollected text, lastActivity text);',
        'ActivityAggregateEntities': 'CREATE COLUMNFAMILY ActivityAggregateEntities (aggregateKey text PRIMARY KEY);'
    }, callback);
};
Exemplo n.º 10
0
var _ensureSchema = function(callback) {
    Cassandra.createColumnFamilies({
        'Messages': 'CREATE TABLE "Messages" ("id" text PRIMARY KEY, "threadKey" text, "createdBy" text, "body" text, "deleted" text)',
        'MessageBoxMessages': 'CREATE TABLE "MessageBoxMessages" ("messageBoxId" text, "threadKey" text, "value" text, PRIMARY KEY ("messageBoxId", "threadKey")) WITH COMPACT STORAGE',
        'MessageBoxMessagesDeleted': 'CREATE TABLE "MessageBoxMessagesDeleted" ("messageBoxId" text, "createdTimestamp" text, "value" text, PRIMARY KEY ("messageBoxId", "createdTimestamp")) WITH COMPACT STORAGE',
        'MessageBoxRecentContributions': 'CREATE TABLE "MessageBoxRecentContributions" ("messageBoxId" text, "contributorId" text, "value" text, PRIMARY KEY ("messageBoxId", "contributorId")) WITH COMPACT STORAGE'
    }, callback);
};
Exemplo n.º 11
0
Arquivo: init.js Projeto: bp323/Hilary
var ensureSchema = function(callback) {
    Cassandra.createColumnFamilies({
        'Content': 'CREATE TABLE "Content" ("contentId" text PRIMARY KEY, "tenantAlias" text, "visibility" text, "displayName" text, "description" text, "resourceSubType" text, "createdBy" text, "created" text, "lastModified" text, "latestRevisionId" text, "uri" text, "previews" text, "status" text, "largeUri" text, "mediumUri" text, "smallUri" text, "thumbnailUri" text, "wideUri" text, "etherpadGroupId" text, "etherpadPadId" text, "filename" text, "link" text, "mime" text, "size" text)',
        'PreviewItems': 'CREATE TABLE "PreviewItems" ("revisionId" text, "name" text, "value" text, PRIMARY KEY ("revisionId", "name")) WITH COMPACT STORAGE',
        'Revisions': 'CREATE TABLE "Revisions" ("revisionId" text PRIMARY KEY, "contentId" text, "created" text, "createdBy" text, "filename" text, "mime" text, "size" text, "uri" text, "previewsId" text, "previews" text, "status" text, "largeUri" text, "mediumUri" text, "smallUri" text, "thumbnailUri" text, "wideUri" text, "etherpadHtml" text)',
        'RevisionByContent': 'CREATE TABLE "RevisionByContent" ("contentId" text, "created" text, "revisionId" text, PRIMARY KEY ("contentId", "created")) WITH COMPACT STORAGE'
    }, callback);
};
Exemplo n.º 12
0
var ensureSchema = function(callback) {
    Cassandra.createColumnFamilies({
        'Content': 'CREATE COLUMNFAMILY Content (contentId text PRIMARY KEY, tenantAlias text, visibility text, name text, description text, resourceSubType text, createdBy text, created text, lastModified text);',
        'PreviewItems': 'CREATE COLUMNFAMILY PreviewItems (revisionId text PRIMARY KEY);',
        'LibraryByPrincipal': 'CREATE COLUMNFAMILY LibraryByPrincipal (principalId text PRIMARY KEY);',
        'Revisions': 'CREATE COLUMNFAMILY Revisions (revisionId text PRIMARY KEY);',
        'RevisionByContent': 'CREATE COLUMNFAMILY RevisionByContent (contentId text PRIMARY KEY);',
        'Etherpad': 'CREATE COLUMNFAMILY Etherpad (key text PRIMARY KEY, data text);'
    }, callback);
};
Exemplo n.º 13
0
var ensureSchema = function(callback) {
    Cassandra.createColumnFamilies({
        'AuthenticationLoginId': 'CREATE TABLE "AuthenticationLoginId" ("loginId" text PRIMARY KEY, "userId" text, "password" text)',
        'AuthenticationUserLoginId': 'CREATE TABLE "AuthenticationUserLoginId" ("userId" text, "loginId" text, "value" text, PRIMARY KEY ("userId", "loginId")) WITH COMPACT STORAGE',
        'OAuthAccessToken': 'CREATE TABLE "OAuthAccessToken" ("token" text PRIMARY KEY, "userId" text, "clientId" text)',
        'OAuthAccessTokenByUser': '******',
        'OAuthClient': 'CREATE TABLE "OAuthClient" ("id" text PRIMARY KEY, "displayName" text, "secret" text, "userId" text)',
        'OAuthClientsByUser': '******'
    }, callback);
};
Exemplo n.º 14
0
Arquivo: init.js Projeto: bp323/Hilary
var ensureSchema = function(callback) {
    Cassandra.createColumnFamilies({
        'AuthenticationLoginId': 'CREATE TABLE "AuthenticationLoginId" ("loginId" text PRIMARY KEY, "userId" text, "password" text)',
        'AuthenticationUserLoginId': 'CREATE TABLE "AuthenticationUserLoginId" ("userId" text, "loginId" text, "value" text, PRIMARY KEY ("userId", "loginId")) WITH COMPACT STORAGE',
        'OAuthAccessToken': 'CREATE TABLE "OAuthAccessToken" ("token" text PRIMARY KEY, "userId" text, "clientId" text)',
        'OAuthAccessTokenByUser': '******',
        'OAuthClient': 'CREATE TABLE "OAuthClient" ("id" text PRIMARY KEY, "displayName" text, "secret" text, "userId" text)',
        'OAuthClientsByUser': '******',
        'ShibbolethMetadata': 'CREATE TABLE "ShibbolethMetadata" ("loginId" text PRIMARY KEY, "persistentId" text, "identityProvider" text, "affiliation" text, "unscopedAffiliation" text, "allAttributes" text)'
    }, callback);
};
Exemplo n.º 15
0
const ensureSchema = function(callback) {
  createColumnFamilies(
    {
      Tenant:
        'CREATE TABLE "Tenant" ("alias" text PRIMARY KEY, "displayName" text, "host" text, "emailDomains" text, "countryCode" text, "active" boolean)',
      TenantNetwork: 'CREATE TABLE "TenantNetwork" ("id" text PRIMARY KEY, "displayName" text);',
      TenantNetworkTenants:
        'CREATE TABLE "TenantNetworkTenants" ("tenantNetworkId" text, "tenantAlias" text, "value" text, PRIMARY KEY ("tenantNetworkId", "tenantAlias")) WITH COMPACT STORAGE;'
    },
    callback
  );
};
        it('verify multiple column families', function(callback) {
            var name1 = TestsUtil.generateTestCassandraName();
            var name2 = TestsUtil.generateTestCassandraName();

            Cassandra.createColumnFamilies({
                name1: 'CREATE TABLE "' + name1 + '" ("keyId" text, "column" text, "value" text, PRIMARY KEY ("keyId", "column")) WITH COMPACT STORAGE',
                name2: 'CREATE TABLE "' + name2 + '" ("keyId" text, "column" text, "value" text, PRIMARY KEY ("keyId", "column")) WITH COMPACT STORAGE'
            }, function(err) {
                assert.ok(!err);

                // Ensure both column families exist
                Cassandra.columnFamilyExists(name1, function(err, exists) {
                    assert.ok(!err);
                    assert.ok(exists);

                    Cassandra.columnFamilyExists(name2, function(err, exists) {
                        assert.ok(!err);
                        assert.ok(exists);

                        // Drop them
                        Cassandra.dropColumnFamilies([name1, name2], function(err) {
                            assert.ok(!err);

                            // Ensure they no longer exist
                            Cassandra.columnFamilyExists(name1, function(err, exists) {
                                assert.ok(!err);
                                assert.ok(!exists);

                                Cassandra.columnFamilyExists(name2, function(err, exists) {
                                    assert.ok(!err);
                                    assert.ok(!exists);
                                    callback();
                                });
                            });
                        });
                    });
                });
            });
        });
Exemplo n.º 17
0
var _ensureSchema = function(callback) {
    Cassandra.createColumnFamilies({
        'FollowingUsersFollowers': 'CREATE COLUMNFAMILY FollowingUsersFollowers (userId text PRIMARY KEY);',
        'FollowingUsersFollowing': 'CREATE COLUMNFAMILY FollowingUsersFollowing (userId text PRIMARY KEY);'
    }, callback);
};
Exemplo n.º 18
0
var _ensureSchema = function(callback) {
    Cassandra.createColumnFamilies({
        'Folders': 'CREATE TABLE "Folders" ("id" text PRIMARY KEY, "tenantAlias" text, "groupId" text, "displayName" text, "visibility" text, "description" text, "createdBy" text, "created" bigint, "lastModified" bigint)',
        'FoldersGroupId': 'CREATE TABLE "FoldersGroupId" ("groupId" text PRIMARY KEY, "folderId" text)'
    }, callback);
};
Exemplo n.º 19
0
var ensureSchema = function(callback) {
    Cassandra.createColumnFamilies({
        'LibraryIndex': 'CREATE TABLE "LibraryIndex" ("bucketKey" text, "rankedResourceId" text, "value" text, PRIMARY KEY ("bucketKey", "rankedResourceId")) WITH COMPACT STORAGE'
    }, callback);
};
Exemplo n.º 20
0
var _ensureSchema = function(callback) {
    Cassandra.createColumnFamilies({
        'FollowingUsersFollowers': 'CREATE TABLE "FollowingUsersFollowers" ("userId" text, "followerId" text, "value" text, PRIMARY KEY ("userId", "followerId")) WITH COMPACT STORAGE',
        'FollowingUsersFollowing': 'CREATE TABLE "FollowingUsersFollowing" ("userId" text, "followingId" text, "value" text, PRIMARY KEY ("userId", "followingId")) WITH COMPACT STORAGE'
    }, callback);
};
Exemplo n.º 21
0
var _ensureSchema = function(callback) {
    Cassandra.createColumnFamilies({
        'Discussions': 'CREATE COLUMNFAMILY Discussions (id text PRIMARY KEY, tenantAlias text, displayName text, visibility text, description text, createdBy text, created text, lastModified text);'
    }, callback);
};
Exemplo n.º 22
0
var ensureSchema = function(callback) {
    Cassandra.createColumnFamilies({
        'AuthenticationLoginId': 'CREATE COLUMNFAMILY AuthenticationLoginId (loginId text PRIMARY KEY, userId text);',
        'AuthenticationUserLoginId': 'CREATE COLUMNFAMILY AuthenticationUserLoginId (userId text PRIMARY KEY);'
    }, callback);
};
Exemplo n.º 23
0
var _ensureSchema = function(callback) {
    Cassandra.createColumnFamilies({
        'MediaCoreContentRevisionIdMap': 'CREATE COLUMNFAMILY MediaCoreContentRevisionIdMap (mediaCoreId text PRIMARY KEY, contentId text, revisionId text);'
    }, callback);
};