validators for xoslib
diff --git a/planetstack/core/models/plcorebase.py b/planetstack/core/models/plcorebase.py
index 95959f4..dee8a87 100644
--- a/planetstack/core/models/plcorebase.py
+++ b/planetstack/core/models/plcorebase.py
@@ -83,6 +83,20 @@
     def get_field_diff(self, field_name):
         return self.diff.get(field_name, None)
 
+    #classmethod
+    def getValidators(cls):
+        """ primarily for REST API, return a dictionary of field names mapped
+            to lists of the type of validations that need to be applied to
+            those fields.
+        """
+        validators = {}
+        for field in cls._meta.fields:
+            l = []
+            if field.blank==False:
+                l.append("notBlank")
+            validators[field.name] = l
+        return validators
+
 class PlCoreBase(models.Model): # , DiffModelMixIn):
     objects = PlCoreBaseManager()
     deleted_objects = PlCoreBaseDeletionManager()
@@ -118,6 +132,21 @@
 
     def get_field_diff(self, field_name):
         return self.diff.get(field_name, None)
+
+    #classmethod
+    def getValidators(cls):
+        """ primarily for REST API, return a dictionary of field names mapped
+            to lists of the type of validations that need to be applied to
+            those fields.
+        """
+        validators = {}
+        for field in cls._meta.fields:
+            l = []
+            if field.blank==False:
+                l.append("notBlank")
+            validators[field.name] = l
+        return validators
+
     # ---- end copy stuff from DiffModelMixin ----
 
     # default values for created and updated are only there to keep evolution
@@ -206,19 +235,6 @@
     def is_ephemeral(cls):
 	return cls in ephemeral_models
 
-    def getValidators(self):
-        """ primarily for REST API, return a dictionary of field names mapped
-            to lists of the type of validations that need to be applied to
-            those fields.
-        """
-        validators = {}
-        for field in self._meta.fields:
-            l = []
-            if field.blank==False:
-                l.append("notBlank")
-            validators[field.name] = l
-        return validators
-
 
 
 
diff --git a/planetstack/core/xoslib/static/js/xoslib/xos-validators.js b/planetstack/core/xoslib/static/js/xoslib/xos-validators.js
index 0c04274..8865ce6 100644
--- a/planetstack/core/xoslib/static/js/xoslib/xos-validators.js
+++ b/planetstack/core/xoslib/static/js/xoslib/xos-validators.js
@@ -1,52 +1,52 @@
-function xos_get_defaults() {
-  this.account = {"updated": null, "created": null, "deleted": false, "site": null, "backend_status": "Provisioning in progress", "enacted": null};
-  this.charge = {"updated": null, "slice": null, "created": null, "deleted": false, "object": null, "account": null, "date": null, "amount": 0.0, "state": "pending", "invoice": null, "coreHours": 0.0, "backend_status": "Provisioning in progress", "kind": "besteffort", "enacted": null};
-  this.dashboardView = {"updated": null, "name": "", "created": null, "deleted": false, "url": "", "backend_status": "Provisioning in progress", "enacted": null};
-  this.deployment = {"accessControl": "allow all", "updated": null, "admin_user": null, "name": "", "created": null, "deleted": false, "availability_zone": null, "backend_type": null, "auth_url": null, "admin_password": null, "backend_status": "Provisioning in progress", "admin_tenant": null, "enacted": null};
-  this.deploymentPrivilege = {"updated": null, "created": null, "deleted": false, "role": null, "user": null, "deployment": null, "backend_status": "Provisioning in progress", "enacted": null};
-  this.deploymentRole = {"updated": null, "created": null, "deleted": false, "role": "", "backend_status": "Provisioning in progress", "enacted": null};
-  this.flavor = {"updated": null, "description": null, "created": null, "deleted": false, "enacted": null, "default": false, "flavor": "", "backend_status": "Provisioning in progress", "order": 0, "name": ""};
-  this.image = {"updated": null, "name": "", "created": null, "deleted": false, "container_format": "", "disk_format": "", "path": null, "backend_status": "Provisioning in progress", "enacted": null};
-  this.imageDeployments = {"updated": null, "created": null, "deleted": false, "image": null, "deployment": null, "backend_status": "Provisioning in progress", "glance_image_id": null, "enacted": null};
-  this.invoice = {"updated": null, "created": null, "deleted": false, "account": null, "date": null, "backend_status": "Provisioning in progress", "enacted": null};
-  this.network = {"controllerParameters": null, "subnet": "", "updated": null, "name": "", "created": null, "subnet_id": null, "network_id": null, "labels": null, "deleted": false, "guaranteedBandwidth": 0, "controllerUrl": null, "topologyParameters": null, "router_id": null, "template": null, "owner": null, "backend_status": "Provisioning in progress", "ports": null, "permitAllSlices": false, "enacted": null};
-  this.networkDeployments = {"router_id": null, "subnet": "", "updated": null, "network": null, "created": null, "deleted": false, "subnet_id": null, "deployment": null, "backend_status": "Provisioning in progress", "net_id": null, "enacted": null};
-  this.networkParameter = {"updated": null, "created": null, "deleted": false, "object_id": null, "value": "", "content_type": null, "backend_status": "Provisioning in progress", "parameter": null, "enacted": null};
-  this.networkParameterType = {"updated": null, "description": "", "created": null, "deleted": false, "enacted": null, "backend_status": "Provisioning in progress", "name": ""};
-  this.networkSlice = {"updated": null, "slice": null, "network": null, "created": null, "deleted": false, "backend_status": "Provisioning in progress", "enacted": null};
-  this.networkSliver = {"updated": null, "network": null, "created": null, "deleted": false, "ip": null, "enacted": null, "backend_status": "Provisioning in progress", "port_id": null, "sliver": null};
-  this.networkTemplate = {"controllerKind": null, "updated": null, "backend_status": "Provisioning in progress", "description": null, "created": null, "deleted": false, "sharedNetworkName": null, "guaranteedBandwidth": 0, "visibility": "private", "enacted": null, "translation": "none", "sharedNetworkId": null, "topologyKind": "BigSwitch", "name": ""};
-  this.node = {"updated": null, "name": "", "created": null, "deleted": false, "site": null, "deployment": null, "backend_status": "Provisioning in progress", "enacted": null};
-  this.payment = {"updated": null, "created": null, "deleted": false, "account": null, "amount": 0.0, "date": "2014-11-25T19:20:14.905Z", "backend_status": "Provisioning in progress", "enacted": null};
-  this.planetStack = {"updated": null, "description": "PlanetStack", "created": null, "deleted": false, "backend_status": "Provisioning in progress", "enacted": null};
-  this.planetStackPrivilege = {"updated": null, "created": null, "deleted": false, "role": null, "user": null, "backend_status": "Provisioning in progress", "planetstack": 1, "enacted": null};
-  this.planetStackRole = {"updated": null, "created": null, "deleted": false, "role": "", "backend_status": "Provisioning in progress", "enacted": null};
-  this.project = {"updated": null, "name": "", "created": null, "deleted": false, "backend_status": "Provisioning in progress", "enacted": null};
-  this.reservation = {"updated": null, "slice": null, "created": null, "deleted": false, "startTime": null, "duration": 1, "backend_status": "Provisioning in progress", "enacted": null};
-  this.reservedResource = {"updated": null, "reservationSet": null, "created": null, "deleted": false, "resource": null, "enacted": null, "backend_status": "Provisioning in progress", "quantity": 1, "sliver": null};
-  this.role = {"updated": null, "description": "", "created": null, "deleted": false, "role": null, "content_type": null, "backend_status": "Provisioning in progress", "role_type": "", "enacted": null};
-  this.router = {"updated": null, "name": "", "created": null, "deleted": false, "owner": null, "backend_status": "Provisioning in progress", "enacted": null};
-  this.service = {"updated": null, "description": null, "created": null, "deleted": false, "enabled": true, "versionNumber": "", "published": true, "enacted": null, "backend_status": "Provisioning in progress", "name": ""};
-  this.serviceAttribute = {"updated": null, "name": "", "service": null, "created": null, "deleted": false, "value": "", "backend_status": "Provisioning in progress", "enacted": null};
-  this.serviceClass = {"updated": null, "membershipFee": 0, "membershipFeeMonths": 12, "created": null, "deleted": false, "description": "", "commitment": 365, "enacted": null, "backend_status": "Provisioning in progress", "upgradeRequiresApproval": false, "name": ""};
-  this.serviceResource = {"updated": null, "name": "", "bucketMaxSize": 0, "created": null, "deleted": false, "serviceClass": null, "maxUnitsDeployment": 1, "maxDuration": 1, "maxUnitsNode": 1, "cost": 0, "enacted": null, "backend_status": "Provisioning in progress", "bucketInRate": 0, "calendarReservable": true};
-  this.site = {"updated": null, "name": "", "created": null, "deleted": false, "enabled": true, "longitude": null, "site_url": null, "login_base": "", "location": "0,0", "latitude": null, "is_public": true, "backend_status": "Provisioning in progress", "abbreviated_name": "", "enacted": null};
-  this.siteCredential = {"updated": null, "name": "", "created": null, "deleted": false, "site": null, "key_id": "", "enacted": null, "backend_status": "Provisioning in progress", "enc_value": ""};
-  this.siteDeployments = {"updated": null, "created": null, "deleted": false, "tenant_id": null, "site": null, "deployment": null, "backend_status": "Provisioning in progress", "enacted": null};
-  this.sitePrivilege = {"updated": null, "created": null, "deleted": false, "site": null, "role": null, "user": null, "backend_status": "Provisioning in progress", "enacted": null};
-  this.siteRole = {"updated": null, "created": null, "deleted": false, "role": "", "backend_status": "Provisioning in progress", "enacted": null};
-  this.slice = {"updated": null, "imagePreference": "Ubuntu 12.04 LTS", "name": "", "service": null, "created": null, "deleted": false, "slice_url": "", "serviceClass": 1, "enabled": true, "site": null, "omf_friendly": false, "network": "Private Only", "max_slivers": 10, "mountDataSets": "GenBank", "enacted": null, "backend_status": "Provisioning in progress", "creator": null, "description": ""};
-  this.sliceCredential = {"updated": null, "slice": null, "name": "", "created": null, "deleted": false, "key_id": "", "enacted": null, "backend_status": "Provisioning in progress", "enc_value": ""};
-  this.sliceDeployments = {"router_id": null, "updated": null, "slice": null, "network_id": null, "created": null, "deleted": false, "tenant_id": null, "subnet_id": null, "deployment": null, "backend_status": "Provisioning in progress", "enacted": null};
-  this.slicePrivilege = {"updated": null, "slice": null, "created": null, "deleted": false, "role": null, "user": null, "backend_status": "Provisioning in progress", "enacted": null};
-  this.sliceRole = {"updated": null, "created": null, "deleted": false, "role": "", "backend_status": "Provisioning in progress", "enacted": null};
-  this.sliceTag = {"updated": null, "slice": null, "name": "", "created": null, "deleted": false, "value": "", "backend_status": "Provisioning in progress", "enacted": null};
-  this.sliver = {"node": null, "instance_id": null, "updated": null, "slice": null, "deploymentNetwork": null, "name": "", "created": null, "deleted": false, "ip": null, "image": null, "creator": null, "numberCores": 0, "instance_name": null, "userData": null, "backend_status": "Provisioning in progress", "flavor": 2, "enacted": null};
-  this.tag = {"updated": null, "name": "", "service": null, "created": null, "deleted": false, "value": "", "object_id": null, "content_type": null, "backend_status": "Provisioning in progress", "enacted": null};
-  this.usableObject = {"updated": null, "name": "", "created": null, "deleted": false, "backend_status": "Provisioning in progress", "enacted": null};
-  this.user = {"username": "Something", "public_key": null, "updated": null, "password": "", "is_readonly": false, "firstname": "", "user_url": null, "deleted": false, "lastname": "", "created": null, "is_active": true, "site": null, "phone": null, "is_staff": true, "last_login": "2014-11-25T19:20:14.986Z", "is_admin": true, "timezone": "America/New_York", "backend_status": "Provisioning in progress", "email": "", "enacted": null};
-  this.userCredential = {"updated": null, "name": "", "created": null, "deleted": false, "user": null, "key_id": "", "enacted": null, "backend_status": "Provisioning in progress", "enc_value": ""};
-  this.userDashboardView = {"updated": null, "created": null, "deleted": false, "dashboardView": null, "user": null, "backend_status": "Provisioning in progress", "order": 0, "enacted": null};
-  this.userDeployments = {"updated": null, "created": null, "deleted": false, "kuser_id": null, "user": null, "deployment": null, "backend_status": "Provisioning in progress", "enacted": null};
+function xos_get_validators() {
+  this.account = {"updated": [], "created": [], "deleted": [], "site": ["notBlank"], "backend_status": ["notBlank"], "id": [], "enacted": ["notBlank"]};
+  this.charge = {"updated": [], "slice": [], "created": [], "deleted": [], "amount": ["notBlank"], "object": ["notBlank"], "account": ["notBlank"], "kind": ["notBlank"], "state": ["notBlank"], "coreHours": ["notBlank"], "invoice": [], "date": ["notBlank"], "backend_status": ["notBlank"], "id": [], "enacted": ["notBlank"]};
+  this.dashboardView = {"updated": [], "name": ["notBlank"], "created": [], "deleted": [], "url": ["notBlank"], "backend_status": ["notBlank"], "id": [], "enacted": ["notBlank"]};
+  this.deployment = {"accessControl": ["notBlank"], "updated": [], "admin_user": [], "name": ["notBlank"], "created": [], "deleted": [], "availability_zone": [], "backend_type": [], "auth_url": [], "admin_password": [], "backend_status": ["notBlank"], "admin_tenant": [], "id": [], "enacted": ["notBlank"]};
+  this.deploymentPrivilege = {"updated": [], "created": [], "deleted": [], "role": ["notBlank"], "user": ["notBlank"], "deployment": ["notBlank"], "backend_status": ["notBlank"], "id": [], "enacted": ["notBlank"]};
+  this.deploymentRole = {"updated": [], "created": [], "deleted": [], "role": ["notBlank"], "backend_status": ["notBlank"], "id": [], "enacted": ["notBlank"]};
+  this.flavor = {"updated": [], "name": ["notBlank"], "created": [], "deleted": [], "description": [], "order": ["notBlank"], "default": [], "flavor": ["notBlank"], "backend_status": ["notBlank"], "id": [], "enacted": ["notBlank"]};
+  this.image = {"updated": [], "name": ["notBlank"], "created": [], "deleted": [], "container_format": ["notBlank"], "disk_format": ["notBlank"], "path": [], "backend_status": ["notBlank"], "id": [], "enacted": ["notBlank"]};
+  this.imageDeployments = {"updated": [], "created": [], "deleted": [], "image": ["notBlank"], "glance_image_id": [], "deployment": ["notBlank"], "backend_status": ["notBlank"], "id": [], "enacted": ["notBlank"]};
+  this.invoice = {"updated": [], "created": [], "deleted": [], "account": ["notBlank"], "date": ["notBlank"], "backend_status": ["notBlank"], "id": [], "enacted": ["notBlank"]};
+  this.network = {"controllerParameters": [], "subnet": [], "updated": [], "subnet_id": [], "topologyParameters": [], "name": ["notBlank"], "created": [], "deleted": [], "network_id": [], "labels": [], "guaranteedBandwidth": ["notBlank"], "controllerUrl": [], "ports": [], "permitAllSlices": [], "router_id": [], "template": ["notBlank"], "owner": ["notBlank"], "backend_status": ["notBlank"], "id": [], "enacted": ["notBlank"]};
+  this.networkDeployments = {"router_id": [], "subnet": [], "updated": [], "network": ["notBlank"], "created": [], "deleted": [], "net_id": [], "subnet_id": [], "deployment": ["notBlank"], "backend_status": ["notBlank"], "id": [], "enacted": ["notBlank"]};
+  this.networkParameter = {"updated": [], "created": [], "deleted": [], "value": ["notBlank"], "object_id": ["notBlank"], "content_type": ["notBlank"], "backend_status": ["notBlank"], "parameter": ["notBlank"], "id": [], "enacted": ["notBlank"]};
+  this.networkParameterType = {"updated": [], "name": ["notBlank"], "created": [], "deleted": [], "description": ["notBlank"], "backend_status": ["notBlank"], "id": [], "enacted": ["notBlank"]};
+  this.networkSlice = {"updated": [], "slice": ["notBlank"], "network": ["notBlank"], "created": [], "deleted": [], "backend_status": ["notBlank"], "id": [], "enacted": ["notBlank"]};
+  this.networkSliver = {"updated": [], "network": ["notBlank"], "created": [], "deleted": [], "ip": [], "sliver": ["notBlank"], "backend_status": ["notBlank"], "port_id": [], "id": [], "enacted": ["notBlank"]};
+  this.networkTemplate = {"controllerKind": [], "updated": [], "name": ["notBlank"], "created": [], "deleted": [], "description": [], "sharedNetworkName": [], "guaranteedBandwidth": ["notBlank"], "visibility": ["notBlank"], "topologyKind": ["notBlank"], "sharedNetworkId": [], "translation": ["notBlank"], "backend_status": ["notBlank"], "id": [], "enacted": ["notBlank"]};
+  this.node = {"updated": [], "name": ["notBlank"], "created": [], "deleted": [], "site": ["notBlank"], "deployment": ["notBlank"], "backend_status": ["notBlank"], "id": [], "enacted": ["notBlank"]};
+  this.payment = {"updated": [], "created": [], "deleted": [], "account": ["notBlank"], "amount": ["notBlank"], "date": ["notBlank"], "backend_status": ["notBlank"], "id": [], "enacted": ["notBlank"]};
+  this.planetStack = {"updated": [], "description": ["notBlank"], "created": [], "deleted": [], "backend_status": ["notBlank"], "id": [], "enacted": ["notBlank"]};
+  this.planetStackPrivilege = {"updated": [], "created": [], "deleted": [], "planetstack": ["notBlank"], "role": ["notBlank"], "user": ["notBlank"], "backend_status": ["notBlank"], "id": [], "enacted": ["notBlank"]};
+  this.planetStackRole = {"updated": [], "created": [], "deleted": [], "role": ["notBlank"], "backend_status": ["notBlank"], "id": [], "enacted": ["notBlank"]};
+  this.project = {"updated": [], "name": ["notBlank"], "created": [], "deleted": [], "backend_status": ["notBlank"], "id": [], "enacted": ["notBlank"]};
+  this.reservation = {"updated": [], "slice": ["notBlank"], "created": [], "deleted": [], "startTime": ["notBlank"], "duration": ["notBlank"], "backend_status": ["notBlank"], "id": [], "enacted": ["notBlank"]};
+  this.reservedResource = {"updated": [], "resource": ["notBlank"], "created": [], "deleted": [], "sliver": ["notBlank"], "reservationSet": ["notBlank"], "backend_status": ["notBlank"], "id": [], "quantity": ["notBlank"], "enacted": ["notBlank"]};
+  this.role = {"updated": [], "description": ["notBlank"], "created": [], "deleted": [], "role": [], "content_type": ["notBlank"], "backend_status": ["notBlank"], "id": [], "role_type": ["notBlank"], "enacted": ["notBlank"]};
+  this.router = {"updated": [], "name": ["notBlank"], "created": [], "deleted": [], "owner": ["notBlank"], "backend_status": ["notBlank"], "id": [], "enacted": ["notBlank"]};
+  this.service = {"updated": [], "description": [], "created": [], "deleted": [], "enabled": [], "name": ["notBlank"], "versionNumber": ["notBlank"], "published": [], "backend_status": ["notBlank"], "id": [], "enacted": ["notBlank"]};
+  this.serviceAttribute = {"updated": [], "name": ["notBlank"], "service": ["notBlank"], "created": [], "deleted": [], "value": ["notBlank"], "backend_status": ["notBlank"], "id": [], "enacted": ["notBlank"]};
+  this.serviceClass = {"updated": [], "membershipFee": ["notBlank"], "name": ["notBlank"], "membershipFeeMonths": ["notBlank"], "created": [], "deleted": [], "description": ["notBlank"], "commitment": ["notBlank"], "backend_status": ["notBlank"], "id": [], "upgradeRequiresApproval": [], "enacted": ["notBlank"]};
+  this.serviceResource = {"updated": [], "bucketInRate": ["notBlank"], "name": ["notBlank"], "bucketMaxSize": ["notBlank"], "created": [], "deleted": [], "serviceClass": ["notBlank"], "maxUnitsDeployment": ["notBlank"], "calendarReservable": [], "maxDuration": ["notBlank"], "maxUnitsNode": ["notBlank"], "cost": ["notBlank"], "backend_status": ["notBlank"], "id": [], "enacted": ["notBlank"]};
+  this.site = {"abbreviated_name": ["notBlank"], "updated": [], "name": ["notBlank"], "created": [], "deleted": [], "enabled": [], "longitude": [], "site_url": [], "login_base": ["notBlank"], "location": ["notBlank"], "latitude": [], "is_public": [], "backend_status": ["notBlank"], "id": [], "enacted": ["notBlank"]};
+  this.siteCredential = {"updated": [], "enc_value": ["notBlank"], "name": ["notBlank"], "created": [], "deleted": [], "site": ["notBlank"], "key_id": ["notBlank"], "backend_status": ["notBlank"], "id": [], "enacted": ["notBlank"]};
+  this.siteDeployments = {"updated": [], "created": [], "deleted": [], "tenant_id": [], "site": ["notBlank"], "deployment": ["notBlank"], "backend_status": ["notBlank"], "id": [], "enacted": ["notBlank"]};
+  this.sitePrivilege = {"updated": [], "created": [], "deleted": [], "site": ["notBlank"], "role": ["notBlank"], "user": ["notBlank"], "backend_status": ["notBlank"], "id": [], "enacted": ["notBlank"]};
+  this.siteRole = {"updated": [], "created": [], "deleted": [], "role": ["notBlank"], "backend_status": ["notBlank"], "id": [], "enacted": ["notBlank"]};
+  this.slice = {"updated": [], "imagePreference": [], "name": ["notBlank"], "service": [], "created": [], "deleted": [], "slice_url": [], "description": [], "serviceClass": ["notBlank"], "enabled": [], "site": ["notBlank"], "omf_friendly": [], "network": [], "max_slivers": ["notBlank"], "mountDataSets": [], "backend_status": ["notBlank"], "creator": [], "id": [], "enacted": ["notBlank"]};
+  this.sliceCredential = {"updated": [], "slice": ["notBlank"], "enc_value": ["notBlank"], "name": ["notBlank"], "created": [], "deleted": [], "key_id": ["notBlank"], "backend_status": ["notBlank"], "id": [], "enacted": ["notBlank"]};
+  this.sliceDeployments = {"router_id": [], "updated": [], "slice": ["notBlank"], "created": [], "deleted": [], "tenant_id": [], "subnet_id": [], "network_id": [], "deployment": ["notBlank"], "backend_status": ["notBlank"], "id": [], "enacted": ["notBlank"]};
+  this.slicePrivilege = {"updated": [], "slice": ["notBlank"], "created": [], "deleted": [], "role": ["notBlank"], "user": ["notBlank"], "backend_status": ["notBlank"], "id": [], "enacted": ["notBlank"]};
+  this.sliceRole = {"updated": [], "created": [], "deleted": [], "role": ["notBlank"], "backend_status": ["notBlank"], "id": [], "enacted": ["notBlank"]};
+  this.sliceTag = {"updated": [], "slice": ["notBlank"], "name": ["notBlank"], "created": [], "deleted": [], "value": ["notBlank"], "backend_status": ["notBlank"], "id": [], "enacted": ["notBlank"]};
+  this.sliver = {"node": ["notBlank"], "instance_name": [], "updated": [], "slice": ["notBlank"], "deploymentNetwork": ["notBlank"], "name": ["notBlank"], "created": [], "deleted": [], "ip": [], "image": ["notBlank"], "creator": [], "numberCores": ["notBlank"], "instance_id": [], "userData": [], "flavor": ["notBlank"], "backend_status": ["notBlank"], "id": [], "enacted": ["notBlank"]};
+  this.tag = {"updated": [], "name": ["notBlank"], "service": ["notBlank"], "created": [], "deleted": [], "value": ["notBlank"], "object_id": ["notBlank"], "content_type": ["notBlank"], "backend_status": ["notBlank"], "id": [], "enacted": ["notBlank"]};
+  this.usableObject = {"updated": [], "name": ["notBlank"], "created": [], "deleted": [], "backend_status": ["notBlank"], "id": [], "enacted": ["notBlank"]};
+  this.user = {"username": ["notBlank"], "public_key": [], "updated": [], "backend_status": ["notBlank"], "is_readonly": [], "firstname": ["notBlank"], "user_url": [], "deleted": [], "lastname": ["notBlank"], "created": [], "is_active": [], "site": ["notBlank"], "email": ["notBlank"], "phone": [], "is_staff": [], "last_login": ["notBlank"], "timezone": ["notBlank"], "is_admin": [], "password": ["notBlank"], "id": [], "enacted": ["notBlank"]};
+  this.userCredential = {"updated": [], "enc_value": ["notBlank"], "name": ["notBlank"], "created": [], "deleted": [], "user": ["notBlank"], "key_id": ["notBlank"], "backend_status": ["notBlank"], "id": [], "enacted": ["notBlank"]};
+  this.userDashboardView = {"updated": [], "created": [], "deleted": [], "dashboardView": ["notBlank"], "order": ["notBlank"], "user": ["notBlank"], "backend_status": ["notBlank"], "id": [], "enacted": ["notBlank"]};
+  this.userDeployments = {"updated": [], "created": [], "deleted": [], "kuser_id": [], "user": ["notBlank"], "deployment": ["notBlank"], "backend_status": ["notBlank"], "id": [], "enacted": ["notBlank"]};
 };
-xosdefaults = new xos_get_defaults();
+xosvalidators = new xos_get_validators();
diff --git a/planetstack/core/xoslib/tools/make_validators.py b/planetstack/core/xoslib/tools/make_validators.py
index ad5377c..0fca367 100644
--- a/planetstack/core/xoslib/tools/make_validators.py
+++ b/planetstack/core/xoslib/tools/make_validators.py
@@ -12,7 +12,7 @@
 from django.core import serializers
 import json
 
-print "function xos_get_defaults() {"
+print "function xos_get_validators() {"
 
 for c in dir(core.models):
     c = getattr(core.models,c)
@@ -24,18 +24,12 @@
         if (classname in ["plCoreBase", "singletonModel"]):
             continue
 
-        fieldNames = [f.name for f in c._meta.fields]
-
-        fields = json.loads(serializers.serialize("json",[c],fields=fieldNames))[0]["fields"]
-
-        for f in fields.keys():
-            if f in ['created', 'updated', 'enacted']:
-                fields[f] = None
+        fields = c.getValidators();
 
         fields_json = json.dumps(fields)
 
         print "  this." + classname + " = " + fields_json + ";"
 
 print "};"
-print "xosdefaults = new xos_get_defaults();"
+print "xosvalidators = new xos_get_validators();"