[
  {
    "context": "xtuple",
    "nameSpace": "XM",
    "type": "Language",
    "table": "lang",
    "idSequenceName": "lang_lang_id_seq",
    "isRest": true,
    "comment": "Language Map",
    "privileges": {
      "all": {
        "create": false,
        "read": true,
        "update": false,
        "delete": false
      }
    },
    "properties": [
      {
        "name": "id",
        "attr": {
          "type": "Number",
          "column": "lang_id",
          "isPrimaryKey": true
        }
      },
      {
        "name": "name",
        "attr": {
          "type": "String",
          "column": "lang_name",
          "isNaturalKey": true,
          "required": true
        }
      },
      {
        "name": "abbreviationShort",
        "attr": {
          "type": "String",
          "column": "lang_abbr2"
        }
      },
      {
        "name": "abbreviationLong",
        "attr": {
          "type": "String",
          "column": "lang_abbr3"
        }
      }
    ],
    "isSystem": true
  },
  {
    "context": "xtuple",
    "nameSpace": "XM",
    "type": "Privilege",
    "table": "priv",
    "isRest": true,
    "comment": "Privilege Map",
    "privileges": {
      "all": {
        "create": false,
        "read": true,
        "update": false,
        "delete": false
      }
    },
    "properties": [
      {
        "name": "id",
        "attr": {
          "type": "Number",
          "column": "priv_id",
          "isPrimaryKey": true
        }
      },
      {
        "name": "name",
        "attr": {
          "type": "String",
          "column": "priv_name",
          "isNaturalKey": true
        }
      },
      {
        "name": "module",
        "attr": {
          "type": "String",
          "column": "priv_module"
        }
      }
    ],
    "isSystem": true
  },
  {
    "context": "xtuple",
    "nameSpace": "XM",
    "type": "Locale",
    "table": "locale",
    "isRest": true,
    "idSequenceName": "locale_locale_id_seq",
    "comment": "Locale Map",
    "privileges": {
      "all": {
        "create": "MaintainLocales",
        "read": true,
        "update": "MaintainLocales",
        "delete": "MaintainLocales"
      }
    },
    "properties": [
      {
        "name": "id",
        "attr": {
          "type": "Number",
          "column": "locale_id",
          "isPrimaryKey": true
        }
      },
      {
        "name": "code",
        "attr": {
          "type": "String",
          "column": "locale_code",
          "isNaturalKey":true
        }
      },
      {
        "name": "description",
        "attr": {
          "type": "String",
          "column": "locale_descrip",
          "required": true
        }
      },
      {
        "name": "notes",
        "attr": {
          "type": "String",
          "column": "locale_comments"
        }
      },
      {
        "name": "language",
        "toOne": {
          "type": "Language",
          "column": "locale_lang_id"
        }
      },
      {
        "name": "country",
        "toOne": {
          "type": "Country",
          "column": "locale_country_id"
        }
      },
      {
        "name": "errorColor",
        "attr": {
          "type": "String",
          "column": "locale_error_color",
          "required": true
        }
      },
      {
        "name": "warningColor",
        "attr": {
          "type": "String",
          "column": "locale_warning_color",
          "required": true
        }
      },
      {
        "name": "emphasisColor",
        "attr": {
          "type": "String",
          "column": "locale_emphasis_color",
          "required": true
        }
      },
      {
        "name": "altEmphasisColor",
        "attr": {
          "type": "String",
          "column": "locale_altemphasis_color",
          "required": true
        }
      },
      {
        "name": "expiredColor",
        "attr": {
          "type": "String",
          "column": "locale_expired_color",
          "required": true
        }
      },
      {
        "name": "futureColor",
        "attr": {
          "type": "String",
          "column": "locale_future_color",
          "required": true
        }
      },
      {
        "name": "currencyScale",
        "attr": {
          "type": "Number",
          "column": "locale_curr_scale",
          "required": true
        }
      },
      {
        "name": "salesPriceScale",
        "attr": {
          "type": "Number",
          "column": "locale_salesprice_scale",
          "required": true
        }
      },
      {
        "name": "purchasePriceScale",
        "attr": {
          "type": "Number",
          "column": "locale_purchprice_scale",
          "required": true
        }
      },
      {
        "name": "extendedPriceScale",
        "attr": {
          "type": "Number",
          "column": "locale_extprice_scale",
          "required": true
        }
      },
      {
        "name": "costScale",
        "attr": {
          "type": "Number",
          "column": "locale_cost_scale",
          "required": true
        }
      },
      {
        "name": "quantityScale",
        "attr": {
          "type": "Number",
          "column": "locale_qty_scale",
          "required": true
        }
      },
      {
        "name": "quantityPerScale",
        "attr": {
          "type": "Number",
          "column": "locale_qtyper_scale",
          "required": true
        }
      },
      {
        "name": "unitRatioScale",
        "attr": {
          "type": "Number",
          "column": "locale_uomratio_scale",
          "required": true
        }
      },
      {
        "name": "percentScale",
        "attr": {
          "type": "Number",
          "column": "locale_percent_scale",
          "required": true
        }
      },
      {
        "name": "weightScale",
        "attr": {
          "type": "Number",
          "column": "locale_weight_scale",
          "required": true
        }
      }
    ],
    "extensions": [
      {
        "table": "xt.localeext",
        "relations": [
          {
            "column": "localeext_id",
            "inverse": "id"
          }
        ],
        "properties": [
          {
            "name": "hoursScale",
            "attr": {
              "type": "Number",
              "column": "localeext_hours_scale"
            }
          }
        ],
        "isSystem": true
      }
    ],
    "isSystem": true
  },
  {
    "context": "xtuple",
    "nameSpace": "XM",
    "type": "UserAccount",
    "isRest": true,
    "table": "xt.usrinfo",
    "comment": "User Account Map",
    "privileges": {
      "all": {
        "create": "MaintainUsers",
        "read": "MaintainUsers",
        "update": "MaintainUsers",
        "delete": false
      }
    },
    "properties": [
      {
        "name": "username",
        "attr": {
          "type": "String",
          "column": "usr_username",
          "isPrimaryKey": true,
          "isNaturalKey": true
        }
      },
      {
        "name": "password",
        "attr": {
          "type": "String",
          "column": "usr_passwd"
        }
      },
      {
        "name": "properName",
        "attr": {
          "type": "String",
          "column": "usr_propername"
        }
      },
      {
        "name": "useEnhancedAuth",
        "attr": {
          "type": "Boolean",
          "column": "usr_enhancedauth"
        }
      },
      {
        "name": "disableExport",
        "attr": {
          "type": "Boolean",
          "column": "usr_disable_export"
        }
      },
      {
        "name": "isActive",
        "attr": {
          "type": "Boolean",
          "column": "usr_active"
        }
      },
      {
        "name": "initials",
        "attr": {
          "type": "String",
          "column": "usr_initials"
        }
      },
      {
        "name": "email",
        "attr": {
          "type": "String",
          "column": "usr_email"
        }
      },
      {
        "name": "organization",
        "attr": {
          "type": "String",
          "column": "usr_org"
        }
      },
      {
        "name": "locale",
        "toOne": {
          "type": "Locale",
          "column": "usr_locale_id",
          "required": true
        }
      },
      {
        "name": "isAgent",
        "attr": {
          "type": "Boolean",
          "column": "usr_agent",
          "required": true
        }
      },
      {
        "name": "grantedPrivileges",
        "toMany": {
          "column": "usr_username",
          "type": "UserAccountPrivilegeAssignment",
          "inverse": "userAccount",
          "isNested": true
        }
      },
      {
        "name": "userAccountRoles",
        "toMany": {
          "type": "UserAccountRole",
          "isNested": true
        }
      },
      {
        "name": "grantedUserAccountRoles",
        "toMany": {
          "column": "usr_username",
          "type": "UserAccountUserAccountRoleAssignment",
          "inverse": "userAccount",
          "isNested": true
        }
      },
      {
        "name": "grantedExtensions",
        "toMany": {
          "column": "usr_username",
          "type": "UserAccountExtension",
          "inverse": "userAccount",
          "isNested": true
        }
      }
    ],
    "isSystem": true,
    "sourceCode": "U"
  },
  {
    "context": "xtuple",
    "nameSpace": "XM",
    "type": "UserAccountRelation",
    "table": "xt.usrlite",
    "isRest": true,
    "comment": "User Account Relation Map",
    "privileges": {
      "all": {
        "create": false,
        "read": true,
        "update": false,
        "delete": false
      }
    },
    "properties": [
      {
        "name": "username",
        "attr": {
          "type": "String",
          "column": "usr_username",
          "isPrimaryKey": true,
          "isNaturalKey": true
        }
      },
      {
        "name": "propername",
        "attr": {
          "type": "String",
          "column": "usr_propername"
        }
      },
      {
        "name": "isActive",
        "attr": {
          "type": "Boolean",
          "column": "usr_active"
        }
      },
      {
        "name": "disableExport",
        "attr": {
          "type": "Boolean",
          "column": "usr_disable_export"
        }
      },
      {
        "name": "email",
        "attr": {
          "type": "String",
          "column": "usr_email"
        }
      }
    ],
    "isSystem": true
  },
  {
    "context": "xtuple",
    "nameSpace": "XM",
    "type": "UserAccountPrivilegeAssignment",
    "table": "usrpriv",
    "idSequenceName": "usrpriv_usrpriv_id_seq",
    "comment": "User Account Privilege Assignment Map",
    "privileges": {
      "all": {
        "create": true,
        "read": true,
        "update": false,
        "delete": true
      }
    },
    "properties": [
      {
        "name": "id",
        "attr": {
          "type": "Number",
          "column": "usrpriv_id",
          "isPrimaryKey": true
        }
      },
      {
        "name": "uuid",
        "attr": {
          "type": "String",
          "column": "obj_uuid",
          "isNaturalKey": true
        }
      },
      {
        "name": "userAccount",
        "attr": {
          "type": "String",
          "column": "usrpriv_username",
          "required": true
        }
      },
      {
        "name": "privilege",
        "toOne": {
          "type": "Privilege",
          "column": "usrpriv_priv_id",
          "required": true
        }
      }
    ],
    "isNestedOnly": true,
    "isSystem": true
  },
  {
    "context": "xtuple",
    "nameSpace": "XM",
    "type": "UserAccountRole",
    "table": "grp",
    "isRest": true,
    "idSequenceName": "grp_grp_id_seq",
    "comment": "User Account Role Map",
    "privileges": {
      "all": {
        "create": "MaintainGroups",
        "read": "MaintainGroups",
        "update": "MaintainGroups",
        "delete": "MaintainGroups"
      }
    },
    "properties": [
      {
        "name": "id",
        "attr": {
          "type": "Number",
          "column": "grp_id",
          "isPrimaryKey": true
        }
      },
      {
        "name": "name",
        "attr": {
          "type": "String",
          "column": "grp_name",
          "isNaturalKey":true
        }
      },
      {
        "name": "description",
        "attr": {
          "type": "String",
          "column": "grp_descrip"
        }
      },
      {
        "name": "grantedPrivileges",
        "toMany": {
          "type": "UserAccountRolePrivilegeAssignment",
          "column": "grp_id",
          "inverse": "userAccountRole",
          "isNested": true
        }
      },
      {
        "name": "grantedExtensions",
        "toMany": {
          "column": "grp_id",
          "type": "UserAccountRoleExtension",
          "inverse": "userAccountRole",
          "isNested": true
        }
      }
    ],
    "isSystem": true
  },
  {
    "context": "xtuple",
    "nameSpace": "XM",
    "type": "UserAccountRoleListItem",
    "table": "grp",
    "comment": "User Account Role List Item Map",
    "privileges": {
      "all": {
        "create": false,
        "read": true,
        "update": false,
        "delete": false
      }
    },
    "properties": [
      {
        "name": "id",
        "attr": {
          "type": "Number",
          "column": "grp_id",
          "isPrimaryKey": true
        }
      },
      {
        "name": "name",
        "attr": {
          "type": "String",
          "column": "grp_name",
          "isNaturalKey": true
        }
      },
      {
        "name": "description",
        "attr": {
          "type": "String",
          "column": "grp_descrip"
        }
      }
    ],
    "isSystem": true
  },
  {
    "context": "xtuple",
    "nameSpace": "XM",
    "type": "UserAccountRoleRelation",
    "table": "grp",
    "comment": "User Account Role Relation Map",
    "privileges": {
      "all": {
        "create": false,
        "read": true,
        "update": false,
        "delete": false
      }
    },
    "properties": [
      {
        "name": "id",
        "attr": {
          "type": "Number",
          "column": "grp_id",
          "isPrimaryKey": true
        }
      },
      {
        "name": "uuid",
        "attr": {
          "type": "String",
          "column": "obj_uuid",
          "isNaturalKey": true
        }
      },
      {
        "name": "name",
        "attr": {
          "type": "String",
          "column": "grp_name"
        }
      },
      {
        "name": "grantedPrivileges",
        "toMany": {
          "type": "UserAccountRolePrivilegeAssignment",
          "column": "grp_id",
          "inverse": "userAccountRole",
          "isNested": true
        }
      }
    ],
    "isNestedOnly": true,
    "isSystem": true
  },
  {
    "context": "xtuple",
    "nameSpace": "XM",
    "type": "UserAccountRolePrivilegeAssignment",
    "table": "grppriv",
    "idSequenceName": "grppriv_grppriv_id_seq",
    "comment": "User Account Role Privilege Assignment Map",
    "privileges": {
      "all": {
        "create": true,
        "read": true,
        "update": false,
        "delete": true
      }
    },
    "properties": [
      {
        "name": "id",
        "attr": {
          "type": "Number",
          "column": "grppriv_id",
          "isPrimaryKey": true
        }
      },
      {
        "name": "uuid",
        "attr": {
          "type": "String",
          "column": "obj_uuid",
          "isNaturalKey": true
        }
      },
      {
        "name": "userAccountRole",
        "attr": {
          "type": "Number",
          "column": "grppriv_grp_id"
        }
      },
      {
        "name": "privilege",
        "toOne": {
          "type": "Privilege",
          "column": "grppriv_priv_id"
        }
      }
    ],
    "isNestedOnly": true,
    "isSystem": true
  },
  {
    "context": "xtuple",
    "nameSpace": "XM",
    "type": "UserAccountUserAccountRoleAssignment",
    "table": "usrgrp",
    "idSequenceName": "usrgrp_usrgrp_id_seq",
    "comment": "User User Role Assignment Map",
    "privileges": {
      "all": {
        "create": true,
        "read": true,
        "update": false,
        "delete": true
      }
    },
    "properties": [
      {
        "name": "id",
        "attr": {
          "type": "Number",
          "column": "usrgrp_id",
          "isPrimaryKey": true
        }
      },
      {
        "name": "uuid",
        "attr": {
          "type": "String",
          "column": "obj_uuid",
          "isNaturalKey": true
        }
      },
      {
        "name": "userAccount",
        "attr": {
          "type": "String",
          "column": "usrgrp_username"
        }
      },
      {
        "name": "userAccountRole",
        "toOne": {
          "type": "UserAccountRole",
          "column": "usrgrp_grp_id"
        }
      }
    ],
    "isNestedOnly": true,
    "isSystem": true
  },
  {
    "context": "xtuple",
    "nameSpace": "XM",
    "type": "Agent",
    "table": "xt.usrlite",
    "isRest": true,
    "comment": "Agent Map",
    "privileges": {
      "all": {
        "create": false,
        "read": true,
        "update": false,
        "delete": false
      }
    },
    "properties": [
      {
        "name": "username",
        "attr": {
          "type": "String",
          "column": "usr_username",
          "isPrimaryKey": true,
          "isNaturalKey": true
        }
      },
      {
        "name": "isActive",
        "attr": {
          "type": "Boolean",
          "column": "usr_active",
          "value": true
        }
      },
      {
        "name": "isAgent",
        "attr": {
          "type": "Boolean",
          "column": "usr_agent",
          "value": true
        }
      }
    ],
    "isSystem": true
  },
  {
    "context": "xtuple",
    "nameSpace": "XM",
    "type": "ShareUsers",
    "table": "xt.cache_share_users",
    "comment": "List which users have personal privilege access to a resource based on what CRM Account it belongs to or share access grants.",
    "privileges": {
      "all": {
        "create": false,
        "read": "MaintainUsers",
        "update": false,
        "delete": false
      },
      "personal":{
        "create": false,
        "read":"ViewPersonalCRMAccounts",
        "update": false,
        "delete": false,
        "properties":[
          "username"
        ]
      }
    },
    "properties": [
      {
        "name": "uuid",
        "attr": {
          "type": "String",
          "column": "uuid",
          "isPrimaryKey": true
        }
      },
      {
        "name": "username",
        "attr": {
          "type": "String",
          "column": "username",
          "isNaturalKey": true
        }
      }
    ],
    "isSystem": true
  }
]
